摘要:該文就當前高職院校在C程序設計課程教學過程中存在的的教師難教,學生難學等一系列問題,加以分析,在C課程教改的實效性方面做了一定的調查和研究,通過使用Ch平臺對C課程進行試點改革,取得了階段性的成果。
關鍵詞:計算機程序設計;C 語言;Ch 平臺;直觀交互式;課程改革
中圖分類號:G640文獻標識碼:A文章編號:1009-3044(2009)25-7325-02
The Research on the Actual Effect of the Reform of C course Based on the Ch Platform
GUO Ping
(Lishui Vocational and Technical College, Lishui 323000, China)
Abstract: This paper analyzes a series of problems in the process of teaching language C program design, which are difficult for both the teachers and the students in the higher vocational and technical college. Meanwhile, this paper has done some investigations and researches on the actual effect of the teaching reform of the C course and has obtained some success on the experimental reform of the C course by using the Ch platform.
Key words: computer programming; Language C; Ch platform; visual interaction; Curriculum reform
計算機程序設計是一門在各學校、各專業都普遍開設的基礎課,其中多數以C 語言作為入門語言。但是由于C 語言本身的特殊性,教師難教,學生難學。成了程序設計課中的一塊“雞肋”。學之無味,棄之可惜。特別在高職高專院校,C語言程序設計課的教學更是難題,因為C 語言中的編譯、連接和執行過程太繁瑣,指針數組太難理解。最難讓人忍受的是看不見摸不著,寫的程序提交給計算機后不知道發生了什么。錯誤信息也只是說明哪里錯了,而不知道為什么錯了,一切都得靠自己對程序的理解。自己去分析。又加上學生本身英語和數學的基礎差,所以大部份學生都感覺枯燥、無味,老師大都感覺在唱獨角戲。而學生們也很想學好,因為學好這門課,可以提高他們的程序設計能力和實際動手能力,對他們的專業發展及今后的就業具有非常重要的意義,老師也想教好這門課。因為學好它,學生以后的后繼課程就好學多了。哪怕是花更多的力氣,可是事情往往事與愿違。所有這一切現狀就要求教授者轉變教育思想和觀念,想方設法促進教學改革,提高教學質量和效率。
Ch 平臺是程輝教授在美國加州大學戴維斯分校從事十多年C 語言程序設計教學和科研的實踐中,針對C 語言的眾多的重點和難點,積累開發的一種跨平臺嵌入式C/C++程序解釋器。Ch 平臺拋棄了傳統的抽象教學方式,由面向底層內核的交互式命令外殼和教學專用且界面友好的集成開發環境兩大模塊構成,從而形成了一種新的C 程序設計教學平臺和新的教學模式。教師可以使用這個平臺,在課堂上開展直觀的程序交互式演示教學,幫助學生形象地理解C 語言指針、結構體、數組、編程邏輯、編程調試等學習難點,徹底改變了C程序設計原來的教學模式。該教學平臺已經廣泛應用于世界各地,運行在各種操作系統上,取得了顯著效果, 受到各界專家學者的高度評價。同時這個平臺也是學生有效自學和課后實踐的工具。可以形象而又便捷地展示和協助教師講解C 語言在解決較復雜工程和科學問題中的應用,從而提高教學的實用性,激發學生的學習積極性。
2006年,浙江理工大學承辦召開了《浙江省高校C程序設計創新教學平臺研討會》,并邀請了中科院倪光南院士做學術報告,并在全省范圍內推廣Ch平臺。本人代表我校參加,從那以后,本人在本校就一直使用和推廣Ch平臺,在C課程教學中引入Ch平臺,有利于學生將被動聽講變為主動探求、自主學習, 達到掌握知識和專業技能的目的。教師在教學過程中可以輕松做到化繁為簡,化難為易。特別是面對高職這一層次的學生,基礎差,抽象思維稍弱一些,而Ch平臺采用低層內核交互式顯式方法,把枯燥難懂的編程的內核原理以簡單的,容易接受的方式表現出來。使學生在實踐中學懂理論,在理論中掌握實踐。充分培養創新能力和獨立分析問題、解決問題的能力。
C 語言的所有語句和表達式都可以在Ch 命令外殼(command shell)中交互解釋執行并即時地顯示在屏幕上。在命令模式中執行相應語句時,C 語言程序中語句末尾的分號是可省略的。Ch shell 會對輸入的C 語言表達式直接進行求值,并將結果顯示于屏幕上。使用Ch,可以隨時看到語句執行后的結果是什么樣子,可以和自己分析得到的和結果相比較,相同則已,不相同查找原因,可以很快的理解一些知識點,對于初學者特容易上手。現舉例說明;在Ch 命令提示符下,鍵入int a=5 回車,然后鍵入a=a+2回車,結果7直接輸出,不用什么其它任何的輸出語句和輸出函數就可以看到結果。如果再一次鍵入int a=5回車,則會有ERROR: identifier 'a' redeclared這樣的錯誤信息,提示我們變量重復定義,從中我們可以看出在C中變量不可以重復定義。還有在Ch命令提示符下,鍵入b=5 回車可以得到ERROR: variable 'b=3' not defined這樣的錯誤信息,可以得出C中變量必須先定義,后使用。在Ch命令提示符下,接著鍵入printf(\"%d\",sizeof(a))而得出結果是4,我們知道在此環境下,int整型數在內存中所占字節數是4……。通過上述些許例子,我們得出:在課堂教學中使用Ch 平臺,使得C課程教學猶如Visual Basic一樣簡單,因為Ch平臺是一個解釋環境,調試運行比它更顯直觀,能夠讓用戶看得見摸得著。具有交互性和解釋性的Ch 平臺使C 語言的命令可以在此環境下交互解釋執行。單個語句鍵入后馬上就可以得到結果,進行驗證,學習單個語句時可以快速理解,可以把C 語言中非常隱性的內在原理展現出來,讓初學者可以看得見,消除抽象的解釋。另外Ch 的函數文件是一種擴展名為.chf 的文件,C程序無需編譯即可直接進行交互式執行。比如,要運行“hello.c”程序,只要在Ch shell 中輸入命令“hello.c”,得到的結果就是“Hello, world”。另外Ch 集成開發環境(Ch Integrated Development Environment,ChIDE)。允許用戶在IDE 中編輯、調試或運行C程序,其用戶界面支持包括中文在內的30 多種語言。ChIDE 中含有現代IDE 中常用的大部分功能。比如,它具有自動語法高亮顯示,可幫助用戶發現程序的一些語法錯誤。用戶可設置斷點,單步運行程序,在程序運行過程中監視變量和表達式值并修改變量值。ChIDE 操作簡便,是專門為教師授課和學生學習而開發的。ChIDE 的特征和布局都是針對那些沒有任何編程經驗的初學者而設置的。如下所示,一個簡單的程序舉例
#include \"stdio.h\"
void main()
{ int i,j ;
for (i = 1;i <= 10;i++)
for(j=1;j<=i;j++)
printf(\" %d \", i+j);
}
在鍵入程序中,各個語句的對齊是ChIDE自動完成的,在運行此程序時,為了弄清楚兩層for循環的執行情況,可以打開調試控制臺窗口,還可以在調試窗口顯示特殊本地變量和所有變量,這樣讓學生對循環的嵌套一目了然,非常容易的講清楚本塊知識點。通過ChIDEC中的指針、結構體、數組、編程邏輯、編程調試等學習難點都一一得到突破,變得簡單容易理解。所以自然而然的就不難教了,學生也就感覺到沒有那么難學了。
在課堂教學中通過使用CH平臺,使學生對C的畏難情緒消失得無影無蹤,即使是英語和數學基礎很差的高職生,也不覺得難學,因為,通過演示,使得C中原本抽象的,內在的原理很直觀的得到詮釋。從而達到了化繁為簡,化難為易的目的,這也正是本人一直在探索和追求的C課程改革的最終目的。從而激發了學生的學習興趣,興趣一旦調動起來,入門就算成功了。后續的學習學生可以自己使用Ch平臺有效自學和課后實踐。
特別值得一提的是,在C程序設計課程以往的教學過程中,教者普遍感到女生在對程序的理解和分析上,似乎沒有男生快,但使用Ch平臺,看不出來這一點,有的時候反倒是女生好一點,因為在高職院校,女生的英語基礎普遍好于男生,Ch平臺大大降低了學生抽象理解能力的要求。所以大家使用起來才不會覺得難。
通過使用Ch平臺對C課程進行教學改革,實效性很強,從07年起,我校計算機專業的學生在省二級考試中通過率是56%,08年是67%,09年春是79%,逐年提高。往年最好的成績也不過是43%。特別值得一提的是,在09年,浙江省ACM程序設計大賽中,我校學生摘得了金獎,這是歷史最好成績。往年我校參加程序設計大賽,最好的成績也就是三等獎,今年能取得這樣好的成績,和我們在教學中使用Ch平臺夯實基礎是分不開的。
從06年起,本人在C課程教學改革中不斷探索,近三年中,通過使用和推廣Ch平臺使得C課程教學變得輕松容易得多了,改變了傳統的抽象的教學模式,讓人耳目一新,取得了一定的好成績,達到了課程改革的目的。
參考文獻:
[1] 吳文虎. 程序設計基礎[M]. 北京:清華大學出版社,2003.
[2] 譚浩強. C程序設計教程[M]. 北京:清清華大學出版社,2006.
[3] 孫紹榮. 教育信息理論[M]. 上海:上海教育出版社,2002.
[4] 譚浩強. C程序設計試題匯編[M]. 北京:清華大學出版社,2006.
[5] 邱力. C語言程序設計[M]. 北京:清華大學出版社,2004.
[6] 周作厚. C程序設計[M]. 北京:中國鐵道出版社等,2003.
[7] 何光明. C語言實用培訓教程[M]. 北京:人民郵電出版社,2002.
[8] 黃逵中. C語言實例教程[M]. 北京:中國電力出版社,2004.
[9] http://www.sciar.edu/美國加州大學.