作為高中信息技術選修模塊之一,算法與程序設計強調在必修模塊的基礎上關注技術能力與人文素養的雙重建構。通過本模塊的學習,能使學生在原有基礎上進一步體驗算法思想,并能初步使用一種程序設計語言編制程序,實現算法解決問題。因此,學習算法有利于培養學生的邏輯思維能力、實踐能力和理性精神,有利于提高學生解決問題的程序化能力。現根據本人的教學實踐對算法與程序設計教學做一些探討。
教學實踐中遇到的問題
1.將算法與程序設計混為一談
學習一種程序設計語言,就是學習這種語言的規則,即學習語法、語義、程序及其他一些規定,這里涉及的是嚴格的定義、嚴格的書寫方法。而學習算法是學習設計過程,內容主要是描述功能、書寫方案、證明正確性、試算和修正,設計是一項具有創造性的工作。算法與程序設計兩者有著根本性的區別。
2.學生差異問題
就算法與程序設計而言,學生處在同一起跑線上,以前都沒有學過,似乎不存在學生基礎差異問題。但事實上還有很多因素會造成差異,比如學生接受知識的能力、努力程度、自信心等,特別是個人興趣對學習這門課程起著很關鍵的作用。
3.課時安排緊張
算法與程序設計中包括兩大塊內容,一是算法部分,一是VB程序設計基礎部分(當然本人并不是要將學習算法與程序設計區分開來)。這兩大塊內容每一塊都至少要學一學期,但現在卻把這兩塊內容壓縮在32課時內,教學難度可想而知。
教學過程中應注意的問題
1.要處理好算法與程序設計教學的關系
程序是計算機的血液,沒有程序的計算機就像一個空的珠寶盒。然而,在教學實踐中教師很容易將程序設計和算法混為一談。因為算法是程序設計的基礎,算法不正確即便程序能運行也得不到正確的解。而程序設計重在設計,不是重在編寫程序。另一方面,進行算法的教學又不能完全脫離計算機程序設計。這是因為在算法設計出來時要通過編程并且運行程序進行驗證,這就要借助于程序語言來實現算法。當然,編寫程序代碼時還要理解一些在程序設計語言中的語法結構。例如要表示兩個數a和b相乘,如果用VB語言的話,中間的*號則不能省略。又如語句“s=s+I”中的“=”表示的不是相等,而是賦值過程。
因此,學生學習程序設計一般應選用一種語言作為工具,學程序設計就必須學程序語言,學習時兩者是不可能截然分開的。我們應當把程序語言作為一種載體、一種學習程序設計的工具,把教學重點落在算法的思想方法上,以培養學生的邏輯思維能力和創新精神作為教學目標。
2.要注重教學策略
(1)創設鮮明問題情境的策略
可能對部分學生來說,編寫程序很枯燥。單純的程序編寫的確有些枯燥,特別是編那些純數學的循環、排序、遞歸。但如果讓枯燥的程序算法轉變為貼近生活、有趣味性的實際問題,則效果就大不一樣。因為,鮮明的問題情境有利于喚起學生已有的知識經驗,激發學生充分調動和整合自己的認知經驗,尋求多樣化的解題方法。
比如在講VB程序基礎時,可以從學生感興趣的QQ系統登錄