陳越洲,肖必武,王傳立
(中南林業(yè)科技大學(xué)計(jì)算機(jī)與信息工程學(xué)院,長沙 410004)
非計(jì)算機(jī)專業(yè)C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革實(shí)踐
陳越洲,肖必武,王傳立
(中南林業(yè)科技大學(xué)計(jì)算機(jī)與信息工程學(xué)院,長沙 410004)
分析了目前非計(jì)算機(jī)專業(yè)C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)的現(xiàn)狀和存在的問題,針對存在的問題設(shè)計(jì)一個(gè)實(shí)驗(yàn)教學(xué)系統(tǒng)和相應(yīng)的實(shí)驗(yàn)教學(xué)素材。該實(shí)驗(yàn)教學(xué)系統(tǒng)將每次實(shí)驗(yàn)作為課程考核的一部分,實(shí)現(xiàn)了學(xué)生實(shí)驗(yàn)報(bào)告書寫和批改的自動化、無紙化,既能促使學(xué)生積極主動對待每一次實(shí)驗(yàn)課的學(xué)習(xí),又避免目前實(shí)驗(yàn)報(bào)告千篇一律的抄襲狀況。
目前,我國高等院校針對非計(jì)算機(jī)專業(yè)學(xué)生幾乎都開設(shè)了程序設(shè)計(jì)類課程,C語言因其廣泛的適應(yīng)性和使用的普遍性成為高校理工科專業(yè)的首選。C語言程序設(shè)計(jì)課程的授課方式通常都按理論課和實(shí)驗(yàn)課對半的模式來設(shè)計(jì),多數(shù)學(xué)校都是理論和實(shí)驗(yàn)各占32個(gè)學(xué)時(shí)。教學(xué)實(shí)踐中發(fā)現(xiàn),對于非計(jì)算機(jī)專業(yè)的學(xué)生來說,無論是理論課還是實(shí)驗(yàn)課32個(gè)學(xué)時(shí)是遠(yuǎn)遠(yuǎn)不夠的。一方面,大學(xué)一年級的非計(jì)算機(jī)專業(yè)學(xué)生幾乎沒有相應(yīng)的計(jì)算機(jī)基礎(chǔ)知識和基本概念;另一方面,C語言本身的語法比較靈活自由,變化較多,初學(xué)者掌握起來比較費(fèi)勁;因此,在這么少的課時(shí)內(nèi)要學(xué)習(xí)好這門課程,對教的人和學(xué)的人都是一個(gè)巨大的挑戰(zhàn)。在現(xiàn)有教學(xué)課時(shí)的條件下,教師要積極想辦法提高每堂課的效率,學(xué)生也應(yīng)該主動利用課堂外的時(shí)間充分準(zhǔn)備好每堂課的學(xué)習(xí)。課程的特點(diǎn)決定了理論課教學(xué)是為實(shí)驗(yàn)課教學(xué)服務(wù)的,理論課講授語法、程序結(jié)構(gòu)、程序設(shè)計(jì)思想等的目的就要讓學(xué)生能夠進(jìn)行編程實(shí)踐。因此,C語言程序設(shè)計(jì)這門課程掌握得好不好,直接體現(xiàn)在實(shí)驗(yàn)課教學(xué)上。下文主要針對實(shí)驗(yàn)課教學(xué)進(jìn)行改革探索。
目前C語言程序設(shè)計(jì)實(shí)驗(yàn)課教學(xué)普遍采用“實(shí)驗(yàn)指導(dǎo)書+教師布置書上的任務(wù)+課后提交實(shí)驗(yàn)報(bào)告”的模式。以我校曾經(jīng)使用過的多套教材為例[1-3],實(shí)驗(yàn)指導(dǎo)書一般是跟理論課教材配套的,每次實(shí)驗(yàn)內(nèi)容涉及的知識點(diǎn)基本與理論課教材章節(jié)一致,實(shí)驗(yàn)內(nèi)容的編排結(jié)構(gòu)一般包括:(1)分析程序并上機(jī)驗(yàn)證結(jié)果;(2)程序填空;(3)選擇填空;(4)程序改錯;(5)編程題。而且,幾乎所有的題目(包括理論課教材后面的習(xí)題)在實(shí)驗(yàn)指導(dǎo)書后面提供了答案。教師上課通常是根據(jù)教學(xué)進(jìn)度依次按照實(shí)驗(yàn)指導(dǎo)書編排的實(shí)驗(yàn)順序往下布置任務(wù)。學(xué)生課后書寫實(shí)驗(yàn)報(bào)告提交給教師。上述教學(xué)模式在教學(xué)實(shí)踐中存在幾個(gè)問題:
(1)從實(shí)驗(yàn)內(nèi)容的編排來說。實(shí)驗(yàn)指導(dǎo)書的內(nèi)容編排出發(fā)點(diǎn)是很好的,如果學(xué)生能夠正確使用實(shí)驗(yàn)指導(dǎo)書對他們課外學(xué)習(xí)無疑是很有幫助的。但是,因?yàn)榉怯?jì)算機(jī)專業(yè)的學(xué)生對這門課程缺乏正確的認(rèn)識和應(yīng)有的積極性[4],因此,現(xiàn)實(shí)當(dāng)中大多數(shù)學(xué)生都不能正確地使用實(shí)驗(yàn)指導(dǎo)書,反而起到了負(fù)面的效果。例如,“分析程序并上機(jī)驗(yàn)證結(jié)果”這類題,學(xué)生本應(yīng)該上機(jī)前閱讀程序給出結(jié)果然后通過上機(jī)來驗(yàn)證自己的分析是否正確,但實(shí)際上很少有學(xué)生愿意課前去做分析,而是直接將程序輸入計(jì)算機(jī)運(yùn)行出結(jié)果,這樣學(xué)生將自己變成了打字員,根本沒有達(dá)到學(xué)習(xí)的效果。又例如,“選擇填空”這類題,學(xué)生只需將程序輸入計(jì)算機(jī),用每個(gè)答案去試運(yùn)行即可獲得正確的選項(xiàng)。其他的幾道題,學(xué)生稍微動動腦筋想不出來就可以到書上去找答案。因此,在學(xué)生缺乏自律性的情況下,實(shí)驗(yàn)指導(dǎo)書基本上起不到應(yīng)有的作用,很多學(xué)生都成了“程序錄入員”。
(2)實(shí)驗(yàn)報(bào)告淪為一種形式。書寫實(shí)驗(yàn)報(bào)告的目的有兩個(gè)。一是老師檢驗(yàn)學(xué)生是實(shí)驗(yàn)效果,二是學(xué)生通過總結(jié)對實(shí)驗(yàn)內(nèi)容有跟深刻的理解。目前這兩個(gè)目的都沒有達(dá)到。大學(xué)計(jì)算機(jī)公共基礎(chǔ)課,一個(gè)教師每星期要上4~6個(gè)班的實(shí)驗(yàn)課,每個(gè)機(jī)房安排的學(xué)生將近40人,每個(gè)教師每星期平均需要看200本實(shí)驗(yàn)報(bào)告。假設(shè)每本實(shí)驗(yàn)報(bào)告上有兩個(gè)程序,每個(gè)教師每星期就要閱讀400個(gè)程序,雖然程序都比較簡單,但每道程序題的實(shí)現(xiàn)算法卻是多樣的。由此可見,教師一個(gè)星期要認(rèn)真地看完200本實(shí)驗(yàn)報(bào)告是不可能的。也就是說,老師通過批閱學(xué)生實(shí)驗(yàn)報(bào)告來檢驗(yàn)學(xué)生的實(shí)驗(yàn)效果是行不通的。當(dāng)學(xué)生每次實(shí)驗(yàn)課都成為“程序錄入員”時(shí),學(xué)生也談不上對實(shí)驗(yàn)內(nèi)容的深刻理解了,因此實(shí)驗(yàn)報(bào)告也往往是從實(shí)驗(yàn)指導(dǎo)書上抄一點(diǎn),或者同學(xué)之間相互抄襲,完成一種實(shí)驗(yàn)報(bào)告的形式而已。
(3)實(shí)驗(yàn)課程考核機(jī)制不利于調(diào)動學(xué)生的學(xué)習(xí)積極性。實(shí)驗(yàn)課的考核不像理論課的考核那樣有成熟的方法,通常是由上課老師決定,或者教研室給出一個(gè)原則,由任課老師具體參照執(zhí)行。采用得比較多的是“實(shí)驗(yàn)報(bào)告+平時(shí)考核+到課率”的形式。三者中每個(gè)部分所占的分值也沒有固定的比例,一般來說“到課率”占的分值比較?。ǔ莻€(gè)別學(xué)生缺課很嚴(yán)重),“實(shí)驗(yàn)報(bào)告”和“平時(shí)考核”誰多誰少因任課教師而定。前面提到,實(shí)驗(yàn)報(bào)告已經(jīng)淪為一種形式,教師不可能仔細(xì)完成實(shí)驗(yàn)報(bào)告的批閱,給實(shí)驗(yàn)報(bào)告打分主要還是憑感覺,這個(gè)分?jǐn)?shù)無法做到客觀和反映真實(shí)情況。平時(shí)考核,簡單的辦法就是憑印象給每個(gè)學(xué)生打分,嚴(yán)謹(jǐn)一點(diǎn)的做法就是每堂課抽查幾個(gè)人或者做幾次小測試。抽查的方式,每次課抽查的人數(shù)不可能太多,因?yàn)橐粋€(gè)機(jī)房將近40個(gè)人,教師還需要輔導(dǎo)其他學(xué)生;小測試,測試的次數(shù)以及每次測試的時(shí)間和內(nèi)容都很有限,因?yàn)榭偣仓挥?6次課,而且每次課要完成的實(shí)驗(yàn)任務(wù)比較繁重,不可能占用過多的上機(jī)時(shí)間;因此,即便是抽查和小測試也只能帶有象征性的意味。由此可見,上述考核機(jī)制沒法做到客觀反映真實(shí)情況,給出的分?jǐn)?shù)也很大程度上與任課教師的個(gè)人感覺相關(guān),尤其在目前“實(shí)驗(yàn)課盡量不要讓學(xué)生掛科”的普遍“共識”下,每個(gè)環(huán)節(jié)給出的分?jǐn)?shù)都帶有很重的“水分”。當(dāng)學(xué)生沒有了掛科的后顧之憂,又缺乏對課程學(xué)習(xí)的熱情和積極性,每堂課成為“程序錄入員”就是很自然的事了。
根據(jù)上面的分析,本文從如下三個(gè)方面對C語言程序設(shè)計(jì)實(shí)驗(yàn)課教學(xué)進(jìn)行改進(jìn):
(1)改革實(shí)驗(yàn)教學(xué)內(nèi)容。學(xué)生手上的實(shí)驗(yàn)指導(dǎo)書只作為學(xué)生課外學(xué)習(xí)的參考書,實(shí)驗(yàn)內(nèi)容由實(shí)驗(yàn)教學(xué)系統(tǒng)提供。每次實(shí)驗(yàn)安排2~4道編程題,為避免有些學(xué)生無從著手的情況,根據(jù)題目的難易程度給出適當(dāng)?shù)木幊趟悸诽崾竞陀嘘P(guān)語法、算法的解析作為參考,但不給出具體的程序?qū)崿F(xiàn)。編程題盡量不與理論課教材和實(shí)驗(yàn)指導(dǎo)書上的重復(fù),以免學(xué)生直接抄襲現(xiàn)成的程序代碼,促使學(xué)生自己完成編程任務(wù)。作為編程題的補(bǔ)充,每次實(shí)驗(yàn)課針對編程題沒有涉及到的相關(guān)章節(jié)的語法、常用算法等知識設(shè)計(jì)若干道選擇題,幫助學(xué)生學(xué)習(xí)掌握。選擇題的設(shè)計(jì)應(yīng)考慮不可以讓學(xué)生直接在機(jī)器上運(yùn)行獲得答案。這樣設(shè)計(jì)教學(xué)內(nèi)容既實(shí)現(xiàn)了以學(xué)生自己編程、調(diào)試程序?yàn)橹?,又兼顧了語法知識的學(xué)習(xí)。
(2)改變實(shí)驗(yàn)報(bào)告的書寫方式。實(shí)驗(yàn)報(bào)告數(shù)字化、無紙化,學(xué)生完成實(shí)驗(yàn)任務(wù)后當(dāng)場提交。由于現(xiàn)在的紙質(zhì)實(shí)驗(yàn)報(bào)告已經(jīng)淪為一種形式,我們必須摒棄這種形式。設(shè)計(jì)一個(gè)電子版的實(shí)驗(yàn)報(bào)告模板,將那些形式化的內(nèi)容(如:實(shí)驗(yàn)報(bào)告標(biāo)題、實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容)自動加載到模板中,學(xué)生只需要將自己調(diào)試好的程序粘貼到相應(yīng)的位置即可。實(shí)驗(yàn)教學(xué)系統(tǒng)自動調(diào)取學(xué)生的程序運(yùn)行、批閱,并將批閱情況寫入實(shí)驗(yàn)報(bào)告模板相應(yīng)位置。實(shí)驗(yàn)報(bào)告的評分綜合程序批閱情況和選擇題答題情況給出。
(3)改革現(xiàn)有的課程考核模式。將每次實(shí)驗(yàn)課都納入到考核中來,讓學(xué)生感覺每次實(shí)驗(yàn)課都與課程的成績息息相關(guān),促使學(xué)生認(rèn)真對待每堂實(shí)驗(yàn)課。每堂課提交的實(shí)驗(yàn)報(bào)告都會有評分,一學(xué)期下來,將每個(gè)實(shí)驗(yàn)報(bào)告的評分做加權(quán)平均就可得到這門課的最后成績,這一工作可由實(shí)驗(yàn)教學(xué)系統(tǒng)自動完成。這一考核方式不僅能促使學(xué)生認(rèn)真對待每堂課,而且考核結(jié)果也能客觀地反映每個(gè)學(xué)生的真實(shí)情況。在這種考核模式下,學(xué)生也不會輕易地缺課、逃課,還解決了學(xué)生考勤問題。
為配合上述教學(xué)方案的實(shí)施,我們設(shè)計(jì)了一個(gè)實(shí)驗(yàn)教學(xué)系統(tǒng)。目前常見的一些教學(xué)系統(tǒng)[5-8]都不適合課堂教學(xué)。它們假設(shè)學(xué)生是主動學(xué)習(xí)的,將制作好的教學(xué)素材通過網(wǎng)絡(luò)共享,然后提供獲取教學(xué)素材的通道,提供老師與學(xué)生、學(xué)生與學(xué)生的交互平臺,但要進(jìn)行實(shí)時(shí)交互要求雙方必須同時(shí)在線。這樣的教學(xué)系統(tǒng)基本上都是以學(xué)生具有很高的學(xué)習(xí)自律性、主動性為前提,主要還是適用于學(xué)生課外學(xué)習(xí)的輔助,對課堂教學(xué)沒有針對性。我們設(shè)計(jì)的實(shí)驗(yàn)教學(xué)系統(tǒng)只針對C語言程序設(shè)計(jì)實(shí)驗(yàn)課的課堂教學(xué),具有很好的針對性和可實(shí)施性。實(shí)驗(yàn)教學(xué)系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)系統(tǒng)示意圖
系統(tǒng)使用方法:教師機(jī)上安裝服務(wù)器端,學(xué)生機(jī)上安裝客戶端,機(jī)房內(nèi)任意一臺聯(lián)網(wǎng)的計(jì)算機(jī)都可以作為教師機(jī)使用。教師上課時(shí)啟動服務(wù)器,通過U盤導(dǎo)入教學(xué)資源。學(xué)生在自己的機(jī)器上啟動客戶端,用自己的學(xué)號、姓名登錄服務(wù)器,如果登錄成功系統(tǒng)會在學(xué)生機(jī)上創(chuàng)建一個(gè)學(xué)生用的工作文件夾,學(xué)生實(shí)驗(yàn)產(chǎn)生的所有文檔都會自動保存到該文件夾下,教師機(jī)上會同樣會為每個(gè)登錄成功的學(xué)生單獨(dú)創(chuàng)建一個(gè)文件夾,用于保存學(xué)生提交的實(shí)驗(yàn)報(bào)告以及每次的成績記錄。當(dāng)學(xué)生在客戶端選擇了某次實(shí)驗(yàn)任務(wù)時(shí),教師機(jī)上的服務(wù)器將從教學(xué)資源中獲取相應(yīng)的資源文檔發(fā)送到學(xué)生機(jī),學(xué)生機(jī)將接收到的文檔保存到工作文件夾中。上述過程完成后,學(xué)生即可開始根據(jù)任務(wù)編程、調(diào)試程序,學(xué)生完成實(shí)驗(yàn)后提交實(shí)驗(yàn)報(bào)告即可。
客戶端界面如圖2所示。當(dāng)學(xué)生選擇了某次實(shí)驗(yàn)任務(wù)后,描述實(shí)驗(yàn)任務(wù)的文本文檔就會在相應(yīng)的區(qū)域打開,學(xué)生根據(jù)實(shí)驗(yàn)任務(wù)要求在相應(yīng)的目錄下創(chuàng)建C語言源文件并編輯、調(diào)試。系統(tǒng)為每次實(shí)驗(yàn)任務(wù)提供了“操作參考”,主要是編程思路的提示和編輯、調(diào)試環(huán)境的使用指導(dǎo)。學(xué)生完成實(shí)驗(yàn)任務(wù)后點(diǎn)擊“評閱”按鈕,系統(tǒng)就會對實(shí)驗(yàn)情況作出評價(jià),并根據(jù)實(shí)驗(yàn)報(bào)告模板生成實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)報(bào)告模板的示例如圖3所示)。學(xué)生點(diǎn)擊“提交”,生成的實(shí)驗(yàn)報(bào)告就被提交到教師機(jī)上。

