季秋萍






背景:教育部和中國(guó)科協(xié)委托中國(guó)計(jì)算機(jī)學(xué)會(huì)舉辦了全國(guó)青少年計(jì)算機(jī)程序設(shè)計(jì)競(jìng)賽。此項(xiàng)含金量頗高的競(jìng)賽中,吸引了越來(lái)越多的青少年參與其中。原因不僅僅是在競(jìng)賽中獲得的榮譽(yù)和與之相應(yīng)的升學(xué)獲益政策,更重要是選手們?cè)趥鋺?zhàn)過(guò)程中的綜合素質(zhì)提升。筆者將通過(guò)一個(gè)案例的分析,談?wù)劤踔猩鷧⒓有畔W(xué)奧賽在各方面的提升。
案例
題目:角谷定理。輸入一個(gè)自然數(shù),若為偶數(shù),則把它除以2,若為奇數(shù),則把它乘以3加1。經(jīng)過(guò)如此有限次運(yùn)算后,總可以得到自然數(shù)值1。求經(jīng)過(guò)多少次可得到自然數(shù)1。
方法一:歸類“循環(huán)結(jié)構(gòu)”題型
分析:角谷定理是學(xué)生學(xué)習(xí)了程序設(shè)計(jì)三種基本結(jié)構(gòu)后進(jìn)行的教學(xué)案例。題目中有重復(fù)操作“除以2”或“乘以3加1”,可將該題分類為循環(huán)結(jié)構(gòu)題型。循環(huán)語(yǔ)句類型在初中階段競(jìng)賽中主要涉及到“for循環(huán)”、“while循環(huán)”和“do-while循環(huán)”,學(xué)生該選用何種語(yǔ)句,要具體分析題目意圖。
將文字題意轉(zhuǎn)換為式子表達(dá)式:
1.for(循環(huán)變量初始;循環(huán)條件;循環(huán)變量增量)
2.while(循環(huán)條件)//while()加循環(huán)條件,一但條件不滿足就不執(zhí)行語(yǔ)句。
3.do-while(循環(huán)條件)//判斷條件滿足則執(zhí)行語(yǔ)句,條件不滿足時(shí)退出循環(huán),但是do-while()是先做再判斷,所以至少要做一次循環(huán)。
根據(jù)流程圖和三種循環(huán)語(yǔ)句的比較,“while循環(huán)”比較適用于本題;
代碼如下(截圖):
方法二:歸類遞歸函數(shù)題型
當(dāng)學(xué)生學(xué)習(xí)了函數(shù)的遞歸函數(shù),角谷定理可用遞歸函數(shù)來(lái)解答。
顯然,第一次編寫(xiě)的代碼有誤,學(xué)生通過(guò)自檢,發(fā)現(xiàn)子函數(shù)jiaogu中變量num的定義位置存在錯(cuò)誤,將num定義為全局變量程序即可。
通過(guò)角谷定理案例的解題分析,我將從以下五個(gè)方面談?wù)剬W(xué)生在學(xué)習(xí)信息學(xué)奧賽中自身能力的提升。
一、培養(yǎng)學(xué)生合理安排學(xué)習(xí)時(shí)間,提高自主學(xué)習(xí)能力。
初中階段課表中沒(méi)有安排信息學(xué)奧賽的課程,學(xué)生需合理安排自己的學(xué)習(xí)時(shí)間,才能保證中考科目成績(jī)穩(wěn)定的情況下學(xué)習(xí)信息學(xué)奧賽知識(shí)。參加輔導(dǎo)的學(xué)生都是跨年級(jí)跨班級(jí)組建,要保證每天的學(xué)習(xí)時(shí)間,但在校集中學(xué)習(xí)的時(shí)間有限,學(xué)生必須會(huì)自主學(xué)習(xí),明確在不同時(shí)間段完成什么任務(wù),充分利用課余時(shí)間、利用身邊資源,達(dá)到學(xué)習(xí)效率最大化。
二、提高學(xué)生思維創(chuàng)新能力。
競(jìng)賽輔導(dǎo)過(guò)程中,教師都會(huì)培養(yǎng)學(xué)生的一題多解、優(yōu)化程序的能力。案例中學(xué)生給出了兩種解題方案,分別通過(guò)循環(huán)結(jié)構(gòu)和遞歸函數(shù)完成。而在方法二中,學(xué)生覺(jué)得自己編寫(xiě)的代碼較繁瑣,反復(fù)用到“num”變量,容易混淆,學(xué)生通過(guò)思考、不斷嘗試優(yōu)化,將“+1”代替了變量“num”,使程序更簡(jiǎn)化。
三、培養(yǎng)學(xué)生沉穩(wěn)、堅(jiān)韌的性格,嚴(yán)密謹(jǐn)慎的處事方式。
在信息學(xué)競(jìng)賽中,學(xué)生解答一道題必須做到沉著冷靜,有層層剖析問(wèn)題的意識(shí),切不可一步登天的急攻心態(tài)。題目的分析是關(guān)鍵,有助于代碼的順利編寫(xiě),遇到錯(cuò)誤時(shí),特別是編譯通過(guò),運(yùn)行結(jié)果不對(duì)的情況,選手仔細(xì)檢查自己的代碼,跟蹤變量值的變化,找出代碼中的Bug。如案例角谷定理用遞歸函數(shù)編寫(xiě)時(shí)的第一個(gè)程序,不管n輸入何值,輸出值都為0,修改代碼時(shí),將變量num放在函數(shù)外,作為全局變量,程序即可通過(guò)。在競(jìng)賽中難免會(huì)碰到類似的情況,有時(shí)會(huì)因?yàn)橐粋€(gè)數(shù)值“0”錯(cuò)寫(xiě)成“1”,都會(huì)導(dǎo)致成績(jī)結(jié)果從滿分直降到0分。所以學(xué)生必須有良好的心態(tài),控制好自己的情緒,穩(wěn)中求勝的信心。
四、注重團(tuán)隊(duì)精神,取長(zhǎng)補(bǔ)短。
奧賽輔導(dǎo)中,學(xué)生分不同年齡、不同性別、不同認(rèn)知度,面對(duì)同一教師的授課,學(xué)生會(huì)產(chǎn)生不同接受程度。學(xué)生將會(huì)“強(qiáng)弱組隊(duì)、隊(duì)隊(duì)競(jìng)爭(zhēng)”的模式,促進(jìn)個(gè)體、團(tuán)隊(duì)的發(fā)展。角谷定理案例中,部分學(xué)生會(huì)用“do-while”循環(huán)語(yǔ)句編寫(xiě)程序,如圖:
運(yùn)行結(jié)果:
但提交程序后不能100%通過(guò),經(jīng)組內(nèi)成員審查,當(dāng)n輸入值為1時(shí),程序也進(jìn)入循環(huán)語(yǔ)句體,輸出結(jié)果出錯(cuò),通過(guò)組間分析、診斷、修改、優(yōu)化,每一成員對(duì)“while”與“do-while”的區(qū)別更加清晰。以一人的錯(cuò)題促進(jìn)整組的水平,組員取長(zhǎng)補(bǔ)短,共同進(jìn)步。
五、培養(yǎng)學(xué)生積極進(jìn)取、迎難而上的精神。
信息學(xué)奧賽訓(xùn)練中,遇到的題目有時(shí)需要花一天甚至幾天時(shí)間才能解決,學(xué)生要有積極進(jìn)取、迎難而上、超越自我的精神,只做容易而規(guī)避難題,只會(huì)原地踏步。信息學(xué)奧賽培養(yǎng)學(xué)生遇到難題勤于思考,并與以往做過(guò)相類似的題目做參考,找到題目間的相通之處作為入手點(diǎn),將大問(wèn)題分解成小問(wèn)題,提高解題能力。
總之,在信息學(xué)奧賽備戰(zhàn)過(guò)程中,我們?cè)谧⒅貙W(xué)生成績(jī)的同時(shí),也要培養(yǎng)學(xué)生的綜合素質(zhì)能力,除了以上提到的五點(diǎn)外,學(xué)生還需提升自身良好的學(xué)習(xí)態(tài)度、優(yōu)良的心理素質(zhì)、堅(jiān)硬的身體素質(zhì)等方面,通過(guò)信息學(xué)奧賽提升學(xué)生的綜合素質(zhì)。--