摘要:本文針對目前C程序設計課程的教學過程中不能夠充分地調動學生學習的積極性、課堂教學中沒有突出課程本身的特色、學生容易感到枯燥乏味等問題,提出采用任務驅動方法進行教學。文中重點論述了任務驅動教學方法內容,如何設計驅動教學任務,同時還提出教師在采用任務驅動教學模式應注意的問題。
關鍵字:C程序設計;任務驅動;層次教學;彈性教學
隨著信息時代的來臨,社會對高校畢業生的要求越來越高,基礎扎實、專業面寬、動手能力強的畢業生日益受到用人單位的歡迎,其中計算機技術水平的高低是衡量人才的重要尺度。如何加強計算機基礎教育,為各專業培養出具有扎實的計算機應用能力人才,是計算機基礎教學亟待解決的重要課題。
C程序設計課程是國內大部分高校中絕大部分專業的必修計算機基礎課。在實際的教學過程中,我們發現,如果采用傳統的教學方法,如滿堂灌的單項式教學法,或者按照從易到難,從簡單到復雜的順序循序漸進地進行教學,學生容易感到枯燥乏味,不能充分調動學習的積極性、課堂教學中沒有突出課程本身的特色,沒有給學生提供一個充分進行創造思維的空間[1]。
如果采用任務驅動模式教學,不僅教學效果好,而且非常有利于培養學生的素質和能力。
1任務驅動教學方法內容
任務驅動模式教學以學生為中心,以任務為驅動的教學方式,屬于探究式教學的一種,其教學過程是:教師的教學與學生的學習圍繞著一個目標,基于幾項任務,在強烈的問題動機驅動下。通過對學生資源的積極主動運用,進行自主探索和互動協作的學習實踐活動,適合于培養學生的自主學習能力和相對獨立分析問題、解決問題能力[2]。
它是一種以學生主動學習與教師加以引導相結合的教學方法,既符合探究式的學習模式,又符合教學的層次性和實用性。它可以讓學生在完成“任務”的過程中,形成分析問題、解決問題的能力以及獨立探索的學習精神和與人合作的精神。
任務驅動教學法具有以下特點[3]:
(1) 任務驅動。以工作任務為中心引領知識、技能和態度,讓學生在完成工作任務的過程中學習相關理論知識,發展學生的綜合職業能力。
(2) 目標具體,內容實用。任務驅動教學法的教學目標清楚明確,能更好地指導教學過程,也可以更好地評價教學效果;教學內容的選擇要緊緊圍繞工作任務完成的需要,不求理論的系統性,只求內容的實用性。
(3) 做學一體。任務驅動教學法打破長期以來的理論與實踐二元分離的局面,以工作任務為中心,實現理論與實踐的一體化教學。
(4) 提高學生分析問題和解決問題的能力。
(5) 提高學生學習的主動參與意識,激發學生的學習興趣。
2任務驅動教學任務設計
采用任務驅動法進行教學,教師教學和學生學習都是圍繞如何完成這個具體的任務進行。教師教學思路清晰,學生學習目的明確,更容易掌握學習內容。
課程任務教案設計是整個任務驅動教學模式的起點和物質基礎,一般來說將需要將教師教學過程中積累的授課技巧、授課方法加以總結,并巧妙地設計組合成任務場景,同時精心設計每次課的教學任務的引入以及要達到的任務目標。對于每一次上課的任務樣本模型,通過設計、修改、論證和研討,力爭能夠較廣地反映課本概念,邏輯性強,重點突出,能啟發學生思維,培養學生能力,引導學生創新。
采用任務驅動教學模式不是孤立地介紹各部分的概念、作用和操作方法,而是先宏觀上將該問題作為一個大的任務呈現出來,例如在“程序設計基礎—C程序版”教學中的循環程序設計里面的內容是有一節講素數判斷問題程序如何編寫,教師通過講解如何利用結構化程序編制思想讓學生掌握該部分教學內容,教師可以將整個內容設計為“判斷素數”這一具體的任務。首先,要完成這樣一個相對復雜的任務,必須要有原始數據,然后分析其是否是素數,最后輸出結論。這樣,就將一個大的任務分解成為三個小任務:(1)輸入任務——利用系統庫函數scanf;(2)分析判斷任務——需要自定義函數;(3)輸出結果——利用系統庫函數printf。通過教師的分析,學生對結構化程序設計中“自頂而下、逐步求精”等概念就有了直觀的認識。接下來教師再講如何判斷、利用數學上的概念來實現等該任務方法。
這樣教學,學生學得快、學得牢。不論對學生還是教師,整個教學過程都顯得條理清楚、層次分明、順理成章、輕松自然。
進一步地來說,學生可以在完成任務的成就感的驅使下,還可以課后自己設計與課程內容相關的其他任務,這進一步激發了學生學習的主體性和能動性。
3任務驅動教學目標實現
采用任務驅動法教學,還可以使對計算機有興趣的同學,根據自己的興趣愛好、能力特長,在課堂外自主地選擇自己感興趣的內容,自己摸索。計算機教學如果僅僅局限于教材所指定的軟件,是遠遠不能滿足學生對計算機知識的求知欲的,也是不能跟上計算機發展的需要的[4]。
在教學中,學生常有這樣的疑問:“現在計算機軟件的種類很多,為什么我們一定要學教材中指定的軟件呢?這個軟件到底有什么優越性呢?”教師可以將這些軟件系統的優勢和缺點給學生講解清楚,讓學生根據自己的情況自主選擇。如針對C語言實驗軟件系統,習慣使用DOS系統的同學可以選擇傳統的Turbo C 2.0,喜歡Windows環境的同學可以使用Win TC或VC++ 6.0。
采用任務驅動法教學,學生為了完成具體的任務,一方面會認真學習教材內容;另一方面,當學生發現有些功能用教材中所介紹的方法不能令其滿意時,就會嘗試著尋求其他參考書或者資料來幫助解決問題。這樣,就把計算機的學習內容從教材內可以延伸到教材外,學生在探索其軟件的學習過程中,直觀地感受到不同解決方法的區別、特點及優劣,除了掌握教材限定的書本使用方法,同時還學會了同一問題其他的程序編寫方法。學生學習的內容會更多、更深,知識面會更廣。
在C程序設計的實驗課或者程序課程設計課堂上,教師可以根據一個班學生個體差異與他們不同基礎、不能興趣愛好基礎上,對整個班級學生進行分類排隊,按照一定的標準將其劃分為不同的層次,可以將整個班級不同層次學生不同幾組,針對每個層次的不同特點,相應地布置難易程度不同的實驗任務或者課程設計任務,有針對性地加以指導。
總之,任務驅動教學法有利于實現個性化教學、分層次教學和彈性教學的教學目標。
4任務驅動教學模式應注意的問題
我們的教學目的不僅是向學生傳授知識要點,更主要的是教會學生使用恰當的學習方法,激發學生學習的興趣,為學生的終身學習做好準備。C程序設計課程采用任務驅動教學模式,其優勢是明顯的,但也存在一些問題。由于教師主要是進行方法的引導,學生有更多時間動手摸索,而學生的學習能力是不同的,因而在同一節課內,全班同學所掌握的程度會有所不同,容易造成學生成績兩極分化和教學知識點的疏漏。
如果課程一開始設計的任務超出學生的知識范圍過高,那樣反而使得學生反感、厭學,如果任務內容是前幾章涉及到的程序例子內容,利用已有的知識,使得學生上手容易,這樣完成任務就不成問題,學生也有成就感;同時,任務內容最好跟同學們實際生活相關,否則學生會感到枯燥等,比如指針學習任務可以設計成生活中的密碼箱游戲。
運用“任務驅動”教學法于教學之中,不但要服從一般性的教學原則外,還要把握以下幾個原則[5]:
(1) 任務適當原則?!叭蝿镇寗印苯虒W法的關鍵就是“任務”的建立和下達,建立難度適中的任務關系到教學的成敗。這個任務應該是學生通過適當努力能夠完成的,所以任務設置要適當。
(2) 學會學習原則。“任務驅動”教學法,將目標定在培養學生的學習動機和能力上。在教師的指導下,使學生能根據已有的知識經驗,掌握有序的學習途徑,在教師的指導下去解決問題,完成任務。在完成任務的過程中學會學習。這一目標的定位,也符合目前終身學習的指導思想。
(3) 學用互促原則?!叭蝿镇寗印苯虒W法完成教學任務的途徑是通過“用”來促進“學”的,用后知不足才能學,學以致用,學用互動,相互促進。
(4) 合作交流原則。在教學中要注意個體探究能力的差異。把個體自學與群體討論,合作探究結合起來。提供三個學習空間,把個體學習、小組學習、班級學習有機地結合起來,使學生人人參與,鼓勵提出不同見解,使教學方式變成更為生動、活潑的全員探究合作教學。
5使用情況
基于任務驅動教學方法內容,是根據作者實際教學過程中學生存在的問題提出的,并最近幾年的程序設計基礎課程教學實踐中運用,通過考試成績和學生信息反饋,取得了比較令人滿意的教學效果。
作者教授2005級學生時采用的傳統的教學方法,期末考試成績反映學生的成績不是很理想(如圖1);在教授2007級學生時使用了基于任務驅動教學方法,取得了良好的教學效果(如圖2)。
對C程序設計課程使用基于任務驅動教學方法的進行教學與改革,堅持以人為本的教學理念,對提高教學質量,實現培養目標起到了促進作用。
通過作者自己的選擇基于任務驅動的實踐教學,發現學生不僅可以在輕松的氛圍中學到很多知識,而且能夠很好地把握知識點在實際任務中的應用,同時還能為使用該方法進行后續課程學習打下很好的基礎。

