

摘要:通過問卷調查的方式指出C語言程序設計教學過程中存在的問題,結合CDIO工程教學理念,從教學內容、教學方法、教學手段和考核評價方式4個方面提出改革措施。
關鍵詞:應用型;C語言;教學改革
0、引言
C語言程序設計是計算機科學與技術、網絡工程、通信工程、軟件工程、信息管理與信息系統、游戲設計等相關專業的必修課程,也是數據結構與算法、C++程序設計、數據庫原理與應用、PHP程序設計、Javascript等后續相關專業課的基礎,在計算機相關專業的課程體系中起著重要作用,國內高校也在越來越重視該課程的教學。C語言已成為學生進入大學后接觸的第一門專業必修課程,也是學生學習的第一門編程語言。如何培養學生的學習興趣,提高學生分析與解決問題的能力和團隊協作能力,進而培養應用型、高水平的IT人才已成為該課程教學改革的重點。
近年來,C語言的教改工作已取得一定成績,提出了項目教學法、任務驅動教學法、創新性趣味化教學法等,但這與我們培養應用型、高水平IT人才的目標仍存在一定差距。為了達到這個目標,我們將TOPCARES-CDIO工程教學理念融入本課程的教學過程中,并結合學校學生的實際情況改善教學狀況,培養具備高技術、高素質、符合現代企業需求的應用型高科技人才。
1、c語言教學中存在的問題
我們對201l級信息安全1班、2班和計算機應用1班、2班、3班共164名大專學生進行了匿名問卷調查,其中信息安全1班、2班共77人,計算機應用1班、2班、3班共87人。問卷以教學班為單位發放,共發放164份,收回有效問卷164份,有效問卷率100%。問卷的設置和統計結果見表1。
對表1的調查統計結果進行詳細分析,可以發現,92%的學生認識到C語言的重要性,只有16%的學生基本達到應有的C語言編程能力,主要原因歸納如下:
(1)教學內容存在問題。問卷統計結果表明,大部分學生認為理論課時與實踐課時的分配不合理,本課程要求學生記憶大量的語法規則、語句格式,容易使學生產生畏難心理,進而對c語言失去信心,因此教學內容的選取和組織顯得至關重要。
(2)教學方法和教學手段存在問題。問卷統計結果表明,84%的學生沒有學好C語言,其中44%的學生是上課聽不懂,56%的學生即使能看懂程序,自己編寫程序時也無從下手。C語言所學知識都比較抽象、枯燥、不易理解,很多教師都采取“先理論,后實踐”的教學模式,以自我為中心進行授課,對學生的作業不能及時做出反饋,最終導致學生興趣下降、教學效果不理想。
(3)學生的學習方法存在問題。問卷統計結果表明,74%的學生遇到問題時通過直接上網搜索解決,76%的學生完成作業時采取直接抄襲或者上網搜索,73%的學生表示不會利用課余時間進行編程練習。
(4)考核評價方式存在問題。問卷統計結果表明,69%的學生認為目前的考核方式不能有效地考查學生的C語言編程能力,考核過程中存在不公平現象。例如,對于抄襲作業的評定方法,期末考核方式的選擇,平時成績和期末成績所占比例大小等。
2、具體教學改革
在C語言程序設計教學中,應該將培養學生分析與解決問題能力、團隊協作能力作為主線,逐步引入c語言知識,提高C語言編程能力,進而培養應用型、高水平的人才。因此,需打破原有的教學模式,結合上文中提出的問題,從教學內容、教學方法、教學手段和考核評價方式人手,結合學生的實際情況,制訂行之有效的c語言教學改革措施。
2.1 教學內容
以培養應用型IT人才為原則,對c語言程序設計課程的教學內容進行整合和分類,從應用出發,分散重難點,把c語言具體教學內容整合成表2所示的4大模塊。強調以“用”為主,將數據類型、運算符、表達式等抽象的知識分散到各個模塊,即用即學;各個模塊對應一個模塊項目和多個編程題目,項目選取與學生息息相關的問題,如成績管理系統、學籍管理系統、學生選課系統等,重在培養學生的動手能力;在C語言初級應用階段,我們還將程序編程風格[納入教學內容,旨在培養學生良好的編程風格及習慣。
2.2 教學方法和教學手段
基于CDIO工程教育理念,我們以“項目為導向”組織教學,通過任務驅動,將相關理論知識引入教學過程中。課堂講授堅持“精講多練”、“即學即用”、實用為目標的綜合性原則,采用案例驅動的教學模式,通過案例來引導學生分析和解決實際問題,并最終用C語言來實現,為培養應用型人才打下基礎。我們將學生分為2-3人的小組,通過討論完成模塊項目的設計、編碼、調試和運行,培養學生的團隊協作能力。
教學實施過程中,以學生為主體,鼓勵學生自主學習,加強職業能力的訓練,運用啟發引導、任務引領、問題導向、分組討論、協同教學等多種互動式教學方法,完成課程教學任務。我們還利用網絡教學平臺向學生提供豐富的教學資源,如課件、案例、教學大綱、網絡資源等,學生還可以利用網絡教學平臺提交作業。
為了提高學生的C語言編程能力,我們引入在線評測系統(Online Judge System,簡稱OJ)。OJ可以實現在線提交程序、實時評測、在線考試、討論等功能。我們可以將平時實驗和課后作業公布在OJ上,學生通過OJ完成作業和實驗,既可以保證評測結果的公平性和實時性,也可以減輕教師的工作負擔。教師從瑣碎的評測工作中解放出來之后,可以通過OJ討論區或者QQ聊天群實時解答學生課后遇見的編程問題,從而提高學生的學習興趣。此外,學生通過在OJ上做題,排名不斷上升,產生成就感,隨后會更主動地去完成更多的題目,從而形成愉悅的學習過程。
為了提高程序的可讀性、可維護性、可重用性,我們引入Indent開源軟件,它可以對c語言程序進行格式化,協助教師指導學生規范編程風格,促使學生養成良好的編程習慣。具有良好編程風格的程序,可以讓程序員在很短時間內看清程序結構,理解設計思路,從而提高編程效率、降低出錯率。
2.3 考核評價方式
以CDIO倡導的“過程評價”為基礎,結合本課程的實際情況,制訂行之有效的考核評價措施,包括以下兩個部分:形成性考核和終結性考核。形成性考核從學生的出勤、日常表現、作業、測試、項目完成情況及完成質量對學生進行全方位的考核,占總成績的70%;終結性考核占總成績的30%,期末在OJ上以上機考試的形式完成,是對本課程所學內容的綜合性考核,能有效反映學生的C語言編程能力。
在c語言程序設計課程中,抄襲是一個無法回避的問題。國外教育機構針對c語言課程代碼抄襲現象進行的調查表明:高達85.4%的學生承認抄襲過別人的編程作業。如果抄襲不能得到有效的檢測,那些抄襲的學生不被制裁,學生學習的積極性就會降低,我們提出的考核方式就達不到預期的效果,也不能真實地反映教學改革的成果。所以,我們引入抄襲檢測。
抄襲檢測就是檢測一個程序是否是通過對另一個程序的修改而來的。兩個程序的相似度越高抄襲的嫌疑越大。首先,我們要從OJ系統上收集學生提交的程序;接著,使用抄襲檢測工具進行檢測,通過對學生的程序代碼進行兩兩比較,得出相似度;最后,獲取存在抄襲嫌疑的代碼,并根據題目難易程度進行一一確認。這樣既能保證考核的公正性,也能減輕教師的工作負擔。
為了促使學生養成良好編程風格,我們將其納入課程考評范疇,只要涉及程序代碼考核,編程風格好壞也將影響學生成績的評定。
3、結語
結合多年的課堂教學經驗和學生的實際情況,以培養應用型人才為目標,我們提出了C語言程序設計課程教學改革方案,依托學校的網絡教學平臺、在線評測系統、111dent開源軟件和抄襲檢測軟件,并實踐于成都東軟學院2012級信息安全和計算機應用專業的c語言程序設計課程教學,教學效果顯著。教學實踐證明,這種教改方案不僅提高學生的c語言編程能力,還提高了學生分析與解決問題能力、團隊協作能力,為培養符合現代企業需求的應用型高科技人才打下堅實基礎。接下來,我們將根據實際教學情況,對本文提出的C語言教改措施進行進一步的完善。