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