徐 輝孫 俠
(1.安徽理工大學(xué)計(jì)算科學(xué)與工程學(xué)院 安徽 淮南 232001;2.安徽理工大學(xué)理學(xué)院 安徽 淮南 232001)
計(jì)算機(jī)編程語(yǔ)言層出不窮,多如牛毛,每種編程語(yǔ)言都有其特點(diǎn),有其適用的場(chǎng)合。隨著C++和C#的使用,C語(yǔ)言的應(yīng)用范圍被壓縮了。但是必須看到,在控制領(lǐng)域,C語(yǔ)言因其“半高級(jí)語(yǔ)言”的優(yōu)勢(shì),仍然在普遍使用[1,2]。在單片機(jī)、嵌入式系統(tǒng)中廣泛使用,難以替代。著名的嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II除了極少的和微處理器硬件交互的代碼以外,其余全部用標(biāo)準(zhǔn)C編寫[3]。因此,C語(yǔ)言的學(xué)習(xí)仍然是重要的。大部分高校都將C語(yǔ)言程序設(shè)計(jì)作為必修課,這里我們針對(duì)C語(yǔ)言的學(xué)習(xí)做一個(gè)探討。
程序設(shè)計(jì)課程最忌的是照本宣科,只將語(yǔ)法。目前,多媒體教學(xué)在各類高校已經(jīng)普及,上課時(shí)候可以直觀的將要教授的內(nèi)容展示給學(xué)生,并通過(guò)一系列聲音、圖形、圖像的方式讓原本枯燥的課堂教學(xué)變得活躍,調(diào)動(dòng)學(xué)生積極性。但與此同時(shí),有部分教師的課堂教學(xué)卻變的古板了,甚至有“照ppt宣科”的情況出現(xiàn)。沒(méi)有實(shí)例化的教學(xué)讓課堂從活躍變得沉寂。因此,在C語(yǔ)言教學(xué)中,要充分發(fā)揮現(xiàn)代教學(xué)工具的作用,提高教學(xué)效率。可以在理論課教學(xué)中添加一些類比、對(duì)比的例子。比如,對(duì)于“循環(huán)”這一部分的教學(xué)。C語(yǔ)言有三種循環(huán)語(yǔ)句:for語(yǔ)句、while語(yǔ)句和do While語(yǔ)句。統(tǒng)一的是都需要循環(huán)控制變量,但每一種情況下,循環(huán)控制變量的變化確實(shí)不一樣的。for語(yǔ)句的循環(huán)控制變量可以指定步長(zhǎng)后自動(dòng)變化,但另外兩種語(yǔ)句卻需要顯式指定。無(wú)論如何,do while語(yǔ)句循環(huán)體都會(huì)執(zhí)行一次,但另外兩種情況則可能一次都不執(zhí)行。這些相同之處和不同之處,通過(guò)比較的方式給出后,學(xué)生就容易掌握一些。因此,教師需要提煉理論教學(xué)中的知識(shí)點(diǎn)傳授給學(xué)生。
對(duì)于任何一門工科課程,實(shí)驗(yàn)都是必不可少的重要環(huán)節(jié),在某些時(shí)候重要性甚至不亞于理論教學(xué)。對(duì)于教師尤其是教學(xué)經(jīng)驗(yàn)豐富的教師來(lái)說(shuō),可能在實(shí)驗(yàn)中極少出現(xiàn)被難住的情況。這樣容易造成給學(xué)生丟幾個(gè)實(shí)驗(yàn),讓他們?nèi)プ龊昧耍袉?wèn)題問(wèn)我。但是,對(duì)于層次不齊的學(xué)生來(lái)說(shuō),這樣是難以達(dá)到理想效果的。精挑細(xì)選的實(shí)驗(yàn)可以讓學(xué)生自覺(jué)自動(dòng)的完成從而掌握理論教學(xué)的重點(diǎn)和難點(diǎn)。在實(shí)驗(yàn)教學(xué)中,有教師有意識(shí)的將極易出錯(cuò)的知識(shí)點(diǎn)放在同一個(gè)實(shí)驗(yàn)或者同一堂課的不同實(shí)驗(yàn)中,這樣,發(fā)現(xiàn)問(wèn)題后學(xué)生會(huì)有意思的做比較,有利于問(wèn)題的解決并避免再出現(xiàn)相同的錯(cuò)誤。這種“陷阱式”的實(shí)驗(yàn)教學(xué)取得了很好的效果,值得提倡[4]。
實(shí)驗(yàn)教學(xué)的另外一個(gè)方面是,教師要有意識(shí)的將后續(xù)課程中可能出現(xiàn)的問(wèn)題在本課程的實(shí)驗(yàn)教學(xué)中體現(xiàn)出來(lái),這樣,在后續(xù)課程涉及到該知識(shí)點(diǎn)后就容易理解多了。比如,在C語(yǔ)言教學(xué)中,指針是一個(gè)最靈活的地方,也是C語(yǔ)言的精華所在。但是,目前課程后面的例子的設(shè)計(jì)和后續(xù)課程關(guān)聯(lián)就不大,只是幫助理解而已。加上目前社會(huì)上有人可以的規(guī)避指針在程序設(shè)計(jì)中的應(yīng)用,一些學(xué)生認(rèn)為這個(gè)內(nèi)容就是故意把課程加深,沒(méi)有實(shí)際意義。本人在教學(xué)中結(jié)合嵌入式操作系統(tǒng)內(nèi)核講解中的問(wèn)題,比如μC/OS-II在內(nèi)存分配的時(shí)候用到的指針的知識(shí)[3],這樣學(xué)生就容易理解靈活的C語(yǔ)言的指針的巧妙之處。
在高校籃球修課時(shí)常出現(xiàn)的是有學(xué)生考試的分?jǐn)?shù)很高,但是根本不能上場(chǎng)打球。原因是考試時(shí)候很多都是單項(xiàng)進(jìn)行的,比如運(yùn)球、投籃。但是比賽是連貫進(jìn)行的,相信不把單項(xiàng)的技巧串接起來(lái)永遠(yuǎn)不能成為科比。C語(yǔ)言教學(xué)有著異曲同工之妙。有學(xué)生在單獨(dú)的理論學(xué)習(xí)和實(shí)驗(yàn)中取得了很好的成績(jī),但卻不能使用C語(yǔ)言開(kāi)發(fā)一個(gè)極小的項(xiàng)目解決實(shí)際問(wèn)題。因此,需要結(jié)合實(shí)際設(shè)計(jì)綜合性的課程設(shè)計(jì)。由于綜合性的內(nèi)容往往牽涉到數(shù)據(jù)結(jié)構(gòu)的知識(shí),而數(shù)據(jù)結(jié)構(gòu)這門課程又常常在C語(yǔ)言程序設(shè)計(jì)課后面才開(kāi)始。因此,部分教師擔(dān)心學(xué)生不能勝任。其實(shí),這是沒(méi)有必要擔(dān)心的。可以設(shè)計(jì)不需要復(fù)雜數(shù)據(jù)結(jié)構(gòu)的綜合性項(xiàng)目。比如,簡(jiǎn)單的隊(duì)列和堆棧問(wèn)題,完全沒(méi)有必要將數(shù)據(jù)結(jié)構(gòu)知識(shí)和C語(yǔ)言程序設(shè)計(jì)課程分的那么明顯,學(xué)生也完全可以在學(xué)習(xí)C語(yǔ)言后掌握這一部分內(nèi)容的。一個(gè)很好的綜合性課程設(shè)計(jì)是讓學(xué)生設(shè)計(jì)一個(gè)計(jì)數(shù)器。這是一個(gè)可難可易、可深可淺的項(xiàng)目。可以逐步推進(jìn),平滑的推進(jìn)設(shè)計(jì)難度,很好鍛煉學(xué)生的動(dòng)手能力。
不少人認(rèn)為C語(yǔ)言這門課程理論考核沒(méi)有必要,只需要在實(shí)驗(yàn)時(shí)候看學(xué)生解決問(wèn)題的能力就好。但事實(shí)是,理論考試必不可少。實(shí)驗(yàn)考核過(guò)程中學(xué)生有各種不同的方法解決同一個(gè)問(wèn)題,但是有些知識(shí)點(diǎn)是很重要的,這樣可能就規(guī)避掉了。這對(duì)于以后的項(xiàng)目開(kāi)發(fā)是很不利的。因此,我本人的思路是采用四六開(kāi)的方式。即理論考核占40%的分量,實(shí)踐考核占60的分量。當(dāng)然,也可以將學(xué)生平時(shí)的出勤率、學(xué)習(xí)態(tài)度放進(jìn)綜合分里,但是本人以為象征性的就行了。掌握知識(shí)才是王道,不同的學(xué)生有不同的學(xué)習(xí)方式,不必強(qiáng)求。
[1]彭雅琴.C語(yǔ)言實(shí)驗(yàn)教學(xué)探析[J].三江學(xué)院學(xué)報(bào),2010(4).
[2]常村紅,婁銀霞.C語(yǔ)言教學(xué)改革初探[J].太原城市職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(3).
[3]J.Labrosse.MicroC/OS-II∶The real-time kernel[M].US∶CMP Books,1992.
[4]趙英紅.“陷阱式”教學(xué)法在C語(yǔ)言程序設(shè)計(jì)課程教學(xué)中的應(yīng)用[J].濱州職業(yè)學(xué)院學(xué)報(bào),2008(4).