孫晶 方英蘭 劉高軍 宋威
摘要:《C語言程序設計》課程是計算機專業(yè)重要的基礎課,學生的理解和掌握程度,直接影響到后續(xù)課程的學習,進一步會影響到畢業(yè)設計和就業(yè)質量。為了提高教學質量,在對考試進行由紙質變?yōu)闄C考改革的基礎上,又實施了分層教學,盡可能地給予學生有效的施教。學生對本門課程的重視程度逐漸提高,算法設計能力、編程能力和應變能力都得到逐步提升。
關鍵詞:C語言;程序設計;機考;分層教學;課程改革
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2014)34-8225-02
《C語言程序設計》課程的授課對象是計算機專業(yè)本科學生,為專業(yè)基礎(必修)課,是學好后續(xù)各軟件課程必要的基礎。有別于已經掌握的漢語、英語語言,作為人與計算機交流的語言,C語言不但概念多、符號多、語法多、規(guī)則多,而且抽象、難懂,再加上需要有一定的理解力以及解決問題的清晰思路,有些學生在學習過程中會感覺到枯燥、繁雜、無趣。因此培養(yǎng)學生的學習興趣、加強對課程的重視、提高實際編程能力、將理論與實際相結合,是教師必須解決的問題。
為了提高學習質量,從2010年秋季學期開始對《C語言程序設計》課程的教學過程、成績考核進行了改革,由原來的紙質試卷考試變成全程上機考試。改革實施多年來,大部分學生增加了學習興趣,有了編寫程序的主動性和積極性,增加了專業(yè)學習的信心,提升了程序設計的能力。
考慮到學生在基礎知識、智力因素、學習能力上的差異,為了更有效地實施“因材施教”,從2013年秋季學期開始實施分層教學。在講完C語言基礎知識、程序基本設計方法之后進行分層。通過考核,外加自愿的原則,將原來的教學班打亂,重新組合成兩種班型——高層次、低層次班。分層之后,每個學生個體獲取的知識趨于最大化,極大地提高了課堂學習效率。
1 傳統(tǒng)教學與紙質考試存在的問題
傳統(tǒng)的教學是按照指定教材,在課上將重點內容進行講解,典型的問題、方法在TC/VC環(huán)境中進行演示,課后留給學生一定的紙質作業(yè)和上機編程作業(yè)。同樣的講授,理解力強的學生一聽就懂;理解力弱的學生,老師需要講多遍才有可能懂。傳統(tǒng)的教學中,老師只能顧及大多數(shù)中等學生,照顧不到特殊的學生。降低了課堂效率,也可以說浪費了某一部分學生的時間。
由于期末考核采用的是紙質考試,只是從紙面上考核學生對C語言理論、編程方法的理解、掌握程度,更對學生的學習產生誤導。部分學生也只重視理論,不重視實際動手編程。他們只滿足于“紙上談兵”,不考慮結果。因此,實際應用時,對上機環(huán)境不熟悉、編寫的程序不能順利通過,導致很多學生高分低能,在解決實際問題時,茫然無措。
2 機考及分層教學改革的探索
計算機專業(yè)課程的特點是實踐性強,學生在掌握了基本語法后重點是上機實踐,即在計算機上解決實際問題,這里包括問題的分析與抽象、程序的編寫與調試。
常言道:“實踐是檢驗真理的標準”。在學習C語言過程中,上機實踐是鞏固理論知識、增加理解力、提升編程能力的重要途徑。為了提高教學質量,讓學生真正打好專業(yè)基礎,授課教師在教學內容、教學方法、教學組織、考試方式等多方面上進行了調整。
2.1 教學方法以及教學組織上的改革
為了使教學效果更好,將兩個自然班作為一個授課班,教學內容統(tǒng)一要求。講授時,由淺入深、循序漸進。在語言的基礎上,重點放在程序設計的思想、方法、技巧的講解,結合典型例題,培養(yǎng)學生分析、設計、解決問題的能力。通過精心設計實驗題目、課后作業(yè)、調整考核比例、增加課后上機機時、多方位提供答疑指導等環(huán)節(jié)培養(yǎng)學生學習興趣,使學生重視上機編程。
對學生作業(yè)題目進行精心設計,既覆蓋知識點,又有趣味性,每個題目都像在講一個故事,把要解決的問題融在故事中,學生在讀故事的同時,不自覺地就會去想解決辦法,增加了興趣,提高了自主性,也鍛煉了思維。
調整平時考核內容。平時考核的環(huán)節(jié)包括:上機小測試、期中機考、上機作業(yè)、考勤,每一個環(huán)節(jié)的成績都會反映到平時成績中。平時成績的取得完全依賴自己的學習態(tài)度。
增加課后上機機時。由于考核重點是對實際動手能力的考核,光靠課內安排的上機時間顯然不夠,所以需增加學生課外自主上機實驗時間,并配有指定人員輔導。
多方位提供答疑指導。所有任課教師把答疑時間錯開,這樣每周學生可以有多次答疑時間,對比原來教師只給自己學生答疑的做法,學生增加了學習解疑的機會。
2.2加強上機實驗過程控制,促進考試改革
借助于“課程自動評測與抄襲檢測系統(tǒng)”,老師和學生有了C語言作業(yè)部署、學習、檢測的平臺。通過這個平臺,老師可以布置上機實驗、安排考試、檢查學生提交的作業(yè)。根據(jù)知識點,每章布置4-5道題,限定學生在規(guī)定時間內獨立提交。老師可以隨時查看學生提交的程序,及時與學生溝通、反饋。學生可以隨時把自己編寫的程序提交,系統(tǒng)對提交到服務器的程序自動判斷對錯,學生可以及時了解自己程序存在的問題,不斷進行修改,直到能夠順利通過所有測試。
這一環(huán)節(jié)起到了鞏固課本知識、增加獨立思考、加強動手能力的作用。期末就是利用這個平臺進行全程兩個小時的考試,要求學生既有編程的能力,又有時間的緊迫感。
加強過程考核,增加平時機考次數(shù)。為了緩解期末機考時的緊張情緒,之前會安排1-2次的上機考試,成績記入期評,其中期中考試的考試形式與期末一樣,為全程兩個小時的機考,隨機組卷。學生可以盡早了解考試模式,并更加重視對本門課程實際動手能力的訓練,學會調整心態(tài)。
為了滿足不同層次學生的要求,在平臺上配備了大量不同難度的習題,不受提交時間的限制。學生可以根據(jù)自身需求,隨時編程測試。
2.3分層教學,提升學習效率
分層教學是根據(jù)學生不同基礎、不同學習需求而實施教學的一種手段。是在承認學生差異、考慮學生興趣的前提下,以發(fā)展的眼光看待學生,給每個學生提供符合他們發(fā)展的教學目標與方法,是同時提高所有學生能力的理想狀態(tài)。經過調研,從三個方面進行分層教學。endprint
1)學生分層。對學生能力考核的一個重要標準就是學生的學習成績,但是在學習這門課之初,沒有可依據(jù)的成績。分層安排在講完兩周課,即學完了簡單程序設計之后進行。學生根據(jù)自己當前對C語言的理解和接受程度,選擇不同層次。在分層教學的實施過程中,這樣的分層是暫時的、動態(tài)的。過一段時間,視學生的后期學習成績、學生的具體情況,可遞進或降層。這樣更有利于學生個性化發(fā)展。
2)講課分層。對不同層次的學生,采取不同課堂。在講授編程思想、必備知識基礎上,對高層次學生,拓寬和加深問題的難度,做到拔尖提高;對普通學生,在達到大綱要求的同時,考慮他們的接受能力,適度增加和加深知識,做到穩(wěn)步推進。
3)實驗分層。練習是對所學知識的鞏固和消化。按照作業(yè)、實驗題目的難易,對不同層次的學生提出不同要求。對普通學生布置基礎題,進行強化訓練;對高層次學生,以綜合運用知識進行練習。要求學生多編程解決問題,以提高應用知識的能力。這樣使得不同層次的學生得到不同程度的提高。
3 教學改革實踐效果
實行考試改革后,學生的學習積極性有了明顯提高。由于考試時間的有限性,增加了學生的緊迫感、主動性,在程序編寫、調試程序的實際動手能力方面得到了重視并有所提高,為后續(xù)課程學習奠定了良好的基礎。經過分層教學,滿足了不同層次學生學習的需要,激勵了各層次學生朝著有利于自己的方向努力,有利于學生個性能力的張揚,有利于學生綜合素質的提高,更有利于優(yōu)秀學生綜合能力的發(fā)揮、較低層次學生潛在能力的開發(fā)。
3.1帶動學風,促進后續(xù)課程的學習
大部分學生能夠按時到課,勤于思考,互相研究,答疑的同學增多了。改變了不良學風,營造了良好學習氛圍。由于課程期間比較重視學生結構化程序設計的方法,要求編寫程序之前理清解題思路、做好算法設計,經過訓練后,在后續(xù)的“程序設計專題訓練”中,面對稍難一些的問題,學生也能逐步找到解決辦法,編出程序,順利通過測試。在小學期“學術工程實踐”課程中,要求完成一個小型管理系統(tǒng),有一定的難度。大部分學生能夠順利編寫由多個結構體、多個文件、幾十個函數(shù)組成的、2000-4000行代碼的程序,并調試成功,完成管理。
3.2提升學生的程序設計能力和創(chuàng)新能力
競賽是考核學生全面素質的一個平臺,它要求學生具有扎實的理論基礎、清晰的算法設計能力、嫻熟的編程能力、良好的心理素質和快速的臨場應變能力。
隨著知識的積累,學生的能力和自信心不斷增強。學生們更加渴求知識,渴望展示自己,參加競賽的積極性提高了,人數(shù)也不斷增多。在大二階段,報名參加全國軟件設計大賽的人數(shù)由09級的16人次(占09級學生人數(shù)14.04%)、10級的33人次(占10級學生人數(shù)26.19%),增加到11級的66人次(占11級學生人數(shù)51.56%)。全國獲獎人數(shù)由09級的1人次(占09級學生人數(shù)0.88%),到10級的12人次(占10級學生人數(shù)9.52%),再到11級的17人次(占11級學生人數(shù)13.28%),獲獎人數(shù)同比增多。
4 結論
總之,學習“高級程序設計語言”不僅要使得學生在程序表達和設計上得到培養(yǎng),更重要的是在掌握解決問題的思想、方法和手段的同時,實際動手編程能力有所提高,從而增長設計程序的能力。因而,將“C程序設計”課程的考試改為上機考試是很有益的,可以改變不良的學風,營造良好學習氛圍;可以加強學生對課程的重視,提高學生程序編寫、調試等實際動手能力,提升學生的程序設計能力和創(chuàng)新能力,為后續(xù)課程學習、為培養(yǎng)合格的專業(yè)人才奠定良好的基礎。
對“C程序設計”課程實施分層次教學也是必要的,可以針對不同層次學生的需求給予相應的學習指導,以達到學生全面發(fā)展的教學目標;可以激發(fā)不同層次學生學習的欲望,向著更高更深的知識海洋探索;可以鞭策任課教師積極思考、合理取舍,做到充分了解學生、合理安排進度,能夠極大地提升老師的組織與應變能力。
參考文獻:
[1] 李學會.C程序設計教學改革與實踐[J].實驗室科學,2010(4)33-34.
[2] 肖瀟,賀細平.C語言程序設計教學探索[J].計算機教育,2011(5):65-68.
[3] 李文新,梅宏,陳徐宗.北京大學計算機學科的教學體系改革[J].中國大學教學,2008(4):14-16.endprint