彭 莉
(武漢工程職業(yè)技術(shù)學院 湖北 武漢:430080)
《C語言程序設(shè)計》是許多院校計算機應(yīng)用、計算機網(wǎng)絡(luò)專業(yè)和應(yīng)用電子、電子信息、電氣自動化等非計算機專業(yè)開設(shè)的一門公共專業(yè)基礎(chǔ)課,也是全國計算機等級考試(二級)的重要考試內(nèi)容。由于一般針對計算機基礎(chǔ)知識參差不齊的工科大一新生開設(shè),該課程的教學過多強調(diào)C語言的語法、詞法等理論知識,在編程方法、動手實踐等方面偏弱。很多學生反映在課堂上聽得懂,但在實際編程時卻無從下手,既達不到該課程的教學目標要求,也難以通過全國計算機等級考試。
(1)學生計算機基礎(chǔ)參差不齊。大一新生來自全國各地,由于各地區(qū)經(jīng)濟發(fā)展水平的程度不同,部分地區(qū)高中階段已經(jīng)開始了計算機教學,而有的地區(qū)卻是零接觸,從而造成學生計算機基礎(chǔ)水平差異較大,很難因材施教?;A(chǔ)好的學生覺得教學進度較慢,而基礎(chǔ)差的學生則感覺跟不上,學習困難,久而久之,產(chǎn)生畏難情緒,甚至放棄。
(2)語法規(guī)則多,學習枯燥。該課程理論性強,知識點零散,語法規(guī)則繁多,在學習的過程中有些規(guī)則需要記憶。而學生剛從高中走進大學,對社團活動、校園生活充滿了好奇,課下花在學習上的時間較少,課堂所學知識得不到消化,大部分同學感覺C語言學習較難。
(3)動手實踐機會少。該課程一般開設(shè)在第一學期,大部分學生剛進大學,并沒有購置電腦,想學好編程,僅僅依靠平時課堂的上機實踐時間是遠遠不夠的。
對原有偏重理論學習的教學大綱進行修改,側(cè)重實踐動手能力的培養(yǎng)。新的大綱教學目標如下:通過本課程的學習,使學生初步掌握C語言程序設(shè)計的基本知識、語法規(guī)則、程序的基本結(jié)構(gòu)、程序設(shè)計的基本思想、簡單算法,能夠使用C語言進行程序設(shè)計并且在C語言環(huán)境下編輯、調(diào)試程序的能力。
所謂模塊化是指在解決一個復雜問題時,自頂向下逐層把系統(tǒng)劃分成若干模塊的過程。計算機及非計算機專業(yè)的教學目標不同,可有針對性的分層次模塊化教學。重新整合教學內(nèi)容,將課程內(nèi)容分解為若干個學習模塊,如表1所示。
將整個C語言教學內(nèi)容分為三個模塊:基礎(chǔ)篇、提高篇和綜合應(yīng)用。不同專業(yè)選擇不同的模塊學習,例如對于非計算機專業(yè)可以選擇模塊一基礎(chǔ)篇進行學習,對于計算機相關(guān)專業(yè)可以選擇學習模塊一和模塊二,綜合應(yīng)用模塊三可以要求所有專業(yè)進行實踐。
表1 學習模塊表
任務(wù)驅(qū)動教學法將所要學習的新知識隱含在一項或幾項任務(wù)中,讓學生通過對任務(wù)的分析、討論,明確涉及的知識。選取的任務(wù)以教學大綱為依據(jù),既要包含基本的教學知識點,又要考慮學生的實際學習基礎(chǔ)。另外,任務(wù)可大可小,平時的教學中采用小任務(wù),小任務(wù)中涵蓋大綱中的各知識點,學期末可以布置大的任務(wù),例如可要求學生在期末完成一個綜合項目—學生成績管理系統(tǒng)的實現(xiàn),采用小組分工合作的方式,教師適當指導,培養(yǎng)學生的創(chuàng)新思維能力和解決問題的能力。
具體由教師先設(shè)計好任務(wù),課程上創(chuàng)設(shè)情景引出任務(wù),接著學生完成任務(wù),教師在此過程中進行輔導和幫助,最后進行知識的總結(jié)。下面以單分支選擇結(jié)構(gòu)為例,整個教學的實施過程如下:
(1)創(chuàng)設(shè)情境,導出任務(wù)。為什么要用選擇結(jié)構(gòu)?生活中,如果明天天氣好,我們就去郊游;如果考試不及格,要補考;這樣的問題如何解決?引出本節(jié)課學習內(nèi)容,即在C語言中可以使用if語句。
(2)任務(wù)1:比較兩個數(shù)的大小,按照從小到大的順序輸出。學生經(jīng)過分析,兩個數(shù)比較大小必須借助第三個變量。主要代碼如下:
if(a>b)
{
t=a;
a=b;
b=t;
}
(3)任務(wù)2:比較三個數(shù)的大小,要求按照從小到大的順序輸出。學生經(jīng)過分析討論得出三個數(shù)比較大小需要比較三次:if a>b,將a和b交換;if a>c,將a和c交換;if b>c,將b和c交換;主要代碼如下:
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
(4)任務(wù)3:完成任務(wù)1和任務(wù)2后,讓同學們思考,若三個數(shù)要求按照從大到小的順序輸出,上述程序如何改動?通過任務(wù)由易到難,循序漸進,一步一步拓展學生的思維,讓他們能夠獨立思考解決問題。
(5)知識總結(jié)。由以上三個小任務(wù),總結(jié)單分支結(jié)構(gòu)的語法及編寫程序時的注意事項,并引出下一個知識點雙分支結(jié)構(gòu)的學習。
開發(fā)一部適用于高職院校的教材,綜合考慮高職學生的特點及學習基礎(chǔ),多選用一些與實際生活接近的案例,激發(fā)學生的求知欲,讓學生融入到有意義的任務(wù)完成過程中,有目標的自主學習,從而實現(xiàn)將理論與實踐相結(jié)合,達到學以致用的目的。目前該教材已正式出版,書名《C語言程序設(shè)計教程》,如圖1所示。
圖1 C語言教材
該書以Visual C++ 6.0為開發(fā)環(huán)境,章節(jié)介紹由淺入深、循序漸進,案例實用性強、程序分析詳細并配有注釋,方便快速掌握編程技巧。全書分為十一章,全面介紹了C語言概述,數(shù)據(jù)類型、運算符和表達式,順序結(jié)構(gòu)程序設(shè)計,選擇結(jié)構(gòu)程序設(shè)計,循環(huán)結(jié)構(gòu)程序設(shè)計,數(shù)組,函數(shù),指針,結(jié)構(gòu)體、共用體和枚舉類型,文件,綜合項目—學生成績管理系統(tǒng)的實現(xiàn)等。每個章節(jié)都安排有課后習題,其中附有全國計算機等級考試C語言的部分真題,以強化技能取證能力。最后通過實際開發(fā)一個完整的項目,融會貫通各章節(jié)知識點,檢驗和提高讀者解決實際問題的能力。
打破傳統(tǒng)卷面考試,如與全國計算機等級取證相結(jié)合,對于通過全國計算機二級C考試的同學可以該課程免考或?qū)W期末完成綜合課程設(shè)計,自己動手開發(fā)一個小型的應(yīng)用系統(tǒng)等方式,既可以讓學生掌握程序設(shè)計的基本知識,又能夠取得相應(yīng)的等級考試證書,培養(yǎng)良好的職業(yè)素養(yǎng)及為將來就業(yè)打好基礎(chǔ)。
實踐證明,在實際教改中,效果良好。經(jīng)過以上改革措施,學生的編程能力得到了明顯的提升,大部分同學能夠自己動手開發(fā)一些小程序,有些同學甚至對C編程表現(xiàn)了明顯的興趣,下課時間經(jīng)常追著老師提問,這是在以往教學中很少遇到的。如何提高公共C語言課程的教學效果將在以后進一步深入研究和探索。
[1]劉華東.C語言程序設(shè)計課程教學改革與實踐[J].軟件導刊·教育技術(shù),2017,16(1):12-13.
[2]胡秋霞,田杰.基于翻轉(zhuǎn)課堂的“C語言程序設(shè)計”混合式教學方法探究[J].信息記錄材料,2017,18(3):109-111.
[3]彭莉.基于C語言的學生信息管理系統(tǒng)的實現(xiàn)[J].武漢工程職業(yè)技術(shù)學院學報,2017,(4):100-102.
[4]劉秀麗.非計算機專業(yè)《C語言程序設(shè)計》課程教學的分析與研究[J].信息系統(tǒng)工程,2017,(4):170.
[5]祝種谷.項目化教學在高職《C語言程序設(shè)計》課程中的應(yīng)用[J].科技信息,2013,(11):289.