龐曉鳳 駱無窮 劉賢峰
摘 要:C語言是目前國內(nèi)高校理工科專業(yè)開設(shè)的計算機(jī)基礎(chǔ)課程,目的是培養(yǎng)學(xué)生用計算機(jī)解決問題的能力,為后續(xù)專業(yè)課程的學(xué)習(xí)及其它計算機(jī)語言的學(xué)習(xí)打下基礎(chǔ)。為了有效提高該課程的教學(xué)質(zhì)量,本文針對《C語言》課程傳統(tǒng)教學(xué)存在的問題,提出了以學(xué)生為主,以案例、任務(wù)驅(qū)動為導(dǎo)向的教學(xué)方法。
關(guān)鍵詞:基礎(chǔ)課程;傳統(tǒng)教學(xué);計算機(jī)語言;學(xué)生為主
中圖分類號:G642 文獻(xiàn)標(biāo)志碼:A 文章編號:2096-000X(2017)07-0118-02
Abstract: As one of the core curriculums in Computation Science, C Language aims to help students in solving problems with computer as well as the way of studying other programming languages. In this paper, "student-center" and project-driven tuition models were proposed according to the lacks of traditional tuition model.
Keywords: core curriculums; traditional tuition model; programming languages; student-center
一、概述
C語言是一種結(jié)構(gòu)化的程序設(shè)計語言,具有運算符豐富、使用簡單靈活、目標(biāo)代碼執(zhí)行效率高、可移植性好、能針對硬件編程等特點,在國內(nèi)外得到廣泛應(yīng)用。目前各高校理工科專業(yè)都將該課程作為一門面向大一新生的通識課程,在專業(yè)建設(shè)和課程體系中具有重要的地位和作用。通過該課程的學(xué)習(xí),訓(xùn)練學(xué)生程序設(shè)計的基本技能,使學(xué)生養(yǎng)成良好的程序設(shè)計風(fēng)格,培養(yǎng)學(xué)生的邏輯思維和創(chuàng)新實踐的能力,為后續(xù)專業(yè)課程的學(xué)習(xí)奠定良好的基礎(chǔ)。
由于大一新生習(xí)慣了中學(xué)的強(qiáng)化應(yīng)試模式的教學(xué),大多數(shù)學(xué)生學(xué)習(xí)缺乏自主性,應(yīng)變能力較差。絕大部分學(xué)生中學(xué)階段沒有學(xué)習(xí)過計算機(jī)相關(guān)知識,C語言作為計算機(jī)語言的入門課,學(xué)生感到難度較大。加之該課程授課老師的教學(xué)多數(shù)采取以講語法和程序結(jié)構(gòu)為主,通過實例講解算法和程序設(shè)計方法。使學(xué)生在學(xué)習(xí)的過程中感到該課程知識點繁雜、難記,動手寫程序困難,學(xué)習(xí)積極性不高,很難達(dá)到預(yù)期目標(biāo)。
本文針對目前該課程教學(xué)存在的問題,本著以學(xué)生為本的原則,根據(jù)學(xué)生的實際情況對課程的課堂教學(xué)、實驗教學(xué)及考核方式提出了改進(jìn)方法,以提升學(xué)生的學(xué)習(xí)興趣,提高學(xué)生分析問題和解決問題的能力。并結(jié)合目前先進(jìn)的教學(xué)理念和教學(xué)模式對該課程教學(xué)提出了新的教學(xué)方式。
二、改革傳統(tǒng)教學(xué)模式,提倡“學(xué)生為中心”的學(xué)習(xí)模式
目前大多數(shù)高校在C語言教學(xué)中仍是以教師課堂上講授為主,學(xué)生被動接受。教師按教材介紹基本語法規(guī)則,通過教材上的例子講語法的應(yīng)用。教材上的例題多數(shù)是數(shù)學(xué)方面的問題,學(xué)生聽不懂,感覺課程很難、很抽象、很枯燥,難以按計算機(jī)思維方式去解決問題,造成學(xué)生的學(xué)習(xí)積極性不高[1]。
我校C語言課程教材選用清華大學(xué)《C程序設(shè)計》[2],課程學(xué)時數(shù)少(理論20學(xué)時、實驗12學(xué)時)、內(nèi)容多,為保證能保質(zhì)保量順利完成教學(xué)任務(wù),我們采用課堂教學(xué)+自學(xué)+工程實踐的方式。
由于課時數(shù)限制,教材內(nèi)容不可能在課堂全部講解,我們選擇了部分內(nèi)容讓學(xué)生自學(xué)。為了檢測自學(xué)效果,要求學(xué)生寫自學(xué)報告。例如,開課前(我校新生入學(xué)前兩周軍訓(xùn),第三周開始行課),要求新生先查詢有關(guān)資料,了解C語言的特點、作用及應(yīng)用領(lǐng)域,了解課程的目的及重要性,寫一份學(xué)習(xí)報告。預(yù)習(xí)教材前兩章,完成自學(xué)學(xué)習(xí)報告。通過這種方式的實踐,可以培養(yǎng)學(xué)生的自學(xué)能力,使學(xué)生能盡快適應(yīng)大學(xué)的學(xué)習(xí)方式。
第一次課的引導(dǎo)教學(xué)非常重要,通過PPT或視頻演示的方式向?qū)W生展示計算機(jī)的工作原理及軟件開發(fā)的過程,讓學(xué)生明白軟件開發(fā)過程中,算法和程序設(shè)計是軟件開發(fā)人員的基本功,只有掌握了算法的設(shè)計并學(xué)會某種程序設(shè)計語言,才能進(jìn)行程序設(shè)計[3]。非計算機(jī)專業(yè)的學(xué)生必須要掌握一種計算機(jī)語言作為今后專業(yè)應(yīng)用的工具。我們選擇學(xué)習(xí)C語言,是由于C作為面向過程的程序設(shè)計語言,適合于解決小型程序的編程及底層的設(shè)備驅(qū)動程序和內(nèi)嵌應(yīng)用程序設(shè)計,其應(yīng)用面很廣。
在課堂教學(xué)中將傳統(tǒng)板書與多媒體課件相結(jié)合,課程中涉及的基本概念及各章的知識要點采用多媒體課件教學(xué),課堂上要使學(xué)生理解各知識要點及基本概念,可通過傳統(tǒng)板書舉例說明。教學(xué)中關(guān)于知識點的應(yīng)用,采取案例分析及任務(wù)驅(qū)動的方式組織教學(xué),由淺入深,逐步深入[4]。
例如,講循環(huán)結(jié)構(gòu)的應(yīng)用時,先提出求1~5累加的問題,告訴學(xué)生計算機(jī)做重復(fù)性的工作效率最高,引導(dǎo)學(xué)生分析如何讓計算機(jī)反復(fù)執(zhí)行某些操作步驟來模擬人工進(jìn)行累加運算,要求學(xué)生先理清計算機(jī)處理該問題需要執(zhí)行的步驟,即計算機(jī)算法,再考慮如何用C的三種不同的循環(huán)控制語句去實現(xiàn),并對這三種循環(huán)控制語句進(jìn)行比較。如此,采用先提出問題,再引入解決問題的語句,講語句的語法規(guī)則和應(yīng)用,學(xué)生更容易理解和掌握相關(guān)的語法知識。
在這個過程中,老師的主要作用是引導(dǎo)和解惑,鼓勵學(xué)生積極思考,嘗試各種不同的編程思路。并對學(xué)生的主動性、積極性及創(chuàng)新思維即時地給予反饋及肯定[5],在此問題基礎(chǔ)上,再進(jìn)一步提出求鍵盤輸入的N個數(shù)累加的問題,求N個數(shù)中最大值的問題等等。
老師提出問題,讓學(xué)生主動參與課堂討論,使學(xué)生由被動聽課變?yōu)橹鲃訁⑴c,活躍了課堂氣氛,讓學(xué)生在做中學(xué)、快樂學(xué)習(xí)。經(jīng)過實踐,采取這種教學(xué)方式,能學(xué)生能盡快地掌握各知識點,有效地提高學(xué)生對該課程的學(xué)習(xí)興趣,增強(qiáng)學(xué)生學(xué)習(xí)的自信心。
三、改革教學(xué)模式,以工程實踐為主
C語言是一門實踐性很強(qiáng)的課程,需要學(xué)生有足夠的時間上機(jī)練習(xí)。但由于現(xiàn)在的教學(xué)學(xué)時分配通常是理論2/3,實驗1/3,實驗環(huán)節(jié)分配的學(xué)時數(shù)不多。實驗課主要是在教師指導(dǎo)下學(xué)生自已上機(jī)練習(xí),多數(shù)學(xué)生在遇到問題時(很多是語法上的問題),沒有想自已通過查書本上的知識解決,而是急于詢求老師的幫助,沒有認(rèn)真對待上機(jī)實習(xí),只求程序通過而不思考和分析出錯的原因。上機(jī)實習(xí)內(nèi)容大多是驗證性實驗和簡單的編程。
為解決傳統(tǒng)實驗教學(xué)所存在的問題,幫助學(xué)生將課堂上所學(xué)的知識學(xué)以致用,能自已獨立分析問題、編寫并調(diào)試程序,提高學(xué)生的編程和創(chuàng)新能力。我們將實驗課內(nèi)容規(guī)劃為:驗證型實驗、設(shè)計型實驗及課程設(shè)計三部分。
驗證型實驗,通常是給出程序,讓學(xué)生運行程序,觀察程序運行結(jié)果。實驗過程中對程序結(jié)果進(jìn)行分析,主要目的是讓學(xué)生通過實驗掌握編譯軟件的基用使用方法及對輸入/輸出函數(shù)格式的理解。
設(shè)計型實驗,一般是針對某個版塊的內(nèi)容(如:分支與循環(huán)、數(shù)組、函數(shù)等)布置一些題目,讓學(xué)生先將程序?qū)懺谧鳂I(yè)本上交任課教師查閱,然后再上機(jī)調(diào)試。學(xué)生通過設(shè)計型實驗,掌握各控制語句的用法,學(xué)會分析程序和調(diào)試程序,提高編程能力。驗證型和設(shè)計型實驗在課程計劃的實驗學(xué)時內(nèi)完成,實驗完后要有書面的實驗報告。
為提高學(xué)生綜合應(yīng)用所學(xué)知識的能力,在課外安排了課程設(shè)計任務(wù)。給學(xué)生布置幾個應(yīng)用課題,讓學(xué)生分組(一般是3-5人)選題合作完成,要求學(xué)生按軟件開發(fā)的步驟完成課題設(shè)計工作,最后提交課程設(shè)計報告及調(diào)試通過的程序清單。通過課程設(shè)計培養(yǎng)學(xué)生綜合應(yīng)用語言的能力和綜合分析能力,提高編程水平。讓學(xué)生分組設(shè)計,目的是培養(yǎng)學(xué)生相互合作、協(xié)同工作的團(tuán)隊合作意識。
經(jīng)過實踐證明,采用以工程實踐為主的實驗教學(xué)模式,能夠使學(xué)生理論與實踐相結(jié)合,更深入地理解理論課所學(xué)的各知識點,有效地提高了學(xué)生編程能力及綜合分析問題和解決問題的能力。
四、改革考核模式,進(jìn)行多樣化、多角度考核
由于絕大部分學(xué)生以前未接觸過計算機(jī)語言,感覺這門課很抽象、難以理解。剛開始還感興趣,隨著課程內(nèi)容的深入,部分學(xué)生跟不上教學(xué)進(jìn)度,對該課程的學(xué)習(xí)產(chǎn)生畏難情緒。也有學(xué)生對C語言課程有誤解,認(rèn)為C語言是面向過程的程序設(shè)計語言,已不適應(yīng)現(xiàn)在社會的需要,是非主流的程序設(shè)計語言。由于認(rèn)識上的誤區(qū),使得學(xué)生在心理上抗拒該課程的學(xué)習(xí),缺乏學(xué)習(xí)主動力[6]。
課程考核,以前是平時成績+實驗成績+期末考試成績決定課程成績,這種考核方式使許多同學(xué)不注重學(xué)習(xí)過程,不認(rèn)真閱讀教材,考試前臨時報佛腳,刷幾套往幾屆的考題,就能應(yīng)付期末考試。而平時學(xué)習(xí)很認(rèn)真的學(xué)生因為期末考試的粗心而不能取得好的成績。很顯然,這種考核方式不能全面真實地考評學(xué)生的學(xué)習(xí)效果。
為了全面真實地反映學(xué)生的學(xué)習(xí)情況,幫助學(xué)生扎實掌握課程內(nèi)容、注重課程學(xué)習(xí)的過程。將課程考核方式改為平時成績(10%)+平時測驗(20%)+實驗成績(10%)+課程設(shè)計(10%)+期末成績(50%)。平時成績由學(xué)生平時作業(yè)完成的情況和自學(xué)報告質(zhì)量評定;平時測驗分兩個階段進(jìn)行,由課程組統(tǒng)一安排出題,每次測驗占10%;實驗成績根據(jù)學(xué)生實驗過程及實驗報告質(zhì)量評定;期末考試主要考查學(xué)生分析程序和編寫程序的能力。
五、結(jié)束語
C語言課程是一門理論與實踐相合的課程,如何更有效地將兩者融合,進(jìn)一步提高教學(xué)質(zhì)量。需要我們在教學(xué)的過程中嚴(yán)格合理地組織好教與學(xué),以學(xué)生為主體,讓學(xué)生參與教學(xué),提高學(xué)生的學(xué)習(xí)興趣。
本文在該課程的教學(xué)改革方面只是做了部分改進(jìn),在踐行的過程中取得了一些成效。對于該課程的改革,還需要我們不斷地努力和探索。今后我們打算為該課程引入MOOC平臺,進(jìn)一步做到因材施教,為每個學(xué)生打造量身定做的學(xué)習(xí)計劃,以達(dá)到理想的教學(xué)效果和教學(xué)目標(biāo)。
參考文獻(xiàn)
[1]張續(xù)亮.C語言程序設(shè)計教學(xué)方法研究[J].中國科技期刊教育數(shù)據(jù)庫教育,2015,46.
[2]譚浩強(qiáng).C程序設(shè)計(第四版)[M].
[3]張子振,畢殿杰.C語言程序設(shè)計課程教學(xué)方法研究[J].福建電腦,2015,12.
[4]龐潤芳,鄭坤燦.高等院校C語言課程教學(xué)改革探析[J].中國輕工教育,2015,6.
[5]朱思瑾,徐軍.試探C語言程序設(shè)計課程教學(xué)優(yōu)化[J].電腦編程技巧與維護(hù),2015,20.
[6]李順勤,何驕.基于“C語言程序設(shè)計”課程“三改”的探討[J].高教學(xué)刊,2015,24.
[7]唐曉,李強(qiáng).基于MOOC平臺的C語言教學(xué)模式研究[J].空軍預(yù)警學(xué)院學(xué)報,2015,6.