第一篇:高中算法與程序設(shè)計教學(xué)
高中算法與程序設(shè)計教學(xué)方法初探
左權(quán)中學(xué) 張彥萍
算法與程序設(shè)計是高中信息技術(shù)選修課。本模塊強調(diào)的是通過算法與程序設(shè)計解決實際問題的方法。對于學(xué)生來說,程序設(shè)計的思維方式、方法和概念都是全新的,學(xué)生接受起來比較困難,因此必須認真研究程序設(shè)計的教學(xué)方法。我在近幾年的高中信息技術(shù)課教學(xué)過程中進行了一些研究與探索,對程序設(shè)計教學(xué)方法有了一些淺顯的認識,與大家共同探討。
一、培養(yǎng)學(xué)生編程的學(xué)習(xí)興趣,調(diào)動學(xué)習(xí)積極性
愛因思坦說“興趣是最好的老師”。興趣相當程度上決定了教學(xué)效果的好壞。如何培養(yǎng)學(xué)生學(xué)習(xí)程序設(shè)計的興趣,我認為可以從以下幾個方面入手。
1、讓學(xué)生認識到學(xué)習(xí)程序設(shè)計在提高自身素質(zhì)的突出作用。講一些IT界精英的故事;社會需要提高學(xué)生未來的生存能力;自身素質(zhì)提高:可以培養(yǎng)學(xué)生的思維品質(zhì),培養(yǎng)學(xué)生發(fā)現(xiàn)問題、思考問題和解決問題的能力;學(xué)習(xí)程序計算機教育對其他學(xué)科的影響等方面入手。
2、程序設(shè)計教學(xué)中要從學(xué)生的興趣入手,利用學(xué)生對事物的好奇心,選擇學(xué)生身邊的,學(xué)生感興趣的、有實際意義的程序,激發(fā)學(xué)生的學(xué)習(xí)興趣。比如:第一堂課講VB界面設(shè)計,可設(shè)計一個QQ登錄界面。學(xué)完選擇語句后,我設(shè)計了利用隨機函數(shù)加法練習(xí)小程序,加數(shù)和被加數(shù)隨機產(chǎn)生(1-100),結(jié)果自己輸入,可判斷對錯,程序結(jié)束可計算得分。例程也可以找班內(nèi)學(xué)生自己編寫的程序,學(xué)生非常喜歡。
3、一定要分層次教學(xué)。文科班和理科班、尖子班教學(xué)內(nèi)容難度上有所變化。一個班級布置作業(yè)時也要分層次。
4、輕入淺出,消除學(xué)生們對程序設(shè)計的畏難心理。在教學(xué)時,低起點,從一個個簡單實例出發(fā),讓學(xué)生們從自身的實踐中感受到這個的確很簡單,從而迎合了學(xué)生渴望成功的心理特點。前兩節(jié)課千萬不能羅列過多的概念,讓學(xué)生不知東西,打擊學(xué)生的學(xué)習(xí)興趣。
二、適當調(diào)整教材結(jié)構(gòu),立足具體實例,滲透基本概念
VB程序設(shè)計概念比較多,如何讓學(xué)生較容易按受、理解是我在最初的教學(xué)中較為頭痛的問題。剛接觸程序設(shè)計的學(xué)生,對程序設(shè)計充滿了好奇,如果把一開頭還用不上的許多的控件、屬性放在前面,一下子引入大量抽象的名詞、概念,就會讓不少學(xué)生望而生畏。因此要想讓學(xué)生領(lǐng)會這些抽象的概念,教學(xué)中我選擇的方法是先少講控件,最多講窗體、按鈕,三個控件。結(jié)合數(shù)學(xué)課本已學(xué)的知識,先復(fù)習(xí)、鞏固、提高基本知識。從數(shù)據(jù)類型,基本運算,講到三種基本控制結(jié)構(gòu)后,然后再講基本的控件。這時,控件用于程序設(shè)計的例子就可以講明白了。但是,我仍然不敢把控件的每一個屬性都細講。突出按問題需要設(shè)計界面來選用控件,以一個個鮮活的具體實例為切入點,在每個例子中適時、適量滲透一些相關(guān)的概念和知識,讓學(xué)生在做中學(xué),在學(xué)中做,使學(xué)生在完成任務(wù)的過程中,逐漸地、很自然地去體會控件、對象、事件的概念。教學(xué)中要安排足夠的課時把這些控件的用法滲透到一個個程序?qū)嵗校蓽\入深逐漸介紹,讓學(xué)生在編寫程序的過程中總結(jié)控件的用法。
三、采用啟發(fā)、引導(dǎo)的教學(xué)方法,培養(yǎng)學(xué)生的實際應(yīng)用能力、設(shè)計教學(xué)的主要環(huán)節(jié),因“材”施教與因“需”施教相結(jié)合
《VB程序設(shè)計》課程的內(nèi)涵十分豐富, 涉及的知識單元和知識點很多。因此在教學(xué)過程中,不僅要培養(yǎng)學(xué)生程序設(shè)計的技能,還要培養(yǎng)學(xué)生系統(tǒng)分析和系統(tǒng)開發(fā)的技能。實施VB的教學(xué),首先要選擇合適的教材,這樣既有利于教師設(shè)計教學(xué)過程,又有助于學(xué)生的學(xué)習(xí)。這里所講的“材”是指以教材為綱,按照教材的章節(jié)按部就班地講授,課堂教學(xué)中往往以教師講課為主,要求學(xué)生緊跟教師的思路,但是教學(xué)方法極易造成教與學(xué)的脫節(jié),限制學(xué)生創(chuàng)造力的正常發(fā)揮。而“需”是緊扣教學(xué)大綱所確定的培養(yǎng)目標,以應(yīng)用為目的,以必需夠用為尺度,打破課程界限,將相關(guān)課程的知識點加以整合,按照“實際、實用、實踐”的原則重新組織教學(xué)內(nèi)容,這是VB教學(xué)方法的重要方面,也為教師在講課過程中提出了更高要求。另外,程序設(shè)計是設(shè)計與實踐并用的工作,只聽、看、讀是學(xué)不會的,只有讓學(xué)生多動腦、多動手、多實踐,通過編寫調(diào)試大量的程序,才能使學(xué)生從中理解程序設(shè)計的思想方法、積累程序調(diào)試的經(jīng)驗,體會成功的喜悅。因此,在實驗環(huán)節(jié),除了驗證型實驗外,增加了設(shè)計型實驗和綜合型實驗。為了解學(xué)生學(xué)習(xí)的具體情況,提高教學(xué)效果,授課教師要督促學(xué)生獨立完成上機實驗,以提高學(xué)生的動手能力,為學(xué)生創(chuàng)造性發(fā)展提供良好的條件。
2、實例教學(xué)
《VB程序設(shè)計》是一門實用性很強的課程,它既有理論又有實踐,既講方法又講動手能力。講授《VB程序設(shè)計》,像任何其他語言的程序設(shè)計一樣,教材中前幾章多數(shù)都是先介紹對象、對象的屬性、方法和事件及VB語言基礎(chǔ)等等一系列的在程序設(shè)計中比較抽象難懂的概念,然后才介紹程序的建立和運行。因此在教學(xué)中,可適當打破課本原有以知識的邏輯結(jié)構(gòu)體系為順序組織課堂教學(xué)的方式,改用從簡單有趣的實例入手,通過讓學(xué)生觀看、模仿,在實際操作中去探究和領(lǐng)悟這些概念,例如,在一開始學(xué)習(xí)VB對象及對象的方法和事件的有關(guān)概念時,我設(shè)計了一個求外語、教育學(xué)平均成績的并打印平均成績的程序?qū)嵗?讓學(xué)生和教師一起做,在當前打開的窗體內(nèi)添加了三個命令按鈕、三個文本框和兩個標簽,設(shè)置好各對象的屬性;并分別在三個命令按鈕的單擊事件過程中添加相應(yīng)代碼,按功能鍵F5運行程序。在操作的過程當中,教師開始只簡單提示學(xué)生完成程序,等學(xué)生完成任務(wù)后,教師通過設(shè)問,讓學(xué)生思考:什么是對象的方法和事件?并讓學(xué)生找出本實例中各對象的名稱、不同對象的方法和事件過程名稱,教師再適當加以歸納和小結(jié):窗體以及添加到窗體中的控件,統(tǒng)稱為對象;而方法卻是VB提供的內(nèi)置于對象的特殊子程序,它可以直接調(diào)用,如Print方法;而事件則是對象能夠響應(yīng)和識別的動作,如單擊鼠標觸發(fā)Click事件等,同時提醒學(xué)生注意觀察在VB中方法與事件的區(qū)別。在此基礎(chǔ)上,再適當引導(dǎo)學(xué)生歸納總結(jié)出創(chuàng)建VB應(yīng)用程序的基本步驟,及如何在界面內(nèi)添加對象、設(shè)置事件等等,一切問題都迎刃而解。在講解實例時,教師當以精選出的具有代表性的程序?qū)嵗?把重點放在具體實例的分析和講解上,把要學(xué)習(xí)的語法和概念融入到具體實例中來講解。
3、重視算法,抓住核心
在教學(xué)中經(jīng)常存在這樣一種現(xiàn)象:很多學(xué)生對語法、結(jié)構(gòu)等知識掌握得很好,但一旦碰到實際問題就束手無策,不知道如何用學(xué)到的知識解決實際問題,其實這是算法能力欠缺的一種表現(xiàn)。教師經(jīng)常注重于分析每條語句的含義,卻忽略了算法描述過程的展現(xiàn),造成學(xué)生知其然不知其所以然。其實,在VB中,算法設(shè)計是它的核心。如果學(xué)生掌握了良好的算法設(shè)計能力,也就掌握了釣魚的本領(lǐng),無論遇到什么問題都可以很好的解決。那么在教學(xué)中可以通過多種方法培養(yǎng)學(xué)生的算法設(shè)計能力:(1)詳細講授常用的算法。算法有很多種,學(xué)生一般只要掌握常用的就可以滿足編寫模塊的需要。而與數(shù)據(jù)結(jié)構(gòu)、軟件工程相關(guān)聯(lián)的算法則不做要求。(2)教師帶領(lǐng)學(xué)生多閱讀程序,分析過程,吸取他人的經(jīng)驗和成熟的算法,使學(xué)生少走彎路或不走彎路。(3)開展實踐性學(xué)習(xí),引導(dǎo)學(xué)生積極參與編程實踐,促進思維的飛躍,比如讓學(xué)生練習(xí)編輯班級學(xué)生檔案管理軟件等等。在這個過程中,學(xué)生親自動手解決具有一定難度的實際問題,為之設(shè)計合適的算法, 經(jīng)過實踐去培養(yǎng)學(xué)生的創(chuàng)新意思、應(yīng)用意識和探究能力。這些意識和能力一旦形成,就會使學(xué)生利用VB解決實際問題能力得到很快的提高。
4、培養(yǎng)學(xué)生綜合運用知識及自己動手的能力
程序設(shè)計課程的實踐性很強,“精講多練”是程序設(shè)計課程教學(xué)的一大特點,實驗教學(xué)在程序設(shè)計教學(xué)中起著重要的作用,學(xué)生只有通過自己編寫程序、上機調(diào)試程序,才能從中理解程序設(shè)計的思想方法、積累程序調(diào)試的經(jīng)驗,體會成功的樂趣,從而激發(fā)學(xué)生的學(xué)習(xí)興趣,學(xué)生只聽不練根本達不到學(xué)習(xí)的目的。學(xué)生在完成課后習(xí)題時積極性不高,興趣不大,甚至想抄作業(yè)應(yīng)付老師。只有讓學(xué)生動手編制他們感興趣的程序,學(xué)生才會有成就感,才會對課程產(chǎn)生興趣,學(xué)起來才會從容自如。如在學(xué)生學(xué)會編寫求1+2+?+N!=?的程序后,即引導(dǎo)學(xué)生設(shè)計求N!的程序,待學(xué)生設(shè)計出N!的程序后,接著又讓學(xué)生進一步設(shè)計求1!+2!+?+N!=?的程序。這種一環(huán)緊扣一環(huán)的探究式的動手實踐練習(xí), 以發(fā)展學(xué)生探索能力為主線來組織實踐, 以培養(yǎng)探究性思維的方法為目標,以基本的教材為內(nèi)容,使學(xué)生通過再發(fā)現(xiàn)的步驟進行主動實踐的過程,產(chǎn)生一種探索和發(fā)現(xiàn)的心理。因此如何讓學(xué)生綜合應(yīng)用所學(xué)知識解決實際問題,提高綜合應(yīng)用能力和動手操作能力,激發(fā)學(xué)習(xí)興趣也是我們需要加入課程設(shè)計的內(nèi)容。課程設(shè)計時,老師要重點設(shè)計選題, 使得選題既貼近實際需要,又能夠讓學(xué)生感興趣,并且能夠運用所學(xué)知識解決問題,課程設(shè)計題目分為基本題和綜合題。基本題按教學(xué)順序設(shè)計,盡量避免涉及后續(xù)章節(jié)的知識,后續(xù)的課程設(shè)計題目盡量引用前面的課程設(shè)計內(nèi)容,以便加深對前面所學(xué)知識的理解;綜合性題目是對一學(xué)期所學(xué)知識的總結(jié)和鞏固,應(yīng)與實際生活或工作相關(guān)且具有一定規(guī)模,可將其分成幾個子項目,由更多的學(xué)生參與,分工合作,以期進一步鍛煉學(xué)生的動手能力,從而進一步培養(yǎng)學(xué)生分析問題、解決問題、研究和探索問題的能力和團隊協(xié)作精神。
四、切實落實以學(xué)生為中心,學(xué)生為主體,教師為主導(dǎo)的新課改思想。信息課教師絕大部分為青年教師,無論教學(xué)理論和教學(xué)經(jīng)驗上都相當缺乏。特別是在程序設(shè)計內(nèi)容時,自覺不自覺地還是走向了教師為主的教學(xué)模式。教師與學(xué)生缺乏互動,課堂氣氛沉悶。在課堂教學(xué)中,要鼓勵學(xué)生質(zhì)疑是激發(fā)學(xué)生的主體性、培養(yǎng)學(xué)生思維能力和創(chuàng)造能力的起點。學(xué)生的主體性主要體現(xiàn)在學(xué)習(xí)過程中能掌握學(xué)習(xí)主動權(quán),能夠主動、自覺、積極地學(xué)習(xí)。因此,在教學(xué)過程中特別要注意設(shè)置恰當?shù)膯栴},通過啟發(fā)引導(dǎo),體現(xiàn)教師的主導(dǎo)作用。集中學(xué)生的注意力,促進學(xué)生主動思考、主動探索,可以使學(xué)生在學(xué)習(xí)的過程中成為主體。總之,VB作為一門重要的編程語言,在高校的計算機基礎(chǔ)教學(xué)中仍然占據(jù)重要位置,教學(xué)方法在程序設(shè)計教學(xué)中的舉足輕重制約著程序設(shè)計教學(xué)的效率。科學(xué)的教學(xué)方法一定會為學(xué)生提供良好的幫助。我們在教學(xué)過程中應(yīng)以學(xué)生為主體,教師為主導(dǎo),采用符合學(xué)生認知規(guī)律的、科學(xué)的教學(xué)方法,充分調(diào)動學(xué)生學(xué)習(xí)的主動性,同時,采用綜合評價學(xué)生的方式,努力培養(yǎng)學(xué)生自主學(xué)習(xí)的興趣,提高學(xué)生實際應(yīng)用能力,從而使得VB課程的教學(xué)質(zhì)量得到不斷地提高
第二篇:面對高考高中算法與程序設(shè)計教學(xué)
高中算法與程序設(shè)計教學(xué)
【摘要】《算法與程序設(shè)計》是高中信息科技的選修模塊,也是高中信息科技教學(xué)的重點和難點,其教學(xué)內(nèi)容枯燥,因此教學(xué)難度較大。本文結(jié)合筆者幾年來的教學(xué)實踐對高中《算法與程序設(shè)計》的教學(xué)進行探究。
【關(guān)鍵字】算法 程序設(shè)計 興趣 教學(xué)方法
《算法與程序設(shè)計》是高中信息技術(shù)選修課程,學(xué)習(xí)算法與程序設(shè)計就是要使學(xué)生在原有基礎(chǔ)上進一步體驗算法思想,了解算法和程序設(shè)計在解決問題過程中的地位和作用;能從簡單問題出發(fā),設(shè)計解決問題的算法,并能初步使用一種程序設(shè)計語言編制程序?qū)崿F(xiàn)算法解決問題。在本模塊的教學(xué),應(yīng)注意與學(xué)生已有相關(guān)知識的銜接,要強調(diào)理論與實踐的結(jié)合,要循循引導(dǎo)學(xué)生,激發(fā)他們的學(xué)習(xí)興趣,引導(dǎo)學(xué)生注意尋找、發(fā)現(xiàn)身邊的實際問題,進而設(shè)計出算法和計算機程序去解決這些問題。那么怎樣才能上好這門課?下面談?wù)勎以诮虒W(xué)中采取的一些方法。
一、借助游戲教學(xué)法,激發(fā)學(xué)生學(xué)習(xí)興趣
興趣是培養(yǎng)學(xué)生程序設(shè)計能力的前提,研究表明,讓學(xué)生在娛樂中學(xué)習(xí)將更有利于新知識的獲得。在學(xué)生剛剛介入新知識的學(xué)習(xí)時,一般會從心理上產(chǎn)生一種新奇感,這是學(xué)生在接觸新事物時的一般反應(yīng)。然而隨著知識難度的加深,學(xué)生的學(xué)習(xí)積極性很可能會下降,甚至對那些較為枯燥的程序設(shè)計產(chǎn)生抵觸和畏難情緒。因此,教師應(yīng)該運用策略使學(xué)生保持初學(xué)階段的興趣和積極情緒。如教材第一章算法概念抽象難懂,過多的課堂講解會起反作用,因為學(xué)生一旦聽不懂或覺得太枯燥,就可能抑制他們對這門課的學(xué)習(xí)興趣。如在第一課教學(xué)中以玩“猜數(shù)游戲”作為主線,通過生生之間、人機之間相互玩猜數(shù)游戲的活動,將計算機擬人化,激發(fā)學(xué)生學(xué)習(xí)程序設(shè)計的興趣。首先讓2名同學(xué)一組玩“猜數(shù)游戲”。學(xué)生甲心里想一個0—100之間的整數(shù),讓學(xué)生乙猜。根據(jù)學(xué)生乙猜的數(shù)進行判斷并反饋信息“大了”還是“小了”,直到最終猜中,相互交換角色,看誰能用最少的次數(shù)猜中數(shù)。其次教師用VB設(shè)計的電腦游戲和學(xué)生一起玩,玩時注意引導(dǎo)學(xué)生思考總結(jié)猜數(shù)所用的方法,并設(shè)法減少猜的次數(shù)。引導(dǎo)學(xué)生交流討論,引出算法的概念。通過這樣的一節(jié)導(dǎo)入課使學(xué)生充分認識到學(xué)習(xí)算法的目的就是通過掌握的程序設(shè)計語言來“教”電腦做事情解決具體問題。將游戲與教的方式融入算法與程序設(shè)計教學(xué),創(chuàng)設(shè)輕松愉快的環(huán)境,使學(xué)生降低對算法學(xué)習(xí)的恐懼心理,激發(fā)學(xué)習(xí)興趣。在第一課的教學(xué)中,學(xué)生對猜數(shù)游戲有了濃厚的興趣,也有了一試身手的欲望。
教師還可以再演示一些由學(xué)生自己編寫的、有趣的程序,從而吸引學(xué)生,并告訴他們學(xué)習(xí)了《算法與程序設(shè)計》的內(nèi)容后,大家都能夠編出這些有趣的小程序。
二、從學(xué)生的已有知識水平出發(fā), 設(shè)計教學(xué)實例
算法是解決問題的方法和步驟,計算機解決問題,必須嚴格的按步驟進行,這和學(xué)生平時解決問題是有區(qū)別的。因此在算法設(shè)計中,應(yīng)將平時解題中沒有想清楚的每一步都想清楚,這對學(xué)生的邏輯思維能力要求較高,許多學(xué)生剛開始可能不太適應(yīng)。因而在教學(xué)中注意引導(dǎo)學(xué)生利用已有知識結(jié)構(gòu),從他們熟悉的或感興趣的問題出發(fā),進行算法與程序設(shè)計的教學(xué)。如在講解順序結(jié)構(gòu)中交換兩個變量值的問題。老師提出問題:設(shè)整型變量A的值為5,B的值為6,如何交換它們的值?學(xué)生:我不知道該怎么辦,無從下手。老師提示:如果有兩盤磁帶,里面分別錄有外語聽力和流行音樂,請你把里面的內(nèi)容對調(diào),你會怎么辦?學(xué)生:找個空白的磁帶呀!原來這么簡單。老師:要求用變量A、B、C來代表三個磁帶,把操作的過程表示出來。經(jīng)過這一類比,同學(xué)們毫不費力地就可以畫出如下的知識點:
在該案例教學(xué)過程中,沒有直接提出兩數(shù)如何交換問題,而是通過磁帶互換,培養(yǎng)了學(xué)生的思維能力。而后再將知識遷移,通過這樣的過程,學(xué)生對兩數(shù)交換的理解和記憶都達到了很高的層次。
如在講解枚舉法時,我引用了我國古代著名的《孫子算經(jīng)》中的雞兔同籠問題:今有雞兔同籠,共有35個頭、94只腳,問雞和兔各有幾只?這樣一來,學(xué)生即有了學(xué)習(xí)興趣,又可以根據(jù)現(xiàn)實生活中的實際情況來解決問題:由于共有35個頭,所以雞和兔共有35只。每只雞有2只腳,每只兔有4只腳,腳的總數(shù)是94。所以有變量x來表示雞的數(shù)量,x從1到34列舉所有可能的情況,然后對列舉出的雞的數(shù)量x和兔子數(shù)量35-x進行檢驗,判斷是否滿足共有94只腳的條件,即x*2+(35-x)*4是否等于94,若滿足條件則輸出x和35-x。這樣一來,學(xué)生即解決了問題,又學(xué)會了循環(huán)結(jié)構(gòu)的程序設(shè)計。所以在教學(xué)過程中,聯(lián)系實際,從學(xué)生的已有知識水平出發(fā), 設(shè)計教學(xué)實例作為程序設(shè)計的活教材可以收到事半功倍的效果。
三、進行有效的練習(xí)與作業(yè)評價
算法與程序設(shè)計是一門實踐性很強的課程。學(xué)生通過練習(xí)不僅可以及時鞏固所學(xué)知識,加深對知識的理解,更重要的是把學(xué)過的知識加以運用,以形成技能技巧,從面發(fā)展自己的智力,培養(yǎng)自己的能力。如何做好這個環(huán)節(jié)的教學(xué)也是十分關(guān)鍵的。在教學(xué)中我做過以下幾點嘗試。第一,讓學(xué)生從模仿中學(xué)習(xí),先設(shè)計一個與老師講解過的例子相類似的題目讓學(xué)生去完成。例如,在順序結(jié)構(gòu)教學(xué)中,教師舉例分析“已知圓的半徑,求周長和面積”后,請學(xué)生完成“已知長方形的長和寬,求周長和面積”。這樣多數(shù)同學(xué)很快就可以完成,感到有成就感。第二,對于一些較難的題目,教師可以事先完成一部分流程圖,引導(dǎo)學(xué)生如何進行分析解題,最后主要部分讓學(xué)生去完成。第三,可以設(shè)計多種形式的練習(xí),幫助學(xué)生理解程序,學(xué)習(xí)算法與程序設(shè)計。如閱讀程序,寫出程序運行結(jié)果,說明程序的功能;分析問題,設(shè)計算法,畫出流程圖;給出問題算法分析與部分流程圖,補充完善流程圖與程序。
作業(yè)是學(xué)生對所學(xué)知識的掌握情況及時、真實的反饋,教師通過批改檢查作業(yè),可以直接獲取學(xué)生信息,把握學(xué)生知識掌握和能力發(fā)展的程度,及時調(diào)整教學(xué)方案,修改教學(xué)行為,確保后續(xù)教學(xué)的時效性、有效性和針對性。在教學(xué)過程中,我對學(xué)生的書面作業(yè)都是及時批改并反饋,批改的方式有全部批改、重點批改、輪流批改、當面批改、師生共批、學(xué)生互批等。因全部逐本批改占據(jù)教師大量的時間而影響備課的質(zhì)量,所以應(yīng)采取各種類型相結(jié)合的方式。不論用何種方式批改,都應(yīng)注意并記錄學(xué)生作業(yè)錯誤的數(shù)量和性質(zhì)。通過作業(yè)反饋,一方面讓學(xué)生及時訂正,另一方面教師要加強對錯誤原因的分析,以便在以后教學(xué)中有針對性地加以糾正。教師對作業(yè)應(yīng)按質(zhì)量打成績,也可寫評語,評語以鼓勵的話語激勵學(xué)生把作業(yè)做好。應(yīng)盡量少用負面的標語對優(yōu)秀或進步較大的作業(yè),教師應(yīng)給予全班表揚,可以全班傳閱,以資互相學(xué)習(xí),對差的作業(yè)應(yīng)視具體情況給予指點和幫助。
四、重視生生交流和師生交流活動
交流是人際間的交往、對話、溝通的活動,是人際間增進彼此了解、溝通的重要方式。交流活動在信息技術(shù)教學(xué)中有著重要地位。一方面,生生之間的交流可以給學(xué)生提供表達自己成果的機會,同他人分享學(xué)習(xí)成果,體驗成功快樂。通過與他人的討論、互助等形式的合作學(xué)習(xí),學(xué)生可以超越自己的認識,更加全面深刻的理解事物。另一方面,師生之間的交流,可以促進師生之間的感情交流,營造和諧的師生關(guān)系。它同時也是圍繞學(xué)生學(xué)習(xí)的需要來組織安排的,能使學(xué)生主動地學(xué)習(xí)算法與程序設(shè)計知識,而不是被動地接受灌輸。
例如在學(xué)生已經(jīng)掌握了s=1+2+3+4+??+99+100的循環(huán)結(jié)構(gòu)程序基礎(chǔ)上,來做1-2+3-4+??+99-100這個程序設(shè)計示例的時候,本來教學(xué)設(shè)計的時候是希望學(xué)生在繪制流程圖時出現(xiàn)代碼:s=s+i*(-1)^(i+1)。但是,在給予學(xué)生充分的空間和時間,讓他們交流想法,自主編寫之后,我驚喜的發(fā)現(xiàn)學(xué)生編寫出了多種方法。(1)學(xué)生直接指出了我預(yù)先設(shè)計的代碼過于復(fù)雜,可以用初始值n=-1,然后在每次的循環(huán)體內(nèi)取n=-n;s=s+n*i,這樣就可以將代碼寫的更為簡潔,我及時的將這部分同學(xué)的思想給予肯定;(2)部分同學(xué)通過對原始代數(shù)式的分析,寫出s=s+(i-(i+1)),循環(huán)步長step=2。將這個例子拿出來給全班同學(xué)看的時候,我特意指出了程序的循環(huán)次數(shù)少了一半,算法上更為優(yōu)化,希望能夠引導(dǎo)學(xué)生今后盡量想出優(yōu)化的程序;(3)部分學(xué)生交流之后采用了循環(huán)+分支的結(jié)構(gòu),通過條件的判斷來決定正負號:if I mod 2=0 then s=s-I else s=s+I,這是一個非常好的方法,根據(jù)這個思路,我調(diào)整了一下教學(xué)安排,讓全班的同學(xué)參與分析、討論,也許是因為這種想法源至他們自身,所以非常順利接受了如何結(jié)合循環(huán)和分支結(jié)構(gòu),來完善和增強自己程序的功能。達到了教學(xué)相長的效果。
教師通過自己的教學(xué)行為來積極引導(dǎo)學(xué)生交流,同時也參與到學(xué)生的交流之中,從而引起學(xué)生學(xué)好算法與程序設(shè)計的積極態(tài)度,激發(fā)并滿足學(xué)生的情感需要,特別是對知識的渴望與興趣,從而更好地完成教學(xué)。
五、合理安排上機實踐
在算法與程序設(shè)計教學(xué)中,不能忽略學(xué)生的上機實踐,一個好的例題,學(xué)生通過上機操作,可以更好的理解知識,教師也可從中挖掘?qū)W生的潛能,開拓學(xué)生的思維。
在教學(xué)中,教師應(yīng)采用靈活多樣的教學(xué)方法,充分調(diào)動學(xué)生學(xué)習(xí)的積極性,引導(dǎo)學(xué)生獨立思考,敢于提出不同見解,質(zhì)難問疑,積極創(chuàng)造條件鼓勵學(xué)生勇于探索,使他們主動地學(xué)、積極地學(xué)。我校信息科技課一周兩節(jié),第一節(jié)課我在教室集中講授相關(guān)算法與程序基礎(chǔ)知識,針對講授的內(nèi)容布置練習(xí)。第二節(jié)課學(xué)生上機操作,我在布置練習(xí)任務(wù)時采取由淺至深、逐步遞進的方式,剛開始的時候只是讓學(xué)生模仿書上的流程圖和程序完成練習(xí),隨著知識的逐步深化,慢慢讓學(xué)生練習(xí)獨立繪制流程圖和編寫簡單的程序,再到較為復(fù)雜的內(nèi)容。
在輔導(dǎo)過程中我發(fā)現(xiàn)一個可喜的情形就是學(xué)生剛開始一遇到問題就急于找老師,讓老師幫助解決。但隨著課程內(nèi)容的深入,多次的上機實踐后我發(fā)現(xiàn)課上這種尋求幫助的聲音越來
越少,學(xué)生們非常樂于自己修改排除錯誤。在完成做業(yè)后學(xué)生臉上洋溢著自信的表情,在這樣的過程中學(xué)生體驗了成功的喜悅,同時也幫助了他們理解程序,尤其是到循環(huán)結(jié)構(gòu)以后,這種作用就更明顯了,而且這種能力完全可以遷移到今后的學(xué)習(xí)和生活中去。
六、結(jié)束語
通過幾年的摸索,筆者對于高中算法和程序設(shè)計的教學(xué)有了較大的提高,但仍存在若干不足之處。本文提出以上見解,以期起到拋磚引玉的作用。筆者將在今后的教學(xué)中,更加注重教學(xué)、教法的探究,在實踐中不斷提高算法和教學(xué)設(shè)計這么課程的教學(xué)能力。
新課程改革對教師的自身發(fā)展也提出了更高的要求。信息科技本身最大的特點就是不斷發(fā)展,所以作為信息科技老師也應(yīng)該不斷地學(xué)習(xí),必須不斷更新觀念,不斷地積累教學(xué)經(jīng)驗,注重學(xué)習(xí)新知識,提高終身學(xué)習(xí)的意識和能力,以適應(yīng)不斷變化的時代對現(xiàn)代教育所提出的更高要求,以便找到合適教學(xué)方法來更好地教學(xué)。我們要不斷培養(yǎng)和發(fā)展自己的反思能力,包括反思自己的教育理念與行為,思考各種教育行為的后果,不斷自我修正、調(diào)整和更新,成為反思型教師。
【參考文獻】
1.《上海市中小學(xué)信息科技課程指導(dǎo)綱要(征求意見稿)》,上海市中小學(xué)課程教材改革委員會辦公室編,上海教育出版社,2002年11月
2.上海市高級中學(xué)信息科技學(xué)科教學(xué)基本要求(實驗本),中國地圖出版社,中華地圖學(xué)社,2009年1月
3.王愛艷:《算法與程序設(shè)計教學(xué)之我見》,信息技術(shù)教育,2008.2 4.《〈算法與程序設(shè)計〉模塊的教學(xué)策略》 李 娟
In the modern time, mainly in small and medium-sized enterprises, Foshan steel industry is the speed development by leaps and bounds, and have made remarkable achievements in upstream, but also face factors of production such as energy, raw material cost, continuously high indirectly lead to cost pressures in iron and steel
第三篇:算法與程序設(shè)計
《算法與程序設(shè)計》教學(xué)中實施研究性學(xué)習(xí)探步
作者:趙濮民
摘要:研究性學(xué)習(xí)是教育科研領(lǐng)域中一個嶄新的課題。信息技術(shù)教學(xué)作為以培養(yǎng)創(chuàng)新精神、研究能力和實踐能力為目標取向的必修課程,它強調(diào)讓學(xué)生通過研究性學(xué)習(xí),提出問題,收集材料,對研究性課題進行探索、分析、研究,最后基于問題解決模式,在實踐操作中培養(yǎng)學(xué)生科學(xué)的態(tài)度和價值觀以及創(chuàng)新精神、創(chuàng)新思維、創(chuàng)造能力,并學(xué)會解決生活中與信息技術(shù)學(xué)習(xí)有關(guān)的實際問題。職業(yè)學(xué)校的學(xué)生,不僅應(yīng)具有獨立接受知識的能力,更應(yīng)具有獨立探索知識的能力,由“研究性學(xué)習(xí)”補充原有的“接受式學(xué)習(xí)”,使學(xué)習(xí)方式更趨完善,只有當這兩種學(xué)習(xí)方式結(jié)合起來,優(yōu)勢互補,才能使基礎(chǔ)教育適應(yīng)時代對人才培養(yǎng)的要求。
關(guān)鍵詞:程序設(shè)計;研究性學(xué)習(xí);求真;求全;求變;求新;優(yōu)勢互補
《算法與程序設(shè)計》是職業(yè)學(xué)校信息技術(shù)教學(xué)中的一個重點,也是難點。傳統(tǒng)的程序設(shè)計教學(xué)以老師講授型為主,由于算法與程序設(shè)計的內(nèi)容邏輯性強,普遍認為在程序設(shè)計教學(xué)中難以實施研究性學(xué)習(xí)。
研究性學(xué)習(xí)是以“培養(yǎng)學(xué)生具有永不滿足、追求卓越的態(tài)度,培養(yǎng)學(xué)生發(fā)現(xiàn)問題、提出問題、從而解決問題的能力”為基本目標,以學(xué)生從學(xué)習(xí)中獲得作品設(shè)計與制作方法的困惑為方向,以在提出問題和解決問題的全過程中學(xué)習(xí)到算法與程序設(shè)計為學(xué)習(xí)方法的課程。經(jīng)過反復(fù)研究,我們認為研究性學(xué)習(xí)可以應(yīng)用于程序設(shè)計教學(xué)中。實施研究性學(xué)習(xí)的關(guān)鍵是要確定一個目標,要鼓勵學(xué)生主動地發(fā)現(xiàn)問題,并且通過探究或?qū)嵺`活動去試圖解決問題。在課題研究的過程中采用分組交流討論、查閱資料、協(xié)作探究、歸納總結(jié)等方式,一步步引領(lǐng)學(xué)生深刻掌握算法與程序設(shè)計的精髓。
一、通過研究性學(xué)習(xí),重構(gòu)算法知識體系,要求真 研究性學(xué)習(xí)是學(xué)生在老師的指導(dǎo)下,結(jié)合真實生活,選定主題,然后搜集相關(guān)材料,對材料進行歸納、加工處理、分析、總結(jié),得到相應(yīng)結(jié)論的學(xué)習(xí)活動。在《算法與程序設(shè)計》教學(xué)中,根據(jù)教學(xué)內(nèi)容,經(jīng)過反復(fù)研究,確定了研究主題《搜索算法的應(yīng)用研究》和《動態(tài)規(guī)劃算法的解題應(yīng)用研究》,并根據(jù)學(xué)生的自愿報名成立了兩個研究小組。然后各小組根據(jù)自己研究的算法,重新整理相應(yīng)的知識,對知識進行認知、歸納、總結(jié)。如《搜索算法的應(yīng)用研究》小組,對搜索算法從以下幾方面進行整理:
1、搜索算法的算法思想、分類;
2、深度優(yōu)先搜索的算法思想與算法結(jié)構(gòu);
3、廣度優(yōu)先搜索的算法思想與算法結(jié)構(gòu);
4、深度優(yōu)先搜索的優(yōu)先策略;
5、廣度優(yōu)先搜索的優(yōu)化策略;
6、深度優(yōu)先搜索與廣度優(yōu)先搜索的異同。學(xué)生通過對搜索算法知識進行整理、分類、小結(jié),加深了對搜索算法的理性理解與感性認知。
二、通過研究性學(xué)習(xí),同學(xué)之間取長補短,要求全
每個學(xué)生都有所長,也有所短,研究性學(xué)習(xí)一個重要的特點就是:分工合作,共同討論,共同提高,使參與的學(xué)生全面發(fā)展。我們的“搜索算法的應(yīng)用研究”小組共有五個成員,根椐學(xué)生的特點、特長,對他們進行分工,每位學(xué)生研究上述其中一個問題,然后整個小組一起討論,每位學(xué)生介紹自己的研究情況、研究成果,然后其他同學(xué)進行補充,發(fā)表自己的見解,這樣每個同學(xué)都使自己的研究內(nèi)容得到補充,同時也學(xué)習(xí)到了其他同學(xué)研究方面的知識,可以取長補短,共同提高,得到全面發(fā)展。
三、通過研究性學(xué)習(xí),總結(jié)算法的應(yīng)用規(guī)律,要求變
研究性學(xué)習(xí)的目的,是要求學(xué)生搜集與主題有關(guān)的資料,歸納整理相關(guān)資料,根據(jù)相關(guān)材料和知識,對主題進行研究,提出自己的觀點或結(jié)論。我們在程序設(shè)計教學(xué)中進行算法專題研究也是這樣,除要求學(xué)生歸納、整理專題算法知識外,還要總結(jié)出算法的應(yīng)用規(guī)律、應(yīng)用算法解題的步驟和算法的框架,能根據(jù)實際情況,隨機應(yīng)變。如在“動態(tài)規(guī)劃的應(yīng)用研究”中,學(xué)生總結(jié)出:動規(guī)劃是解符合“無后效性原則”的最優(yōu)問題的一種算法思想;用動態(tài)規(guī)劃解題的一般步驟是:(1)判斷題目是否為求最優(yōu)問題,是否符合“無后效性原則”;(2)確定如果劃分階段;(3)確定每個階段有幾種狀態(tài);(4)找出狀態(tài)轉(zhuǎn)移方程和邊界條件;(5)用算法語言實現(xiàn)算法過程。又如在“搜索算法的應(yīng)用研究”中,研究小組的同學(xué)總結(jié)出:(1)廣度優(yōu)先搜索算法通常應(yīng)用于解最少步數(shù)問題,而深度優(yōu)先搜索算法則通常用來解所有路徑問題;(2)深度優(yōu)先搜索和廣度優(yōu)先搜索都是搜索算法,前者時間復(fù)雜度較大,而后者則占用的內(nèi)存較大;(3)深度優(yōu)先搜索在實現(xiàn)時用遞歸或用堆棧來實現(xiàn),而廣度優(yōu)先搜索是用隊列來實現(xiàn),實現(xiàn)兩種算法所用的數(shù)據(jù)結(jié)構(gòu)不同;(4)深度優(yōu)先搜索和廣度優(yōu)先搜索都是搜索算法,但兩者的算法結(jié)構(gòu)有較大的不同。學(xué)生通過自己對算法應(yīng)用規(guī)律的總結(jié),對算法的應(yīng)用得到升華,進一步提高算法的應(yīng)用能力和程序設(shè)計能力。
四、通過研究性學(xué)習(xí),提高分析、歸納和綜合能力,要求新
對算法的專題研究,不僅要對算法理論進行總結(jié),算法應(yīng)用的研究也是很重要的一方面,通過算法的解題應(yīng)用,既提高了學(xué)生分析問題的能力,也加深了學(xué)生對算法的理解,提高了學(xué)生的算法應(yīng)用能力,進而得到對學(xué)生創(chuàng)新能力的培養(yǎng)。另外,我們在算法研究過程中,要求學(xué)生透切理解算法內(nèi)容,用算法語言準確描述算法,通過這種途徑,進一步加深學(xué)生對算法的理解,同時也提高了學(xué)生的算法表達能力和歸納、總結(jié)的能力。
通過對算法進行專題研究,可以進一步加深學(xué)生對算法知識的理解,也可以提高學(xué)生的算法應(yīng)用能力和程序設(shè)計能力。實踐告訴我們:在整個研究過程中要注意以下幾個問題:
1、課題不宜太大。研究課題的確定是研究性學(xué)習(xí)實施過程中重要的一環(huán),課題選擇恰當與否,直接關(guān)系到整個課題研究的成敗。在程序設(shè)計教學(xué)中進行研究性學(xué)習(xí)活動,選題要遵循下面的原則:(1)課題的范圍不宜太大;(2)有一定的應(yīng)用價值;(3)結(jié)合學(xué)生的實際。一個好的開始是成功的一半,在研究性學(xué)習(xí)活動中也是如此。
2、要理論研究與算法應(yīng)用相結(jié)合。對算法的專題研究,算法應(yīng)用是重點。在算法知識歸納總結(jié)的基礎(chǔ)上,重點應(yīng)研究算法應(yīng)用的一般規(guī)律、算法結(jié)構(gòu)、應(yīng)用算法解題的一般步驟等。不應(yīng)該只是對算法理論的空洞論述,否則效果不好、意義也不大。
3、充分發(fā)揮教師的引導(dǎo)作用、學(xué)生的主體作用。在算法研究活動中,應(yīng)充分發(fā)揮教師的引導(dǎo)和指導(dǎo)作用,既不能放任自由,也不能包辦代替,要充分發(fā)揮學(xué)生的主體作用。當學(xué)生遇到問題和困難時,老師應(yīng)當引導(dǎo)和啟發(fā)學(xué)生,讓學(xué)生去探索和研究,而不是直接告訴學(xué)生答案,老師始終是學(xué)生的引導(dǎo)者,學(xué)生是真正的參與者,使學(xué)生通過算法研究,加深對算法的理解,提高算法應(yīng)用能力和程序設(shè)計能力。
職業(yè)學(xué)校的學(xué)生,不僅應(yīng)具有獨立接受知識的能力,更應(yīng)具有獨立探索知識的能力,由“研究性學(xué)習(xí)”補充原有的“接受式學(xué)習(xí)”,使學(xué)習(xí)方式更趨完善,只有當這兩種學(xué)習(xí)方式結(jié)合起來,優(yōu)勢互補,才能使基礎(chǔ)教育適應(yīng)時代對人才培養(yǎng)的要求。
第四篇:算法與程序設(shè)計教學(xué)思想
算法與程序設(shè)計教學(xué)思想
在高中階段開設(shè)信息技術(shù)課程的基本目的是進一步提高學(xué)生的信息素養(yǎng),使他們能適應(yīng)社會發(fā)展的需求,為信息社會培養(yǎng)合格的人才。本課程力圖通過信息的獲取、加工、管理、表達與交流等各類信息實踐活動,掌握信息技術(shù),感受信息文化,增強信息意識,內(nèi)化信息倫理。要達到這一目的,必須為學(xué)生建構(gòu)起一個利于他們提高信息素養(yǎng)的良好學(xué)習(xí)和實踐環(huán)境。
根據(jù)教育部制訂的普通高中課程標準編寫的,由浙江教育出版社出版的高中信息技術(shù)教科書(實驗),經(jīng)全國各地多年來的試用,積累起了比較豐富的教學(xué)實踐經(jīng)驗。在浙江教育出版社積極倡導(dǎo)、支持,教科書編寫人員不懈努力和廣大任課教師的熱情參與下,多次開展了卓有成效的教學(xué)交流活動。例如,教師用書的編制與修訂,優(yōu)秀教案選編的出版,開展教學(xué)資源競賽等等,都為教科書的使用和課程教學(xué)質(zhì)量的提高作出了有益的貢獻。
總的說來,上述各項活動都比較側(cè)重于解決如何教的問題,受益的對象基本局限于教師范圍。但是,我們更主要的任務(wù)是如何使廣大同學(xué)直接受益,如何為廣大高中同學(xué)創(chuàng)造一個便于進行自主學(xué)習(xí)信息技術(shù)課程的輔助學(xué)習(xí)的平臺,通過這一平臺來掌握高中課程范圍內(nèi)的信息技術(shù)基礎(chǔ)知識和基本技能。使同學(xué)們能根據(jù)自己的基礎(chǔ)、特長和興趣,學(xué)會創(chuàng)造性地利用信息技術(shù)解決學(xué)習(xí)和生活中的實際問題。《高中信息技術(shù)輔助教學(xué)平臺》(計算機光盤版)就是為這一目的開發(fā)和編制的。為了使信息技術(shù)課程的教學(xué)能全面貫徹教育部制訂的課程標準精神,使廣大任課老師在教學(xué)過程中有所參照,也為了減輕老師們的備課負擔,更主要的是為了激發(fā)同學(xué)們學(xué)習(xí)本課程的積極性,能循序漸進地掌握信息技術(shù)的基礎(chǔ)知識、基本技能和相關(guān)的應(yīng)用能力。“平臺”的設(shè)計是以“教案”或“學(xué)案”的形式呈現(xiàn)的。
信息技術(shù)輔助教學(xué)平臺共分六個模塊,分別是:信息技術(shù)基礎(chǔ)、算法與程序設(shè)計、多媒體技術(shù)應(yīng)用、網(wǎng)絡(luò)技術(shù)應(yīng)用、數(shù)據(jù)管理技術(shù)、研究與探索(機器人活動和信息學(xué)活動)。前5個模塊按32課時來安排內(nèi)容。任課老師可按本校生源、設(shè)備、師資條件的實際情況進行適當調(diào)整。
根據(jù)本“平臺”的設(shè)計目標及其所肩負的任務(wù),前5個模塊的基本結(jié)構(gòu)欄目為:課標理解、教材分析、教法實踐、知識貨架、素材下載等項。
課標理解:以課程標準為依據(jù),提出對本單元教學(xué)內(nèi)容在課程中的作用和地位的理解,使教師和學(xué)生的信息技術(shù)教學(xué)活動更符合課程目標。
教材分析:指明本課時的學(xué)習(xí)目的,基本教學(xué)內(nèi)容,需要掌握的學(xué)習(xí)重點和要解決的難點。對部分重點或技術(shù)難點提供簡明動畫,幫助同學(xué)理解。
教法實踐:根據(jù)教學(xué)內(nèi)容,提出教學(xué)流程或教學(xué)方法,進行討論交流、實踐體驗、綜合探究等實踐活動;通過實例演示或練習(xí)(含拓展練習(xí)),對同學(xué)反饋的知識、技能進行評價。知識貨架:是本模塊、本章、本節(jié)、本課涉及的知識和概念的匯編,供教師和同學(xué)查閱。
素材下載:為教師備課提供相關(guān)素材內(nèi)容;為學(xué)生的學(xué)習(xí)、作業(yè)、練習(xí)準備必要的素材,以節(jié)約學(xué)生時間,提高學(xué)習(xí)效率。其中有些內(nèi)容是為了拓展教師和學(xué)生的視野提供幫助。
《算法與程序設(shè)計》是高中信息技術(shù)課程的選修模塊。由于算法與程序設(shè)計在解決問題過程中所起的關(guān)鍵作用,因此,它被各地學(xué)校廣泛地選修,這也為本模塊教學(xué)積累起了比較豐富的經(jīng)驗。本模塊所擔負的主要任務(wù)是:讓學(xué)生體驗算法思想,了解算法和程序設(shè)計在解決問題過程中的地位和作用,并能對簡單問題設(shè)計算法,初步學(xué)會用一種程序設(shè)計語言編制程序,實現(xiàn)算法,解決問題。
本“平臺”匯集了豐富的算法與程序設(shè)計教學(xué)內(nèi)容和相關(guān)素材。它可以用來幫助教師備課,進行課堂教學(xué);也可以幫助學(xué)生學(xué)習(xí),提高他們的學(xué)習(xí)興趣,激發(fā)他們對未知領(lǐng)域積極探究的欲望和提高分析問題、解決問題的能力。本“平臺”努力為學(xué)生提供一個較為優(yōu)良的學(xué)習(xí)環(huán)境,促進學(xué)生主動學(xué)習(xí),以充分發(fā)揮其主體潛能,為學(xué)生個性化學(xué)習(xí)開辟一個新領(lǐng)地。
《算法與程序設(shè)計》既有嚴謹?shù)睦碚摚枰獙Ρ唤鉀Q的問題進行周密的分析,把問題模型化,又要有解決問題的科學(xué)的、嚴格的方法。具備算法理念,初步掌握算法的設(shè)計與分析方法是一件對學(xué)生終身有用的好事。本“平臺”對“課標理解”、“教材分析”等5個基本欄目都有較詳盡的敘述;對部分比較典型和難度較大的內(nèi)容還配置了相應(yīng)的Flash動畫幫助師生們進行教和學(xué)。
問題求解存在于社會生活的各個領(lǐng)域,在“拓展學(xué)習(xí)”欄目中“平臺”提供了許多來源于學(xué)習(xí)、生活、工作的算法設(shè)計實例,供學(xué)生課內(nèi)或課后進行自主學(xué)習(xí),以進一步形成算法理念,提高自己的算法設(shè)計和算法表達的能力。所有的示例程序、練習(xí)素材及輔助動畫都可在“素材下載”欄目中找到,供下載,以節(jié)省師生的教學(xué)與學(xué)習(xí)的時間,提高效率。
由于“平臺”是在實踐教學(xué)經(jīng)驗基礎(chǔ)上的一種再創(chuàng)作,難免有欠妥和不足之處。編者殷切祈望使用本“平臺”的廣大師生不吝賜教,以期不斷總結(jié)經(jīng)驗,完善內(nèi)容,改進形式,能更好地為廣大師生服務(wù),為提高教學(xué)質(zhì)量作一點微薄貢獻。
第五篇:《算法與程序設(shè)計》教學(xué)探析 期
【摘 要】在高中“算法與程序設(shè)計”模塊教學(xué)中,算法的設(shè)計以及運用程序設(shè)計解決問題的方法與思路,與學(xué)生原有的知識結(jié)構(gòu)和解題經(jīng)驗有較大差異,使得學(xué)生的學(xué)習(xí)存在較大困難。教師應(yīng)從生活實例出發(fā),激發(fā)學(xué)生的學(xué)習(xí)興趣;降低編程起點,提高學(xué)生的學(xué)習(xí)信心;引導(dǎo)學(xué)生通過程序閱讀,學(xué)習(xí)他人編程經(jīng)驗;強化算法的分析與設(shè)計,培養(yǎng)學(xué)生分析問題與解決問題的能力。
【關(guān)鍵詞】算法與程序設(shè)計;教學(xué)探析
【中圖分類號】G40-057 【文獻標識碼】A 【論文編號】1671-7384(2013)11-0050-03 “算法與程序設(shè)計”是普通高中信息技術(shù)課程中難度較大的一個選修模塊。照本宣科的講授只能使學(xué)生死記硬背程序,這種缺乏理解的學(xué)習(xí)導(dǎo)致了學(xué)生進一步學(xué)習(xí)的困難,更談不上對所學(xué)知識的靈活運用。因此,如何改變學(xué)生的思維方式、如何組織教學(xué)以使學(xué)生真正理解算法并學(xué)會運用程序設(shè)計解決實際問題,值得我們探索和研究。
從生活實例出發(fā),激發(fā)學(xué)生的學(xué)習(xí)興趣
從教育心理學(xué)的角度來說,興趣是一個人傾向于認識、研究并獲得某種知識的心理特征,是可以推動人們求知的一種內(nèi)在力量。學(xué)生對某一學(xué)科有興趣,就會專心致志地鉆研它,從而提高學(xué)習(xí)效果。以下案例正是從學(xué)生興趣出發(fā),激發(fā)了學(xué)生參與的熱情。
案例1:遙控機器人
窗體上是一張機器人圖片以及“ 向上”、“ 向下”、“向左”、“向右”四個按鈕。怎樣讓機器人聽從我們的指令動起來呢?以向上為例,我們看到機器人圖片的Top屬性是1000,在“向上”按鈕的單擊事件中,可以寫這樣一句代碼:Picrobot.Top = 900。運行程序,單擊“向上”按鈕,機器人聽從指令向上挪了一部分。再按一次,機器人怎么沒有反應(yīng)?怎樣修改程序才能讓機器人根據(jù)指令不斷地向上移動呢?學(xué)生思考,得出程序代碼:Picrobot.Top = Picrobot.Top-50。
對于機器人,學(xué)生都有種神秘感,往往覺得不可思議,但是又想探索。在教師的引導(dǎo)下,學(xué)生的本能興趣轉(zhuǎn)化為內(nèi)在學(xué)習(xí)動力,在實現(xiàn)對機器人控制的過程中,加深了對控件、賦值語句和變量概念的理解。
降低編程起點,提高學(xué)生的學(xué)習(xí)信心
沒有人在學(xué)習(xí)程序設(shè)計的初始階段就能成為編程高手。然而在程序設(shè)計教學(xué)中,教師常常一開始就要求學(xué)生編寫完整的程序。導(dǎo)致很多學(xué)生無從下手,學(xué)習(xí)的自信心受到了嚴重打擊。因此,我們應(yīng)降低編程起點,將學(xué)生引入門。一方面,在問題的選擇上,盡可能使用學(xué)生能夠通過已有知識和經(jīng)驗分析出解決方法的問題;另一方面,可以采用案例教學(xué)法,從模仿典型程序開始,在代碼模板上補充關(guān)鍵代碼后即可調(diào)試運行,從而體驗成功的喜悅,增強學(xué)生學(xué)習(xí)的信心。下面就是一個使用案例教學(xué)法的例子。
案例2:循環(huán)結(jié)構(gòu) [1] 針對s=1+2+3+??+100問題,引導(dǎo)學(xué)生觀察累加求和的過程:s=s+數(shù)字。引出如果用變量i表示數(shù)字,整個計算過程是在重復(fù)執(zhí)行若干個同樣的操作:s=s+i。如何讓計算機自動重復(fù)上述過程呢?教師呈現(xiàn)用循環(huán)語句解決問題的程序,接著讓學(xué)生模仿累加程序,完善計算s=100+101+??+200、s=12+22+32+??+102、p=1*2*3*??*9四個式子程序空白處的代碼。4個任務(wù)的難度依次遞增,第1題要求分析出循環(huán)的初值、終值;第2和第3題要求分析出循環(huán)體;第4題要求同時分析出循環(huán)的初值、終值和循環(huán)體。學(xué)生完成后,教師展示學(xué)生程序,引導(dǎo)學(xué)生歸納總結(jié)出For循環(huán)結(jié)構(gòu)的一般格式。然后提出“計算s=10+20+30+??+100”的任務(wù),讓學(xué)生在一般格式的指導(dǎo)下,獨立編寫程序解決問題。
牛頓說過:我之所以能取得現(xiàn)在的成就,是因為我站在巨人的肩膀上。在案例教學(xué)法中,案例和代碼模板就是“巨人的肩膀”,學(xué)生通過補充程序模板中的關(guān)鍵代碼,逐步認識For循環(huán)結(jié)構(gòu),并在多個“個”的嘗試中,找出隱藏在“個”背后的規(guī)律性內(nèi)容,歸納出For循環(huán)結(jié)構(gòu)的一般格式,進而在一般格式的指導(dǎo)下編寫程序,解決重復(fù)執(zhí)行“類”問題。在此過程中,學(xué)生的編程思維和分析能力獲得了快速的提高,提高了學(xué)習(xí)程序設(shè)計的信心。
通過程序閱讀,學(xué)習(xí)他人編程經(jīng)驗
學(xué)習(xí)程序設(shè)計,一個重要而有效的方法就是閱讀。閱讀書中的例題、軟件開發(fā)環(huán)境中的范例、網(wǎng)絡(luò)中的開放源代碼以及自己編寫的程序。克努特曾說過:通過閱讀他人的程序獲得技巧,是極其重要,但在許許多多的計算機課程中,這樣的訓(xùn)練卻可悲地被忽視了,因此導(dǎo)致了計算機被極其糟糕地低效使用。通過閱讀大量的“示例”程序,可以加深對各種語句語法和語義的理解,從中發(fā)現(xiàn)、總結(jié)別人解決問題的方法,積累編程的經(jīng)驗以及實現(xiàn)基本算法的代碼段。
怎樣閱讀程序呢?對于一篇文章,通常首先采用粗讀的方式進行整體認知,了解文章主要寫的是什么,留下總的印象;然后再進行精讀,深入到文章的局部,留心遣詞造句,賞析精彩語段,揣摩文章的謀篇布局。閱讀程序和閱讀文章有相通之處,對于一些較為復(fù)雜的程序,應(yīng)該先進行整體分析,從整體上摸清程序的架構(gòu),再對各個部分的代碼逐一進行跟蹤閱讀。
1.整體分析
這一階段,相當于文章的粗讀,需要從整體上把握程序的組成部分、各個部分的大意以及連接方式。我們?nèi)绾稳チ私庖粋€語句塊的作用呢?主要有三種方法:一是依據(jù)經(jīng)驗,也就是我們已經(jīng)掌握的各種算法和語句的關(guān)鍵點來判別;二是看注釋,一個高品質(zhì)的代碼都會有注釋,對我們理解語義有方向性的指導(dǎo)作用;三是靠猜測,我們根據(jù)過程名以及參數(shù)名,能對這個過程的作用略知一二。如果有必要,則可以到過程的定義中,找到某些具有特征的操作,以證實自己的猜測。[2]任何一個復(fù)雜的程序都可以分解為三種基本結(jié)構(gòu):
順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。每種結(jié)構(gòu)只有一個入口和一個出口,而各個結(jié)構(gòu)之間的連接方式有兩種:積木式連接和嵌套式連接。積木式連接是一個結(jié)構(gòu)的出口與另一個結(jié)構(gòu)的入口連接;嵌套式連接是在一個結(jié)構(gòu)的內(nèi)部嵌套另一個結(jié)構(gòu)。一般來說,我們應(yīng)先分析出程序中積木式連接結(jié)構(gòu),再找出這些結(jié)構(gòu)中的嵌套式連接結(jié)構(gòu)。借助于流程圖、偽代碼等描述算法的工具,可以根據(jù)源程序畫出反映程序結(jié)構(gòu)的流程圖,這對理清思路、分析程序結(jié)構(gòu)有很大的幫助作用。[3] 下面我們先用整體分析法閱讀一段代碼:
案例3:
Private Sub cmdGcd_Click()Dim a As Integer Dim b As Integer Dim r As Integer a = Val(InputBox(“輸入a”))b = Val(InputBox(“輸入b”))Do While b <> 0 r = a Mod b a = b b = r Loop Print “最大公約數(shù)為:”;a End Sub 從命令按鈕名和輸出提示信息可以知道,這是一個求兩個數(shù)的最大公約數(shù)的程序,程序結(jié)構(gòu)如圖2所示。
2.跟蹤閱讀
如果要詳細了解各個部分是如何運行的,就要對語句進行跟蹤閱讀,相當于文章的精讀。跟蹤閱讀就是用人腦模擬計算機的執(zhí)行過程。對于順序結(jié)構(gòu),閱讀不成問題。對于選擇結(jié)構(gòu),關(guān)鍵是要搞清條件和語句的關(guān)系,當有兩個選擇結(jié)構(gòu)連接時,要分清楚是積木式連接還是嵌套式連接。對于循環(huán)結(jié)構(gòu),可以通過對循環(huán)體內(nèi)的語句逐一跟蹤閱讀,分析循環(huán)結(jié)構(gòu)的執(zhí)行過程。這時,可以借助于紙筆,用列表的方法將循環(huán)執(zhí)行過程中各變量的值一一記錄下來。[4] 在案例3中,當輸入48,28(即a=48,b=28)時,程序執(zhí)行的過程如下表所示:
程序閱讀的關(guān)鍵是代碼的積累。“讀書破萬卷,下筆如有神”,程序讀多了,自然容易借鑒別人的編程經(jīng)驗和方法。
強化算法設(shè)計,培養(yǎng)學(xué)生解決問題的能力
程序設(shè)計的核心是算法,語言只是表達工具。用程序設(shè)計解決問題,關(guān)鍵是要找到解決問題的算法。只要算法正確,就可以用任何一種語言編寫程序。對于初學(xué)程序設(shè)計的學(xué)生來說,接觸的問題并不復(fù)雜,相應(yīng)算法也較簡單。很多學(xué)生看到問題后,不進行細致的分析和設(shè)計,粗粗一想就開始動手,很簡單的問題往往寫出一大堆代碼,自己也說不清解決問題的方法和過程。
案例4 : 編寫程序,實現(xiàn)成績統(tǒng)計功能。通過InputBox函數(shù)輸入50個學(xué)生成績。當成績大于等于85時,為“優(yōu)秀”等級;成績大于等于60且小于85時,為“及格”等級;當成績小于60時,為“不及格”等級。要求統(tǒng)計優(yōu)秀人數(shù)、及格人數(shù)及不及格人數(shù)。
學(xué)生解決這個問題的過程,往往只是按照題目的表面意思進行處理,首先執(zhí)行一次循環(huán)輸入數(shù)據(jù);然后掃描三次數(shù)組,分別統(tǒng)計優(yōu)秀、及格和不及格人數(shù)。
俗話說:磨刀不誤砍柴工。我們應(yīng)該怎樣進行算法設(shè)計呢?在這個案例中,重復(fù)掃描使得程序效率不高。其實,最簡單的算法是只循環(huán)一次,輸入數(shù)據(jù)后立即使用多分支選擇結(jié)構(gòu)對輸入的數(shù)據(jù)進行判斷,分別對優(yōu)秀、及格及不及格人數(shù)進行統(tǒng)計。算法分析前,學(xué)生為自己編寫的程序沾沾自喜,然而進行算法分析后,學(xué)生意識到自己程序的缺陷,較好地體驗了算法對提高程序效率的作用,理解和掌握了隱藏在問題背后的知識,提高了解決問題的能力。
綜上所述,算法與程序設(shè)計教學(xué)需要我們在教學(xué)實踐中不斷地總結(jié)經(jīng)驗教訓(xùn),密切結(jié)合學(xué)生的自身情況,引導(dǎo)學(xué)生多閱讀、多思考、多實踐。讓學(xué)生在算法的指導(dǎo)下,在不斷完善和調(diào)試程序的過程中,潛移默化地掌握相關(guān)知識,養(yǎng)成縝密嚴謹?shù)目茖W(xué)態(tài)度,進一步提高邏輯分析能力、發(fā)散思維能力以及發(fā)現(xiàn)并解決問題的能力。