圖2 C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)系統(tǒng)客戶端

圖3 C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)系統(tǒng)實(shí)驗(yàn)報(bào)告模板
本方案通過合理的設(shè)計(jì)實(shí)驗(yàn)任務(wù),將課程的重點(diǎn)真正落實(shí)到了學(xué)生的實(shí)際動手能力的訓(xùn)練上來;通過實(shí)驗(yàn)報(bào)告數(shù)字化和實(shí)驗(yàn)報(bào)告批閱的自動化,既節(jié)省了學(xué)生課后書寫幾乎沒有任何價(jià)值的實(shí)驗(yàn)報(bào)告的時(shí)間,又免去了教師批改實(shí)驗(yàn)報(bào)告的工作量,而且還能得到比以往更客觀、更真實(shí)的課堂效果評價(jià),可謂一舉三得;通過課程考核方式的改進(jìn),使得學(xué)生能夠認(rèn)真對待每一堂課,提升了課堂教學(xué)效果。
一年的教學(xué)實(shí)踐證明,本教學(xué)改革方案有力地促進(jìn)了非計(jì)算機(jī)專業(yè)C語言程序設(shè)計(jì)實(shí)驗(yàn)課教學(xué),改變了以往學(xué)生上機(jī)實(shí)驗(yàn)不愿動腦筋只做“程序錄入員”的狀況,促進(jìn)了學(xué)生學(xué)習(xí)的主動性和積極性,提高了實(shí)驗(yàn)課教學(xué)質(zhì)量。
[1]蔣倩儀,龍佑喜,彭三城.C語言程序設(shè)計(jì)上機(jī)指導(dǎo)與習(xí)題選講[M].長沙:湖南教育出版社,2014.
[2]楊曉波,要路崗.C語言程序設(shè)計(jì)上機(jī)指導(dǎo)[M].北京:國防工業(yè)出版社,011.8.
[3]譚浩強(qiáng).C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版)[M].北京:清華大學(xué)出版社,2005.7.
[4]趙宏,王愷.我國大學(xué)計(jì)算機(jī)課程現(xiàn)狀及改革探索[J].中國大學(xué)教學(xué),2015(2):50-54.
[5]戈崇胤.C語言程序設(shè)計(jì)學(xué)習(xí)支持系統(tǒng)的設(shè)計(jì)和開發(fā)[D].上海:華東師范大學(xué),2005.8.
[6]王俊.《C語言程序設(shè)計(jì)》教學(xué)網(wǎng)站開發(fā)實(shí)踐與效果評價(jià)研究[D].成都:四川師范大學(xué),2007.9.
[7]宮業(yè)芹.C語言程序設(shè)計(jì)網(wǎng)上教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2012.10.
[8]黃鑫.某高職院校C語言教學(xué)輔助系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2015.5.
The Experimental Teaching Reform Practice of Non-Computer Professional C Language Programming
CHEN Yue-Zhou,XIAO Bi-Wu,WANG Chuan-Li
(School of Computer and Information Engineering,Central South University of Forestry&Technology,Changsha 410004)
Analyzes the present situation and the existing problems of the experimental teaching of C language programming for non-computer majors,and designs an experimental teaching system and corresponding experimental teaching materials according to the existing problems.The experimental teaching system takes each experiment as part of the curriculum assessment,realizes the students experiment automation,writing and correcting,which can not only motivate students to actively treat every experimental course of study,but also avoid the current status of experimental report plagiarism fits.
教學(xué)改革;C語言程序設(shè)計(jì);實(shí)驗(yàn)教學(xué)系統(tǒng)
湖南省教育廳教改項(xiàng)目(湘教通[2014]247號-196)
1007-1423(2017)28-0019-04
10.3969/j.issn.1007-1423.2017.28.005
陳越洲(1968-),男,湖南臨武人,碩士,講師,研究方向?yàn)榉植加?jì)算與數(shù)據(jù)庫技術(shù)
肖必武,男,副教授,研究方向?yàn)樾畔⑾到y(tǒng)與計(jì)算機(jī)教育
王傳立,男,博士,副教授,研究方向?yàn)槿斯ぶ悄芘c機(jī)器學(xué)習(xí)
2017-08-01
2017-09-30
Teaching Reform;C Language Programming;Experimental Teaching System