摘 要: 本文作者通過分析傳統的C程序設計語言教學方法的不足,結合自身的教學經驗,提出了在C語言教學當中利用“項目導入、任務驅動”教學方法的辦法及具體措施,來應對繁雜的教學內容、激發學生興趣、提高教學質量。
關鍵詞: 項目導入 任務驅動 C程序設計語言教學 教學設計和實施
1.傳統教學模式所面臨的問題
學習計算機語言的最終目的是編程序,即以程序方式控制計算機自動、連續、協調運行,幫助用戶快速、精準地完成一些手工操作無法完成或完成效果不好的任務。
目前眾多的程序設計語言當中,C語言以其靈活方便、豐富的運算符及數據結構、強大的硬件操作能力、高質量的生成代碼和高可移植性等優點,得到了廣大編程愛好者的肯定,使之在系統軟件、應用軟件、計算機硬件開發等領域都得到了廣泛應用。基于C語言的眾多優勢,目前為止,大多數高等學校計算機類相關專業都將C語言作為必修課程開設。條件較好的高校,甚至對理工科非計算機專業的學生也開設C語言程序設計課程。在可預見的將來,C語言的地位還無法被其它語言所取代。
計算機編程語言的教學主要達到兩個目的:一是講授語言本身的語法規則;二是教授算法,通過算法的學習加深對計算機語言具體應用的了解。
傳統的語言教學模式一般是將主要課程內容放在語法規則的詳細講授上,大部分教材也都是按這種思路來編寫的,教材內容注重基礎知識和語法細節的介紹。在十多年前甚至更早,計算機還未普及,計算機網絡還沒有達到足夠的覆蓋程度,計算機方面的資料也比較少,人們普遍對計算機知之甚少。在那種情況下,傳統的教學模式比較適合當時的實際需求,也涌現出了以譚浩強等為代表的一大批優秀教師所編輯的優秀教材,為當時中國計算機的發展做出了重大貢獻。
隨著程序設計語言版本的不斷更新,新版本比舊版本在功能、性能等方面都有提高,以更好地滿足程序開發人員的不同需要。但是,為了兼容舊的版本,新版本一般都要把舊版本的大多數內容保留下來。這樣就導致版本越高,語言本身的內容就越多,對于學習者來說,要求掌握的內容就越龐雜。若再按傳統教學方法,以講授語言本身的語法規則為重心,一方面內容太多,講不完;另一方面因為跟實際應用脫節,也不容易激發學生的興趣,而最重要的一個問題是這種教學模式不利于培養學生分析及解決實際問題的能力。即使學生對語言本身的語法規則已經掌握得很好,碰到實際問題時,也很難找到好的解決辦法。就如同學英語,背了好多單詞,學了好多語法,但碰到外國友人時,想表達的意思卻說不出來。
實際教學當中,到底哪些要講?哪些不講?如何講?是經常擺在教師面前的很難確定的選擇題。很明顯,傳統教學模式已經無法滿足新的教學需要了。
程序設計語言的教學到底應該以什么為重心?
隨著PC機及計算機網絡的普及,社會各階層人員的計算機基本素質都比以前有了很大程度的提高。計算機各類資料豐富多彩,獲取計算機相關資料的途徑比比皆是,這給計算機教學帶來了極大方便。在這樣jS4pppQIrthDhqxLS1ZTRw==有利的條件下,我們完全可以通過實施全新的教學方法以取得更好的教學效果。
我經過多年的教學實踐,認為在當前大環境已經改變的前提下,教學內容不應該再以講授語言本身為重點,而應該把培養學生分析及解決實際問題的能力作為語言教學的核心,而語言本身的教學工作穿插到實際案例中就可以了。即以“項目導入、任務驅動”教學法來實施具體教學工作。
2.“項目導入、任務驅動”教學方法簡介
“項目導入、任務驅動”提倡“在學中做,在做中學”。用項目和任務的方式引入新知識,讓學生在實踐中鞏固所學理論知識,融會貫通,真正全面提高學生綜合職業素質,為企業培養合格的應用型人才。
“項目導入”是將工程實踐項目貫穿于教學的始終,用項目和任務進行新知識的引入,激發學生學習動力。“任務驅動”是在教學過程中,根據項目總體要求,以完成一個個具體的任務為線索,把教學內容巧妙地隱含在每個任務之中,讓學生自己提出問題,并經過思考和老師的點撥,自己解決問題。
3.項目與任務的設計原則
“項目導入、任務驅動”教學法的基本特征是“以任務為主線、教師為主導、學生為主體”。因此,項目與任務的設計要以激發學生學習興趣為出發點,以滿足學生的探究欲望為主觀愿望,以完成教學任務為最終目標。
3.1項目與任務要能激發學生興趣
項目與任務的設計必須要激發學生的學習興趣,使學生積極主動的參與到學習活動中來。因此,要擺脫課本內容的束縛,大刀闊斧地處理教材。項目與任務的內容要使學生充分感覺到學有所用;不能選用枯燥的任務迫使學生去完成,從而挫傷其學習的積極性與主動性。
3.2項目與任務要多層次、有梯度
在學生群體活動中,學生的學習水平、個性特征、興趣愛好、基本素質都有很大差異,表現出不同的活動狀態。與此相適應,項目與任務的設計應該考慮多層次、有梯度,讓所有學生都能結合自己的實際情況進行取舍。
3.3項目與任務要形成一個系統
項目與任務的設計要注意各個知識點之間的聯系,讓學生的任務和知識形成一個系統。設計任務的時候要處理好局部和整體的關系,形成子任務和母任務的關系,子任務服務于母任務,以保證很好地實現最終教學目標。
3.4項目與任務要真實、合理
在設計項目與任務時不要只考慮到如何提高學生對各知識點的掌握程度,把所有的知識點都強行加入到任務里來,要考慮任務是否符合客觀實際,是否合理。任務設計特別強調具有針對性、可操作性和實用性。
4.“項目導入、任務驅動”教學方法在C程序設計語言教學當中的具體運用
本著以上原則,我經過多年教學實踐,選擇確定了以下幾個任務及項目。
4.1簡單的四則運算計算器。目的是讓學習者掌握數據的輸入、輸出、存儲(常量及變量)、數據加工等程序設計基本知識結點,掌握順序及選擇結構程序的設計與實現,對程序設計有一個初步的了解。
4.2針對具體某個企業的企業人員工資管理系統。掌握數組的定義及使用,循環結構程序設計的實現方法及函數、文件等內容;掌握一些常用算法如排序等。
4.3針對具體某個企業的企業人員基本信息管理系統。掌握結構體、字符串等數據類型的定義及使用;了解完整系統的開發流程及組織方式。
4.4通用的企業人員基本信息管理系統。了解內存管理模式,掌握指針及鏈表的一般操作。
4.5圖形界面的通用企業人員基本信息管理系統。掌握圖形界面軟件的開發要點。
其中后四個任務屬于同一個完整的項目,只是在不同教學階段根據教學需要的不同,側重點不一樣而已。
以上這幾個教學任務及項目,除了包含C語言的所有相關知識結點外,還涉及軟件工程、數據結構、算法、操作系統及計算機硬件相關課程的內容,真正是一種涵蓋面很廣泛的教學活動。有利于對各相關知識點的整合與應用,真正提高學生分析、解決實際問題的綜合能力。
認識的辯證過程是由從感性認識到理性認識,又從理性認識到實踐這樣兩次飛躍構成的。從實踐中來,到實踐中去。以上這種教學任務與項目的安排,都是針對現實中的具體問題而設計的,符合認識的一般規律:理論與實踐密切結合,教學目的明確,老師好教,學生愿學,避免了傳統教學模式糾纏于語言規則細節的缺陷,經過教學實踐的檢驗,收到了明顯的效果。
5.教學方法實施過程中面臨的問題及解決辦法
這種教學模式不同于以課本為主線、教師主動講、學生被動學的傳統的教學模式,必然在具體實施過程中遇到一些問題。歸結起來,主要有以下幾個方面。
5.1認可問題。由于不同于傳統教學方式,剛開始不容易得到認可,學生可能也會不適應,這就要求授課教師提前與相關領導及部門充分交流,取得他們的支持。同時,在開始授課前就教學方法的特色、優勢及采用這種教學模式的原因、目的對學生要加以解釋和說明。
5.2課本問題。按此種教學模式,課本只能充當參考書的角色,此時要求課本的內容要全面,以方便學生查閱相關知識點。同時,教師要打破課本本身章節的限制,不再拘泥于課本的內容體系。
5.3教師問題。這種教學模式涉及的內容比傳統教學模式要多得多,授課過程中可能出現的情況也要相對復雜,教師授課的難度加大。因此,要求教師對所講授內容熟練,了然于心,以應對可能面臨的各種問題。
5.4方式問題。這種教學模式再不能以傳統的黑板講授的方式來實施了,應該以實踐為主,一邊講一邊做,做的過程中對于出現的問題再集體討論,在教師的引導下幫助解決。
5.5考試問題。此種教學模式,傳統的以知識記憶為特色的筆試考試方式不利于評估其教學效果,理想的考試方式是以小組為單位,限定時間,進行小規模的課程設計,完成后公開展示及答辯。這種考試模式一方面體現了公平與公正的原則,另一方面有利于學生相互交流和學習。在實現這種理想的考試方式相對有困難的情況下,我們可采用壓縮筆試成績所占總成績比例,增大項目設計成績在總成績中所點比重的方法進行教學評估。
5.6環境問題。此種教學模式,大量內容需要學生課后完成。因此,要提供課余的上機實踐場所及充足的實踐時間,最好再提供方便的網絡環境,以方便資料的查詢及師生、生生之間的交流與合作。
參考文獻:
[1]嚴蔚敏,吳偉民.數據結構[M].北京:清華大學出版社,1997,10.
[2]傅清祥,王曉東.算法與數據結構[M].北京:電子工業出版社,1998.
[3]譚浩強.C程序設計[M].北京:清華大學出版社,1996.
[4]高云.項目導入法在“工程造價”課程教學中的應用研究.揚州大學學報,2010,14,(4):63-65.