時間:2022-06-25 09:23:20
序論:在您撰寫信息學奧林匹克競賽時,參考他人的優秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發您的創作熱情,引導您走向新的創作高度。
一、培訓班開設:,全國公務員公同的天地www
根據全國青少年信息學奧林匹克()競賽的要求,開設初中普及組和高中提高組兩個競賽輔導班專門開展培訓工作。其中初中普及組主要在初中一年級學生中選拔,并吸收少量優秀的初中二年級學生,計劃人數人左右,由××老師負責主要培訓課程。高中提高組在高中一年級學生中選拔,計劃人數人左右,由××老師負責主要培訓課程。
二、學生選拔工作:
培訓班學生主要在學習成績良好和對計算機興趣濃厚的學生中選拔,組織學生召開動員大會,并自行命題安排選拔考試。分別對學生的計算機基礎知識、數學能力、邏輯能力和接受新事物能力進行了全面考核,經過綜合考慮,從參加選拔考試的名初中學生中選拔了名組成初中普及組培訓班,從參加考試的名高中學生中選拔了名組成了高中提高組培訓班。
三、課程安排:
根據全國青少年信息學奧林匹克競賽大綱對初賽參賽知識的基本要求,結合學校實際情況,對培訓班的課程安排如下:
課程
主要內容
時間安排
節數
程序設計基礎
⒈程序基本結構,簡單語句、表達式
月日-日
⒉輸入語句,輸出語句,輸出格式
月日-日
⒊關系式、邏輯式與布爾數據,選擇結構語句
月日-日
⒋基礎訓練
月日-日
⒌循環語句,循環語句,循環控制
月日-日
⒍基礎訓練
月日-日
函數和過程
⒎標準函數和過程與自定義函數和過程
月日-日
⒏函數和過程中的參數及變量作用范圍
月日-日
⒐基礎訓練
月日-日
數據結構
⒑線性表、隊列和棧的基礎知識
月日-日
⒈線性表、隊列和棧的程序實現
月日-日
計算機知識基礎
⒉計算機軟件和硬件基礎知識
月日-日
⒊計算機中的數、進制的轉化
月日-日
全面復習
⒋全面復習,準備參賽
月底-月初
四、培訓時間和地點安排:
初中普及組:
周次
上課時間
上課地點
備注
周一
下午第節-第節
電腦一室
周三
晚修第三節
電腦一室
周五
下午第節-第節
電腦一室
高中提高組:
周次
上課時間
上課地點
備注
周一
下午第節-第節
電腦三室
周三
晚修第三節
電腦三室
周四
晚修第三節
電腦三室
五、培訓班學生要求:
⒈嚴格遵守上課時間,不遲到、不早退,有事提前請假。
⒉嚴格遵守電腦室上課要求。杜絕玩游戲,發現立即開除出班。
⒊上課帶好筆和筆記本,認真做好筆記。
⒋有連續三次未到或者總計五次未到者,直接開除出班。
⒌培訓班采用不定額淘汰機制。進行階段考試,精簡人數。
六、培訓目標:
我們目前還欠缺信息學奧林匹克競賽的輔導經驗,一切都處于摸索階段。希望通過半年多時間的努力,能夠在××年月份舉行的全國青少年信息學奧林匹克競賽中取得較好成績。為學校爭取榮譽,為以后參加全國青少年信息學奧林匹克競賽及組織競賽培訓積累經驗。
目標:初中普及組和高中提高組分別有至少一名學生取得市二等以上獎項,爭取獲得三等以上的學校團體獎。
關鍵詞:奧林匹克競賽;“學案導學”;教學模式
中圖分類號:G434 文獻標識碼:A 文章編號:1671-7503(2015)19-0048-03
進入21世紀以來,高效地培養高素質的人才是各國教育關注的焦點。黨的十明確提出要“深化教育改革,全面實施素質教育”。信息學奧林匹克競賽是教育部和中國計算機學會舉辦的一項益智性的競賽活動,每年為國家選拔出許多優秀的計算機人才。然而,信息學奧林匹克競賽開展情況不太樂觀,同時,信息學奧林匹克競賽教法、學法單一,使教學效果大打折扣,目前,處于一種尷尬的地位。因此,信息學奧林匹克競賽課堂教學如何提高課堂效率,改變學生的學習方式,有效地提高教學質量,成為一線教師所要研究的重要課題,理應積極探究其教學模式改革。
一、信息學奧林匹克競賽“學案導學”教學模式設計
全國和諧教學法研究會理事長、天津市教科院基礎教育研究所王敏勤教授曾經說過,“課改進入深水區,改到深處是模式”。那么,什么是教學模式呢?教學模式可以理解為開展教學活動的一整套方法論體系,它實質是在一定的教學思想或教學理念指導下建立起來的、較為穩定的教學活動結構框架和活動程序。
信息學奧林匹克競賽“學案導學”教學模式是在“尊重學生,相信學生,全過程放手讓學生學”的教育理念指導下,以學案為載體,以教師的“誘導”、“引導”、“疏導”、“指導”四環導學為主要教學方式,以學生的自主探究、自主學習、合作學習為主要學習方式,以提高自主學習能力為目的,師生共同完成教學目標,達到高效課堂的一種教學模式。
信息學奧林匹克競賽“學案導學”教學模式的學案既是學生學習的方案,也是教師指導學生學習的方案。相對于教案而言,信息學奧林匹克競賽學案不同于教案,它是教師在充分了解信息學奧林匹克競賽大綱、教材內容和學生學情的基礎上,根據教學大綱要求、教材內容和學生特點,從學生學習角度出發設計出指導學生進行探究、自主、合作的學習方案。學案不是教科書的翻版,也不是教材習題的匯總,而是側重指導學生的學習方案,目的是提高學生的自主學習能力,它是指導學生學習信息學奧林匹克競賽的學習方案。
該教學模式分為課前、課中、課后三個階段。如圖1,課前預備知識自主學習階段,學生根據教師預先設計好的學案進行預備知識的依案自學,教師根據本節課學習內容進行學法指導,幫助學生掌握正確的學習方法,通過預備知識檢測實現預備知識學習反饋,便于學生帶著問題到課堂上解決。
課中導學的組織與實踐階段是信息學奧林匹克“學案導學”教學模式的核心部分,通過教師活動和學生活動完成創設情境、激趣導情質疑置問、引導探究精講點撥、釋疑破難拓展創新、總結歸納達標檢測、評估學習五個步驟的教學活動。
課后鞏固提高階段,教師根據課中達標檢測、評估學習的結果,進行課后作業布置,目的在于反饋調整,鞏固提高。學生根據學案提供的課后習題進行自主學習,遇到問題可以查閱教材、輔導書,也可以上網和老師、同學進行在線交流。教師通過建設和維護信息學奧林匹克競賽學習群,進行在線答疑,幫助學生,進行課后輔導。
圖1 信息學奧林匹克競賽“學案導學”教學模式
二、教師的四環導學
信息學奧林匹克競賽“學案導學”教學模式中教師的四環導學基本教學方式采用的是問題式導學,即誘導(提出問題)、引導(分析問題)、疏導(解決問題)、指導(深化問題)。將知識問題化、能力過程化,把學生需要掌握的知識設計成問題,學生在解決問題的同時既掌握了知識,又培養了能力。
1.誘導――提出問題
四環導學第一步是誘導:提出問題。教師聯系生活中的案例提出問題,創設問題的情境,目的是激趣導情。問題的提出要貼近生活,具有趣味性。教師通過誘導方式激發學生的學習興趣,調動學生學習的積極性,明確本節課的學習目標和學習任務,讓學生主動參與到課堂教學中來。
2.引導――分析問題
四環導學的第二步是引導:分析問題。教師質疑置問,引導學生依案探知。對于學生可以依案探知獨立完成的問題,教師只需明確將教學任務布置給學生完成,學生依案探知、自主學習后進行匯報、總結。教師了解學生的學習情況后需肯定學生的學習成果,并給予適當的鼓勵和表揚。對于教學過程中出現的重點問題,教師質疑置問,并且加以引導,引導學生進行問題分析,然后學生再進行依案探知。重點問題應該重點對待,學生依案探知、自主學習后,教師針對這部分知識的核心問題加以提問,檢查學生對重點知識的掌握情況,如果學生掌握得有偏差,需要教師及時地引導,加以分析,幫助學生掌握這部分知識。
3.疏導――解決問題
四環導學的第三步是疏導:解決問題。精講點撥、釋疑破難是在學生自主學習、自主探究、合作學習之后,教師根據教學內容的重難點和學生在自主學習、自主探究、合作學習過程中遇到的困難,進行精講點撥,加以疏導,解決問題。教師在疏導過程中,注意要做到以下幾個方面:首先,語言言簡意賅,內容要精講點撥;其次,教師應根據學生在“先學”過程中遇到的困難有針對性地精講點撥,切忌面面俱到;再次,教師疏導時,精講點撥、釋疑破難不是教師從頭講到尾,應具有啟發性,學生經過教師的疏導后能獨立自主解決問題;最后,學生在教師的疏導下,最大限度地發揮潛能,調動主觀能動性,拓展解決問題的思維,提高自主學習、自主探究的能力。
4.指導――深化問題
關鍵詞 中學 信息學奧林匹克競賽 課程建設
中圖分類號:G633.96文獻標識碼:A
1 信息學奧林匹克競賽的意義
雖然近幾年教育部對信息學奧賽高考加分政策做了調整,但仍有許多青少年懷著濃厚的興趣參與這項賽事,可見它的意義遠不止“應試”而已。從本質上看,計算機學科是思維學科,正確的思維訓練可以播種持續創新的優良種子。青少年時期正處于思維活躍、充滿各種幻想的黃金年代,長期的實踐經驗告訴我們,青少年信息學奧林匹克競賽可以讓廣大的青少年淋漓盡致地展現其思維的火花,享受創新帶來的美感。①
2 中學信息學奧林匹克競賽課程的開展條件和生源選拔
2.1 開展條件
信息學奧林匹克競賽課程是一門難度較大的校本課程,其開展有賴于學校、教師和學生三方面的支持。②課程的開展不僅需要校方給予硬件設施上的支持,更需要的是深刻理解信息學競賽對于中學生的意義,在思想上的給予高度重視,支持有能力的教師開展教學活動,鼓勵符合條件的學生積極參與到其中。
除了嚴謹的治學態度,系統完整的專業知識結構,寬廣的知識面意外,本課程的任課教師必須具備純熟的教學技能,能夠運用便于學生理解的適當方法解釋重、難點內容。
想參加本門課程學習的學生必須對程序設計有濃厚的興趣,并具備一定的信息技術知識、扎實的數學功底、有勤懇的學習態度、較強的自學能力、高效的學習效率、敏捷的思維和邏輯判斷能力、權衡文化課和競賽的能力和積極自覺的交流意識。
2.2 生源選拔
為選拔合適生源、最大限度地利用教學資源,筆者將生源選拔分為:(1)初試的篩選:通過筆試確定學生的基礎水平,淘汰能力不足的學生。(2)中期的遴選:在教師進行了一段時間的教學活動對學生有了解之后,根據雙向選擇原則,對于學生進一步篩選。(3)后期的重點培養:對于一些前期教學內容掌握效果好、要參賽的同學進行重點的培養。
3 中學信息學奧林匹克競賽課程的實施
3.1 課程內容
本課程內容共分為六大模塊,各模塊相互銜接,行程有機統一的整體。第一大模塊:競賽的知識。講述競賽形式和成績評定辦法,試題形式和試題的知識范圍。第二大模塊:信息技術基礎知識。包含計算機的發展、計算機的組成、操作系統、計算機內的數據表示、文字的錄入與排版、網絡技術與應用以及信息技術道德規范等內容。第三大模塊:程序設計語言。Pascal語言作為過程模型程序設計的代表,有其獨特的魅力,作為程序設計的起點,其強調的結構化設計方法和思想蘊涵著豐富的哲理,是培養程序設計思維的良好入門。本模塊講解PASCAL編程語言的編程環境、語法基礎、程序設計語言結構、自定義數據類型、數組、過程與函數、文件和指針等內容。 第四大模塊:數據結構。講解包含線性表、隊列、棧、樹和圖等在內的常用數據類型,并舉例講解數據結構在程序設計中的應用。第五大模塊:算法設計與分析。包含窮舉法、遞歸算法、貪心算法、回溯算法、分治算法、動態規劃等經典的算法,另外還包括排序和查找算法的實現和選擇,以及算法的時間和空間復雜度分析。第六大模塊:競賽模擬。遴選近幾年的試題,從競賽實戰需求出發對每一道題進行了詳細解析。
3.2 教學方法
信息學奧賽課程注重基礎和應用,因此教師應根據教學內容的不同特點以及學生的認知特征靈活使用教學方法和手段,思考如何幫助學生全面、深入、熟練的掌握所學內容,真正領悟重難點,建立二者之間的聯系,提高分析問題和動手解決問題的實踐能力。
(1)信息技術基礎知識部分。這部分內容的特點是知識點比較基礎,且紛繁復雜、瑣碎細致。由于時間的限制,講解不可能面面俱到,只能挑選進制、計算機系統等重點內容使用講授法進行講解,并對歷屆考題進行分類講解,其他的知識則穿插在后續課程中,作為每節課的小知識點貫穿整個課程。在課程實施過程中配合練習法對先前講解的內容進行定期回顧和復習,循序漸進地提高學生的信息素養。
(2)程序設計語言基礎部分。程序語言的講解比較基礎,特點是理論性和實踐性較強。語言基礎理論主要選用講授法進行細致講解,為后續學習奠定扎實的基礎。結合小組討論法和練習法進行,引導學生閱讀程序、分析程序、練習編寫程序,幫學生形成程序設計的思路,并養成良好的變成習慣。并使用實驗法,給學生布置實驗設計的題目,根據題目難度,確定小組合作或是單獨完成設計。另外還要選擇經典常用的小程序段,作為小錦囊,讓學生反復使用練習,熟練掌握,做到能夠靈活應用。
電子教案和課件在程序設計教學中的優勢不言而喻,充分利用現代教學手段,把抽象的思維過程和概念形象化為動畫進行仿真演示,生動而直觀地表現教學內容,將抽象概念具體化、看不見的可視化、思維過程形象化、思路清晰明了化,這種教學手段符合學生的認知規律,可以大大地減輕教學難度,有效提高教學效率和質量。
(3)算法設計與分析部分。算法是本課程的重難點,教學實施過程中應引入有趣且合適教學的算法實例,使用任務來驅動課堂,教師逐步拋出問題,啟發學生去分析問題,經歷人腦解決、計算機代替人腦解決、將算法轉化為程序、調試程序等環節,培養在算法支持下使用程序設計語言編寫程序解決實際問題的能力,最后隨著算法思維的積累,學會優化程序,尋求時間和時間復雜度都最小的最優算法,體會算法的精妙之處。
另外,在日常教學過程中,教師不但要幫助學生掌握好信息學知識,更應該關注學生優秀心理素質的培養和教育,應該讓學生認識到:競賽特別是高層次的奧賽具有強烈的刺激性、競爭性,參賽并非追求名利,而是一種信心和能力的體現,是一次智力與技能的檢驗,是一次擴充知識和再學習的極好機會,參與,才是奧林匹克精神的所在。
3.3 教學實驗設計
本課程精心設計程序設計基礎實驗和程序設計應用實驗兩個模塊,以加深學生對理論知識的理解,培養學生應用知識和解決問題的能力。
程序設計基礎實驗模塊設計目的是為了強化學生對程序設計語言的使用能力,其中包含的內容有順序、選擇、循環三種程序設計結構,數組、枚舉、集合、記錄等自定義數據類型,過程與函數,指針、文件等重點知識,實驗內容包含計算閏年、Fibonnaqi數列、求階乘、最大公約數和最小公倍數、求素數、求水仙花數、打印制定圖案、打印九九乘法表、數組的輸入和輸出、子過程的嵌套與多重循環、鏈表的基本操作和指針的使用等等。
程序設計應用實驗模塊設計的目的是為了強化學生對算法的理解,包括窮舉法解決排列組合的問題,遞歸解決階乘問題和漢諾塔問題,回溯、貪心算法解決超市找零錢的問題,快速、冒泡、選擇的排序方法,深度搜索和廣度優先搜索,動態規劃等等。
具體實施時根據實驗實施的難易程度考慮是否建立實驗小組,實驗前教師應布置充實、明確的任務要求,實驗中給予學生適當的輔導,學生完成實驗并詳細記錄思路和實驗過程,最終師生共同進行過程性和總結性的評價。
3.4 考核
本課程考核采取模擬競賽方式,考試流程嚴格按照全國青少年信息學聯賽和NOI競賽的規則進行。作此安排除了為檢驗教學效果、讓學生對自己的學習程度和現有水平有客觀的了解之外,還為了讓學生對競賽流程和題目難度有一定的準備,幫助學生明確并及時補充和夯實知識結構的薄弱環節。
注釋
**省小學信息學奧林匹克競賽以“信息與未來”夏令營為載體,通過上機編程著重考察學生對問題的分析理解能力,數學抽象思維能力,編程語言的應用能力和編程技巧、想象力和創造力等。在信息學奧賽的輔導教學過程中,作為教練員應依據“體驗科學探究活動的過程與方法,培養良好的科學態度,增強創新意識和實踐能力”的指導思想,摸索出一條比較新穎的適合小學生的教學方式。
信息學奧賽所涉及的內容廣,程度深,從計算機qb語言教學,到基本算法、相關知識點包含許多專業知識。就教學常態而言,至少要2-3年左右的時間,才能培養出一名好的選手。但是要提高學生的程序設計能力,并不是人們想象中那么高不可攀,只要方法得當,持之以恒,是可以取得良好效果的。
現狀分析
就本?,F狀來看,信息學競賽與其它學科競賽之間存在著明顯差異,大致存在以下幾點:
(1) 學生不了解學習的內容
信息學程序設計是全新的課程項目,學生從來未接觸過,并不了解其中奧秘,缺乏興趣。啟蒙將花費較大精力。加上主要學科老師及學生家長存在著種種誤解,不是很支持,參加人數少。
(2)學生參加活動時間有限
信息學競賽不同于其它學科競賽,難以安排專門時間,輔導只能利用周末和節假日。而學生空余時間本來有限,能支配的時間少之又少,時間安排相當困難。
(3)學生對學習方式不適應
計算機程序設計是一門與實踐操作結合非常緊密的學科,學生如果采用傳統的學習方式來對待,必是學得累,學習興趣受挫,最終可能會選擇放棄。
輔導方式
面對現狀,結合小學生的認知規律及思維發展規律。通過幾年的教學實踐,我們摸索出了“引導+創新”的教學指導模式,呈現出較高的效率和良好的效果。
一、引導——教師競賽輔導的基礎
引導指采用一定的手段,把某種本來就潛藏于受教者身上的潛力挖掘出來,從一種潛質轉變為現實。對于信息學競賽輔導教學來說引導的目的就是為了少教,不教。通過啟發、激發讓學生能在主動學習、主動探求、主動溝通、主動應用、主動完善的一種學習活動過程中,"自我"得到充分發展。
首先要明確地告訴學生目光要放遠,信息學競賽對思維能力的拓展培養、未來各方面發展都十分有利。讓學生意識到信息學科的重要性和學科間知識的無界性、擴展性、滲透性。
其次計算機解決問題的方式比較細致繁雜,程序是對所要解決問題的各個對象和處理規則的描述,算法是解決問題方法的精確描述,結合小學生抽象思維較弱的特點,一些算法只能領悟,對每個問題,不同學生有不盡相同的算法,教師不能采用灌輸的辦法,只能指導一個方向性的思路,由學生獨立編制完成。教師要多做有心人,針對每個學生不同的思維習慣和特點,從學生的主體性地位出發,有針對性分別指導。長期堅持,學生的獨立思考和自學能力就得到長足發展。
比如“回形矩陣”題目(jsoi20xx小學組復賽第1題),可以有多種解題方法,可以用普通變量,也可以用下標變量;可以用for循環,也可以用do……loop循環;可用擬人法來解題,也可以用解析法來解題等等。引導學生盡可能掌握多種方法來解題。
有些經典問題,小學教材中給出一般解法,對各種特殊情況和變形不作深入的研究。而在實際應用中,又加入一些約束條件后,原有性質會發生改變,在題目中隱藏著不易察覺的規律,作為教師應多引導學生通過對原問題標準程序段的擴展,將約束條件加入題目中,進而發現規律,得到有效算法。
例: 回文數列(jsoi20xx小學組復賽第4題)
對一個正整數k,求出k的所有拆分,并統計輸出其中回文數列的個數。
所謂回文數列是指該數列中的所有數字,從左向右或從右向左看都相同。
例如:
k=4時,有如下的拆分:
4=1+1+1+1
{回文數列1}
=1+1+2
=1+2+1
{回文數列2}
=2+1+1
=2+2
{回文數列3}
=1+3
=3+1
回文數列共有3個
通過分析問題,學生可以采用回溯算法來解決,分為初始設置(包括數據輸入、棧的初始化以及初始元素的設置)、數的拆分(回溯)、回文數列的檢測、輸出結果四個模塊。
由于本題沒有要求打印輸出所有回文數列的原始清單,只要求輸出計數的結果,因此我們可以換個角度引導學生重新思考問題,以進一步發現其中的規律。分別以4和5為例。
由于是回 文數列,因此每個數必須被分成3部分,以4為例:4=1+2+1,我們發現中間的數字只能是偶數,即2和0,為2的時候有1種數列,0的時候有2種數列。再來研究一下6,當為4的時候有1種,為2的時候有2種,為0的時候有4種。最后看一下5,情況和4非常的相似,只是中間的數字只能是奇數,這樣以來思路就很清晰了,我們可以首先將m2,將這個結果給一個變量k,然后只要計算2^0+2^1+2^2+……+2^(k-1)的結果,再簡化一下就是計算2^k-1的值.
引導對教師的要求:
(1)教師對自已所教的知識領域,達到一定的深度和廣度,是引導過程中的基本要求。
(2)教師注重的是思路方法的拓展引導。教師作為教練在競賽的深化階段,程序點評分析及拓展是必要的。
二、創新——學生成長的關鍵
1、組建學習互助小組,編寫對應的學習方案
信息學奧賽輔導的實踐證明,許多問題不是單靠個人思考所能解決的,最佳答案往往是集體智慧的結晶。學生們每解決一個問題,建立一個新的程序模塊,都是一次創新。在解決問題的過程中,剛入門的同學往往沒有框框,反而容易有新思路,他們的想法應得到充分的重視。通過討論,連鎖促思。有時學生們的想法會超過老師。因此教師在教學過程中要營造一種平等、自由、互相尊重、互相信任的師生關系。
2、搭建標準程序模塊,探究最優解決方案
輔導不提倡題海戰術,而要注重對問題不斷深入的探索,最終得出一個最優化的解決方案,搭建一個標準程序模塊,這樣的模式,既為學生減輕了負擔,又為他們養成良好的思維品質、提高效率意識提供了極好的鍛煉機會。
3、注重“問題”意識,培養倡導問題教學方法
“問題”決定潛力。提不出問題的學生不是“好”學生,沒有問題說明沒有進行深層次的思維意識, “問題越多,潛力越無限”。當然,有“問題”是前提,解決問題則是學生提升自我的重要途徑。交流是關鍵,與團隊交流,與教師交流,在網絡中交流,方式是靈活多樣,其最終目的就是達到解決問題,掌握知識,建構自我學習框架。
例如:減法算式
小紅是二年級學生,老師布置他們回家自己出一道數學題做,題目要求是三位數的退位減法,即要求一個三位數減去另一個三位數,(被減數比減數大),而被減數的個位必須向十位借數才能減去減數的個位,然后被減數的十位也必須向百位借數才能減去減數的十位。小紅的哥哥小華,是五年級學生,在學習編程,她就讓哥哥幫她編一個這樣的程序,小華答應了。小華想到自己正在學習素數(除了本身和1外不能被其它數整除的正整數,1不是素數)知識,就給題目增加了一個條件,就是被減數的百位數、十位數、個位數中或被減數本身必須至少有1個是素數,減數也如此。如:438-269;513-479。請你幫助小華完成該程序,能夠編出所有符合這些要求的題目。
通過認真讀題,發現最終要列舉出所有符合條件的減法算式,對算式中的數字必須滿足下列要求:
(1) 被減數、減數必須是三位數
(2) 被減數的個位必須向十位借數才能減去減數的個位,然后被減數的十位也必須向百位借數才能減去減數的十位。
(3) 被減數、減數的百位數、十位數、個位數中或被減數本身必須至少有1個是素數。
要解決上面的問題,首先在程序中判斷1000以內的數是否是素數,然后運用窮舉算法在三位數中依次查找,判斷是否滿足上述第二條,如符合條件再判斷這兩個數是否滿足上述第三條,以上兩條均滿足則打印輸出。
但是在運行的過程中,學生發現了一個問題,最后一個算式是 997-899=,899顯然不符合題目要求,但是卻顯示在結果中。反復檢測程序,均找不到錯誤,于是同學們開始嘗試思考其他的方法解決這個問題。
深入思考,首先篩選出三位數中符合要求(3)——被減數、減數的百位數、十位數、個位數中或被減數本身必須至少有1個是素數的數,然后運用窮舉算法在這些數中依次查找,判斷是否滿足要求第二條,以上兩條均滿足則打印輸出。
dim a(900)
n = 0
for i = 102 to 997
a = i mod 10: b = (i 10) mod 10 :c = i 100
if a = 2 or a = 3 or a = 5 or a = 7 then s = 1 else s = 0
if b = 2 or b = 3 or b = 5 or b = 7 then s = s + 1
if c = 2 or c = 3 or c = 5 or c = 7 then s = s + 1
f=0
for j = 2 to int(sqr(i))
if i mod j = 0 then f = 1 : exit for
next j
if f = 0 then s = s + 1
if s >= 1 then n = n + 1: a(n) = i
next i
for i = 2 to n
for j = 1 to i - 1
x = a(i): y = a(j): z = a(i) - a(j)
c = x mod 10: b = (x 10) mod 10: a = x 10
g = y mod 10: f = (y 10) mod 10: e = y 10
c1 = z mod 10: c2 = (z 10) mod 10
if (c1 + g > c) and (c2 + f> b – 1) then print x; "-";y;"=",
next j
next i
end
4、靈活運用條件遷移,強化拓展思維訓練
一、以學生興趣為導向
在高考加分、保送政策改革下,學生對于學科競賽的熱情較以往大大降低,家長不再支持自己的孩子在學科競賽中投入大量的精力,同時學校對于競賽培訓工作的支持力度有所減弱。在這樣的環境下,我們不能沿用以往的大面積撒網,重點培養的培訓模式,應作出相應調整。中學階段的學生,對于知識的求知欲很大程度是基于興趣的驅動。這就要求我們在對學生的選拔過程中,應以學生的興趣為重要依據,建立學科競賽學習小組,實行小班化教學。在教授學生基本編程知識、技能的同時,更要積極采取措施,激發學生學習編程的欲望,努力培養學生興趣,將創新思維貫穿始終,不斷提高學生的綜合能力。
二、建立學習互助小組
信息學奧林匹克競賽分為普及組(初中)和提高組(高中)兩個組別,這就使得新高一的學生在進校之時就出現兩類情況:一是初中階段參加了信息學奧林匹克競賽的培訓,具有一定的基礎;二是之前沒有接受過培訓,但對信息競賽很感興趣,同時學有余力。在編學習小組時,我們可以把學生分成若干學習小組,每組3~5人,其中一名為初中階段參與過信息競賽培訓的學生。在我們的教學過程中,教師的教授是面向全體學生的,由于學生的個體差異,這就存在掌握知識點快慢的現象。在學生實踐操作環節中,教師對全體學生的指導是有限的,不能照顧到每一位學生。這時,擁有以往培訓經歷的學生在聽取教師講授的過程是復習鞏固的過程,在實踐操作階段,這些學生就起到了教師的小助手的作用,對本小組的學生進行指導。在教師、學生的互相交流,學生之間的互相交流中,所有學生都能夠很好地掌握教授知識,實現共同提高進步。
三、分階段、循序漸進的培養
信息學競賽較其他學科競賽略有不同,以往在大學階段學習知識要在中學階段中進行學習,教師教授的是計算機程序設計語言、數據結構計算法藝術,學生接受的是全新的知識,這就要求我們在培訓過程中分階段,循序漸進地進行。培訓過程中應尊重技能養成的循序漸進,更應關注學生的能力發展,應根據學生實際情況合理地安排學習內容,確立培養目標。第一階段:在高一的一年時間里,以程序設計語言的教學為主,夯實基礎,培養學生的實踐操作能力。同時講授基礎的算法,如模擬法、分治法、貪心法。第二階段:在高二上學期的前半段,講授數據結構及動態規劃法的初步知識,并進行有針對性的賽前練習,為第一次競賽做準備。第三階段:在第一次競賽后至高三第二次競賽前為培訓工作的第三階段。有了第一次競賽的經驗積累,在競賽中找到不足之處,剩下的一年時間里主要進行數據結構以及動態規劃法的培訓工作。在學生掌握了信息學競賽知識后,針對每一位學生的特點,制訂相應的培訓策略,注重培養和發展學生的學習能力、研究能力、創新能力,為高三的競賽做充足的準備。
四、利用學校、網絡資源,創建良好培訓環境
在培訓過程中,充分利用學校計算機教室、學科競賽活動室作為培訓的主戰場,創建小組探究式的學習環境,給學生提供一個良好的學習環境,有利于學生團隊精神的培養及自我歸屬感的建立。
為了切實提高學生的編程能力,利用網絡信息學在線測評系統作為學生的練習平臺。根據教學安排,布置相應的練習任務,在信息學在西安測評平臺上進行訓練,提高學生的編程能力。同時定期組織模擬賽,在限定時間內完成模擬測試,對測試成績進行及時分析,對測試題進行講評,以賽代練。
關鍵詞:信息學;奧林匹克競賽;程序設計;習慣
中圖分類號:G642 文獻標識碼:B
1現狀與對策
全國青少年信息學奧林匹克聯賽(National Olympiad in Informatics in Provinces,簡稱NOIP)是全國信息學奧林匹克競賽(NOI)系列活動中的一個重要組成部分,旨在向中學生普及計算機基礎知識。從早期只考核學生對程序設計語言的理解、熟悉程度以及編程技巧發展到模型設計、離散數學、動態規劃的思想及算法,由單純的培養學生學習興趣轉變為創造性地運用程序設計知識解決實際問題的能力。然而學生在程序設計習慣方面普遍重視不夠,為軟件項目開發埋下了巨大隱患。
1.1現實中存在的問題
信息學奧林匹克競賽上由于教學單位出現急功近利的思想,造成學生不能較好地正確掌握計算機程序設計過程,沒有養成良好的程序編程習慣。在現實中,程序設計普遍存在以下一些共性問題:
(1) 不愿意讀別人的程序。強調自己程序設計方法的優點,不愿意學習和借鑒他人的設計思路。
(2) 不畫流程圖。程序流程圖本來是程序設計的最簡單最直白書面表達,然而沒有得到足夠的重視與平時養成,學生不樂意用流程圖來表達設計思想與過程,實際上往往導致程序邏輯交叉,當程序出錯時排除費時費力。
(3) 不寫程序功能說明。程序設計過程中普遍存在只寫源代碼的語句,對程序實現的功能沒有描述,別人閱讀程序很難,有時編程者自己對程序的處理技術方法也遺忘。
(4) 不寫代碼的注釋。不對程序進行必要的注釋,造成閱讀困難,程序可讀性差。
(5) 忽視出錯處理。只完成程序功能的單一實現過程,對程序可能的具體出錯處理分析不夠。
(6) 忽視程序算法分析。程序算法對程序運行的效率影響是非常大的,程序算法的復雜度直接影響程序的時間和空間。
(7) 忽視程序設計過程中文檔資料的積累。普遍認為編程就是寫程序和調試過程,忽視文檔的書寫,其后果導致程序維護困難。
1.2對策
信息學奧林匹克競賽注重學生終生學習能力的培養,而不停留在唯競賽而學。在平時的教學中培養學生良好的程序設計習慣,使學生學會準確運用程序設計工具,養成良好的程序設計風格,將達到事半功倍的效果。
(1) 勤于思考、克服困難的習慣。由于學生對知識層次理解的深度有限,思維是發散而新穎,學生所編寫的程序必然有別于專業人員,但是要培養其具有專業人員的素養,要養成解決問題的好習慣,從解決方法和基本原理上勤于推敲。
(2) 與人協作的習慣。NOIP考試形式上看是學生個人的行為,而真實的軟件工程是多人合作、信息共享的活動,互學互助、取長補短、與人溝通、信息交流的好習慣將使學生受益終身。
(3) 培養全局規劃習慣。不論是程序語言的學習例題還是NOIP的考試命題,題目功能典型,學生要善于從短小的程序代碼中分析計算機解決問題的方式、途徑,將小代碼功能擴充完善,利用程序設計工具對問題從全局角度進行分析處理。
(4) 良好的代碼編寫習慣。包括程序流程圖、變量命名、代碼標注、功能注釋、捕獲代碼異常、測試樣例、文檔記錄等多個環節。如果在軟件開發和程序編寫過程中養成良好的習慣,那么程序中存在的漏洞就易于發現,為將來大型軟件項目的開發打下良好基礎。
(5) 養成善于總結分析、勤于記錄文檔資料的習慣。建立自己的知識庫,不僅有源程序代碼,還要有完備的文檔資料記錄。
2培養正確程序設計習慣的措施
學生在學習過程中主要接觸的是以掌握基本算法為主的程序例題和NOIP獨立命題題目,而軟件開發過程是一系列活動,包括方法、工具和過程三個要素。因此,如何讓學生以小見大,培養良好的程序設計習慣才是學習的根本。以第14屆NOIP提高組C++初賽題目閱讀程序4為例題,說明如何借助程序設計工具,養成良好的程序設計風格,培養良好的程序設計習慣,例題的源程序如下。
#include
#include
using namespace std;
int i,j,len;
char s[50];
int main()
{ cin>>s;
len=strlen(s);
for(i=0;i
{if (s[i]>='A'&&s[i]
for(i=0;i
{if(s[i]
cout
for(j=1;j
{ for(i=0;i
{s[i]=s[i+j];}
}
cout
return 0;
}
2.1準確使用程序工具的習慣
學生在學習程序設計過程中不要過分強調上機調試運行,學會正確運用程序設計工具是根本。程序設計工具不僅能正確將程序分析過程轉變為程序實現,而且還能夠幫助學生快速分析源程序的語句功能,生成程序設計過程中所需要的文檔資料。
2.1.1數據字典
數據字典以字典式順序組織精確嚴格地定義了每個數據元素。通過讀例題源程序,得到例題的數據變量的數據字典,具體變量描述如表1所示,這有助于理解各變量在程序中的輸入、輸出、存儲和中間計算。
2.1.2N-S圖
N-S圖是適應結構化程序設計特點,逐步求精模塊化程序設計方法的有力工具。閱讀例題源程序語句可以快速畫出它的N-S圖(圖1),從而確定例題的程序順序結構功能,如圖2所示。
2.2良好程序書寫風格的養成
程序不僅要保證運行正確,也是讓別人讀的。程序書寫設計風格包括4個方面:源程序文檔化、數據說明、語句結構和輸入輸出方法。針對NOIP命題特點,學會從編碼原則提高程序的可讀性著手。由于例題已具有完好的縮進格式,只需要加入相關的序言性和語句注釋。程序部分修改內容如下。
/* 4.cpp 程序功能: */
/*首先,大小寫混合字母的字符串變成小寫字母;然后以26字母循環形式,逐個字符替換為其位置后的第3個字符;最后,重新賦值指定位置字符。*/
....
int main()
{ cin>>s; //字符串s初始化
len=strlen(s); //求s長度
for(i=0;i
...
//逐字符轉換為其后面的第3個字符
for(i=0;i
...
cout
//3次循環將s指定字符s[i]重新賦值s[i+j]
for(j=1;j
...
cout
return 0; //返回
}
2.3程序算法分析的習慣
算法的空間復雜度和時間復雜度是分析一個程序算法的執行效率與存儲需求,可以有效避免只強調偏僻技巧而忽略算法復雜性。
int main()
{ cin>>s; //執行次數1
len=strlen(s); //執行次數1
for(i=0;i
...
for(i=0;i
...
for(j=1;j
for((i=0;i
s[i]=s[i+j] //執行次數4*n
cout
}
通過對例題的基本語句執行次數分析,得出程序的時間復雜度為O(n2)。
2.4面向對象程序設計的習慣
目前面向對象的程序設計技術在軟件開發中占據主導地位,是指導學生學習軟件的發展方向。根據例題程序的功能實現,通過定義一個obj類,含有實現程序功能的4個成員函數,將例題的面向過程編程改寫為面向對象的程序設計,使數據和操作具有封裝性。改寫后的程序源代碼如下。
#include
#include
using namespace std;
class obj //定義obj類
{public: //定義公有成員函數
obj( ) {*s=NULL;len=0;} //定義構造函數
void input( ); //輸入函數
void change( ); //字符轉換函數
void setvalue( ); //字符重賦值函數
//定義輸出函數
void print(){cout
private: //定義私有成員變量
char s[50]; //字符串s
int len; //字符串長度len
};
void obj::input( ) //定義輸入函數
{cout
cin>>s;
len=strlen(s);
}
void obj::change( ) //定義轉換函數
{ for(int i=0;i
{if (s[i]>='A'&&s[i]
for(i=0;i
{if(s[i]
}
void obj::setvalue ( ) //定義字符重賦值函數
{ for(int j=1;j
{ for(int i=0;i
s[i]=s[i+j];}
}
int main( ) //主函數
{ obj x; //obj類的對象x
x.input ( );
x.change ( );
x.setvalue ( );
x.print ( );
return 0;
}
3結語
NOIP重點是培養學生學習計算機的興趣,使學生對信息技術的一些核心內容有更多的了解,提高創造性地運用程序設計知識解決實際問題的能力,而不是一味學習專業教材。因此,只有開始養成一個良好的程序設計習慣,才能為將來的軟件開發打下好基礎,而不是追求唯競賽而學的短期效果。
參考文獻:
[1] 馬苗,田紅鵬. “面向對象程序設計與C++”教學中的問題與思考[J]. 計算機教育,2008(6):81-82.
[2] 楊顯霞. 信息學奧林匹克競賽教學模式初探[J]. 西南農業大學學報:社會科學版,2008(4):169-171.
[3] 林小華. 計算機程序設計風格探討[J]. 軟件導刊,2006(17):33-35.
在新的高考政策下,高考加分制度作出了相應的調整,這使得很多學生對奧賽的熱情有所減退,家長也不愿意學生浪費更多的時間在這項比賽中。因此,以往的奧賽教育模式已經無法滿足現在學生的要求了,必須要作出改變。由于中學生對知識索取的動力與小學生不同,更加偏重于興趣,所以在選取參加信息學奧賽的學生時需根據其興趣來決定,摒棄過去大班式教育,實行小班式教育,組建奧賽興趣小組。
組建互助小組
信息學的奧賽分為兩個小組進行,包括普通組和提高組,分別由初中生和高中生組成。也就是說,高中學校在組建奧賽小組時,其高一學生中就會出現兩類人,一類是已參加過奧賽培訓,具有一定的基礎;另一類是沒有參加過奧賽,但對其比較有興趣,同時還能有業余時間學習。因此,在分配小組時,每個小組中至少要有一名成員參加過奧賽,具有一定的知識基礎,這樣組內有知識基礎的成員就可以在課余時間指導小組的其他成員,這樣的方式不僅可以使其鞏固已有知識,也可以增強小組內的凝聚力。
分階段培養
信息學奧賽較之其他學科略有不同,其所要學習的大部分知識對高中生來說具有一定深度。因此,在培訓的過程中教師不能盲目地進行教學,一定要采取分段式教學方法,為學生循序漸進地傳授相關知識,將重點放在技能的學習上,注重學生能力的發展,根據學生的實際情況來安排課時。
第一階段,是學生的高一時期。教師主要以講授程序設計的語言為主,同時培訓計算機基礎算法,如模擬法、貪心法等,為學生打好基礎,培養其上機能力。
第二階段,是學生高二的第一學期。教師需要對數據結構、動態規劃等方面進行培訓,同時要進行合理的賽前訓練,也可以帶領學生參加第一次比賽。
第三階段,是學生高二的第二學期及高三時期。有了學生第一次參加奧賽的成績,教師可以從中找到其不足之處,并在第三階段進行有針對性的培訓,主要還是圍繞數據結構、動態規劃等方面進行。這個階段重點是鍛煉學生的創新能力和實踐應用能力。
充分利用學校資源
在整個奧賽興趣小組的培訓過程中,應充分利用學校的計算機教室、多媒體、活動室等資源,為興趣小組營造一個良好的培訓環境。利用各類趣味編程來提升學生對編程學習的興趣,同時,利用網絡在線評測系統為學生提供更多的練習機會,根據當天或當個階段的教學內容為學生布置練習題目,要實用與趣味相結合。學校還可組織校內模擬競賽,用比賽的方式代替練習,為比賽中獲得優異成績的學生或小組頒發獎品,以激勵學生的學習積極性。
勞逸結合
在高中繁重的學習課程和競賽任務的壓力下,教師可多帶領學生參加校外活動、參觀科技館或相關比賽,讓學生以旁觀者的眼光對編程有一個概念,再與自己的編程進行對比,這樣能夠讓學生體悟到許多理論知識中沒有的內容,從而提升學生的實踐能力和學習能力,也鍛煉了他們的邏輯思維。同時,校外活動還可以很好地放松學生的身心,減小其心理壓力,使培訓過程更加有效率,降低他們因逆反心理或壓力而放棄培訓的情況。