周燕 文毅 蔣承延
摘 要:C語言簡潔高效、結(jié)構(gòu)豐富、可移植性強,是良好的結(jié)構(gòu)化語言,因此大部分大專院校都把C語言作為工科學(xué)生學(xué)習(xí)計算機語言的首選課程。本文針對傳統(tǒng)的C語言教學(xué)過程中學(xué)生缺乏學(xué)習(xí)興趣、內(nèi)容枯燥難以理解、缺乏動手編程能力等問題,提出了“陷阱教學(xué)法”,在實際教學(xué)中取得了較好的效果。該教學(xué)方法是由教師有意識地設(shè)置陷阱,讓學(xué)生掉入陷阱,發(fā)現(xiàn)錯誤,最終改正錯誤這樣一個過程讓學(xué)生的心理產(chǎn)生一次震動,從而達到促進理解、增強記憶的效果,提高學(xué)生學(xué)習(xí)C語言程序設(shè)計這門語言的主動性和學(xué)習(xí)效率。
關(guān)鍵詞:C語言陷阱教學(xué)法 學(xué)習(xí)效率
從事一定時期的教學(xué)工作后,我們可能都會碰到這樣的時刻,無論你怎樣全面細致的講解知識,怎樣耐心認真的課后輔導(dǎo),學(xué)生對于有些知識點就是不能理解;也會發(fā)現(xiàn)有時候?qū)W生佯作聽懂了的樣子,讓他們進一步闡述又不明就里,這給教師帶來了很大的挫敗感。當常規(guī)的教學(xué)方法不能促使學(xué)生理解某些知識點的時候,我們應(yīng)該思考一下能不能引入一些特別的教學(xué)法,比如“陷阱教學(xué)法”來打破學(xué)習(xí)的堅冰,提高學(xué)生學(xué)習(xí)效率和效果。陷阱教學(xué)法通過模擬一種錯誤的環(huán)境,讓學(xué)生誤以為正確的時候適時提醒和點破錯誤,讓學(xué)生幡然醒悟,形成巨大的心理反差,使學(xué)生高度注意這個知識的特點,也能從另一方面去理解和領(lǐng)悟知識點,從而調(diào)動學(xué)生的主觀能動性,促進他們的思維發(fā)散性,多方面、多角度綜合學(xué)習(xí)和考慮問題,避免了原來單一思維時總是走進死胡同的窘境,自然也增強了學(xué)生對知識的理解,留下了不可磨滅的印象。
一、陷阱教學(xué)法的含義
陷阱實際上是一種偽裝,陷阱教學(xué)法實際上就是偽裝教學(xué)法。把正確的知識偽裝成錯誤的知識,或者說以錯誤的面貌出現(xiàn)在學(xué)生面前,目的是要讓學(xué)生自己通過獨立思考去偽存真,揭開偽裝的面紗,去發(fā)現(xiàn)背后的真理,更好的學(xué)習(xí)和理解知識。這是教師故意為之的行為,通過師生互動,逐步引導(dǎo)學(xué)生發(fā)現(xiàn)問題、認識問題、理解問題、思考問題、反思問題、總結(jié)問題。教師通過課前精心的設(shè)計,將學(xué)生的思路引入事先設(shè)置好的陷阱中,不予點破,讓學(xué)生誤以為正確,教師在一旁觀察學(xué)生的反應(yīng),這是學(xué)生初步去發(fā)現(xiàn)錯誤的時候。在學(xué)生沿著錯誤的思路一路前進走進死胡同的時候,教師給予引導(dǎo)和提示,讓學(xué)生茅塞頓開、醍醐灌頂,然后引導(dǎo)學(xué)生去重新回過頭來認識錯誤、學(xué)習(xí)錯誤、思考錯誤。從而在今后遇到類似的問題時預(yù)防錯誤。學(xué)生在這一過程中不是被動的接受教師傳授知識,而是主動去適應(yīng)問題,運用自己的知識儲備解決難題,找尋真相。實際上就是鍛煉學(xué)生去探索性思維、辨析性思維、比較性思維。比起一味聽取教師單方面的灌輸和講解會有更強的教學(xué)效果。
二、陷阱教學(xué)法的應(yīng)用原則
1.“陷阱”一般設(shè)在課程的重點、難點處。在重點難點處設(shè)陷阱,比光是口頭強調(diào)重難點效果要好得多,因為這是他們思維親歷探險的感受,掉入“陷阱”的體驗讓學(xué)生能多方面、全方位地學(xué)到重點、難點的知識內(nèi)容。
比如以下程序段:
a=0;
if(a=1)
printf(“a=0”);
else
printf(“a=1”);
讓學(xué)生分析該程序段的結(jié)果,大部分同學(xué)給出的答案是“a=1”,但是程序的實際執(zhí)行結(jié)果為“a=0”。為什么會出錯?因為同學(xué)們把“=”和“==”搞混淆了。在C語言中“=”是賦值符號,并不是關(guān)系運算中的等于符號,關(guān)系運算中的等于符號要用兩個“=”表示,也就是“==”。上面程序段中a的初值為0,接著的if(a=1)語句中“a=1”是賦值語句,將1賦值給a,然后用if判斷a是真是假,如果為真,執(zhí)行printf(“a=0”);語句,如果為假,執(zhí)行printf(“a=1”);語句。1為真,程序執(zhí)行printf(“a=0”);,所以輸出“a=0”。如果是下面的程序段:
a=0;
if(a==1)
printf(“a=0”);
else
printf(“a=1”);
程序輸出結(jié)果為“a=1”,因為a的初值為0,接著的if(a==1)語句中的a==1是關(guān)系運算,判斷a是否等于1,因為不相等,表達式為假,程序執(zhí)行else之后的語句,輸出“a=1”。
2.在忽視點上設(shè)置錯誤陷阱,培養(yǎng)認真、仔細的學(xué)習(xí)習(xí)慣。學(xué)生的學(xué)習(xí)過程實質(zhì)就是一個不斷修正錯誤的過程。教師可以緊緊圍繞教學(xué)內(nèi)容的重點、難點和易錯處,精心設(shè)計一些針對性的提問、習(xí)題等,誘使學(xué)生充分暴露錯誤和薄弱環(huán)節(jié),然后對癥下藥。借助錯誤和失敗使知識和技能得以鞏固、強化。
比如以下程序段:
inta,b,c,sum,average;
printf("input threemunbers:");
scanf("%f%f%f",a,b,c);
sum=a+b+c;
average=sum%3;
printf("sum=%d,average=%d\n",sum,average)
該程序段的功能十分簡單,就是從鍵盤輸入三個數(shù),并求出三個數(shù)之和和三個數(shù)的平均值。就是這樣一個簡單的程序段里,卻隱藏了三個錯誤,而且很多同學(xué)都找不出錯誤在哪,因為這些錯誤是他們平時最容易忽略的、也最容易犯的錯誤。第一個錯誤是輸入語句scanf("%f%f%f",a,b,c);中的a、b、c前面少了&符號。Scanf函數(shù)稱為格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。由于變量在內(nèi)存中都分配了空間,所以&符號的作用就是取出變量在內(nèi)存中的地址,才能把數(shù)據(jù)存入進去。因為該語句和格式輸出語句printf("%f%f%f",a,b,c);非常相似,所以容易漏寫&符號。所以我們在書寫C語言程序時一定要養(yǎng)成認真仔細的編程習(xí)慣,避免低級錯誤。
3.在學(xué)生學(xué)習(xí)的興趣點上有意設(shè)置陷阱,寓錯于樂。興趣是最好的老師。學(xué)生在感興趣的知識點上比較容易勤思考、動腦筋。老師投之以桃,學(xué)生會報之以李,只是這個“桃”是老師有意將容易混淆、出錯的知識點化妝一番授給學(xué)生,讓學(xué)生從迷惑和疑問中去獨立思考事實真相,不盲從、不迷信,相信真理,相信自己的判斷,從根本上培養(yǎng)學(xué)生理解知識、吃透知識、活用知識的能力,那么學(xué)生報之以老師的“李”必定更加碩果累累。在此過程中,同時也能讓學(xué)生享受知識的樂趣,減輕學(xué)習(xí)的壓力,在快樂中去體驗真理的奧妙。
三、陷阱教學(xué)法的注意事項
1.對錯誤要有預(yù)見性。陷阱教學(xué)法對教師最首要的一個要求,就是對錯誤要有足夠的預(yù)見性,如果教師在之前不能預(yù)見學(xué)生可能走上哪些岔道,就不可能準確地挖出“陷阱”等著學(xué)生往里掉,也就更談不上在學(xué)生掉進去之后,引發(fā)學(xué)生的認知沖突,激起學(xué)生的求知欲和探索心向,與老師、同學(xué)發(fā)生思維的碰撞,在討論中明晰錯誤中存在的問題,找到出錯的原因。
2.“陷阱”設(shè)置要注意避免重復(fù)、與時俱進。教師在教學(xué)中往往會受到經(jīng)驗的影響。比如,經(jīng)常會聽到某些教師大談特談以前哪些學(xué)生遇到這個問題總是會出錯。但是,我們要知道隨著社會的進步、科技知識的普及,每一屆學(xué)生的知識儲備、理解能力可能都會成倍的增長。如果教師總是以老眼光看待每一屆新同學(xué),認為以前設(shè)置的經(jīng)典“陷阱”永遠管用,可能就會犯經(jīng)驗主義的錯誤,導(dǎo)致學(xué)生對該知識點的重要性和難度認識不夠,認為教師對他們的學(xué)習(xí)能力了解不足,甚至懷疑教師的授課能力和權(quán)威性。要避免這樣的情況出現(xiàn),教師必須積極摸清學(xué)生基礎(chǔ),理解學(xué)生思路,不斷調(diào)整設(shè)置“陷阱”的方式方法,與時俱進,使“陷阱”教學(xué)的作用在不同類型、不同時期的學(xué)生身上都能發(fā)揮作用。顯而易見,陷阱教學(xué)法符合學(xué)生認識事物的規(guī)律,利于學(xué)生良好學(xué)習(xí)習(xí)慣的培養(yǎng),讓他們具體問題具體分析,從錯例中升華認識,優(yōu)化頭腦,不斷修正自己的學(xué)習(xí)方法。我們?yōu)閷W(xué)生挖好“陷阱”,有意識地讓學(xué)生進行“嘗試錯誤”的活動,目的在于引發(fā)學(xué)生的認知沖突,促使學(xué)生主動地對錯誤進行反思,突破性地認識到錯誤所在,更利于學(xué)生自診自治,提高其對錯誤的免疫力。