季秋萍






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