






● 教材分析
《感受信息的編程加工》是教育科學出版社出版的《信息技術基礎》第三章第二節的內容。本節課主要是通過編制一個小程序,讓學生初步了解信息編程加工的一般過程,初步認識程序代碼,感受利用計算機編制程序解決問題的魅力。教材沒有詳細介紹編程加工的關鍵步驟“算法”,但是這部分內容是學業水平考試的考點,所以引入算法的定義及算法的作用對學生了解編程加工的各個環節更有幫助。
● 學生分析
學生已經學過第一節的內容,知道了什么是編程加工,但是對編程加工的過程不了解,更不了解編程加工的關鍵步驟“算法”。所以,這節課我對算法從詳處理。由于算法有三種描述方法,其中流程圖這種描述方法在數學等其他學科中均已接觸過,流程圖描述方法的介紹可以從略處理。
● 教學目標
知識與技能目標:理解算法的概念;了解信息編程加工的一般過程;認識程序代碼。
過程與方法目標:通過信息編程加工的一般過程,鍛煉學生思維,培養他們解決問題的能力。
情感態度與價值觀目標:使學生感受計算機解決問題的獨特魅力。
● 教學重點與難點
重點:認識算法的定義及重要性;算法的三種描述方法;熟悉編程過程及調試過程。
難點:算法中的偽代碼描述方法;編程過程及調試過程。
● 教學資源
計算機安裝VB6.0簡體中文版。
● 教學過程
任務一:玩游戲體會什么是算法
師:我知道大家都喜歡玩游戲,今天給大家推薦一款小游戲,這個游戲叫“過河”。游戲的規則是這樣的:把人和獅子都送到對岸,任何一邊的獅子都不能比人多,否則獅子吃人;船每次只能承載兩個。同學們能否成功?大家試試看。
學生嘗試。
師:有哪位同學過河成功了?
個別學生“過河”成功,表述并演示做法。
師:為什么大多數同學沒有成功呢?是因為沒有正確的過河方法!請“過河”沒有成功的同學按照正確的方法再試一次。
師:解決問題是要講究方法的。解決問題的方法和步驟就是算法。我們這節課要學習信息的編程加工,算法是信息編程加工的關鍵步驟。
任務二:琢磨生活實例,認識優秀算法的重要性
師:是不是所有解決問題的方法都是合適的呢?帶著這個問題,我們再來看一看我們身邊的例子。王虹從早上起床到上學前這段時間要做以下幾件事(如表1)。
師:王虹同學安排這些事情共需要28分鐘的時間。從節約時間的角度考慮,你會如何安排呢?
生:先刷鍋,把雞蛋煮上,在煮雞蛋的同時,可以疊被、洗臉、刷牙,然后再吃早點(如下頁表2)。
師:咱們一起來比較這兩種做法。
教師引導學生思考:同樣的任務,按照方法二安排,為什么會節約7分鐘呢?
生:利用煮雞蛋的時間去疊被、洗臉、刷牙,所以節約了時間!
師:解決問題不僅要講究方法,還要尋求最佳的算法。
任務三:用數學中的例子,體驗信息編程加工(課件展示例子)
師:有了這樣的思想基礎,我們通過下面這個數學例子來體驗一回信息的編程加工。有一個三角形,邊長分別是3、4、5,三個角分別是90度、30度、60度。假設坐標系已經畫好,你會如何畫這個三角形呢?(見圖1)
生:用兩個點的坐標描出線段。
師:不錯!還有別的方法嗎?
師:大家都知道一筆畫寫字吧。那我們能不能一筆畫把這個三角形畫出來呢?
生:從坐標原點出發,沿著三角形的形狀,一筆畫畫下來。
師:我們一共找出了兩種方法來畫這個三角形。方法一:從(0,0)沿x軸正方向開始畫出長度為4的線段,從(4,0)開始左轉150度畫出長度為5的線段,左轉120度畫出長度為3的線段。方法二:從(0,0)到(4,0)繪制第一個線段,從(4,0)到(0,3)繪制第二條線段,從(0,3)到(0,0)繪制第三條線段。
師:這兩種方法我們是用自己的話描述出來的。我們日常生活中使用的語言是自然語言。用自然語言描述算法可行嗎?這種描述讓算法通俗易懂,但是也有缺點,請同學們看這句話“這個人誰都不認識。”是什么意思?
這句話包含了兩種意思:“別人不認識這個人,這個人不認識別人”??梢姡匀徽Z言描述法容易讓人產生誤解。還有更好的方法來描述算法嗎?帶著這樣的疑惑,我給大家介紹第二種描述方法——流程圖。流程圖是算法的一種圖形化表示方法。我們在數學課中已經學過。相信大家已經不再陌生。看看用流程圖描述的算法,和自然語言相比,它的優點是什么?
生:流程圖描述更形象直觀。
師:我們分析問題、寫出算法,最終的目的就是要編成程序,讓計算機去執行??墒巧厦孢@兩種描述方法,雖然通俗易懂、形象直觀,但還不能直接轉化為程序語言。帶著這樣的問題,下面再給大家介紹第三種描述方法——偽代碼。偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。
師:(給學生展示偽代碼的描述方法)同學們打開第1個文件??纯聪铝写a,它沒有填寫完整,請你讀一讀下列代碼,并把它填寫完整(如表3)。
假設描繪線條的命令如下。(解釋下面單詞的意思)
Forward(參數):向前走多遠。
Left(參數):左轉多少度。
line(),():從某一個點到另一個點繪制線段。
默認箭頭方向朝上。
咱們一起來看看這位同學的正確答案(如表4)。
師:偽代碼描述算法容易轉化為程序代碼,算法簡潔易懂、方便修改和可讀性好。請同學們比較以上兩種方法,你更容易接受哪一種方法?
學生討論并闡述觀點。
師:第二種方法所用語句較少,執行時間少,所以更優秀。算法是有優劣的,通過開動腦筋,我們可以找出更好的算法。
我們研究算法的描述,最根本的目的是用于編程,提高編程效率。下面我們將進一步將算法用于編程任務中。
任務四:認識程序代碼,上機調試
師:我給大家推薦一個可視化的編程工具VB6.0。我們先來認識一下這個軟件(見圖2)。
①右面第一個小窗口是工程的屬性窗口。在這里你可以管理你的工程文件。
②左面是控件窗口,你可以選擇你需要的控件把它拖動到程序界面上。
③右下是控件的屬性窗口。在這里你可以修改控件的屬性。
④中間是程序的主界面。
如何用VB編出我們這個程序呢?大家只需要做兩件事情就可以了(如表5)。第一,拖動“按鈕”控件到主界面上。修改它的Caption(標題)屬性為“繪圖”。 第二,在按鈕的click事件里面加入讓計算機繪圖的代碼。由于同學們沒有編程基礎,下面我把按鈕里的代碼介紹給大家。①scale方法:用以定義坐標系;②line方法:用于在對象上畫線;③RGB函數:表示顏色,RGB(red,green,blue)。
師:做好這兩件事情,你就可以運行一下程序看看你的成果了!大家動手試試吧!編寫程序上機調試往往不能一次成功,是一個反復修改嘗試的過程。
教師巡視指導學生編程。
師:成功地完成任務的同學幫助遇到困難的同學。
師對學生的操作進行評價并鼓勵。
● 課堂總結
師:這節課我們主要是體驗了信息編程加工的一般過程。請同學們思考這個一般過程是什么?哪一步最重要?
教師引導學生對本節學習內容進行歸納。
教師歸納要點:分析問題-寫出算法-編寫程序-上機調試。寫出算法是最重要的,沒有一個正確上佳的算法,就不可能編出優秀的程序!
● 教學反思
算法是《信息編程加工》的靈魂,但是學生卻不太感興趣,所以這節課引入了一些比較有趣的例子,如“人獅過河”、“早上起床后的安排”,目的是讓學生認識算法的概念和算法的重要性。這樣安排讓教學氣氛比較活躍,條理清楚,不同層次的學生都能積極參與到課堂討論中來。算法描述部分是基于高一數學模塊三中的已學知識,知識點的難度小,所以整堂課學生的參與度較高。
本堂課內容偏多,有些地方的討論不夠深入。第一,學生第一次接觸VB里控件的使用,對控件的使用方法一無所知。如果時間允許,可以再多舉一些例子,讓學生加深對控件的認識。第二,本節課對學生上機調試關注不是很多,其實上機調試學生會出很多錯誤。如代碼沒有添加在按鈕控件的click事件里面,代碼中的標點符號容易輸成漢語的標點符號等。學生認識了程序代碼后,最好能親手輸入程序代碼。在這個過程中,可以認識程序代碼的輸入規則,如VB程序里標點符號如何輸入?教師也應該多給一些輔導和幫助。