馬華麗
【摘要】本文針對C語言教學過程中存在的問題,以新課改標準為依據(jù),提倡采用“理實一體化”的教學模式,體現(xiàn) “做中教,做中學”的教學思想,以此為依據(jù)分析了如何打造新課標下的動態(tài)課堂,以及在教學實施過程中的一些具體事項。
【關鍵詞】任務驅(qū)動 自主學習
目前,計算機已經(jīng)成為人們工作、生活中所不可或缺的一種智力工具,它的工作原理是存儲程序控制。因此,程序設計語言是計算機專業(yè)的一門必修課。如何讓學生對這門課感興趣,讓課堂變得輕松、活躍、愉快成了計算機教師一直關注的問題。下面我就如何讓枯燥乏味的C語言課堂變成動態(tài)課堂,談一些粗淺的看法。
一、 給學生學習的空間,營造一個自主學習的環(huán)境
要有效地實施以學生為主體的“做中學,學中做”教學原則,首先要給學生營造一個自主學習的環(huán)境,讓學生參與到教學活動中來。要利用“項目教學法”和“任務驅(qū)動法”為學生制定一個目標,并要求完成這個目標。在這方面,我充分利用了計算機的可操作性、可實用性等特點,要求學生課程結(jié)束后每人完成一個項目,每人交一個小軟件或應用程序,內(nèi)容不限,但必須是利用所學的知識進行編寫的。
其次,合理安排教學內(nèi)容,把教學內(nèi)容設計在一個個實際“任務”之中,讓在完成任務的同時去學習新的知識,產(chǎn)生求知欲望。在學習rand()函數(shù)的用法時我就設計了一個小任務:模擬“掃雷”游戲程序,在30×40區(qū)域內(nèi)隨機埋藏50個地雷。
任務分析:這是一個WINDOWS自帶的小游戲,我們也都玩過,今天我們用C語言來編程模擬如何“埋地雷”。
第一:我們可以利用一個二維數(shù)組劃定區(qū)域。
第二:利用隨機函數(shù)來確定每一個地雷的位置,在有地雷的地方填“*”,沒有地雷的地方填“O”,地雷不能重復埋設。解決這個問題需要注意的問題有:定義一個二維數(shù)組、每一個地雷的行列具體位置由隨機函數(shù)產(chǎn)生、兩顆地雷之間位置不能重復等。
通過分析,學生結(jié)合課本寫出產(chǎn)生某一范圍內(nèi)隨機數(shù)的表達式:
i=rand()%30+1
j=rand()%40+1
也可由例子隨機產(chǎn)生50個兩位正整數(shù)之間的隨機數(shù),引出如何產(chǎn)生一定數(shù)量的某一范圍內(nèi)的隨機數(shù)。
兩個例子一樣的道理,但我們?nèi)绾慰刂飘a(chǎn)生不相同的隨機數(shù)據(jù),需不需要對產(chǎn)生的數(shù)進行判斷呢?我們要引導學生找到產(chǎn)生互不相同數(shù)的算法:將產(chǎn)生的一個數(shù)與之前的所有數(shù)進行比較,若有相同則重新產(chǎn)生一個,這樣周而復始,直到產(chǎn)生的個數(shù)符合要求為止。
例如:隨機產(chǎn)生50個互不相同的[10,99]之間的隨機整數(shù),該如何產(chǎn)生。
學生板書(程序段):
for(i=0;i<50;i++)
{l:a[i]=rand()%91+10;
for(j=0;j
if (a[i]==a[j])
goto l }
結(jié)合以上程序段,可以引導學生編寫埋地雷程序。類似的任務還有“累加求和”等典型的題目,讓學生在完成任務的過程中產(chǎn)生求知欲,自主地去尋求解題方法,從而掌握知識、解決任務。
二、 循循善誘,引導學生在探究過程中解決問題
在完成任務的過程中,要引導學生進行獨立思考,主動地去探索,學會在探索的過程中找出解決問題的方法。
例如,我們在講“排序法”時(四種排序法),讓學生完成這樣一個任務:編程序讓計算機給全班同學按總分來排名次。(題目已知每個同學的總分)
在分析問題時,我用了一個小事例:從同學中找出高矮不同的10個人來進行排隊,看怎樣才能讓這10個同學按從矮到高的順序進行排隊,看看有幾種方法。
同學們各抒己見,氣氛很活躍,方法也很多。就拿其中的一種方法來說,原理是這樣的:先讓第一個同學分別和他后面的其他同學進行比較,在比較過程中如果第一個同學比其他同學高則兩同學交換位置,這樣一輪下來最矮的同學就排在了第一。然后,用同樣的方法讓第二個同學和他后面的同學去比,如果比其他同學高就交換位置,這樣第二輪下來,第二矮的同學就排在了第二。依次類推,找到第三、四個同學,直到第九輪,用第九個同學和第十個同學比時,如果高則交換,找到排到最后的兩個同學。這就是我們說的“順序比較法”。
學生板書,程序段如下:
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;}
其他三種方法類似。這樣,學生很快就能按實例將排隊原理轉(zhuǎn)化成程序語言。有很多這樣的例子都可以用這種方法引導學生自己完成從文字語言到程序語言的編寫過程。
只有讓學生成為知識的主動建構(gòu)者,他們的主觀能動性才能被充分調(diào)動起來。在動手實踐的過程中學生不僅學會了獨立思考、如何去學習,而且從個人的親身體驗中徹底打破了對計算機程序的神秘感,看到了自己親手編寫出來的程序,自信心、自豪感油然而生??磥?,能否打造C語言動態(tài)課堂,關鍵在于教師怎樣去設計你的課堂。學生都是好學生,怎樣才能讓學生動起來是值得我們每個教師深思的。