李卓 趙津燕 李益民
(北華大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,吉林 132021)
C程序設(shè)計(jì)基礎(chǔ)課程是許多工科類普通高校計(jì)算機(jī)和非計(jì)算機(jī)專業(yè)公共基礎(chǔ)必修課,多為大學(xué)一年級新生開設(shè)的首門高級程序設(shè)計(jì)課程。通過這門課的學(xué)習(xí),學(xué)生不僅要掌握C語言本身的基本概念和語法規(guī)則,更要掌握程序設(shè)計(jì)的思想、方法和技能,為后續(xù)課程的學(xué)習(xí)和本專業(yè)應(yīng)用打下較扎實(shí)的理論和實(shí)踐基礎(chǔ)。通過以往的教學(xué)實(shí)踐,我們發(fā)現(xiàn)很多大學(xué)新生認(rèn)為C程序設(shè)計(jì)基礎(chǔ)課程是一門比較難學(xué)好的課程,由于內(nèi)容多、課時(shí)緊、知識與高中相比跨度大,使得一些學(xué)生在學(xué)習(xí)過程中有畏難情緒,學(xué)習(xí)興趣不夠濃厚,往往出現(xiàn)教師教的累,學(xué)生學(xué)不會的現(xiàn)象。所以提高這門課程的教學(xué)質(zhì)量,激發(fā)學(xué)生的學(xué)習(xí)興趣,對于培養(yǎng)學(xué)生程序設(shè)計(jì)能力、靈活的思維方式以及較強(qiáng)的動手能力都是非常重要的。
C程序設(shè)計(jì)基礎(chǔ)是一門理論和實(shí)踐緊密結(jié)合的課程,而實(shí)踐必須要在理論的指導(dǎo)下才能正確進(jìn)行,所以對于理論課教學(xué)內(nèi)容的設(shè)定和調(diào)整是提高教學(xué)質(zhì)量的前提。傳統(tǒng)的教材基本上是以一門語言的自身體系的脈絡(luò)來展開,過于注重語句語法的細(xì)節(jié),沒有把編程解題思路放在主體地位[1],使得部分學(xué)生學(xué)完后有種“只見樹木,不見森林”的感覺,遇到本專業(yè)領(lǐng)域的實(shí)際問題時(shí),不知道如何去分析和解決,學(xué)以致用的能力沒有得到很好地培養(yǎng)。
對于教學(xué)內(nèi)容的改進(jìn)可以從以下兩個(gè)方面來進(jìn)行:其一,內(nèi)容的精簡與整合。具體而言就是對于一些過多過細(xì)的語法點(diǎn)要進(jìn)行精簡,而對于一些前后聯(lián)系比較緊密的內(nèi)容可以不按照教材上的書寫順序來進(jìn)行整合。例如,輸入輸出函數(shù)中對于格式控制符的介紹很詳細(xì)[2],在教學(xué)中,我們可以將一些不常用的格式控制符的使用說明作為精簡的內(nèi)容,學(xué)生在使用時(shí)可以通過查閱資料方式來獲得。又如,還可以將預(yù)處理命令部分作為精簡內(nèi)容,因?yàn)檫@部分內(nèi)容易于理解可以留給學(xué)生進(jìn)行自學(xué),使得學(xué)生在自學(xué)過程中提高了獨(dú)立分析和解決問題的能力。另外,對于指針[3]的學(xué)習(xí)一直是本門課程教學(xué)的重點(diǎn)和難點(diǎn),由于數(shù)組和指針這兩部分的教學(xué)內(nèi)容聯(lián)系緊密,可以將其進(jìn)行整合。例如,可以在一維數(shù)組的講解中引入指針的概念,使得學(xué)生更容易理解什么是指針,從而為進(jìn)一步應(yīng)用指針打下良好的基礎(chǔ)。
其二,內(nèi)容的補(bǔ)充與擴(kuò)展。為了提高學(xué)生的程序設(shè)計(jì)能力,在以C語言本身知識作為教學(xué)內(nèi)容的基礎(chǔ)上,還要補(bǔ)充一些數(shù)學(xué)建模、算法設(shè)計(jì)、程序設(shè)計(jì)風(fēng)格以及軟件工程等方面的知識,使得學(xué)生在學(xué)習(xí)過程中不局限在對于一門語言本身的掌握,而是能從更高角度來認(rèn)識和感受程序設(shè)計(jì)的精妙之處,做到“既見樹木,亦見森林”。另外,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,還可以指導(dǎo)學(xué)生充分利用網(wǎng)絡(luò)來獲取書本之外的寶貴學(xué)習(xí)資源,例如,一些優(yōu)秀的程序設(shè)計(jì)論壇,免費(fèi)的視頻學(xué)習(xí)網(wǎng)站等,從而擴(kuò)展學(xué)生的視野,激發(fā)學(xué)生主動學(xué)習(xí)的內(nèi)在動力。
傳統(tǒng)的“填鴨式”教學(xué)方法存在的弊端已經(jīng)越來越明顯,為了更好地實(shí)現(xiàn)教學(xué)內(nèi)容的組織思路[4],應(yīng)該采用能夠激發(fā)學(xué)生學(xué)習(xí)興趣和主觀能動性的教學(xué)方法,對傳統(tǒng)教學(xué)方法進(jìn)行改進(jìn),具體的改進(jìn)方式主要有以下兩方面:其一,基于問題的啟發(fā)式教學(xué)。也就是說在教學(xué)中,要圍繞所要解決的問題,以學(xué)生為主體,教師為“協(xié)作者”逐步引導(dǎo)學(xué)生掌握解決問題的方式方法。例如,在講解“冒泡排序”算法時(shí),教師可以在介紹該排序算法思想的基礎(chǔ)上,以一組具體的數(shù)據(jù)為例,引導(dǎo)學(xué)生來模擬計(jì)算機(jī)完成排序的過程,并啟發(fā)學(xué)生如何從程序設(shè)計(jì)的角度來實(shí)現(xiàn)模擬的排序過程,進(jìn)而由具體數(shù)據(jù)排序過程擴(kuò)展到對任何N個(gè)數(shù)據(jù)進(jìn)行冒泡排序規(guī)律的尋找,最終得到整個(gè)排序算法的代碼框架。在這一過程中,將學(xué)生作為解決問題的主體,教師作為輔助者,在一個(gè)個(gè)問題獲得解決的過程中,可使學(xué)生獲得學(xué)習(xí)的成就感,從而提高學(xué)習(xí)興趣。
其二:適當(dāng)進(jìn)行角色互換。在課時(shí)允許的情況下,可以事先選擇一些內(nèi)容,讓學(xué)生自學(xué),然后學(xué)生采取自愿原則作為教師講解這部分內(nèi)容,而教師則扮演學(xué)生角色。待學(xué)生講解完畢后,師生一起以討論方式對該生所講解的內(nèi)容進(jìn)行點(diǎn)評和補(bǔ)充。例如:在學(xué)生學(xué)習(xí)完一維數(shù)組的基礎(chǔ)上,就可以選擇二維數(shù)組作為教學(xué)內(nèi)容進(jìn)行角色互換,在這一過程中不僅可以提高學(xué)生的自學(xué)能力和表達(dá)能力,激發(fā)學(xué)習(xí)的主觀能動性,而且在角色互換的過程中還能讓學(xué)生體會到教師備課的辛勞,從而在學(xué)習(xí)過程中能更尊重教師的勞動成果。另外,教師在角色互換過程中,還可以從學(xué)生身上獲得一些教學(xué)啟示,從而達(dá)到教學(xué)相長的目的。
C程序設(shè)計(jì)基礎(chǔ)課程有其自身的特點(diǎn),學(xué)生聽不會,也看不會,只能練會[5],為了鞏固和加強(qiáng)理論課教學(xué)內(nèi)容,提高學(xué)生實(shí)踐技能,培養(yǎng)工程意識和創(chuàng)新能力,必須加強(qiáng)實(shí)踐訓(xùn)練,使學(xué)生在大量的練習(xí)中掌握知識,提高程序設(shè)計(jì)能力。
為了真正提高學(xué)生的程序設(shè)計(jì)能力,我們對實(shí)踐課教學(xué)主要從以下兩方面進(jìn)行改進(jìn):其一,實(shí)驗(yàn)課的實(shí)驗(yàn)題目分梯度進(jìn)行設(shè)置。傳統(tǒng)的實(shí)驗(yàn)題目對所有學(xué)生都是統(tǒng)一設(shè)定的,這樣往往就會出現(xiàn)一些學(xué)生“吃不了”,而另一些學(xué)生“吃不飽”的現(xiàn)象。為了滿足不同程度學(xué)生的學(xué)習(xí)需要,我們將實(shí)驗(yàn)題目劃分為三個(gè)梯度,分別為:驗(yàn)證型題目、半設(shè)計(jì)型題目和設(shè)計(jì)型題目。其中,驗(yàn)證型題目不僅給出題目描述而且還給出了程序代碼,通過這類題目可以培養(yǎng)學(xué)生讀程序和調(diào)試程序的基本能力;半設(shè)計(jì)型題目給出了題目描述和至少一種解決問題的算法描述,通過這類題目可以培養(yǎng)學(xué)生部程序設(shè)計(jì)和編寫能力;設(shè)計(jì)型題目只給出題目描述,要求學(xué)生自己建立解決問題的數(shù)學(xué)模型并最終通過程序來實(shí)現(xiàn),通過這類題目可以培養(yǎng)學(xué)生算法設(shè)計(jì)、程序設(shè)計(jì)和程序調(diào)試等多方面綜合實(shí)踐能力。
其二,以項(xiàng)目為驅(qū)動,分小組進(jìn)行課程設(shè)計(jì)。實(shí)踐課教學(xué)的改進(jìn)除了常規(guī)實(shí)驗(yàn)課改進(jìn)之外,還要在學(xué)生基本完成C程序設(shè)計(jì)基礎(chǔ)課程學(xué)習(xí)之后,分出兩個(gè)星期的時(shí)間進(jìn)行課程設(shè)計(jì)。學(xué)生自由組成課程設(shè)計(jì)軟件開發(fā)小組(即開發(fā)團(tuán)隊(duì)),每組為3人左右,并選舉1人任組長。每個(gè)軟件開發(fā)小組可以選擇教師擬定的課程設(shè)計(jì)題目中的一個(gè)課題或自選題目進(jìn)行小型項(xiàng)目的開發(fā),每組獨(dú)立完成設(shè)計(jì)任務(wù)。課程設(shè)計(jì)按小組驗(yàn)收,要求學(xué)生演示設(shè)計(jì)的程序,講解設(shè)計(jì)思路、方法、解決的主要問題,教師根據(jù)具體情況向每個(gè)學(xué)生提問2至3個(gè)問題。另外,每位同學(xué)在課程設(shè)計(jì)驗(yàn)收結(jié)束后要上交一份內(nèi)容充實(shí)、寫作規(guī)范的設(shè)計(jì)報(bào)告。經(jīng)過這樣的實(shí)踐訓(xùn)練,不僅培養(yǎng)了學(xué)生綜合運(yùn)用所學(xué)知識獨(dú)立完成課題的能力,而且還培養(yǎng)了他們的團(tuán)隊(duì)合作精神,為今后在學(xué)習(xí)過程中工程意識和創(chuàng)新能力的進(jìn)一步提高打下了扎實(shí)的基礎(chǔ)。
現(xiàn)在還有許多高校的C程序設(shè)計(jì)基礎(chǔ)課程教學(xué)評價(jià)方式以筆試為主,這樣就會導(dǎo)致很多學(xué)生對于上機(jī)實(shí)踐不夠重視,出現(xiàn)“高分低能”的現(xiàn)象。為了提高學(xué)生的實(shí)踐能力,在日后激烈的就業(yè)競爭中能夠脫穎而出,我們需要對本門課程的考核方式進(jìn)行改進(jìn):其一,加大上機(jī)實(shí)踐考核比例。具體而言,就是將期末筆試成績與上機(jī)考試成績的考核比例設(shè)定為1:1,其中上機(jī)考試成績又由平時(shí)實(shí)驗(yàn)課成績和單獨(dú)的上機(jī)考核成績兩部分組成,如果單獨(dú)的上機(jī)考核學(xué)生沒有通過,則本門課程成績直接計(jì)為不及格。其二,調(diào)整上機(jī)實(shí)踐考核的時(shí)間。由于學(xué)生期末考試復(fù)習(xí)時(shí)間比較緊張,所以可以考慮將單獨(dú)的上機(jī)考核時(shí)間安排在第二學(xué)期開學(xué)的第一周進(jìn)行,這樣既可以緩解學(xué)生期末考試的壓力,另外一些在學(xué)習(xí)過程中實(shí)踐能力較弱的學(xué)生還可以利用假期時(shí)間進(jìn)行充電,最終達(dá)到提高學(xué)生實(shí)際動手能力,多編程序,編寫好程序的目的。其三,筆試采用“教考分離”方式。也就是說任課教師不能作為本門課程期末試題的命題教師,考試題目由試題庫隨機(jī)抽取產(chǎn)生,從而可以更客觀地考核學(xué)生對課程的掌握程度。
如何提高C程序設(shè)計(jì)基礎(chǔ)課程的教學(xué)質(zhì)量,切實(shí)培養(yǎng)學(xué)生的程序設(shè)計(jì)能力,是一個(gè)非常值得去探索的課題。筆者從理論教學(xué)、實(shí)踐教學(xué)和考試評價(jià)方式三個(gè)方面對C程序設(shè)計(jì)基礎(chǔ)課程教學(xué)改革提出了一些改革的思路,在實(shí)際教學(xué)中也收到了較好的教學(xué)效果。隨著社會對高等教育人才需求的改變,我們也要與時(shí)俱進(jìn),在教學(xué)中不斷探索和實(shí)踐,使得培養(yǎng)出來的學(xué)生能夠?qū)W有所長,學(xué)以致用,成為適應(yīng)社會發(fā)展需求的合格人才。
[1]李靜雯.關(guān)于提高C語言教學(xué)質(zhì)量的探討[J].電腦知識與技術(shù),2007(04):1149-1150.
[2]黃群.C語言程序設(shè)計(jì)課程教學(xué)設(shè)計(jì)探討[J].計(jì)算機(jī)教育,2010(05):78-81.
[3]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.
[4]何欽銘,顏暉.“C程序設(shè)計(jì)基礎(chǔ)及實(shí)驗(yàn)”國家精品課程的建設(shè)經(jīng)驗(yàn)[J].計(jì)算機(jī)教育,2008(19):28-31.
[5]吳文虎.精心鑄精品理念須先行-談“程序設(shè)計(jì)基礎(chǔ)”課程改革[J].計(jì)算機(jī)教育,2008(13):46-49.