摘要:結合非計算機專業對C語言程序設計課程學習的要求,針對教師與學生普遍認為C語言難教難學的現狀,提出新的教學目的和教學方法。
關鍵詞:C語言程序設計;教學目的;教學方法;多課程教學結合
基金項目:山西省教育科學“十一五”規劃課題“地方高校計算機應用型創新人才培養模式研究”(GH—09223)。
作者簡介:李建華,女,講師,研究方向為人工智能。
當前在高等學校的本科教育中,從計算機科學到電子信息類專業,乃至理工科院校的所有非計算機專業,“C語言程序設計”幾乎成了必開課程。有的是專業基礎課,有的是公共必修基礎課,有的是“非計算機專業的計算機基礎課”。教學目的根據專業有所不同,有的是專業基礎知識;有的只是為了掌握簡單的編程;還有的是為了計算機等級考試。教學方法多遵循語言類授課方式,重點放在語法掌握上。C語言程序設計課程本身對教學要求比較高,學生不僅僅學習C語言程序設計的語法知識,更重要的是掌握程序設計方法。在以往的教學實踐中,我們發現很多學生認為C語言程序設計課程是一門比較難學的課程。事實上除了計算機專業學生在后續課程或工作中要用到它外,其他專業學生在課程結束后幾乎不再接觸此知識。那么我們開課的目的不應該只停在學習編程上,明確新的教學目的,結合新的教學方法讓學生對此有新的認識,這樣學生學起來就會感到輕松,興趣。
1明確新的教學目的
教與學的目的應該是一致的,如果學生將來不用編程,而是想通過學習這一門課程來提高其他方面的能力,如邏輯思維能力、研究能力、自學能力等,那么我們也應該改變教學目的。
1.1對邏輯思維能力的培養
教師可以開門見山地告訴學生,這門課程不僅是為了學編程,更重要的是培養更強的邏輯思維能力。這個能力在以后干任何工作都可以用上。編程時的算法跟每個人的想法一樣,各有不同,可是編程的語法是固定的,機器不會去理解人,所以,寫程序一定得有強的邏輯思維才能讓機器幫你執行出想要的結果。這就要求學生們在編程時一定要思路清晰,思維縝密。如在循環嵌套時,就要分清內外層循環,比較簡單的像二維數組的是行大還是列大,大的在外層,小的在內層,外層循環慢,內層循環快;稍復雜一點的,如求1~100之內的素數,用定義求,表示循環的語句如下:[1]
For(n=1;n<=100;n++)
For(i=2;i
外層For(n=1;n<=100;n++)表示1~100的數,For(i=2;i
For(i=2;i
這里的For(i=2;i
1.2對研究能力的培養
現在許多學生適應了在中學時期的強制性學習和應試教育,導致自學能力減弱,也就更沒有獨立思考的能力和研究能力,我們現在大學的學習目的主要是培養研究型學生。通過學C程序設計,可以培養自學能力、研究能力。
學習是為了解決實際生活中的問題,這樣就需要對生活中的問題進行數學建模,而建好的模型是需要用機器來解的。這一系列過程需要大力思考。生活中的問題抽取什么樣的量來設為變量,這些變量又有著怎樣的關系,如何建立表達式,建好的表達式又怎樣用程序算法來實現。例如,在沒有學習數組時,我們需要求大量的數據,設許多個變量這是不可取的辦法,需要我們用更巧妙的方法來解決。如解決古典數學問題兔子繁殖問題,這個問題的數學模型是Fibonacci數列。求出這個數列的前40個數。程序段如下:
F