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