摘要:C語言是獨立學院理工科非計算機專業學生在獲取學士學位證書時必須參加等級考試的二級考試語種之一,歷年考試通過率反映出,C語言的學習有一定難度,二級考試通過率普遍不高。如何使C語言教學能夠更有效地讓學生掌握要點,提高編程能力,順利通過等級考試,這是一個很值得深思的問題。從獨立學院學生的學習特點、C語言學習中存在的困難、C語言教學方法思考幾個方面,依次對獨立學院C語言等級考試教學進行了探討,期望不斷尋求更好的教學方法。
關鍵詞:獨立學院;C語言;學生學習特點;困難;教學方法
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)25-7176-02
Independent Colleges C Language Teaching Test
LIU Li-juan
(Nanjing Normal University Taizhou College, Taizhou 225300, China)
Abstract: C language is one of the Language Tests which an independent non-computer science and engineering college students in obtaining bachelor's degree level certificates must participate in.Examination pass rates over the years reflect that, C language have a certain degree of difficulty, Secondary examination pass rate was generally not high. How to make the C language teaching more effective for students to grasp the main points to improve programming ability, successfully passed the test, this is a problem worthy of careful consideration. From characteristics of students in the independent College, C language learning difficulties, thinking of C language teaching methods several aspects, followed by the C language Teaching Test of independent Institute are discussed,expectations are constantly in search of better teaching methods.
Key words: Independent Institute; C language; student learning characteristics; difficulties; teaching methods
在計算機技術飛速發展的今天,各種計算機軟件開發語言是計算機更新換代的一個重要條件,常見的有VB、C、C++、C#.NET等等。其中,C語言可移植性好,既具有高級語言的特點,又具有低級語言的許多特點,因此它屬于一種中間語言一直廣泛使用到今天。特別是在高校,《C語言程序設計》這門課一般面向初學程序設計的學生開設,掌握C語言的精髓,是學生學好其他后續專業課程的關鍵。對于獨立學院要參加等級考試的學生來說,C語言學習要求更高、難度更大,因此要針對特殊環境下學生的特點不斷改進教學方法以達到最終的教學目標。通過多年教學,現對獨立學院C語言等級考試教學做如下幾點探討。
1 獨立學院學生的學習特點
獨立學院招收的本三批次學生,大多在學習能力、學習自主性方面還是稍差的,學習過程中,習慣于接受老師課本上基本知識點的講解,對于補充提高的內容,比較難于掌握,加上課后幾乎不問問題,自學能力差,不擅長復習總結,一旦有問題得不到及時解決,就會在后續學習過程中越積越多,從而導致整門課程學習的惡性循環,考試復習更是無從下手。
2 C語言學習中存在的困難
C語言學習中存在的困難主要體現在教學過程中,教學過程涉及到兩個重要方面:教材內容和教學方法。就教材內容而言,C語言教學使用的是譚浩強編寫的《C程序設計》。整本教材所包含的內容比較側重于理論知識點的講解,適當加上了一些實例分析,而不是一本側重于培養學生編程能力的教材。書中包含的基本知識點很多,而且相對而言顯得比較瑣碎,但前后章節又彼此相輔相成,學生如果不花大量時間去記憶,根本掌握不了最基礎的語法。
目前在C語言教學過程中,所使用的教學方法存在以下問題:
1)教學過程枯燥
有的老師在教學過程中使用多媒體課件PPT教學,但PPT上的內容跟書上的幾乎一樣,從課件上看不出任何重點、難點的標注,上課相當于加上稍許講解從頭到尾把書上內容讀了一遍。學生本身就覺得書本上理論知識枯燥,如果教學過程安排不恰當,學生從心理上就會逐漸有排斥性,從而導致他們從一開始就沒興趣、不好好學的現象。
2)忽視教學方法的總結
事實證明,C語言中有很多學生容易混淆的知識點,特別是在學到后續章節例如函數的時候,學生編寫函數調用程序往往會出現理不清思路、不知如何下手的狀況,不清楚被調用函數和調用函數分別如何定義、如何編程,如果在授課過程中教師能夠及時總結,學生理清了思路,就可以很順利地去解決問題了。
3)忽視學生編程能力的提高
為了應付等級考試,有的老師一味追求題海戰術,認為學生練習題目做得越多運用越熟練,但在熟練的同時,是否考慮到這樣兩個問題:有些學生一開始就做不下去反過來抄襲答案;使學生重復做同類型題目會浪費學生大量的時間。再加上老師如果不注重強調編程題算法的重要性,學生編程能力往往得不到提高。
4)不了解學生的掌握程度
教學過程是教和學的統一體,忽視任何一方整個教學效果都不會理想。因此在教學過程中,不僅要注重教師的教,也要注重學生的學。如果僅僅考慮如何教,教師就不能接收到來自學生的信息反饋,從而無法根據學生的學習情況及時改進教學方法,調整教學進度。而在很多授課過程中,僅僅只是教師的講解,沒有任何跟學生的提問互動思考等過程,或者課后跟學生也毫無交流。缺少了學這樣一個巨大的信息反饋渠道,教學過程根本無法很好的完成。
3 C語言教學方法思考
3.1 教材總體把握
1)要掌握若干數據類型,包括char、int、float等基本數據類型和數組、結構體、共用體等構造數據類型,這是程序中最基本的數據存儲方式。
2)掌握三種基本的程序結構:順序、選擇、循環。任何一個復雜的程序,都是由三種基本結構組成的。其中,循環是重點也是難點。
3)C語言使用函數來實現某個特定功能。
4)C語言提供了一個十分便利的工具——指針,它能直接指向內存空間單元,從而可以更加方便地操作變量,簡化程序設計。
3.2 具體教學方法
1)重視理論基礎
通過清晰的講解讓學生打下扎實的理論基礎,在學生記憶知識點的同時利用典型題目,幫助學生靈活應用所學知識,及時鞏固。
2)讓初學者學會讀程序
初學程序設計,不會編寫程序代碼屬正常現象。帶領學生從一開始多看程序,閱讀的程序越多,解決不同問題的算法也就能夠積累越多。讀程序的最大好處是先學別人怎么寫程序,有了一定積累再自己嘗試去動手編寫程序。在記憶算法的同時,可以發現很多問題歸根到底可以使用同一方法解決,因此在閱讀程序的過程中還要學會算法的歸類。
3)注意教學方法的總結
在此對C語言中的兩個難點函數的編寫和指針分別作總結。
函數調用時,main函數的框架一般是變量定義、簡單輸入、函數調用、簡單輸出,而實現某個特定功能的函數要看成一個整體單獨定義,其框架一般是變量定義、實現函數功能的處理語句、返回值語句。特別是對于遞歸函數的編寫,可以遵循“找遞歸公式?寫遞歸函數?補充main函數”的規則,這種方法對于學生理解“漢諾塔”問題相對容易些。對于嵌套函數,建議根據算法先寫出要使用到的幾個空函數框架,再逐個補全各函數語句。
對于指針這章,關鍵要抓住變量的入口地址,其中所對應的有單個變量的地址、數組入口地址、函數的入口地址。
指向數組的指針,可以定義一個指向數組入口地址的指針變量p,通過p++使指針指向數組的每一個元素,因此*p可代替數組的每一個元素,避免了使用下標法來引用元素。字符串的指針就是指向數組的指針的一個特例,特別要注意經常使用字符串結束標記‘\\0’作為循環結束的判斷條件。
指向函數的指針很簡單,因為它始終指向函數的入口,可以在指針變量名前加*就可以代替函數名進行使用。一般使用指向函數的指針有這樣一個特殊場合,一個函數有多個參數,多次調用此函數時,每次前幾個參數相同,而最后一個參數不同,最后一個參數可以利用一個指向函數的指針來實現,每次使指針指向另外幾個不同的函數。例如,在編寫一個求定積分的通用函數時,下限、上限保持不變,而每次函數表達式不同,我們就可以用此方法來實現。
返回指針值的函數一般在函數被調用后,會返回一個指針,以便于主函數利用此指針進行其他操作,一般返回指針值的函數可用在查找信息的編程中。
指針數組和指向指針的指針,通常要聯合起來使用,因為指向指針的指針為二級指針,必須通過一級指針才能與變量相互引用,而指針數組是一個很好的中介,它可以將若干一級指針聚集起來,指向若干個變量。這時,我們只要通過一個二級指針就可以很方便地指向指針數組的每一個元素,從而間接地指向每一個變量。
4)重視上機操作
一般上機課時間有限,因此建議課后讓學生動手在紙上編寫代碼,上機課主要抓緊時間進行調試。老師要重點講解編程題目的算法,提醒學生可以將大的程序分解成熟悉的小程序編寫,再將小程序連接起來,上機大部分時間還是讓學生自主完成程序的調試,這樣有利于學生自我總結提高,掌握編程技巧。
3.3 信心教學
教師在平時的教學過程中,首先要給學生樹立起學習的信心,激發他們的學習激情。多年來,C語言的教學都是以輸出“HELLO WORLD”開始講解程序設計語言的,該程序過于平淡,不能引起學生的學習興趣。我們可以考慮演示一個事先編好的小游戲程序,從一開始吸引學生的注意力,激發其濃厚的學習興趣。在學習過程中,要發揮學生的學習信心,可以采取諸如:編故事提高語言的趣味性、引用經典數學問題、讓學生親自參與等方法,讓學生在不知不覺中即學到了知識,又活躍了課堂氣氛。最終,通過等級考試的考核讓學生實現其信心。
C語言的學習存在一定難度,對于獨立學院的學生來說參加等級考試學習難度更大,因此在教學過程中,我們要不斷研究采用合適的教學方法讓學生產生學習興趣,掌握學習方法、勤于做題、自主編程,最終順利地通過等級考試。
參考文獻:
[1] 王淑敬. 關于C語言教學的一點體會[J]. 計算機科學,2008.
[2] 趙妮, 熊高君. 激活課堂氣氛,提升學習興趣——談C語言課堂教學方法[J].教育與教學研究,2008.12.
[3] 何岸. 論《C語言程序設計》課程的趣味教學[J]. 高等函授學報(自然科學版),2008.10.
[4] 劉清雪, 劉影. 獨立學院計算機專業“C語言”課程教學與思考[J]. 華章,2008.9.
[5] 譚浩強. C程序設計[M].3版. 北京:清華大學出版社,2005.7.