張 琴
(青島農(nóng)業(yè)大學(xué)理學(xué)與信息科學(xué)學(xué)院 山東 青島 266109)
《C 語(yǔ)言程序設(shè)計(jì)》 是計(jì)算機(jī)專業(yè)的必修基礎(chǔ)課之一,也是程序設(shè)計(jì)類課程的先行課;同時(shí)也是國(guó)內(nèi)理工科學(xué)生必修的計(jì)算機(jī)應(yīng)用課程, 是計(jì)算機(jī)等級(jí)考試二級(jí)的考試語(yǔ)言之一。對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生而言,C 語(yǔ)言是他們初次接觸編程的入門級(jí)語(yǔ)言,是以后學(xué)習(xí)程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等專業(yè)課程的基礎(chǔ);而對(duì)于非計(jì)算機(jī)專業(yè)的其他理工科學(xué)生而言,C 語(yǔ)言則是他們初次接觸編程、學(xué)習(xí)如何將計(jì)算機(jī)程序與自己專業(yè)有機(jī)結(jié)合起來(lái)的有力工具。
C 語(yǔ)言因其語(yǔ)法靈活、應(yīng)用廣泛,而備受青睞,是當(dāng)今最流行的程序設(shè)計(jì)語(yǔ)言之一。 然而正是因?yàn)槿绱?,也使得C 語(yǔ)言成為一種比較難學(xué)、難以掌握的語(yǔ)言。 尤其是C 語(yǔ)言最有特色的指針,令很多人望而卻步。 計(jì)算機(jī)專業(yè)的C 語(yǔ)言課程通常開(kāi)設(shè)在大一第一學(xué)期,而非計(jì)算機(jī)專業(yè)的理工科的C 語(yǔ)言一般開(kāi)設(shè)在大一的第二學(xué)期。 新生們對(duì)于計(jì)算機(jī)編程大多數(shù)一無(wú)所知,再加上之前或許聽(tīng)說(shuō)過(guò)C 語(yǔ)言很難學(xué),在開(kāi)始就會(huì)有畏難情緒。 教師們也普遍反映C 語(yǔ)言難教。 這個(gè)“難學(xué)”與“難教”,更多的是體現(xiàn)在實(shí)驗(yàn)教學(xué)上。 C 語(yǔ)言是一門很注重編程實(shí)踐的課程, 單純的只掌握理論知識(shí)是不行的,還需要學(xué)生自己動(dòng)手,會(huì)寫程序,會(huì)調(diào)試程序。 因此,本文從C語(yǔ)言的實(shí)驗(yàn)教學(xué)改革入手,探討如何加強(qiáng)實(shí)驗(yàn)環(huán)節(jié),如何提高學(xué)生的實(shí)踐能力,如何通過(guò)實(shí)驗(yàn)教學(xué)改革促進(jìn)課堂理論教學(xué)。
筆者作為大學(xué)一線教師,從事C 語(yǔ)言教學(xué)多年,同時(shí)也注意了解國(guó)內(nèi)其他大學(xué)的C 語(yǔ)言教學(xué)情況,現(xiàn)將C 語(yǔ)言實(shí)驗(yàn)教學(xué)的現(xiàn)狀總結(jié)如下:
目前國(guó)內(nèi)各高校對(duì)于C 語(yǔ)言的教材選擇,基本上都采用譚浩強(qiáng)的《C 程序設(shè)計(jì)》。 這是國(guó)內(nèi)C 語(yǔ)言的一本經(jīng)典教材,受其影響,其他C 語(yǔ)言的教材,在內(nèi)容組織和架構(gòu)上,都與其十分相似。 這本教材還帶有一本《題解與上機(jī)指導(dǎo)》,將課后題答案與上機(jī)題目的步驟與程序都十分詳盡的列了出來(lái)。 采用這樣的教材,的確是減輕了教師的很多負(fù)擔(dān),然而對(duì)學(xué)生來(lái)說(shuō),由于答案和步驟課本上都有,他們的上機(jī)課就變成了“照著課本敲程序,出錯(cuò)就舉手問(wèn)老師”的機(jī)械運(yùn)動(dòng)。 完全沒(méi)有了動(dòng)腦思考與動(dòng)手調(diào)試,實(shí)驗(yàn)課也就失去了意義。
近年來(lái)各高校的課程都存在學(xué)時(shí)壓縮的情形。 以本校的C 語(yǔ)言為例,總學(xué)時(shí)從之前的64 壓縮至56。其他高校C 語(yǔ)言的學(xué)時(shí)也存在不同程度的壓縮,教師均反映學(xué)時(shí)不夠。 為了能夠完成教學(xué)任務(wù),甚至有不得不壓縮實(shí)驗(yàn)學(xué)時(shí),以增加理論學(xué)時(shí)的情況。 在如此短的時(shí)間內(nèi),要講述完所有的理論內(nèi)容,大多數(shù)教師均采取基礎(chǔ)內(nèi)容細(xì)講、后面提高部分的內(nèi)容略講的方式。然而后面的內(nèi)容,特別是指針、鏈表等部分,是C語(yǔ)言最重要的部分,甚至有“不會(huì)指針相當(dāng)于沒(méi)學(xué)過(guò)C 語(yǔ)言”的說(shuō)法。 學(xué)生理論部分掌握不好,必然也會(huì)影響實(shí)驗(yàn)環(huán)節(jié)。
C 語(yǔ)言實(shí)驗(yàn)課都是在機(jī)房,大多采取學(xué)生自己上機(jī)練習(xí)、教師隨機(jī)指導(dǎo)的方式,幾乎沒(méi)有有效的課堂管理手段。 教師對(duì)于學(xué)生是否在認(rèn)真編程、 程序運(yùn)行效果如何等均無(wú)法掌控。 這樣積極主動(dòng)的學(xué)生會(huì)獲得老師更多的指導(dǎo),而多數(shù)學(xué)生則要么自己琢磨,要么干脆玩別的去,致使時(shí)間荒廢。
其實(shí)所有學(xué)生在接觸一個(gè)嶄新的東西的時(shí)候態(tài)度都是積極的,C 語(yǔ)言自然也不例外。 然而隨著課程的深入,概念越來(lái)越多,有太多內(nèi)容需要記憶,思考難度也大大增加。 此時(shí)如果教師不采取方式方法保護(hù)學(xué)生學(xué)習(xí)的興趣和積極性,課堂理論內(nèi)容又很枯燥,上機(jī)環(huán)節(jié)又沒(méi)有有效的管理,那么隨著興趣和積極性的減退,學(xué)生再也無(wú)法回到良好的學(xué)習(xí)狀態(tài)。
所有高校對(duì)于C 語(yǔ)言等高等程序設(shè)計(jì)語(yǔ)言,均設(shè)有課程設(shè)計(jì)環(huán)節(jié),學(xué)時(shí)從40 到20 不等,有的是整個(gè)課程設(shè)計(jì)貫穿整個(gè)學(xué)期,將學(xué)時(shí)分散到每個(gè)周,有的則是利用一周或者兩周時(shí)間集中進(jìn)行課程設(shè)計(jì)。 目的是培養(yǎng)學(xué)生具備大型程序開(kāi)發(fā)的能力。 然而往往由于指導(dǎo)老師的疏于指導(dǎo)和管理,使得這個(gè)重要的環(huán)節(jié)流于形式,沒(méi)有起到其應(yīng)有的重要作用。
如何提高實(shí)驗(yàn)教學(xué)的效果,使得實(shí)驗(yàn)教學(xué)能夠促進(jìn)課堂理論教學(xué),是我們關(guān)注的課題。 筆者通過(guò)多年C 語(yǔ)言教學(xué)總結(jié),并結(jié)合當(dāng)前青島農(nóng)業(yè)大學(xué)C 語(yǔ)言教學(xué)的實(shí)際情況,提出了以下幾點(diǎn)改進(jìn)。
目前的實(shí)驗(yàn)題目大多都是課后習(xí)題,目的是為了檢驗(yàn)學(xué)生課題理論知識(shí)是否掌握并能夠靈活應(yīng)有。 然而這些題目都是立足于C 語(yǔ)言的語(yǔ)法規(guī)則,與實(shí)際開(kāi)發(fā)脫節(jié),比較死板枯燥。 因此,恰當(dāng)?shù)脑O(shè)計(jì)實(shí)驗(yàn)題目,使其既能夠體現(xiàn)語(yǔ)法規(guī)則,又具有一定得趣味性, 能夠大大刺激學(xué)生的動(dòng)手編程的興趣,有助于提高實(shí)驗(yàn)教學(xué)的效果。 同時(shí),為了防止學(xué)生上機(jī)課只是 “照著課本敲程序”, 我們盡量設(shè)計(jì)課本之外的上機(jī)題目,而將課本上的題目作為課后作業(yè)。
理論教學(xué)與實(shí)驗(yàn)教學(xué)是相輔相成的,學(xué)生只有掌握了理論知識(shí)之后才有可能進(jìn)行上機(jī)實(shí)驗(yàn),自己動(dòng)手寫程序。 因此重視實(shí)驗(yàn)教學(xué)不代表忽略理論教學(xué),反而需要更進(jìn)一步的加強(qiáng)理論教學(xué)。
為了解決學(xué)時(shí)壓縮的問(wèn)題,我們需要更好的安排課堂教學(xué)內(nèi)容。 譚浩強(qiáng)教授編寫的《C 程序設(shè)計(jì)》一書(shū),重點(diǎn)放在C語(yǔ)言本身的語(yǔ)法上,而且由于C 語(yǔ)言本身內(nèi)容豐富、細(xì)節(jié)繁多,教材對(duì)此做了十分詳盡的介紹。 因此在課題講授時(shí),我們大膽的對(duì)此部分內(nèi)容做了略講, 要求學(xué)生課后自學(xué)掌握,這樣節(jié)省了時(shí)間,將授課重點(diǎn)放到后續(xù)難點(diǎn)章節(jié),并穿插有關(guān)程序設(shè)計(jì)的知識(shí),有意識(shí)的加強(qiáng)程序設(shè)計(jì)思想的傳授。
目前課堂理論教學(xué)大多采取計(jì)算機(jī)加大屏幕的方式進(jìn)行,這樣計(jì)算機(jī)程序可以馬上進(jìn)行演示,立刻看到程序運(yùn)行結(jié)果。 然而這也對(duì)上課教師提出了更高的要求,包括具有吸引力的課件制作、現(xiàn)場(chǎng)編程及調(diào)試能力等。 除了更有效的利用多媒體教學(xué)手段之外, 老師們需要重視黑板和粉筆的使用。 在C 語(yǔ)言教學(xué)過(guò)程中,更多的是需要老師針對(duì)具體問(wèn)題進(jìn)行分析,講解編程思路,到最后寫出算法,然后編程實(shí)現(xiàn)。這整個(gè)的過(guò)程其實(shí)更適合在黑板上進(jìn)行, 老師邊分析邊書(shū)寫,讓學(xué)生更清晰的看到整個(gè)分析問(wèn)題、解決問(wèn)題到編程實(shí)現(xiàn)的整個(gè)過(guò)程,更有助于學(xué)生理解編程的思路和方法。
上機(jī)練習(xí)的題目都很小,代碼量在十行左右,每一個(gè)題目注重一個(gè)知識(shí)點(diǎn)的練習(xí)。 除此之外還需要增設(shè)綜合性、設(shè)計(jì)性的實(shí)驗(yàn),這些實(shí)驗(yàn)題目可以稍微大一點(diǎn),需要學(xué)生寫幾十行代碼才能解決問(wèn)題。 除了讓學(xué)生學(xué)會(huì)知識(shí)點(diǎn)的融會(huì)貫通,還可以鍛煉學(xué)生自己分析問(wèn)題、解決問(wèn)題的能力。 同時(shí)在實(shí)驗(yàn)課上,要求老師加強(qiáng)管理,隨時(shí)注意學(xué)生的實(shí)驗(yàn)情況,并給予指導(dǎo)。
在課程進(jìn)行到一半的時(shí)候, 基礎(chǔ)知識(shí)點(diǎn)已經(jīng)講述完畢,此時(shí)可以進(jìn)行一次摸底考察,根據(jù)考察情況將學(xué)生分為多個(gè)興趣小組。 每個(gè)小組3-4 人,其中需要有1-2 個(gè)對(duì)編程思想理解比較好,能夠獨(dú)立寫出符合邏輯的程序的學(xué)生,使其能夠起到帶頭和引導(dǎo)的作用。
比起課堂的理論教學(xué),實(shí)驗(yàn)教學(xué)環(huán)節(jié)需要更多的教師與學(xué)生之間的互動(dòng)。 僅憑上機(jī)時(shí)候的教師隨機(jī)的指點(diǎn)是遠(yuǎn)遠(yuǎn)不夠的。 因此利用網(wǎng)絡(luò)技術(shù),創(chuàng)造一個(gè)教師與學(xué)生的互動(dòng)場(chǎng)所,對(duì)于課后的討論、技術(shù)的探討都有積極的意義。
C 語(yǔ)言是一門最注重實(shí)踐能力的課程, 然而目前仍然采用筆試的方法進(jìn)行考試。上機(jī)考試幾乎形同虛設(shè)。原因在于,上機(jī)考試涉及到監(jiān)考、閱卷、考試系統(tǒng)等眾多問(wèn)題,一直無(wú)法解決。 對(duì)于C 語(yǔ)言這門課程來(lái)說(shuō),筆試僅用于考核學(xué)生的理論知識(shí)掌握水平,真正的編程能力和調(diào)試程序能力還需要上機(jī)進(jìn)行考核。
筆者認(rèn)為,C 語(yǔ)言的課程設(shè)計(jì)環(huán)節(jié),應(yīng)該是最重要的。 學(xué)習(xí)C 語(yǔ)言,不是為了簡(jiǎn)單的學(xué)會(huì)循環(huán)和選擇,而是為了進(jìn)行實(shí)際應(yīng)有開(kāi)發(fā), 而這一點(diǎn)只有在課程設(shè)計(jì)環(huán)節(jié)才有可能實(shí)現(xiàn)。 學(xué)生需要在課程設(shè)計(jì)環(huán)節(jié)獨(dú)自或者合作完成一個(gè)具有實(shí)際應(yīng)用價(jià)值的完整的程序。 他們需要自己分析問(wèn)題,提出解決問(wèn)題的算法,并將其變成代碼,之后經(jīng)歷漫長(zhǎng)的調(diào)試、修改的過(guò)程,并且最后驚喜的看到自己親手寫出的代碼變成一個(gè)可以實(shí)際使用的系統(tǒng)。這對(duì)于學(xué)生來(lái)說(shuō)意義非同尋常。因此,指導(dǎo)教師需要精心的安排課程設(shè)計(jì)的環(huán)節(jié),使其作用能夠達(dá)到最大化。
首先, 課程設(shè)計(jì)題目的設(shè)計(jì)需要具有一定的實(shí)際意義,并且是學(xué)生比較熟悉的領(lǐng)域。 例如,學(xué)生成績(jī)管理系統(tǒng)、畫圖程序等。 其次,需要指導(dǎo)教師提前指導(dǎo)學(xué)生做好規(guī)劃,所選的題目需要什么樣的技術(shù)來(lái)實(shí)現(xiàn), 需要查找哪方面的資料等,為學(xué)生指明大致的方向。 第三,在學(xué)生開(kāi)始課程設(shè)計(jì)之后還需要指導(dǎo)教師的全程監(jiān)控與指導(dǎo),防止學(xué)生因?yàn)橹型镜姆N種困難而放棄。 最后,考核方式可以采取答辯的形式,讓學(xué)生講解程序的整體設(shè)計(jì)思路,以及遇到的問(wèn)題和解決方案。
實(shí)驗(yàn)教學(xué)是C 語(yǔ)言課程中重要的組成部分,學(xué)生通過(guò)實(shí)驗(yàn)環(huán)節(jié),能夠加深對(duì)課堂理論知識(shí)的理解,學(xué)習(xí)語(yǔ)法規(guī)則的綜合應(yīng)用,真正理解編程思路,學(xué)會(huì)自己寫程序和調(diào)試程序。 因此,對(duì)于C 語(yǔ)言的教學(xué),更需要特別重視實(shí)驗(yàn)教學(xué)。 筆者根據(jù)從事多年C 語(yǔ)言教學(xué)的經(jīng)驗(yàn)總結(jié),結(jié)合青島農(nóng)業(yè)大學(xué)C 語(yǔ)言教學(xué)的現(xiàn)狀,提出了提高C 語(yǔ)言實(shí)驗(yàn)教學(xué)效果的幾點(diǎn)思考,包括恰當(dāng)?shù)脑O(shè)計(jì)實(shí)驗(yàn)題目、改革考核方式、組織興趣小組、增強(qiáng)師生互動(dòng)等,特別提出要重視課程設(shè)計(jì)環(huán)節(jié)。 在我們?cè)诮鼛啄甑慕虒W(xué)實(shí)踐中,這些措施均取得了良好的教學(xué)效果。
[1]馬如兵.《C 語(yǔ)言程序設(shè)計(jì)》課程教學(xué)探析[J].
[2]張正偉.C 語(yǔ)言教學(xué)的探討[J].科技創(chuàng)新導(dǎo)報(bào),2009(29):183-185.