李彩玲
(臨汾職業技術學院,山西 臨汾 041000)
任務驅動教學法在《C語言程序設計》中的應用
李彩玲
(臨汾職業技術學院,山西 臨汾 041000)
高職教育的培養目標是高素質技能型人才,重點是培養學生解決實際問題的能力,增加學生就業機會。因而結合《C語言程序設計》課程教學,采用“任務驅動”教學方式,在教學過程中模擬真實工作環境,以工作任務的方式來整合教材內容,激發學生的求知欲望和創新意識,培養學生分析問題、解決問題的能力和將來在實際工作中的操作能力。
任務驅動;程序設計;教學方法;創新能力培養
目前,《C語言程序設計》已經成為各類高等職業院校計算機專業的入門語言,它具有功能豐富、表達能力強、目標程序效率高、移植性好等特點,而且很多新型的語言都衍生自C語言。通過對C語言課程的學習,可以培養學生分析問題及解決問題的能力,為后續課程及其他程序設計語言的學習和應用打下堅實的基礎。為更好地促進對C語言的學習及應用,我們在教學過程中模擬真實工作環境,采用了“任務驅動”教學方式,充分發揮學生在課堂上的自主學習能力,挖掘學生的特長和潛能,培養學生的想象力和創新能力。
“任務驅動”教學法是以建構主義的認知靈活性理論為基礎的一種教學方法,它將教學內容設計成學生感興趣的、有意義的具體任務。教學中以完成任務為主線,把知識點巧妙隱含在任務中,由教師引導學生,學生借助教師的引導和同學的幫助,利用必要的學習資料,通過意義建構方式獲得知識,達到教學目的。
“任務驅動”教學法運用于C語言教學中大致可分為五個階段:(1)明確目標、設計任務;(2)分析任務、正確引導;(3)領取任務、自主學習;(4)完成任務、歸納總結;(5)再設任務、提升能力。
1.明確目標、設計任務
精心設計任務是實施任務驅動教學的關鍵所在。在設計任務時,最好遵循以下幾點原則:(1)整個任務是一個系統,總體任務的每個子任務之間要保持系統的連貫性;(2)任務的設定以學生為中心,根據學生的實際情況和學生們感興趣的方向來設計任務;(3)任務要分層次,這樣可以根據學生的認知等特點遵循由淺入深、循序漸進的原則讓學生來逐漸接受不同難度的任務;(4)任務要體現工作場景中的真實情況和實際操作的合理性??傊O定任務是整個任務驅動教學法的核心,只有任務設計得合理,學生在完成任務的過程中,才能既鞏固舊知識,又能探索新知識、新技能,模擬真實工作環境,逐步提高,通過一個個子任務的完成,最終完成總體任務,提高操作技能。
我們以一個具體的實例來對任務驅動教學法進行說明。例如:筆者某班學生在大二第一學期開始上C語言課。筆者沒有按照傳統的教學方式,先講語法、結構,再實踐應用,而是一開始就把上一屆學生用C語言做好的課程設計“學生成績管理系統”這樣一個任務演示給學生看,讓學生看到用C語言開發出來的這樣一個綜合應用程序的運行結果。學生們看到友好的界面、完善的功能,激發起學習C語言的興趣,接著告訴學生,我們學完C語言這門課程,也要完成我們班“學生成績管理系統”這樣一個工作任務,這樣學生一開始上課就明確了學習目標,知道了工作任務,但是,我們如何去完成這樣的工作任務呢?
2.分析任務、正確引導
我們就要根據學生具體的知識結構特點,將任務分層,即把大任務中的各個子任務分解出來,讓學生有信心來完成。這里,我們把學生成績管理系統這個大任務分為六個子任務:(1)數據信息的輸入、輸出;(2)數據信息的查詢;(3)數據信息的修改;(4)數據信息的排序;(5)數據信息的計算;(6)數據信息的刪除。先說任務(1):學生數據信息的輸入、輸出。編寫這個C語言程序是后面所有子任務的基礎。在分析明確任務后,就要圍繞具體任務中涉及到的新的知識點進行適量的概念教學和舉例講解。針對任務(1),主要講解輸入、輸出函數的基本概念以及順序結構中設計的常規算法,為任務(1)的完成提供解決辦法。學生帶著任務聽課,積極性很好,效果也很好。
3.領取任務、自主學習
知識點講解完,老師先給學生演示任務做完后的效果,學生根據設計的任務經過自主或小組協作的方式,確立程序的實現算法,完成任務。在完成任務的過程中,老師引導學生掌握如何用所學知識來進行算法設計,同時還要注意觀察,及時發現學生中有新方法出現,并且推廣新思路,鼓勵學生創新。
4.完成任務、歸納總結
對學生任務的完成情況進行評價,是“任務驅動“教學的一個主要環節。評價包括:老師的評價和學生相互的評價。老師評價的內容包括:對新知識的理解、掌握和應用能力,自主學習能力,同學間的相互協作能力,解決問題能力和創新能力等。學生評價包括:相互評價和自我評價。
學生在完成任務的過程中總會遇到新的問題,例如:怎樣對學生成績的小數進行處理,如何設置總分與名次之間的關系等等。在歸納總結的時候,老師可選擇比較典型的問題,如任務(4)中數據信息的排序,學生有的用的是冒泡排序,有的用的是選擇法排序,但是同學們用這兩種排序方法都是對總分進行排序,能不能編寫程序時既能按照單科成績排序,也能按照總分進行排序,分別生成不同的文件進行保存。在總結之后,學生對有些平時不注意的知識點又加深了理解,明白了編程要求嚴謹,算法靈活,同一個問題可以用不同的方法來解決,同時對整個過程中學生的各種編程方法進行比較、評講、歸納,并對學生有創新的地方進行鼓勵和表揚,對不夠完善的方面進行糾正和補充。然后提出下一個新任務,整個教學過程自然流暢,有內涵,有延伸。
5.再設任務、提升能力
當學生完成一個小任務后,老師及時進行總結與評價,讓學生對自己在完成任務過程中所用到的知識再一次回顧。但是,同一個班級內學生的水平有很大的差距,既要照顧到水平差的,不能讓這些學生掉隊,還要照顧到水平高的學生,以免這些學生“吃不飽“,這時我們可以再設任務,讓差學生再一次鞏固原任務,讓好學生在原任務的基礎上進一步拓展(比如完成了“學生成績管理系統”可以再來完成“教師工資估計管理系統”這樣新任務)這樣,就兼顧到了不同水平的學生。
在C語言教學中,筆者把采用“任務驅動”教學法實驗的班級和以前采用傳統教學法的班級做了個比較,效果很不一樣。具體附表說明:

