全國青少年信息學奧林匹克競賽(NOI)和聯賽(NOIP)(簡稱信息學奧賽,下同)是由教育部和中國科協批準、中國計算機學會主辦的面向全國青少年在校學生的一項重大賽事,且已成為我國中小學計算機方面最具代表性的、最高層次的活動,每年都吸引著數以萬計的青少年投身到這一活動中。但在奧賽的五項學科中,唯獨信息學不在當今高考范圍之內,這大大影響了信息學奧賽的普及和進展。那么,如何才能有效地組織、輔導和準備信息學奧賽呢?筆者竊以為應著重從選手、競賽內容和教學方法這三個方面研究和著手。
一、選手是競賽的主體
萬事以人為本,信息學奧賽也不例外。信息學奧賽的參與者是在校學生,但不能是全體學生,怎樣才能選拔到合適的選手是關鍵。首先是要挑選對計算機和程序設計有濃厚興趣的學生。興趣是最好的老師。有了興趣,學生就會樂意為之而不斷探索、知難而進。其次是要看重學生的學習素質。具備扎實的數學功底、良好的英語習慣、較強的自學能力、勤懇的學習態度、嫻熟的網絡使用能力和自覺的交流意識的學員應該是理想的選擇。另外是要講求選手的淘汰。輔導班剛成立時,可能會有量的學生參加,少則數十,多則過百。中途(程序設計語言學完時)會因內容的難度而自然會有淘汰。對于能堅持下來者,再一一考查摸底,先清除那些只癡迷于電腦游戲者,然后在初賽前半年左右(此時簡單算法基本結束)再多進行幾次校內測驗,從中挑選優秀者,這些便是最終的奧賽參加者,也是能接受較復雜算法的學習者。
二、競賽內容是學習的對象
信息學奧賽之所以被眾多高等院校認可和看重,是因為它是五項學科競賽中難度最大的,其內容涉及到大學計算機專業本科甚至研究生階段的課程,尤其在分析問題、建立數學模型和解決問題方面的思維要求相當復雜和高難。筆者認為信息學奧賽的內容大致可歸納為以下五大類:
1.計算機基礎知識
包括計算機系統的組成、軟件硬件知識、計算機網絡、進制轉換、IT名人、重要事件、信息學常識等。
2.程序設計語言
目前官方允許使用的程序設計語言有:PASCAL、C等。三者中可根據自己實際情況自由選擇任意一種。
3.數據結構
主要有線性關系(棧、隊列和鏈表)、非線性關系(樹和圖)、排序和查找的思想及應用。
4.算法設計與分析
常用算法策略:枚舉法、模擬法、迭代法、遞歸法、分治思想、貪心策略、動態規劃、搜索算法和網絡流等。
5.其他
這是信息學奧賽中最難把握的,也是變數最多的,包括組合數學、幾何問題、邏輯運算、運籌學、博弈論、對策論、數論和極值最優問題等。
三、教學方法是主體認知客體的策略
會學比學會更重要。“授之以魚不如授之以漁”。選拔了對計算機程序設計有濃厚興趣的學員,明確了信息學奧賽的具體內容,如何指導教育他們較好地掌握這些面廣量大且有相當難度的競賽內容和學法,就需要有良好有效的教學方法。
傳統的講授式教學方法當然少不了。在初期,基礎知識的準備、語言的語法要點、算法分析、程序設計步驟等,初學者本身也需要用傳統教學方法將他們一步一步引入信息學奧賽的殿堂。培養選手逐漸養成良好的自學習慣,提高他們的學習能力。信息學奧賽的授課時間一般都是在課余或課外,競賽內容不可能一一去講,這就需要選手必須去自學,通過書籍和網絡來補充提升知識水平。信息學奧賽的輔導教學也需要有自己獨特的一些“新花樣”。比如可安排一個小測驗,然后使用電子教室軟件廣播演示某一個學生編寫的具有典型代表性的程序,讓大家共同討論其中的優點和不足,這樣算法分析過程和語法細節通過大家你一句我一句的補充修改最終會非常完美,所有學員也個個收獲不小。另外,多用“大牛帶蝦米”的方法,由有一定經驗的“高手”學生傳、幫、帶剛剛入門的初學者。也可充分利用自建的信息學愛好者QQ群進行及時交流,甚至可以跨越地域而向發達地區的師生請教。
選手、競賽內容和教學方法是信息學奧賽的三要素,選手是競賽的主體,競賽內容是主體通過某些策略而被認知的客體。不斷學習和努力研究這三要素,也就逐漸把握住了信息學奧賽。在2005年到2008年4年間,我精心挑選隊員,認真研究競賽內容,不斷改進教學方法,在信息學奧賽中取得了喜人的成績:獲得聯賽NOIP一等獎5人次,二等獎8人次,進入本省省隊參加NOI一人次。
作者單位:甘肅省武威第六中學