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