程序->結(jié)果”的流程,將任務(wù)驅(qū)動方式概括歸納為二種形式,即:正向任務(wù)驅(qū)動式、逆向任務(wù)驅(qū)動式。一、兩種任務(wù)驅(qū)動教學(xué)方式定義1、正向任務(wù)驅(qū)動(1)對應(yīng)學(xué)生學(xué)習(xí)階段:初級階段"/>
黃博軍
《C語言程序設(shè)計》課程的教學(xué)目標(biāo)是使學(xué)生掌握程序設(shè)計思想,根據(jù)”任務(wù)驅(qū)動型課程”設(shè)計并編寫程序,適合”任務(wù)驅(qū)動式教學(xué)”方式。其教學(xué)可根據(jù)”任務(wù)->程序->結(jié)果”的流程,將任務(wù)驅(qū)動方式概括歸納為二種形式,即:正向任務(wù)驅(qū)動式、逆向任務(wù)驅(qū)動式。
一、兩種任務(wù)驅(qū)動教學(xué)方式定義
1、正向任務(wù)驅(qū)動
(1)對應(yīng)學(xué)生學(xué)習(xí)階段:初級階段---認(rèn)知程序。
(2)任務(wù)驅(qū)動方式:根據(jù)任務(wù)編寫程序,運(yùn)行程序,得出結(jié)果。
(3)任務(wù)驅(qū)動目標(biāo):已知程序清單,完成程序運(yùn)行結(jié)果,并對結(jié)果進(jìn)行分析。
2、逆向任務(wù)驅(qū)動
(1)對應(yīng)學(xué)生學(xué)習(xí)階段:中級階段---剖析程序
(2)任務(wù)驅(qū)動方式:根據(jù)結(jié)果完成程序填空,運(yùn)行程序,得出結(jié)果。
(3)任務(wù)驅(qū)動目標(biāo):已知程序結(jié)果,完成程序填空,并對運(yùn)行結(jié)果進(jìn)行驗(yàn)證。
二、正向任務(wù)驅(qū)動式
正向任務(wù)驅(qū)動式是在任務(wù)和程序已知的情況下,只需運(yùn)行程序,得出結(jié)果,再對結(jié)果進(jìn)行分析來完成任務(wù)。其任務(wù)形式是”任務(wù)->程序->?”,需要完成結(jié)果,故稱為正向任務(wù)驅(qū)動。
教學(xué)一例:
1、提出任務(wù):(1)求5!的值。(2)問s設(shè)定為什么類型的數(shù)據(jù)變量可以容納積值?
要求:通過程序運(yùn)行和結(jié)果分析,實(shí)現(xiàn)對程序的理解和對知識點(diǎn)的掌握。
2、給出條件:給出二組程序。給出條件。
方法一:
#include
main( )
{ int s;
s=5*4*3*2*1;
printf(“s=%d”,s); }
方法二:
#include
main( )
{ float s;
s=5*4*3*2;
printf(“s=%f”,s); }
要求:通過運(yùn)行程序,記錄結(jié)果,達(dá)到看懂程序。
3、收集學(xué)生對求5!任務(wù)解決的方法及結(jié)果分析。
方法一:輸出結(jié)果:s=120
方法二:輸出結(jié)果:s=120.000000
兩種方法運(yùn)行結(jié)果一致。
同學(xué)們得出:s變量設(shè)定為int和float類型時都可以容納正確積值。
要求:在對結(jié)果分析后,學(xué)生應(yīng)該掌握數(shù)據(jù)變量與容納數(shù)據(jù)大小之間的關(guān)系。
4、任務(wù)驅(qū)動反思:”任務(wù)->程序->?”的任務(wù)驅(qū)動形式難度系數(shù)小,多用于知識入門階段。任務(wù)通過結(jié)果對比完成。在新知識入門階段學(xué)習(xí)中,有利于同學(xué)們熟悉程序,掌握知識點(diǎn)。同時可以提高學(xué)生學(xué)習(xí)興趣,樹立學(xué)習(xí)自信心。
要求:教師應(yīng)歸納知識要點(diǎn)。
三、逆向任務(wù)驅(qū)動式
逆向任務(wù)驅(qū)動式是在任務(wù)和結(jié)果已知的情況下,需要補(bǔ)寫程序,運(yùn)行程序,再對結(jié)果進(jìn)行驗(yàn)證來完成任務(wù)。其任務(wù)形式是”任務(wù)->?->結(jié)果”,需要完成填空,故稱為逆向任務(wù)驅(qū)動。
教學(xué)一例:
1、提出任務(wù):求1+2+ … +99+100的值。(1)對程序填空(共2空);(2)運(yùn)行程序,記錄結(jié)果,并驗(yàn)證結(jié)果。
要求:通過程序補(bǔ)寫和結(jié)果驗(yàn)證,實(shí)現(xiàn)掌握循環(huán)控制語句的使用方法。
2、給出條件:部分程序和輸出結(jié)果已給出。
#include
main( )
{ int i=1,sum=__⑴__;
while(i<=100)
{ sum=sum+i; __⑵__ ; }
printf("sum=%d\n",sum); }
給出結(jié)果:sum=5050
要求:重點(diǎn)掌握循環(huán)控制變量i的初值、終值和步長值設(shè)定,以及用于累加和變量的初值清零工作。
3、收集學(xué)生對任務(wù)解決的方法及結(jié)果分析。
方法一填空:(1)0 (2)i=i+1
程序運(yùn)行結(jié)果:sum=5050(程序運(yùn)行結(jié)果和給出結(jié)果一致)
結(jié)論:這部份同學(xué)認(rèn)識到,變量sum用于存放累加值,初值應(yīng)清零。
因此:⑴空填0;而數(shù)列每項(xiàng)值是加1遞增,因此:⑵空填i=i+1。
方法二填空:(1)1 (2)i=i+1
程序運(yùn)行結(jié)果:sum=5051(程序運(yùn)行結(jié)果和給出結(jié)果不一致,計算結(jié)果錯誤。)
結(jié)論:少數(shù)同學(xué)忽視了變量sum初值應(yīng)該清零。
因此:⑴空填1 ;而數(shù)列每項(xiàng)值是加1遞增,因此:⑵空填i=i+1。
要求:在完成程序填空后,學(xué)生應(yīng)該掌握循環(huán)控制變量初值、終值、步長值的設(shè)定方法。
4、任務(wù)驅(qū)動反思:”任務(wù)->?->結(jié)果”的任務(wù)驅(qū)動形式難度系數(shù)中,多用于知識鞏固階段。任務(wù)通過程序填空和結(jié)果驗(yàn)證實(shí)現(xiàn)。
要求:教師應(yīng)歸納知識要點(diǎn)。循環(huán)控制變量三要素(初值、終值、步長值)的設(shè)定是完成任務(wù)的重要前提。
四、結(jié)尾語
課堂中教師要以學(xué)生為主體,為學(xué)生創(chuàng)設(shè)情境,讓學(xué)生去感知、去認(rèn)識、去發(fā)現(xiàn)、去體會,讓學(xué)生在創(chuàng)設(shè)情境中,充分展露學(xué)習(xí)知識的思維過程,不受任何阻礙的暢所欲言,理思路,說理由,表方法,在平和的學(xué)習(xí)環(huán)境中,學(xué)生的思維始終保持活躍的狀態(tài),讓學(xué)生去感受成功與失敗,這就是任務(wù)驅(qū)動式教學(xué)的魅力。