程序設計教學長期以來一直是高中信息技術課教學的重點和難點之一。如何找到一條比較實效的教學方式,使學生通過學習既掌握高級編程語言的知識,又能靈活運用高級語言進行程序設計,一直是廣大信息技術教師頗感興趣的課題。本文結合實例和具體的課堂教學,就如何提高程序計課程的教學質量、培養和提高學生分析問題、解決問題的能力和創新能力等方面,談了一些在教學上的經驗和體會。
目前程序設計教學中存在的普遍問題
根據筆者以前的程序教學經驗和通過與學生、同行之間的交流,得知部分學生反映上課時都能聽懂講解,可在涉及到具體的編程及上機操作時,往往會出現沒有思路、無從下手或錯誤百出、不會調試程序等各種情況。究其原因,在教學方面可能存在以下兩個問題:
1、教材重語法,輕算法
現在的教材通常先給出一般的語法格式,然后逐步講解語法要點,再給出例子。教師鐘情于舉一反三地對使用語句、語法的深入教學,而不是有機地結合算法思想進行教學。貼近生活并引起學生興趣的編程題講得很少。這往往導致學生上機時不知道寫程序的步驟而無從下手。 2、學生厭學,師生溝通少 學生對于先講后編、先聽后編這一傳統的課堂教學方式有厭倦心理。同時由于高中信息技術課的課時少(據筆者了解一般學校都是兩節課,而且這兩節課間隔時間又長),平時課后作業又很少,師生之間缺乏足夠的交流和溝通,學生沒有有效、實用的學習輔助途徑,也間接影響著學生的學習興趣和學習效果。
在教學中所采取的實踐嘗試
那么,如何就針對現階段程序設計教學中存在的普遍問題有效開展高中程序設計課呢?筆者做了以下幾點嘗試:
1、由易到難,逐步深入上好程序設計的理論課
學習程序設計的目的就是要培養中學生的結構化程序設計的邏輯思維,而這種邏輯思維又主要是通過對順序、條件、循環三種結構化語句和過程、子程序及自定義函數的學習來獲得的。要讓學生學好上述三個語句,首先要理解各語句的結構、功能和框圖的繪制,然后是多舉例,同時舉例也要由易到難。比如學習條件語句,這時可先舉數學中的一些數值判斷的例子,例如有這樣一個關系式:當X≥0時,y≥0;否則當X<0時,y<0。通過這個例子來教學生認識條件判斷語句的結構、書寫規則,了解其功能和如何畫流程圖。在讓學生循序漸進學編程時,老師應多采用程序填空、補充完整的方式誘導學生進入編程的角色。同時對于編程要用到的很多函數及其他語句,就可以在講程序設計時,結合例子碰到一個講解一個,使學生活學活用,解除學生學習的攔路虎,減輕學生學習的心理壓力。
2、合理把握技術難度,加強思想方法感悟
技術難度的把握是程序設計教學中容易產生困惑的地方,難度過高,大部分學生無法掌握;難度過低,天賦好的學生感覺學不到知識。面向所有學生,要找到一個平衡點,須遵循奧卡姆剃刀原理:即根據絕大多數學生的接受能力,在“課標”的基本要求之上,剔除教材中那些不必要的所謂“技巧”,傳達具有廣泛遷移意義的技術思想與技術方法。課堂中可以通過講解、觀察、范例模仿、組裝現成模塊等手段降低技術難度,使其逐步掌握程序設計的基礎知識,感悟程序設計的一般流程;對于天賦好、興趣濃的學生,教師可以通過課外引導而不是講授的方法促使其逐步加大技術難度,探索更廣泛的應用領域。
3、改革上機操作的實踐環節,重視上機調試
學生編寫的程序,往往含有比較多的邏輯錯誤。對于其中比較典型的錯誤,老師可以挑選出來,引導學生一起糾正。但是如果對所有的錯誤老師都要一一糾正,不僅占用太多時間而且很不必要。老師可以要求學生將編寫的程序輸入到計算機,進行上機調試。對于語法上的錯誤,老師可以幫助解決。對于邏輯上的錯誤,如得到了不正確的結果,應該讓學生獨立分析、修正、改進程序。以VB為例,教師可以教會學生如何設置觀察變量和程序單步執行。這樣學生通過觀察程序執行到每一步時各個變量值的變化,分析出產生錯誤的原因。上機調試,不僅是學習程序設計的必要技能,也是學生修正自己錯誤思維的過程。教師在上機實踐的環節中只是起引導、輔導的作用。通過改革了的上機實踐可以鞏固和提高前面的知識,不斷地用所學的知識去逐步完善這些程序,并將編程的技能技巧滲透其中。
4、組織課外興趣小組活動,培養學生的特長
在高中階段,每周只有兩節信息技術課,由于課時的限制,不可能講得很深。為了滿足對信息技術課有興趣的同學的學習,需要組織課外興趣活動小組,開展第二課堂活動。例如,可以開展程序封面和程序菜單的設計比賽、學校運動會運動比賽項目安排等程序設計比賽。而通過搞比賽,老師也就能輔導這些學生學習書本外的知識或深入講解課本相關知識,從而提高這些學生的程序設計水平。同時又培養出了一部分信息技術課的學習尖子,讓這些學生在上機課中或平時學習中幫助其他同學,達到教學效果的普遍提高。
程序設計是計算機這一現代工具為基礎教育帶來的一種培養邏輯思維能力的新方法和新手段。高中程序設計教學的主要目標是圍繞著這個目標,遵循程序設計教學的基本規律和基本原則組織教學,一切可行的教學方法都可以在我們的教學過程中加以運用。