項目驅動的分組教學法在C語言課程設計中的實踐
計算機教育
作者:樓軼超
摘要:針對C語言實踐教學中存在的問題,提出在C語言課程設計的教學中采用項目驅動的分組教學模式。融合軟件工程思想,從項目設計、分組劃分、模塊化思想應用、編程思想訓練、測試、考核方式等多個方麵改革實踐教學環節,因材施教,使得學生在解決實際問題的過程中,通過分工協作,提高自主學習能力,培養起團隊合作精神,從而提高教學效果和教育質量。
關鍵詞: C語言課程設計;項目驅動;分組教學;模塊化思想;協作
中圖分類號:G642 文獻標誌碼:A 文章編號:1006-8228(2013)08-65-03
0 引言
當今社會,隨著信息技術的高速發展,各種程序設計語言蓬勃發展,如C、C++、JAVA、C#等。在這些語言中,C語言是各高等院校的計算機及相關專業的一門核心基礎課程,它的學習效果會極大程度影響學生後續相關課程,如數據結構、操作係統、算法分析以及其他高級語言的學習。
作為一種實踐性很強的程序設計語言,C語言課程的教學一般采用理論教學結合上機實踐的模式,理論教學以講授語法和基本算法為主,上機實踐則主要練習簡單程序的編寫,通常以驗證性實驗為主,以掌握、鞏固基礎的語法為目的。從教學效果來看,學生雖然掌握了不少語法知識,但在麵對實際問題時,往往不能靈活應用。為了進一步拓展學生的實踐編程能力,我們學院繼兩個學期的C語言教學後開設了“C語言課程設計”課程,該課程以設計性和綜合性實驗為主,重點培養和鍛煉學生獨立分析問題,解決實際問題能力。根據這一教學目標,我們結合日常教學,針對實踐教學中存在的不足,開展項目驅動的分組教學方法,使學生形成自主和協作型的學習模式。
1 教學現狀
C語言是一種麵向過程的結構化程序設計語言,具有數據類型較多、表達式豐富、語法結構複雜、語法規則繁多等特點,其授課對象往往又是第一次接觸程序設計語言的低年級學生,這些都給學生學習和教師教學帶來了難度。通過對學生進行教學效果調查,發現在“理論+實驗”的教學模式中,由於課時限製等各種因素,實際教學常存在著如下問題。
⑴實驗訓練以知識點訓練為主,與實際應用存在脫節。
在理論課後的上機練習,通常是針對特定語法設計,形式上采用練習書上的例子、驗證某個語法或者實現一些簡單的相關算法,驗證性實驗占了多數。這種訓練模式雖然能夠加深學生對各種語法細節的認識,但同時導致的問題是,學生容易孤立地去看待各章節的語法,割裂了各知識之間的聯係,在編程時以模仿改寫書上的程序為主,欠缺工程型知識,處於被動灌輸的學習狀態,常常會覺得語法知識點繁瑣、內容枯燥,很難調動積極性,當麵對實際工程問題時,程序規模一大,就束手無策,無法有機地綜合應用所學知識去解決問題。
⑵沒有形成係統化的分析過程。
由於教學和教材均側重於對語法進行講授和剖析,未強調分析及測試的重要性,也沒有將軟件工程的思想融合在實踐教學中,因此,長久以來,學生養成一接觸題目就馬上開始編寫代碼的習慣,並且,運行時往往僅按照預先設定的正確的輸入數據,去驗證自己的所編的程序是否正確。
⑶忽略算法邏輯思維能力的培養。
從學習效果來看,學生常存在著兩種誤區,一種是將參與和獲得計算機等級考試證書作為學習目的,這就導致他們習慣於程序填空題形式的編程方式,獨立編程能力欠缺;一種是對C語言中的指針、遞歸問題存在畏難情緒,又認為就業時可以選擇其他語言工具如Java來避免這些難點,沒有認識到指針和遞歸的真正價值在於學習它們過程中得到的思維深度[1],忽略了推理能力、抽象思考能力方麵的培養。
⑷實踐操作能力不強。
學生的實驗操作能力不強主要表現在對程序運行中一些常見編譯問題無法很快做出反應,不會依據提示信息去判斷發生錯誤的原因,對一些運行問題更是束手無策,通常一有問題產生,就轉向尋找配套的實驗指導書中所提供的正確答案,或者依賴教師指出問題所在,幫忙改正錯誤。
2 項目驅動的分組教學方法的具體實施
建構主義學習理論認為,個體的認知發展與學習過程密切相關,知識獲取是以學習者為中心,利用“情境”、“協作”、“會話”等學習要素,通過意義建構的方式而獲得。針對C語言課程設計這一門實踐性非常強的課程,我們采用項目驅動的分組教學方法,在建構主義學習理論基礎上進行教學設計,以學生為中心,融合軟件工程思想,以培養學生的程序設計能力、創新能力、邏輯思維能力和協作精神為主線,通過項目任務引導他們主動學習,去深入理解軟件設計思想,並加深對重要知識點的理解。為了將課內實踐和課外自學有機結合起來,我們將15個學時的上機實踐分為5次,集中安排在5天內,每次上機後留充足時間,要求學生去查閱資料,提升獲取信息、解讀信息的能力。整個教學過程中,需要在多個教學環節注意改革和創新。