6結語
C程序設計是一門邏輯性強、知識內在聯系緊密的課程,在教學過程中不僅要精選設計教學任務,明確講授任務重點及難點,而且要注意學生對任務的學習效果反饋情況,才能為下步如何改進完善該教學任務以達到逐步提高教學質量的目的。
任務驅動教學方法有利于激發學生的內在積極性與潛能的充分發揮;有利于培養學生分析問題、解決問題的能力,進一步提高學生的創新能力和協作能力。
參考文獻:
[1] 秦玉平,沈澤剛. C語言程序設計教學法研究[J]. 渤海大學學報:自然科學版,2005,26(2):113-115.
[2] 徐肇杰. 任務驅動教學法與項目教學法之比較[J]. 職業與教育,2008(11):36-37.
[3] 章振周,唐成棉. 職業教育任務驅動課程模式的建構[J]. 中國職業技術教育,2008(6):45-46.
[4] 吳耀興,王澤林. 工程管理專業實踐教學改革探索[J]. 中國成人教育,2008(5):146-147
[5] 金春寒,郭成. 策略性知識的學與教[J]. 四川教育學院學報,2006(10):7-8.
Discussion on Task-drive Teaching Method of C Language Programming
YANG Sheng-quan, LIU Bai-lin, LIU Ping-ping
(School of Computer Science and Engineering, Xi'an Technological University, Xi'an 710032, China)
Abstract: The paper proposes task-drive teaching method based on the current C Language Programming course in which exist plenty of problems, such as teaching can not improve the initiative of student study fully, classroom teaching does not pay attention to the feature of the course, so that students feel boring easily. The article states the content about task-drive teaching method in emphases, and talks about how to design task-drive teaching task, at the same time it puts forward some problems which teacher must attach importance to when use the task-drive teaching method in class.
Key words: C Language Programming; task-drive; levels-teaching; flexible teaching
(編輯:彭遠紅)