崔坤鵬++翟小瑞++汪杭軍
摘要:針對(duì)現(xiàn)階段“高級(jí)語言程序設(shè)計(jì)”實(shí)驗(yàn)課程存在學(xué)生學(xué)習(xí)興趣不高、實(shí)驗(yàn)案例設(shè)計(jì)不合理等問題,本文提出了應(yīng)編寫適合學(xué)生的實(shí)驗(yàn)指導(dǎo)書,并通過明確上機(jī)實(shí)驗(yàn)的目的、強(qiáng)化教師在整個(gè)實(shí)驗(yàn)課中的引導(dǎo)作用、包裝具有實(shí)時(shí)性、時(shí)代感的案例提高學(xué)生實(shí)驗(yàn)興趣,闡述如何開發(fā)趣味性、綜合性的教學(xué)實(shí)驗(yàn)案例,以及如何改革課程考核方式等觀點(diǎn)。
關(guān)鍵詞:高級(jí)語言程序設(shè)計(jì);實(shí)驗(yàn)教學(xué);教學(xué)改革
引言
“高級(jí)語言程序設(shè)計(jì)”課程是計(jì)算機(jī)及相關(guān)專業(yè)非常重要的一門專業(yè)基礎(chǔ)課,是大學(xué)一年級(jí)學(xué)生的第一門專業(yè)課程,同時(shí)它也是后續(xù)專業(yè)課程的基礎(chǔ)。“高級(jí)語言程序設(shè)計(jì)”課程開發(fā)語言通常選用C語言,但由于C語言的數(shù)據(jù)類型較多、表達(dá)式豐富、語法結(jié)構(gòu)較復(fù)雜,使它成為一門教師難教、學(xué)生難學(xué)的課程。[1]同時(shí),“高級(jí)語言程序設(shè)計(jì)”課程的實(shí)踐操作性非常強(qiáng),需要大量的上機(jī)實(shí)驗(yàn)才能掌握。上機(jī)實(shí)驗(yàn)課程中學(xué)生不僅需要運(yùn)行以及驗(yàn)證程序,還需要充分理解程序設(shè)計(jì)的方法、理念以及編程技巧。[2]因此,教師要教好這門課程,不僅需重視課堂理論教學(xué),還需要加強(qiáng)實(shí)驗(yàn)環(huán)節(jié),學(xué)生只有在上機(jī)實(shí)驗(yàn)課程中才能真正學(xué)會(huì)如何編寫程序和調(diào)試程序,也只有通過上機(jī)實(shí)踐才能更好地掌握“高級(jí)語言程序設(shè)計(jì)”課程的理論知識(shí)。
現(xiàn)階段“高級(jí)語言程序設(shè)計(jì)”實(shí)驗(yàn)課程存在的問題
1.學(xué)生的學(xué)習(xí)積極性不高
大學(xué)一年級(jí)學(xué)生剛剛接觸到C語言,就要面對(duì)相對(duì)枯燥的一行行程序,主觀上容易產(chǎn)生畏懼情緒。再加上C語言的語法比較抽象,對(duì)計(jì)算思維要求較高,并且C語言又不像其他編程語言一樣能夠簡(jiǎn)單實(shí)現(xiàn)美觀的界面,學(xué)生設(shè)計(jì)的程序也只有簡(jiǎn)單的輸入輸出,看起來不像學(xué)生生活中用的各類軟件,所以學(xué)生普遍反映,“高級(jí)語言程序設(shè)計(jì)”課程難學(xué),實(shí)用性不強(qiáng),導(dǎo)致較多學(xué)生在學(xué)習(xí)中沒有積極性和興趣。[3]此外,上實(shí)驗(yàn)課前學(xué)生也沒有做好充分的實(shí)驗(yàn)預(yù)習(xí),從而導(dǎo)致在上實(shí)驗(yàn)課時(shí),有的學(xué)生坐在計(jì)算機(jī)前沒有編程的主動(dòng)性,有的學(xué)生只是將教材上的程序輸入到計(jì)算機(jī)中,其實(shí)并不知道程序中用到哪些理論知識(shí),更不知道實(shí)現(xiàn)程序的算法如何設(shè)計(jì),一旦編寫的程序出現(xiàn)錯(cuò)誤或操作失誤,只知道問老師哪里有錯(cuò),并不知道如何修改程序錯(cuò)誤,甚至有部分學(xué)生上機(jī)只是去抄襲或者拷貝別的同學(xué)的程序,最后實(shí)驗(yàn)報(bào)告也是欺騙老師應(yīng)付了事。
2.課堂教學(xué)中沒有突出語言課程本身的特點(diǎn)
筆者所在的學(xué)校在“高級(jí)語言程序課程”的教學(xué)中已更換過多本教材,但大多數(shù)C語言教材的重點(diǎn)都是放在介紹語法上,對(duì)算法的設(shè)計(jì)應(yīng)用介紹相對(duì)較少,大部分只用了很少的章節(jié)來分析,因此學(xué)生在實(shí)驗(yàn)課上機(jī)編程時(shí)無法形成軟件工程的概念,使其在編程時(shí)只能夠理解理論知識(shí),而不知道使用理論知識(shí)解決實(shí)際問題。
3.案例設(shè)計(jì)不合理
筆者在“高級(jí)語言程序課程”實(shí)驗(yàn)教學(xué)過程中使用案例教學(xué)法,案例貫穿整個(gè)實(shí)驗(yàn)教與學(xué)的過程。然而,目前實(shí)驗(yàn)課程選擇的案例并不十分合理,主要有以下幾個(gè)問題:①實(shí)驗(yàn)課程時(shí)間有限,選擇的案例難以覆蓋理論課程的全部知識(shí)點(diǎn),針對(duì)性也不夠強(qiáng);②并沒有針對(duì)不同教學(xué)階段的教學(xué)要求,選擇、設(shè)計(jì)合適的實(shí)驗(yàn)案例;③案例設(shè)計(jì)缺乏趣味性,難以激發(fā)學(xué)生的學(xué)習(xí)興趣;④設(shè)計(jì)的案例相互之間缺乏聯(lián)系,欠缺可拓展的空間,更沒有可思考和挖掘的空間,缺乏時(shí)代感無法吸引學(xué)生課后思考,不利于培養(yǎng)學(xué)生的獨(dú)立思考問題的能力和創(chuàng)新思維。
4.實(shí)踐教學(xué)環(huán)節(jié)重視不夠
目前,對(duì)“高級(jí)語言程序設(shè)計(jì)”課程的考核方式通常采用筆試的形式,上機(jī)考試所占比例不夠或者不進(jìn)行上機(jī)考試。這種考核模式使得學(xué)生主觀上認(rèn)為實(shí)驗(yàn)課不重要,課后也不會(huì)主動(dòng)地去編寫程序,也就導(dǎo)致對(duì)程序編譯運(yùn)行過程中遇到一些常見問題的處理、編譯等功能應(yīng)用檢測(cè)的理解與應(yīng)用就不會(huì)到位。
5.缺少師生課后交流平臺(tái)
目前,大多數(shù)院校的“高級(jí)語言程序設(shè)計(jì)”課程都是合堂課,人數(shù)較多,教師無論是課上還是課后都難與所有學(xué)生一一交流。教師通常只是通過作業(yè)、課堂提問了解學(xué)生的學(xué)習(xí)情況,普及面較窄,難于及時(shí)接收到學(xué)生的想法和學(xué)習(xí)過程的反饋信息,甚至對(duì)學(xué)生課后的疑問也不能及時(shí)解答。
“高級(jí)語言程序設(shè)計(jì)”實(shí)驗(yàn)課程改革與實(shí)踐
1.編寫適合學(xué)生的實(shí)驗(yàn)指導(dǎo)書
已出版的上機(jī)實(shí)驗(yàn)教材都附有程序答案,學(xué)生在實(shí)驗(yàn)課程中容易產(chǎn)生惰性心理,抄襲實(shí)驗(yàn)教材上的程序,因此,選用自編實(shí)驗(yàn)指導(dǎo)書靈活性更強(qiáng)。教師自編的實(shí)驗(yàn)指導(dǎo)書可根據(jù)實(shí)際教學(xué)大綱編寫,針對(duì)性更強(qiáng)。傳統(tǒng)實(shí)驗(yàn)教材中的上機(jī)實(shí)驗(yàn)往往更注重C語言的語言規(guī)則,較少體現(xiàn)算法的設(shè)計(jì),與軟件開發(fā)的思路脫節(jié),而自編實(shí)驗(yàn)指導(dǎo)書可將重點(diǎn)放在語法,也可將重點(diǎn)放在算法的設(shè)計(jì),靈活性更強(qiáng)。傳統(tǒng)實(shí)驗(yàn)教材沒有理解容易、生動(dòng)有趣的范例,與實(shí)際生產(chǎn)生活距離較遠(yuǎn),使得學(xué)生一看題目就不感興趣,自編教材可將題目設(shè)計(jì)得更接近時(shí)代、生活,吸引學(xué)生注意力。此外,自編的實(shí)驗(yàn)指導(dǎo)書采用的都是教師精選的實(shí)驗(yàn)題目,能夠讓每一個(gè)題目靈活體現(xiàn)一個(gè)或多個(gè)知識(shí)點(diǎn),并且這些題目都是教師通過多年教學(xué)經(jīng)驗(yàn)總結(jié)出來的最具代表性的題目。
2.提高學(xué)生編程的興趣
愛因斯坦說過,“興趣是學(xué)習(xí)最好的老師”,教師應(yīng)在實(shí)驗(yàn)課上加強(qiáng)培養(yǎng)學(xué)生上機(jī)編程的興趣。
首先,教師應(yīng)引導(dǎo)學(xué)生明確上機(jī)實(shí)驗(yàn)的目的。每次理論課后,教師應(yīng)布置上機(jī)課的實(shí)驗(yàn)預(yù)習(xí)內(nèi)容及上機(jī)實(shí)驗(yàn)的任務(wù),明確上機(jī)實(shí)驗(yàn)的案例,并要求學(xué)生準(zhǔn)備好上機(jī)調(diào)試所需的數(shù)據(jù)。這樣,學(xué)生可以帶著任務(wù)實(shí)驗(yàn),避免了盲目輸入程序,提高了實(shí)驗(yàn)效果。
其次,教師在整個(gè)實(shí)驗(yàn)課中主要起引導(dǎo)的作用,要將大部分上機(jī)實(shí)驗(yàn)的時(shí)間留給學(xué)生獨(dú)立思考解決問題。學(xué)生進(jìn)行實(shí)驗(yàn)之前,教師應(yīng)以講解重點(diǎn)、難點(diǎn)和注意事項(xiàng)為主,盡量不要面面俱到。學(xué)生自己動(dòng)手發(fā)現(xiàn)問題、解決問題,不僅可以發(fā)現(xiàn)自己編寫的程序中存在的語法、邏輯錯(cuò)誤,同時(shí)也可以充分地感受到自己分析問題、編寫程序解決問題的樂趣。
最后,教師應(yīng)將案例重新包裝,增強(qiáng)案例的實(shí)時(shí)性、生活感和時(shí)代感,從而增強(qiáng)學(xué)生解決問題的興趣。例如,對(duì)題目“輸入兩個(gè)數(shù),求它們的最大值”,學(xué)生看來索然無味,沒有什么興趣去做。筆者將其包裝為:“有一場(chǎng)2012~2013賽季NBA總決賽,對(duì)陣雙方是東部冠軍邁阿密熱火和西部冠軍圣安東尼奧馬刺隊(duì),請(qǐng)輸入兩隊(duì)比分并輸出哪支球隊(duì)獲勝?”學(xué)生學(xué)習(xí)熱情高漲,紛紛測(cè)試各種情況,更有學(xué)生提出“兩隊(duì)比分相同怎么辦”這樣的問題,可見,若學(xué)生對(duì)案例感興趣,學(xué)習(xí)的積極性也會(huì)提高。endprint
3.教學(xué)實(shí)驗(yàn)案例的開發(fā)
教師應(yīng)把實(shí)驗(yàn)教學(xué)和學(xué)生自身特點(diǎn)結(jié)合,開發(fā)系列具體的趣味性實(shí)驗(yàn)案例。同時(shí),教師應(yīng)該開發(fā)與學(xué)生生活相關(guān)的綜合實(shí)驗(yàn)案例,通過綜合案例的實(shí)踐,學(xué)生能夠了解如何將所學(xué)的理論知識(shí)應(yīng)用到現(xiàn)實(shí)生活中,如何通過設(shè)計(jì)軟件服務(wù)其他行業(yè)。通過這種方式,既可以提高教師教與學(xué)生學(xué)的針對(duì)性,又能夠調(diào)動(dòng)學(xué)生學(xué)習(xí)的主動(dòng)積極性,實(shí)現(xiàn)理論教學(xué)與專業(yè)實(shí)踐的有機(jī)融合。教師在設(shè)計(jì)實(shí)驗(yàn)案例時(shí)應(yīng)注意以下幾個(gè)問題。
首先,實(shí)驗(yàn)案例盡量不要采用驗(yàn)證性實(shí)驗(yàn)。驗(yàn)證性實(shí)驗(yàn)只是簡(jiǎn)單錄入程序查看運(yùn)行結(jié)果,更注重語言規(guī)則。學(xué)生按教材上規(guī)定的程序做實(shí)驗(yàn),整個(gè)實(shí)驗(yàn)過程是被動(dòng)的,難以調(diào)動(dòng)學(xué)生的主觀能動(dòng)性,實(shí)驗(yàn)效果不佳。同時(shí),驗(yàn)證性實(shí)驗(yàn)中,學(xué)生只知其然,不知其所以然,如出現(xiàn)問題,學(xué)生只會(huì)照著書上的程序核對(duì)是否錄入錯(cuò)誤,不知道如何使用編譯器查看錯(cuò)誤,大大降低了學(xué)生的學(xué)習(xí)興趣。因此,采用驗(yàn)證性實(shí)驗(yàn)教學(xué)只能使學(xué)生產(chǎn)生厭學(xué)情緒,難于培養(yǎng)學(xué)生的獨(dú)立思考和創(chuàng)新能力。
其次,應(yīng)設(shè)計(jì)階進(jìn)式案例,注重案例的延續(xù)性。教師應(yīng)將教案設(shè)計(jì)成階梯式,從易到難,讓學(xué)生逐個(gè)臺(tái)階實(shí)現(xiàn)案例,臺(tái)階的跨度盡量不要太大。例如,筆者在引導(dǎo)學(xué)生實(shí)現(xiàn)“求最大值的案例時(shí)”,將其設(shè)置成階進(jìn)式案例,先讓學(xué)生用選擇結(jié)構(gòu)實(shí)現(xiàn)“輸入2支NBA球隊(duì)的比分,誰將獲勝”,再讓學(xué)生用復(fù)雜的選擇結(jié)構(gòu)實(shí)現(xiàn)“輸入3支NBA球隊(duì)的勝率,誰排名第一”,讓學(xué)生用循環(huán)實(shí)現(xiàn)“輸入30支NBA球隊(duì)的勝率,誰排名聯(lián)盟第一”,最后讓學(xué)生用數(shù)組實(shí)現(xiàn)“輸入30支NBA球隊(duì)的勝率,誰排名聯(lián)盟第一”。運(yùn)用階進(jìn)式案例進(jìn)行教學(xué),學(xué)生能夠產(chǎn)生濃厚的興趣,不斷地編寫、測(cè)試和修改優(yōu)化程序,學(xué)生的編程能力和計(jì)算思維得到進(jìn)一步提高。
最后,整個(gè)實(shí)驗(yàn)課程的案例應(yīng)從屬于一個(gè)大的綜合性、設(shè)計(jì)性案例,應(yīng)將“高級(jí)語言程序設(shè)計(jì)”課程設(shè)計(jì)的綜合案例中的各個(gè)功能模塊分解到整個(gè)學(xué)期的實(shí)驗(yàn)課程中,用以提高實(shí)驗(yàn)的延續(xù)性、擴(kuò)展性。例如,筆者在課程初期將課程設(shè)計(jì)中的一個(gè)題目“NBA信息管理系統(tǒng)”展示給學(xué)生,讓學(xué)生知道“我要做什么”,然后將各個(gè)功能模塊,如球隊(duì)排名、球隊(duì)信息錄入等功能,分解到各個(gè)章節(jié)實(shí)現(xiàn),產(chǎn)生了較好的教學(xué)效果。教師設(shè)計(jì)綜合性、設(shè)計(jì)性案例,能夠以實(shí)現(xiàn)一款軟件作為一項(xiàng)長期任務(wù),再按不同功能模塊分解開來,形成每一個(gè)知識(shí)點(diǎn)的短期任務(wù)。在學(xué)生學(xué)過每一章之后,要求他們復(fù)習(xí)這些相互聯(lián)系的模塊,以使實(shí)驗(yàn)課程具有連貫性。因此,以實(shí)驗(yàn)課程的學(xué)習(xí)過程中,始終都有一個(gè)總?cè)蝿?wù)的驅(qū)動(dòng),學(xué)生將獲得到一步步邁向成功的喜悅。
4.改革課程考核方式,增加上機(jī)考試次數(shù)
課程考核是提高及檢測(cè)教學(xué)效果的重要手段?!案呒?jí)語言程序設(shè)計(jì)”課程通常采用“期末筆試考核+平日成績(jī)”的方式,平日成績(jī)包含平時(shí)理論作業(yè)、上機(jī)作業(yè)、理論測(cè)試、上機(jī)測(cè)試。這種考核方式更加注重理論知識(shí)檢測(cè),使得學(xué)生將關(guān)注的重點(diǎn)放到對(duì)理論知識(shí)的掌握,這樣并不利于學(xué)生編程能力的提高,更不能有效考查學(xué)生軟件開發(fā)的能力。筆者將考試形式由筆試改為“筆試+上機(jī)測(cè)試+平日成績(jī)”,在加大上機(jī)測(cè)試考核分?jǐn)?shù)比重的同時(shí),增加上機(jī)測(cè)試次數(shù),將3次測(cè)試分散到學(xué)期的3個(gè)階段,這樣可以減少上機(jī)測(cè)試的偶然性,更公平、更合理地評(píng)價(jià)學(xué)生的學(xué)習(xí)效果。在這種考核機(jī)制下, 學(xué)生的編程能力普遍有較大提高,有效地激發(fā)了學(xué)生的學(xué)習(xí)熱情。
總結(jié)
筆者根據(jù)多年的一線教學(xué)經(jīng)驗(yàn),圍繞“高級(jí)語言程序設(shè)計(jì)”實(shí)驗(yàn)課程改革,進(jìn)行了探討。教學(xué)實(shí)踐證明,通過對(duì)“高級(jí)語言程序設(shè)計(jì)”實(shí)驗(yàn)課程的改革,能有效激發(fā)學(xué)生學(xué)習(xí)興趣,提高教學(xué)質(zhì)量。
參考文獻(xiàn):
[1]劉丹,劉德山.C語言程序設(shè)計(jì)課程綜合性和設(shè)計(jì)性實(shí)驗(yàn)研究[J].計(jì)算機(jī)教育,2012(09):75-80.
[2]胡香娟.C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)方法探討[J].科技創(chuàng)新與應(yīng)用,2012(06):266.
[3]陳婷.語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革探究[J].實(shí)驗(yàn)技術(shù)與管理,2010(27):182-184.endprint