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