李圓媛 江世宏
【摘要】根據《程序設計基礎》課程的特點,將任務驅動教學法引入到《程序設計基礎》課程的教學中,描述了任務驅動教學法的實施過程和需要注意的問題,強調了該教學方法能有效提高教學效果。
【關鍵詞】任務驅動 ?程序設計 ?教學方法
【中圖分類號】G642 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文獻標識碼】A ? ? ?【文章編號】2095-3089(2015)05-0165-01
一、引言
《程序設計基礎》是針對信息與計算科學專業開設的一門核心基礎課程,它將使該專業學生初步了解C語言和程序設計,并為學生以后學習面向對象程序設計、高級程序設計和嵌入式程序設計等課程和從事程序設計或軟件設計與開發打下一定的底子。這門課程的主要任務是使學生了解程序設計的思路,學習C語言與語法,初步學會用C語言編寫程序。然而傳統的老師教學生學的填鴨式教學方法只是把老師和書本的思想灌輸給了學生,極大地扼殺了學生的創造力,學生逐步喪失了學習的興趣,教學效果不理想。建立在建構主義教學理論基礎上的“任務驅動”教學法在教學過程中將教學重點放在解題的思路上,強調以任務為驅動,以學生為主體,以教師為引導的教學思想,比較適合程序設計基礎課程的教學。
二、任務驅動教學法在《程序設計基礎》教學中的實施
《程序設計基礎》這門課程的最主要任務是:使學生了解程序設計的思路,學習C語言與語法,初步學會用C語言編寫程序。從教學的角度來看,《程序設計基礎》這門課程不應將教學重點放在C語言語法上,對語言語法細節過多地死摳。而要使學生明白:重要是學會編程序,而不是背語法,衡量這門課程學習的好壞,不是看你“知不知道”,而是“會不會干”。
1.任務設計
“興趣是最好的老師”,一個有趣味性并且貼近學生生活的任務能夠激發學生學習的熱情,在“以學生為主體”的任務驅動教學過程中,應全面考慮每一個知識點,同時也要考慮“任務”的大小、前后的聯系等多方面的因素,把學生所要學習的知識點巧妙的穿插在任務中,為學生設計出一系列難度逐步提高的任務,比如不妨從“輸入三個實數,求它們的平均值并輸出結果”這種簡單的任務出發,逐步拓展成“求全班同學英語奪標比賽成績的最高分、最低分和平均分”,最后升華成“從鍵盤上依次輸入10個整數,要求:邊輸入邊按升序排序,同時記錄每個數據的輸入順序,輸入完畢后將10個排序后的整數及原始數據位置分兩行對應輸出。”
2.任務實踐
在此階段教師應引導學生分析任務,提供解決任務的思路并指引學生完成任務,教師此時起到的是一個引導、咨詢的作用,每一步都應該在解決任務的過程中前進,促使學生循序漸進地學習知識和技能。
在布置完第一個任務后教師應該先舉例講授變量的聲明和使用,基本的算術運算,數據的輸入和輸出方式以及程序的固定結構,然后給學生留下充足的操作時間,讓學生自己上機編程嘗試,他們在操作過程中對程序設計有了一個相對直觀的了解,對基本的數據類型、變量的輸入和輸出以及順序結構有了初步的掌握。有了前面的學習基礎后,教師就可以讓學生了解循環語句和數組的部分內容,讓學生對數組元素含有下標和值的屬性有一定的理解。然后讓學生自己自主探索,找到第二個任務的解決方案。在布置第三個任務之前可以先給學生介紹我國著名的計算機教育家譚浩強先生所提出的“先搭框架,逐步擴充,由簡到繁,最后完善”的16字原則,“邊編程,邊調試,邊擴充”的9字方法,“一開始時不要企圖解決所有細節”的1個注意事項,學會將一個復雜問題分解成若干個簡單問題,并將簡單問題擴充為復雜問題。布置完第三個任務后就逐步引導學生將整個任務的解決分解為三個子任務。第一個子任務:用簡單選擇排序法,將一個已知數組作升序排序,并給出基本的輸入輸出。第二個子任務:解決用戶從鍵盤輸入數組的問題,并實現邊輸入、邊排序、邊輸出。第三個子任務:解決數組元素位置變化之后的下標號的記錄問題。
3.任務總結
此階段教師要對任務實施階段涉及到的知識點進行歸納整理,如第一個任務涉及到了程序基本結構、變量名、數據類型與所占字節數、變量定義與賦初值等基本知識點,第二個任務涉及到了數組定義與初始化、for循環、單分支選擇結構等基本知識點。第三個任務涉及到了標識變量的作用與設置、冒泡排序法等基本知識點。同時教師還要對任務完成階段學生碰到的問題集中進行解答,讓大家互相了解彼此可能出錯的類型,交流完成任務的方法和思路。
4.任務拓展
此時應該是對基礎知識掌握的一個升華,教師可以對任務進行一些修正,逐步拓展各個知識點,漸漸地理解C中各種數據類型在內存中所占的字節數,理解數據在內存中的存儲形式。對于循環結構逐步掌握for、do-while、while循環的區別和各自特點,漸漸了解多維數組定義,多維數組初始化,多維數組中元素的存儲形式,掌握多分支結構的表述,知道條件表達式選擇的規劃。了解冒泡法的各種變形形式。
三、總結
在《程序設計基礎》教學中,主要是解決模型建立與模型表現的兩大問題。模型建立涉及到各個領域的知識,而模型表現涉及到算法框架和語言知識。它涉及了從分析任務的解決辦法到將其轉化為計算機能夠接受形式的全過程鍛練。這種鍛練可以在機上和機下兩種環境中進行。機下的工作就是分析任務,畫程序流程圖,設計算法。機上實踐的工作包括編寫程序、調試程序、測試程序、運行程序。機上與機下兩個環節相得益彰,相互補充。
在《程序設計基礎》課程的教學中應用任務驅動教學法,改變了傳統的知識獲得方式,既能充分激發了學生的求知欲望,又能培養學生的自主學習能力,還能挖掘學生的潛能,提高了教學質量。
參考文獻:
[1] 周淑秋.遞進任務驅動在VB程序設計教學中的應用.中國勞動關系學院學報.2009(3).
[2] 楊冬,劉磊,張晶,郭德貴,馬安娜.任務驅動的高級語言程序設計課程教學.2005(S2).
[3] 鄭永愛.“任務驅動教學法”在“C#程序設計基礎”教學中的應用.2010(12).
[4] 胡遠萍. 基于任務驅動的“C 語言程序設計”課程教案設計. 長沙通信職業技術學院學報.2009(4).
注:“武漢工程大學校級教研項目(X2009036)”