




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、算法與程序設計選修模塊教學心得摘要算法與程序設計這門課程在上世紀九十年代曾是信息技術課的重點,隨著時間的推移,它漸漸淡出了我們的教材,這中間的原因有很多,但在筆者看來這項內容的學習是非常重要也非常必要的,因為算法是計算機科學的核心內容之一,能讓學生在高中階段接觸、了解,對學生的思維培養、能力拓展都是大有好處的。那么如何上好這門課程呢?筆者認為首先要讓學生理解學會編程解題的重要性。接著要從學生熟悉的問題出發,進行算法設計訓練,讓學生懂得將人工解題的過程描述成算法。教學中還應靈活處理教材,做到分散難點、用到再學,時刻牢記“問題解決”主線,精選“問題”吸引學生興趣,激發學生進行自主探究學習。關鍵詞算
2、法、程序設計、教學、問題解決正文高中新的課程標準指出,在中學開設算法與程序設計課程的主要目的是使學生能從簡單問題出發,設計解決問題的算法,并能初步使用一種程序設計語言編制程序實現算法解決問題。這種編程解題方式與數學解題方式有著許多相同點,更存在著許多區別。數學解題一般是人利用數學方法直接解決某個具體問題,而編程解題是人要將他(她)的數學解題方法以程序(算法)的方式告訴給計算機,然后由計算機執行程序來解決問題。我們要解決的問題雖然比較簡單,但如何編程來解決呢?這對初學算法與程序設計的學生來說可是不容易的。有人甚至覺得比數學還難。那么如何做好算法與程序設計這門選修課的教學呢?使學生能學得輕松、學得
3、高興呢?下面就談一談一個學期來我的做法。一、明確學習課程用途,消除學生畏難情緒學生通過必修課中的“用計算本機程序解決問題”一課,初步了解編程解題的作用及其主要步驟。但可能會有比較多的學生認為:人要計算機解決問題都可以找到相應的軟件,這些軟件都是專業人員設計好的,對于普通的人不需要學習編程解題。針對這個問題,我在第一節課就向學生介紹了我自己工作中遇到的問題,即如何批量添加server-u用戶,具體如下:例1:每學年開學時,我都要在學校的服務器上為每個學生開辟一個文件夾,并利用server-UFTP軟件為每個學生設置對自己文件夾的使用權限。一個年段600人,每人建一個文件夾、設置權限這些工作少說要
4、花1分鐘,600個人要600分鐘(10個小時),手工操作工作量大,且容易出錯。那么如何解決這個問題呢?接著引導學生進行認真分析,我們會發現同學們的文件夾可以按班級分類存放,每個同學的文件夾名稱也可以設置為g06?*這種形式(其中?表示班級,*表示座號),另外,server-u中的用戶配置都保存在一個文本文件中,且用戶與權限都很有規律。因此我們可以編寫一個程序,一個班一個班地、每個班一個一個同學地進行開辟空間和server-u的用戶添加權限設置。最后我演示一下我的程序,并簡要的解析了一下程序。通過以上的例子,我讓學生知道了,盡管現在已經有各種各樣的軟件幫助我們,使得我們工作效率不斷提高,但仍然會
5、遇到一些現成軟件無法做到的事情,需要我們進行原來軟件的基礎上進行二次開發。因此編程解題是很有必要的。另外,我還通過實例,簡要介紹程序設計語言的發展,讓學生知道了幾種常見的程序設計語言(機器語言、匯編語言和高級語言),同時讓學生感受到高級語言比起低級語言是容易學習的。這樣子,就讓學生知道,將要學習的VB高級語言是很容易被我們掌握的,從而消除學生對學習這門課的畏難情緒。以上這節課,不僅讓學生進一步復習了編程解題的過程,同時更重要的是,向學生傳遞了“編程有用、編程不難”這樣的信息,增強了學生學習本門的興趣與信心,為本門課的教學打下了一個非常好的基礎。二、理解算法設計重要性,引導學生進行簡單問題的算法
6、設計眾所周知,算法設計是程序設計的核心。對于任何一個問題,我們要想編程解決它,首先要先將自己如何解決這個問題的方法用一定方式描述出來(這就是算法設計),然后再根據算法編寫出程序。多年的程序設計教學經驗告訴我們,學生學習這門課的一個很突出的困難就是如何懂得設計算法。因此,我在這門課的第2、3節課就著重通過一些簡單的例子來讓學生懂得如何進行三種結構的簡單問題的算法設計。1、實例入手,引導學生總結出自己的算法例2:時間轉換輸入一個以秒為單位的時間t,將其轉換成x小時y分鐘z秒形式。用自然語言描述算法。這是一個小學數學問題。首先讓學生看清題目,抽象出“已知什么?求什么”這樣的模型,即已知t秒,求x小時
7、、y分、z秒,使得t秒=x小時y分鐘z秒。接著我們讓學生思考如何解這個問題?但是我們很快地會發現,學生仍無從下手。于是我們將問題改為“3800秒是幾小時幾分幾秒?”,發現學生很快算出答案“1小時3分20秒”。究其原因,我覺得學生可能習慣于解決一個具體的數學問題,而不習慣于解決一個帶變量的問題。這個恰恰是數學解題與編程解題的一個區別。接下來,我就讓學生說出他們是如何得出以上的答案,然后我們引導學生進行歸納,將3800這個數換成t,再讓他們嘗試說法求法,經過幾次進行修改,最后我們得到如下的算法:(1) 輸入以秒為單位的時間t(2)
8、0; 求出t整除3600的商x和余數a(3) 求出a除以60的商y和余數z(4) 輸出x小時y分z秒通過以上例子,讓學生明白什么是算法設計,同時也讓他們知道,要設計出算法,經常可以從實例入手,逐步地把我們人的解法用盡量精確的方法描述出來,就能設計出算法。同時為了能較準確的描述出算法,我們要象數學一樣要適當使用記號(也就是后面學習中的變量)。2、從學生熟悉的問題出發,進行算法設計訓練在講解選擇結構問題的算法設計時,我們從學生初中階段就知道的“求一元二次方程實根”的問題出發,進行算法設計的訓練。我們先讓學生自己來描述一下“求實
9、根”問題的算法,由于學生對問題比較熟悉,同時有例2中的順序結構算法設計的基礎和老師點拔,學生很快得出如下的算法描述:(1)輸入a,b,c(2)求DLTb2-4ac(3)如果DLT0,則輸出“無實根”,轉(5)(4)否則,求兩實根x1,x2,輸出x1,x2(5)結束接著我們再分析自然語言描述法的不足,引出流程圖描述法,進而用流程圖把以上算法描述出來。學生就很容易理解了。因此從學生熟悉的問題入手,進行算法設計的訓練,會收到較好的效果。三、理解可視化編程一般步驟,靈活進行教材的處理由于我們這門課是要用VB程序設計語言來實現簡單問題的編程解決,因此必須讓學生對VB可視化編程一般過程有所了解。按教材上的
10、安排,可視化編程是在第三章,而第二章中有“程序的順序結構”、“程序的選擇結構”與“程序的循環結構”等重要教學內容,為了教學上方便,我們將第三章內容進行簡化與提前處理。通過仔細研究教材,并結合自己VB程序設計基礎教學的經驗,我將第三章的內容簡化為:1、“對象”、“屬性”、“事件”、“事件過程”、“事件驅動”等概念的理解2、了解可視化編程的一般步驟為了理解好“對象”、“屬性”、“事件”、“事件過程”、“事件驅動”等概念,同時又不能太抽象,我安排了兩節課時間,通過“登錄小程序”的制作演示與實踐讓學生感受VB可視化編程的一般步驟,理解“對象”、“屬性”、“事件”、“事件過程”、“事件驅動”等概念。教學
11、中,我們采用分段進行。第一段演示可視化編程的第一個步驟“對象的添加”,并結合講解對象概念;第二階段演示屬性設置,講解“屬性”概念;第三階段演示“事件”與“事件過程”、“事件驅動”等概念,演示事件代碼的編寫與程序的運行。每個階段演示后,讓學生動手操作。學習好VB可視化編程基本過程是學好本課程的基礎。建議利用2至3節課時間,通過一些實例,使學生學會編程的基本過程與理解事件驅動的原理,就為第2章的學習打下基礎。四、分散難點,用到再學在教材中,第二章的第1節的主要內容是VB程序的結構與數據類型、變量、常量、運算符、表達式式、函數等概念,如果專門花一節課給學生講解,不僅枯燥而且抽象。對于本部分的教學,我
12、們采取了分散難點、用到再學的策略。因此,我們就跳過這節課。當學習到下一節程序的順序結構時,我們通過“圓面積”程序這個學生最容易理解的問題,來講解程序的結構、變量、常量、賦值語句、輸入函數和輸出方法等。另外,在講解變量等概念時,要聯系實際,運行類比等手段進行講解。例如對于變量的概念,我們就告訴學生:“人在計算時要用到草稿紙記錄數據,同樣程序也需要臨時存放輸入數據或中間運算結果時,它就通過變量來實現臨時存儲。”于是就引出變量及其說明、賦值語句等內容。由于書本上有“求圓的面積”的程序,所以學生只要理解程序就可以。在上機實踐中,我們就安排學生制作出求圓的面積程序。通過學生輸入程序運行程序,從而對程序的
13、結構、各種語句的功能就會有所感悟。在第二節課,就安排一個任務“求一個矩形面積”,讓學生參照上節課的“圓的面積”問題進行算法分析與程序設計。再對順序結構程序有進一步的理解。在接下來兩節課中,結合“時間轉換”問題,講解“運算符”(重點講解“整除”與“求余”兩個運算)和文本框對象等知識。這樣,學生在任務完成中,不知不覺地把該學習的內容都學習了。這種分散難點、用到再學的策略通過將難點分散到多個任務中,用到再學。它不僅避免了由于難點太多而知識造成混淆的問題,同時又能結合實例,使學生有感性認識,便于難點的理解,收到極好的效果。五、牢記“問題解決”主線,精選“問題”激發興趣編程的目的就是為了解決問題,因此本
14、門課程的教學應牢牢地把握“問題解決”的主線。對任何一個問題講解,老師都要嚴格按照“分析問題”、“設計算法”、“編寫程序”、“調試運行”這幾個步驟進行,自始至終、潛移默化地培養學生正確的解題過程。當學生也能按照正確的解題過程進行解題,學生才算真正學會獨立地編程解題。同時問題還是學生學習本門課的動力,好的問題一出現在學生面前,就讓學生躍躍欲試。因此我們在備課時要精選“問題”,從而激發學生學習,進而解決問題的興趣。例如:我在講授“多分支選擇語句”這一節時,選擇了“星座計算”這個問題。這個問題是當今學生(特別是女生)比較興趣的,有了這個程序以后,他們就很容易替任何人測算出星座。于是我就安排學生以小組為
15、單位,先學習課本中有關知識后,然后開始解決星座測算這個問題,看哪個小組設計更好、更快。最后我再對本節課的重點進行小結歸納,總結select case語句中重點在于設置好其后的表達式。通過實踐,我覺得精選問題要注意以下幾個方面的原則:1、現實性,即選擇的問題具有一定的現實意義,讓學生覺得有用2、趣味性,即選擇的問題比較符合學生的興趣3、挑戰性,即選擇的問題在智力上,具有一定的挑戰性,不好實現,但又非不能實現4、代表性,即選擇的問題符合當前的主題5、游戲性,即選擇的問題是一個簡單而有有趣的游戲例如:“角谷猜想”問題符合DOLoop循環這個主題,對于doloop這節課來說它具有代表性;“階乘尾數零的個數”問題可須用數學方法解決,具有一定的挑戰性;而“星座計算”問題由于符合當代學生的業余興趣,符合趣味性原則。有了能激發興趣的問題,學生就能專心聽講,積極地進行思考與實踐,肯定能收到很好的教學效果。六、結束語總之,要做好算法與程序設計這門課程的教學工作,要注意以下環節:首先要上好第一節課,它讓學生知道本門課程的重要性,同時還讓他們知道,不是只有專業人員能學會編程,他們
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 明確策略中級社會工作者試題及答案
- 了解設計流程的2025年多媒體應用設計師考試試題及答案
- 項目管理師考試經驗總結與試題及答案
- 便捷獲取的軟件評測師試題及答案
- 2025年多媒體應用設計的用戶導向設計試題及答案
- 如何設計系統集成項目的風險應對策略試題及答案
- 軟件測試中的數據隱私保護試題及答案
- 系統分析師考試知識總結試題及答案
- 鎮江數學試卷及答案七年級
- 方向明確的系統分析師試題及答案
- 漆藝課件教學課件
- GB/T 19077-2024粒度分析激光衍射法
- 第六章 方差分析課件
- 班主任工作經驗交流:在班級管理中要尊重、關愛學生班主任班級管理方案
- 《PLC應用技術(西門子S7-1200)第二版》全套教學課件
- 2024年成人高考成考(高起專)語文試題與參考答案
- 《高危新生兒分類分級管理專家共識(2023)》解讀
- iso220002024食品安全管理體系標準
- 2025高考物理步步高同步練習選修1第一章 動量章末檢測試卷(一)含答案
- 軍人優待金委托書
- 2024年廣東省廣州市中考英語試卷附答案
評論
0/150
提交評論