從上表可看出,采用任務驅動教學法,在教學中得到了學生的配合,學生不僅掌握了知識和技能,并能夠靈活地運用知識和技能完成實際工作與生活中的各項任務,提高了學生對編程的興趣。從考試成績上看,采用任務驅動教學法后,該課程統考及格率由不足80%達到了85%以上,特別是學生的實訓效果遠遠好于傳統的教學方法。說明采用任務驅動教學法比較成功,不僅提高了學生的整體學習效果,而且學生通過計算機全國等級考試的人數也有所提高。
總之,實踐表明在C語言程序設計課程中使用“任務驅動”法,教學效果明顯好于傳統教學法。教師與學生圍繞“任務”積極互動,學生們在一個個典型的“任務”驅動下,展開協作學習活動,教師引導,幫助學生由簡到繁,由易到難,循序漸進地完成一系列任務,學生不僅樂于學習,而且主動學習、創造性地去學習。這樣,不僅培養了學生的自主學習能力和解決實際問題的能力,也提升了學生的創新能力。因而說,任務驅動教學方式在當前程序設計教學中確實是一種行之有效的教學方法。
[1]譚浩強.C語言程序設計[M].北京:清華大學出版社,2000,(1).
[2]蘇傳芳.C語言程序設計基礎[M].北京:電子工業出版社,2004,(9).
[3]李軍.“教學做”一體化任務驅動型高技能教學模式構建[J].職業技術教育,2009,(8).
F718.5
A
1673-0046(2011)09-0053-02