第一篇:算法與程序設(shè)計教學探究
算法與程序設(shè)計教學探究
【摘要】:《算法與程序設(shè)計》是普通高中信息技術(shù)課程的選修模塊,也是高中信息技術(shù)教學的重點和難點,其教學內(nèi)容相對枯燥,因此教學難度較大。如何在教學過程中選擇適當?shù)慕虒W方法以激發(fā)和維持學生學習興趣,對于引導(dǎo)學生學好本課程十分重要。本文結(jié)合筆者幾年來的教學實踐對高中《算法與程序設(shè)計》的教學進行探究。
【關(guān)鍵詞】:算法,程序設(shè)計,教學方法,學習興趣
一、教學實踐中遇到的問題
1、學生差異問題
首先高中學生的起點水平參差不齊。很多學生在升入高中前,并未接觸過算法與程序設(shè)計的相關(guān)知識。我曾做過粗略統(tǒng)計,每班大約都有百分之九十多的學生在高中階段以前未曾接觸過程序設(shè)計這方面的內(nèi)容,因此,學生學習程序設(shè)計語言的基礎(chǔ)較差。其次,編寫程序還涉及到本身的理科基礎(chǔ),特別是數(shù)學思維能力,每個學生的思維能力、理解能力是因人而異的。像實驗班與普通班、文科班與理科班,他們的接受能力就不同;而同一個班的學生,他們中有的思維敏捷能很快接受新的知識,有的卻還需要反復(fù)講解才能接受?,F(xiàn)在我們教學要面向全體學生,讓全體學生都接受有些困難。
2、內(nèi)容多,時間緊,教學目標不能很好地完成
《算法與程序設(shè)計》模塊中包括兩大塊內(nèi)容,一是算法部分,一是VB程序設(shè)計基礎(chǔ)部分,基本上涵蓋了程序設(shè)計中用到的所有知識,有大量的概念、數(shù)據(jù)、語句以及其它的過程和函數(shù),這些理論知識學生都必須掌握并能在VB中熟練應(yīng)用,因此老師需要詳細的講解以及讓學生做大量的練習?!端惴ㄅc程序設(shè)計》模塊的學時要求是36學時,但是一般信息技術(shù)課程最多每周兩節(jié)課,有的學校甚至每周一節(jié)課,加上考試、放假等原因也會耽誤一些學時,真正可以上課的課時不多,要學生全面理解算法并學會編程,教學難度可想而知。
3、學習內(nèi)容比較枯燥乏味,缺乏趣味性,學生興趣不高
《算法與程序設(shè)計》難教、難學是困擾師生的突出問題。對于學生而言,這部分學習內(nèi)容的理論性和知識性都比較強,并且在編寫程序的過程中,需要不斷調(diào)試、修改程序。這個過程相比起學習一些應(yīng)用軟件而能制作出各種各樣 有聲有色的作品,就顯得枯燥乏味,因此學生對于這個模塊的學習興趣不高。對于教師而言,由于算法及編程知識相對枯燥且學生接受能力有差別,不易引發(fā)其學習興趣,這就對教學的推進產(chǎn)生了一定的困難。
二、教學中的實踐嘗試
面對上述種種問題與困惑,如何在有限時間內(nèi)合理運用教材,采取恰當?shù)慕虒W方法,激發(fā)學生的學習興趣, 也就是如何提高《算法與程序設(shè)計》課堂教學的有效性,我們不妨從以下幾個方面去解決:
1、創(chuàng)設(shè)情境,激發(fā)學生興趣,提高學生學習信心
興趣是學習的關(guān)鍵,興趣決定了教學效果的好壞。在程序設(shè)計教學中要從學生的興趣入手,利用學生對事物的好奇心,選擇一些有趣的、有實際意義的程序,激發(fā)學生的學習興趣。為了激發(fā)學生的興趣,在程序設(shè)計中的第一課,我采用“游戲?qū)搿狈椒?選定“猜數(shù)游戲”(見圖1)作為切入點,對游戲與教學進行了有益的嘗試。以教電腦玩“猜數(shù)游戲”作為主線,通過生生之間,人機之間相互玩猜數(shù)游戲的活動,將計算機擬人化,激發(fā)學生學習程序設(shè)計的興趣。
圖1 在第一課的教學中,學生對猜數(shù)游戲有了濃厚的興趣,也有了一試身手的欲望。教師還可以再演示一些由學生自己編寫的、有趣的程序,從而吸引學生,并告訴他們學習了《算法與程序設(shè)計》的內(nèi)容后,大家都能夠編出這些有趣的小程序。
2、與其他學科相結(jié)合,加深學生對知識點的理解,提高教學效果 算法初步是高中新課程數(shù)學科目中的一項新增內(nèi)容,在高一第二學期學習,《算法與程序設(shè)計》模塊與數(shù)學課程算法初步部分內(nèi)容相銜接,而且數(shù)學中很多問題都可以用程序設(shè)計的思維方法來解決。因此信息技術(shù)教師可以從同學們在數(shù)學課上已經(jīng)熟悉的知識點入手,在教學中多舉一些這方面的事例,不僅可以提高學生的學習興趣,而且還能提高學生研究問題、解決問題的能力。
比如,對于著名的“百錢百雞”的數(shù)學問題,大多數(shù)學生在解題時,只能利用已知條件,列出兩個三元一次方程組,成為“無解”方程。但在講“窮舉”算法時,這個問題就能輕而易舉地解決。它的分析過程是:由于100錢最多只能買20只公雞,因此公雞數(shù)應(yīng)該在0~20之間;同理可得母雞數(shù)應(yīng)該在0~33之間;小雞數(shù)應(yīng)該在0~100之間。這樣,利用循環(huán)分別對公雞、母雞和小雞進行枚舉,可得出題目的解。
這樣的事例還有很多,如數(shù)學中解二元一次方程的問題,三角形面積計算問題,物理中平拋運動和球做反彈運動問題等。以數(shù)學或物理題講授解析法,用經(jīng)典的“百錢買百雞”問題講授窮舉法,教學效果更為顯著。
3、采用分層策略設(shè)計教學任務(wù)
分層教學承認學生的差異,是符合教學中可接受原則和因材施教的原則。分層教學面向全體學生,使教學適合每個學生的發(fā)展需要和實際水平,這也符合學生的心理要求,激發(fā)他們學習的自信和興趣,提高他們的學習主動性和積極性。為了使學生樂于編程并學有所得,教師在設(shè)臵教學任務(wù)時,應(yīng)改變以往硬性規(guī)定、呆板單一的做法,可將任務(wù)分為必做任務(wù)和自主任務(wù)兩個層次。必做任務(wù)一般為基礎(chǔ)問題,主要用于基礎(chǔ)知識和基本技能的訓練,一般每個同學都基本能夠完成,所以要求每個同學必須完成。自主任務(wù)則是課堂相關(guān)知識的拓展延伸或創(chuàng)新,每個同學可視自己的學習基礎(chǔ)量力而為,自主選擇是否完成或者完成多少。
例如,在學習完程序設(shè)計的三種基本結(jié)構(gòu)后,布臵“編寫一個程序求出100以內(nèi)所有的偶數(shù)“這個必做任務(wù)外,還可以布臵兩道自主任務(wù)讓學生自由選做:①編程求出1900-2008年之間的閏年。③在數(shù)學課本上選一道題,編程解決它。實踐證明基礎(chǔ)薄弱的學生基本都完成了必做任務(wù),心里也比較滿足,而學有余力的學生對自主任務(wù)很感興趣,有些學生不僅編寫出求數(shù)學問題的程序,還把物理中的問題用程序?qū)崿F(xiàn)求解。他們的好奇心理更加激發(fā)了探究的欲望。
4、打破課本原有的知識結(jié)構(gòu)體系
《算法與程序設(shè)計》教材的安排基本是按照“先理論后實踐,先語句再程序”的順序,這就容易導(dǎo)致教師在上課時,先講基礎(chǔ)理論部分,象算法的概念、流程圖的畫法,再將具體的算法程序,由于大多數(shù)學生以前沒有接觸算法,使得他們學習很茫然,不知道學這些理論有什么用,從而喪失學習興趣。我們可以改變這種體系,從程序設(shè)計學習一開始就應(yīng)讓學生接觸功能簡單結(jié)構(gòu)清晰的程序,以建立對程序和語句的整體概念,體會各種語句的格式功能,了解語言的有關(guān)規(guī)定,理解計算機解決問題的一般過程。
5、重視實踐教學,培養(yǎng)學生實際動手能力
VB 是一門實踐性很強的課程,如果只注重理論知識的學習,紙上談兵,不注重實際操作,上機練習,是不可能真正學好VB的。在程序設(shè)計的實踐教學中,選取教學案例時盡可能做到:①貼近生活,或者數(shù)學課本上的一些典型例題;②案例還要有趣味性,一個故事、一段相聲、一則奇聞等等;③案例問題本身要簡單,但包含要學習的算法思想。例如在學習選擇程序設(shè)計結(jié)構(gòu)時用“猜數(shù)”游戲作為案例,就可以調(diào)動學生起的濃厚的興趣,教學效果明顯。
巧設(shè)情境,布臵任務(wù)。在教學過程中設(shè)臵一個情景,讓學生融入進去,有利于激發(fā)學習主動性。在學習隨機函數(shù)時,我們創(chuàng)設(shè)了世界杯足球比賽擲硬幣的情景,利用隨機函數(shù)模擬擲硬幣,讓他們思考如何編寫程序。類似這樣的情景是學生們比較熟悉的,而且能引起他們的興趣。通過學生的上機操作,培養(yǎng)他們的實際動手能力。
三、結(jié)束語
通過幾年的摸索,筆者對于高中算法和程序設(shè)計的教學有了較大的提高,但仍存在若干不足之處。本文提出以上見解,以期起到拋磚引玉的作用。筆者將在今后的教學中,更加注重教學、教法的探究,在實踐中不斷提高算法和教學設(shè)計這么課程的教學能力。
【參考文獻】:
[1] 張義兵.算法與程序設(shè)計(選修).教育科學出版社.2004 [2] 張義兵.算法與程序設(shè)計(選修)教師教學用書.教育科學出版社.2004 [3]《〈算法與程序設(shè)計〉模塊的教學策略》 李娟
第二篇:算法與程序設(shè)計
《算法與程序設(shè)計》教學中實施研究性學習探步
作者:趙濮民
摘要:研究性學習是教育科研領(lǐng)域中一個嶄新的課題。信息技術(shù)教學作為以培養(yǎng)創(chuàng)新精神、研究能力和實踐能力為目標取向的必修課程,它強調(diào)讓學生通過研究性學習,提出問題,收集材料,對研究性課題進行探索、分析、研究,最后基于問題解決模式,在實踐操作中培養(yǎng)學生科學的態(tài)度和價值觀以及創(chuàng)新精神、創(chuàng)新思維、創(chuàng)造能力,并學會解決生活中與信息技術(shù)學習有關(guān)的實際問題。職業(yè)學校的學生,不僅應(yīng)具有獨立接受知識的能力,更應(yīng)具有獨立探索知識的能力,由“研究性學習”補充原有的“接受式學習”,使學習方式更趨完善,只有當這兩種學習方式結(jié)合起來,優(yōu)勢互補,才能使基礎(chǔ)教育適應(yīng)時代對人才培養(yǎng)的要求。
關(guān)鍵詞:程序設(shè)計;研究性學習;求真;求全;求變;求新;優(yōu)勢互補
《算法與程序設(shè)計》是職業(yè)學校信息技術(shù)教學中的一個重點,也是難點。傳統(tǒng)的程序設(shè)計教學以老師講授型為主,由于算法與程序設(shè)計的內(nèi)容邏輯性強,普遍認為在程序設(shè)計教學中難以實施研究性學習。
研究性學習是以“培養(yǎng)學生具有永不滿足、追求卓越的態(tài)度,培養(yǎng)學生發(fā)現(xiàn)問題、提出問題、從而解決問題的能力”為基本目標,以學生從學習中獲得作品設(shè)計與制作方法的困惑為方向,以在提出問題和解決問題的全過程中學習到算法與程序設(shè)計為學習方法的課程。經(jīng)過反復(fù)研究,我們認為研究性學習可以應(yīng)用于程序設(shè)計教學中。實施研究性學習的關(guān)鍵是要確定一個目標,要鼓勵學生主動地發(fā)現(xiàn)問題,并且通過探究或?qū)嵺`活動去試圖解決問題。在課題研究的過程中采用分組交流討論、查閱資料、協(xié)作探究、歸納總結(jié)等方式,一步步引領(lǐng)學生深刻掌握算法與程序設(shè)計的精髓。
一、通過研究性學習,重構(gòu)算法知識體系,要求真 研究性學習是學生在老師的指導(dǎo)下,結(jié)合真實生活,選定主題,然后搜集相關(guān)材料,對材料進行歸納、加工處理、分析、總結(jié),得到相應(yīng)結(jié)論的學習活動。在《算法與程序設(shè)計》教學中,根據(jù)教學內(nèi)容,經(jīng)過反復(fù)研究,確定了研究主題《搜索算法的應(yīng)用研究》和《動態(tài)規(guī)劃算法的解題應(yīng)用研究》,并根據(jù)學生的自愿報名成立了兩個研究小組。然后各小組根據(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)先搜索的異同。學生通過對搜索算法知識進行整理、分類、小結(jié),加深了對搜索算法的理性理解與感性認知。
二、通過研究性學習,同學之間取長補短,要求全
每個學生都有所長,也有所短,研究性學習一個重要的特點就是:分工合作,共同討論,共同提高,使參與的學生全面發(fā)展。我們的“搜索算法的應(yīng)用研究”小組共有五個成員,根椐學生的特點、特長,對他們進行分工,每位學生研究上述其中一個問題,然后整個小組一起討論,每位學生介紹自己的研究情況、研究成果,然后其他同學進行補充,發(fā)表自己的見解,這樣每個同學都使自己的研究內(nèi)容得到補充,同時也學習到了其他同學研究方面的知識,可以取長補短,共同提高,得到全面發(fā)展。
三、通過研究性學習,總結(jié)算法的應(yīng)用規(guī)律,要求變
研究性學習的目的,是要求學生搜集與主題有關(guān)的資料,歸納整理相關(guān)資料,根據(jù)相關(guān)材料和知識,對主題進行研究,提出自己的觀點或結(jié)論。我們在程序設(shè)計教學中進行算法專題研究也是這樣,除要求學生歸納、整理專題算法知識外,還要總結(jié)出算法的應(yīng)用規(guī)律、應(yīng)用算法解題的步驟和算法的框架,能根據(jù)實際情況,隨機應(yīng)變。如在“動態(tài)規(guī)劃的應(yīng)用研究”中,學生總結(jié)出:動規(guī)劃是解符合“無后效性原則”的最優(yōu)問題的一種算法思想;用動態(tài)規(guī)劃解題的一般步驟是:(1)判斷題目是否為求最優(yōu)問題,是否符合“無后效性原則”;(2)確定如果劃分階段;(3)確定每個階段有幾種狀態(tài);(4)找出狀態(tài)轉(zhuǎn)移方程和邊界條件;(5)用算法語言實現(xiàn)算法過程。又如在“搜索算法的應(yīng)用研究”中,研究小組的同學總結(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)有較大的不同。學生通過自己對算法應(yīng)用規(guī)律的總結(jié),對算法的應(yīng)用得到升華,進一步提高算法的應(yīng)用能力和程序設(shè)計能力。
四、通過研究性學習,提高分析、歸納和綜合能力,要求新
對算法的專題研究,不僅要對算法理論進行總結(jié),算法應(yīng)用的研究也是很重要的一方面,通過算法的解題應(yīng)用,既提高了學生分析問題的能力,也加深了學生對算法的理解,提高了學生的算法應(yīng)用能力,進而得到對學生創(chuàng)新能力的培養(yǎng)。另外,我們在算法研究過程中,要求學生透切理解算法內(nèi)容,用算法語言準確描述算法,通過這種途徑,進一步加深學生對算法的理解,同時也提高了學生的算法表達能力和歸納、總結(jié)的能力。
通過對算法進行專題研究,可以進一步加深學生對算法知識的理解,也可以提高學生的算法應(yīng)用能力和程序設(shè)計能力。實踐告訴我們:在整個研究過程中要注意以下幾個問題:
1、課題不宜太大。研究課題的確定是研究性學習實施過程中重要的一環(huán),課題選擇恰當與否,直接關(guān)系到整個課題研究的成敗。在程序設(shè)計教學中進行研究性學習活動,選題要遵循下面的原則:(1)課題的范圍不宜太大;(2)有一定的應(yīng)用價值;(3)結(jié)合學生的實際。一個好的開始是成功的一半,在研究性學習活動中也是如此。
2、要理論研究與算法應(yīng)用相結(jié)合。對算法的專題研究,算法應(yīng)用是重點。在算法知識歸納總結(jié)的基礎(chǔ)上,重點應(yīng)研究算法應(yīng)用的一般規(guī)律、算法結(jié)構(gòu)、應(yīng)用算法解題的一般步驟等。不應(yīng)該只是對算法理論的空洞論述,否則效果不好、意義也不大。
3、充分發(fā)揮教師的引導(dǎo)作用、學生的主體作用。在算法研究活動中,應(yīng)充分發(fā)揮教師的引導(dǎo)和指導(dǎo)作用,既不能放任自由,也不能包辦代替,要充分發(fā)揮學生的主體作用。當學生遇到問題和困難時,老師應(yīng)當引導(dǎo)和啟發(fā)學生,讓學生去探索和研究,而不是直接告訴學生答案,老師始終是學生的引導(dǎo)者,學生是真正的參與者,使學生通過算法研究,加深對算法的理解,提高算法應(yīng)用能力和程序設(shè)計能力。
職業(yè)學校的學生,不僅應(yīng)具有獨立接受知識的能力,更應(yīng)具有獨立探索知識的能力,由“研究性學習”補充原有的“接受式學習”,使學習方式更趨完善,只有當這兩種學習方式結(jié)合起來,優(yōu)勢互補,才能使基礎(chǔ)教育適應(yīng)時代對人才培養(yǎng)的要求。
第三篇:算法與程序設(shè)計教學思想
算法與程序設(shè)計教學思想
在高中階段開設(shè)信息技術(shù)課程的基本目的是進一步提高學生的信息素養(yǎng),使他們能適應(yīng)社會發(fā)展的需求,為信息社會培養(yǎng)合格的人才。本課程力圖通過信息的獲取、加工、管理、表達與交流等各類信息實踐活動,掌握信息技術(shù),感受信息文化,增強信息意識,內(nèi)化信息倫理。要達到這一目的,必須為學生建構(gòu)起一個利于他們提高信息素養(yǎng)的良好學習和實踐環(huán)境。
根據(jù)教育部制訂的普通高中課程標準編寫的,由浙江教育出版社出版的高中信息技術(shù)教科書(實驗),經(jīng)全國各地多年來的試用,積累起了比較豐富的教學實踐經(jīng)驗。在浙江教育出版社積極倡導(dǎo)、支持,教科書編寫人員不懈努力和廣大任課教師的熱情參與下,多次開展了卓有成效的教學交流活動。例如,教師用書的編制與修訂,優(yōu)秀教案選編的出版,開展教學資源競賽等等,都為教科書的使用和課程教學質(zhì)量的提高作出了有益的貢獻。
總的說來,上述各項活動都比較側(cè)重于解決如何教的問題,受益的對象基本局限于教師范圍。但是,我們更主要的任務(wù)是如何使廣大同學直接受益,如何為廣大高中同學創(chuàng)造一個便于進行自主學習信息技術(shù)課程的輔助學習的平臺,通過這一平臺來掌握高中課程范圍內(nèi)的信息技術(shù)基礎(chǔ)知識和基本技能。使同學們能根據(jù)自己的基礎(chǔ)、特長和興趣,學會創(chuàng)造性地利用信息技術(shù)解決學習和生活中的實際問題。《高中信息技術(shù)輔助教學平臺》(計算機光盤版)就是為這一目的開發(fā)和編制的。為了使信息技術(shù)課程的教學能全面貫徹教育部制訂的課程標準精神,使廣大任課老師在教學過程中有所參照,也為了減輕老師們的備課負擔,更主要的是為了激發(fā)同學們學習本課程的積極性,能循序漸進地掌握信息技術(shù)的基礎(chǔ)知識、基本技能和相關(guān)的應(yīng)用能力?!捌脚_”的設(shè)計是以“教案”或“學案”的形式呈現(xiàn)的。
信息技術(shù)輔助教學平臺共分六個模塊,分別是:信息技術(shù)基礎(chǔ)、算法與程序設(shè)計、多媒體技術(shù)應(yīng)用、網(wǎng)絡(luò)技術(shù)應(yīng)用、數(shù)據(jù)管理技術(shù)、研究與探索(機器人活動和信息學活動)。前5個模塊按32課時來安排內(nèi)容。任課老師可按本校生源、設(shè)備、師資條件的實際情況進行適當調(diào)整。
根據(jù)本“平臺”的設(shè)計目標及其所肩負的任務(wù),前5個模塊的基本結(jié)構(gòu)欄目為:課標理解、教材分析、教法實踐、知識貨架、素材下載等項。
課標理解:以課程標準為依據(jù),提出對本單元教學內(nèi)容在課程中的作用和地位的理解,使教師和學生的信息技術(shù)教學活動更符合課程目標。
教材分析:指明本課時的學習目的,基本教學內(nèi)容,需要掌握的學習重點和要解決的難點。對部分重點或技術(shù)難點提供簡明動畫,幫助同學理解。
教法實踐:根據(jù)教學內(nèi)容,提出教學流程或教學方法,進行討論交流、實踐體驗、綜合探究等實踐活動;通過實例演示或練習(含拓展練習),對同學反饋的知識、技能進行評價。知識貨架:是本模塊、本章、本節(jié)、本課涉及的知識和概念的匯編,供教師和同學查閱。
素材下載:為教師備課提供相關(guān)素材內(nèi)容;為學生的學習、作業(yè)、練習準備必要的素材,以節(jié)約學生時間,提高學習效率。其中有些內(nèi)容是為了拓展教師和學生的視野提供幫助。
《算法與程序設(shè)計》是高中信息技術(shù)課程的選修模塊。由于算法與程序設(shè)計在解決問題過程中所起的關(guān)鍵作用,因此,它被各地學校廣泛地選修,這也為本模塊教學積累起了比較豐富的經(jīng)驗。本模塊所擔負的主要任務(wù)是:讓學生體驗算法思想,了解算法和程序設(shè)計在解決問題過程中的地位和作用,并能對簡單問題設(shè)計算法,初步學會用一種程序設(shè)計語言編制程序,實現(xiàn)算法,解決問題。
本“平臺”匯集了豐富的算法與程序設(shè)計教學內(nèi)容和相關(guān)素材。它可以用來幫助教師備課,進行課堂教學;也可以幫助學生學習,提高他們的學習興趣,激發(fā)他們對未知領(lǐng)域積極探究的欲望和提高分析問題、解決問題的能力。本“平臺”努力為學生提供一個較為優(yōu)良的學習環(huán)境,促進學生主動學習,以充分發(fā)揮其主體潛能,為學生個性化學習開辟一個新領(lǐng)地。
《算法與程序設(shè)計》既有嚴謹?shù)睦碚?,需要對被解決的問題進行周密的分析,把問題模型化,又要有解決問題的科學的、嚴格的方法。具備算法理念,初步掌握算法的設(shè)計與分析方法是一件對學生終身有用的好事。本“平臺”對“課標理解”、“教材分析”等5個基本欄目都有較詳盡的敘述;對部分比較典型和難度較大的內(nèi)容還配置了相應(yīng)的Flash動畫幫助師生們進行教和學。
問題求解存在于社會生活的各個領(lǐng)域,在“拓展學習”欄目中“平臺”提供了許多來源于學習、生活、工作的算法設(shè)計實例,供學生課內(nèi)或課后進行自主學習,以進一步形成算法理念,提高自己的算法設(shè)計和算法表達的能力。所有的示例程序、練習素材及輔助動畫都可在“素材下載”欄目中找到,供下載,以節(jié)省師生的教學與學習的時間,提高效率。
由于“平臺”是在實踐教學經(jīng)驗基礎(chǔ)上的一種再創(chuàng)作,難免有欠妥和不足之處。編者殷切祈望使用本“平臺”的廣大師生不吝賜教,以期不斷總結(jié)經(jīng)驗,完善內(nèi)容,改進形式,能更好地為廣大師生服務(wù),為提高教學質(zhì)量作一點微薄貢獻。
第四篇:高中算法與程序設(shè)計教學
高中算法與程序設(shè)計教學方法初探
左權(quán)中學 張彥萍
算法與程序設(shè)計是高中信息技術(shù)選修課。本模塊強調(diào)的是通過算法與程序設(shè)計解決實際問題的方法。對于學生來說,程序設(shè)計的思維方式、方法和概念都是全新的,學生接受起來比較困難,因此必須認真研究程序設(shè)計的教學方法。我在近幾年的高中信息技術(shù)課教學過程中進行了一些研究與探索,對程序設(shè)計教學方法有了一些淺顯的認識,與大家共同探討。
一、培養(yǎng)學生編程的學習興趣,調(diào)動學習積極性
愛因思坦說“興趣是最好的老師”。興趣相當程度上決定了教學效果的好壞。如何培養(yǎng)學生學習程序設(shè)計的興趣,我認為可以從以下幾個方面入手。
1、讓學生認識到學習程序設(shè)計在提高自身素質(zhì)的突出作用。講一些IT界精英的故事;社會需要提高學生未來的生存能力;自身素質(zhì)提高:可以培養(yǎng)學生的思維品質(zhì),培養(yǎng)學生發(fā)現(xiàn)問題、思考問題和解決問題的能力;學習程序計算機教育對其他學科的影響等方面入手。
2、程序設(shè)計教學中要從學生的興趣入手,利用學生對事物的好奇心,選擇學生身邊的,學生感興趣的、有實際意義的程序,激發(fā)學生的學習興趣。比如:第一堂課講VB界面設(shè)計,可設(shè)計一個QQ登錄界面。學完選擇語句后,我設(shè)計了利用隨機函數(shù)加法練習小程序,加數(shù)和被加數(shù)隨機產(chǎn)生(1-100),結(jié)果自己輸入,可判斷對錯,程序結(jié)束可計算得分。例程也可以找班內(nèi)學生自己編寫的程序,學生非常喜歡。
3、一定要分層次教學。文科班和理科班、尖子班教學內(nèi)容難度上有所變化。一個班級布置作業(yè)時也要分層次。
4、輕入淺出,消除學生們對程序設(shè)計的畏難心理。在教學時,低起點,從一個個簡單實例出發(fā),讓學生們從自身的實踐中感受到這個的確很簡單,從而迎合了學生渴望成功的心理特點。前兩節(jié)課千萬不能羅列過多的概念,讓學生不知東西,打擊學生的學習興趣。
二、適當調(diào)整教材結(jié)構(gòu),立足具體實例,滲透基本概念
VB程序設(shè)計概念比較多,如何讓學生較容易按受、理解是我在最初的教學中較為頭痛的問題。剛接觸程序設(shè)計的學生,對程序設(shè)計充滿了好奇,如果把一開頭還用不上的許多的控件、屬性放在前面,一下子引入大量抽象的名詞、概念,就會讓不少學生望而生畏。因此要想讓學生領(lǐng)會這些抽象的概念,教學中我選擇的方法是先少講控件,最多講窗體、按鈕,三個控件。結(jié)合數(shù)學課本已學的知識,先復(fù)習、鞏固、提高基本知識。從數(shù)據(jù)類型,基本運算,講到三種基本控制結(jié)構(gòu)后,然后再講基本的控件。這時,控件用于程序設(shè)計的例子就可以講明白了。但是,我仍然不敢把控件的每一個屬性都細講。突出按問題需要設(shè)計界面來選用控件,以一個個鮮活的具體實例為切入點,在每個例子中適時、適量滲透一些相關(guān)的概念和知識,讓學生在做中學,在學中做,使學生在完成任務(wù)的過程中,逐漸地、很自然地去體會控件、對象、事件的概念。教學中要安排足夠的課時把這些控件的用法滲透到一個個程序?qū)嵗?,由淺入深逐漸介紹,讓學生在編寫程序的過程中總結(jié)控件的用法。
三、采用啟發(fā)、引導(dǎo)的教學方法,培養(yǎng)學生的實際應(yīng)用能力、設(shè)計教學的主要環(huán)節(jié),因“材”施教與因“需”施教相結(jié)合
《VB程序設(shè)計》課程的內(nèi)涵十分豐富, 涉及的知識單元和知識點很多。因此在教學過程中,不僅要培養(yǎng)學生程序設(shè)計的技能,還要培養(yǎng)學生系統(tǒng)分析和系統(tǒng)開發(fā)的技能。實施VB的教學,首先要選擇合適的教材,這樣既有利于教師設(shè)計教學過程,又有助于學生的學習。這里所講的“材”是指以教材為綱,按照教材的章節(jié)按部就班地講授,課堂教學中往往以教師講課為主,要求學生緊跟教師的思路,但是教學方法極易造成教與學的脫節(jié),限制學生創(chuàng)造力的正常發(fā)揮。而“需”是緊扣教學大綱所確定的培養(yǎng)目標,以應(yīng)用為目的,以必需夠用為尺度,打破課程界限,將相關(guān)課程的知識點加以整合,按照“實際、實用、實踐”的原則重新組織教學內(nèi)容,這是VB教學方法的重要方面,也為教師在講課過程中提出了更高要求。另外,程序設(shè)計是設(shè)計與實踐并用的工作,只聽、看、讀是學不會的,只有讓學生多動腦、多動手、多實踐,通過編寫調(diào)試大量的程序,才能使學生從中理解程序設(shè)計的思想方法、積累程序調(diào)試的經(jīng)驗,體會成功的喜悅。因此,在實驗環(huán)節(jié),除了驗證型實驗外,增加了設(shè)計型實驗和綜合型實驗。為了解學生學習的具體情況,提高教學效果,授課教師要督促學生獨立完成上機實驗,以提高學生的動手能力,為學生創(chuàng)造性發(fā)展提供良好的條件。
2、實例教學
《VB程序設(shè)計》是一門實用性很強的課程,它既有理論又有實踐,既講方法又講動手能力。講授《VB程序設(shè)計》,像任何其他語言的程序設(shè)計一樣,教材中前幾章多數(shù)都是先介紹對象、對象的屬性、方法和事件及VB語言基礎(chǔ)等等一系列的在程序設(shè)計中比較抽象難懂的概念,然后才介紹程序的建立和運行。因此在教學中,可適當打破課本原有以知識的邏輯結(jié)構(gòu)體系為順序組織課堂教學的方式,改用從簡單有趣的實例入手,通過讓學生觀看、模仿,在實際操作中去探究和領(lǐng)悟這些概念,例如,在一開始學習VB對象及對象的方法和事件的有關(guān)概念時,我設(shè)計了一個求外語、教育學平均成績的并打印平均成績的程序?qū)嵗?讓學生和教師一起做,在當前打開的窗體內(nèi)添加了三個命令按鈕、三個文本框和兩個標簽,設(shè)置好各對象的屬性;并分別在三個命令按鈕的單擊事件過程中添加相應(yīng)代碼,按功能鍵F5運行程序。在操作的過程當中,教師開始只簡單提示學生完成程序,等學生完成任務(wù)后,教師通過設(shè)問,讓學生思考:什么是對象的方法和事件?并讓學生找出本實例中各對象的名稱、不同對象的方法和事件過程名稱,教師再適當加以歸納和小結(jié):窗體以及添加到窗體中的控件,統(tǒng)稱為對象;而方法卻是VB提供的內(nèi)置于對象的特殊子程序,它可以直接調(diào)用,如Print方法;而事件則是對象能夠響應(yīng)和識別的動作,如單擊鼠標觸發(fā)Click事件等,同時提醒學生注意觀察在VB中方法與事件的區(qū)別。在此基礎(chǔ)上,再適當引導(dǎo)學生歸納總結(jié)出創(chuàng)建VB應(yīng)用程序的基本步驟,及如何在界面內(nèi)添加對象、設(shè)置事件等等,一切問題都迎刃而解。在講解實例時,教師當以精選出的具有代表性的程序?qū)嵗?把重點放在具體實例的分析和講解上,把要學習的語法和概念融入到具體實例中來講解。
3、重視算法,抓住核心
在教學中經(jīng)常存在這樣一種現(xiàn)象:很多學生對語法、結(jié)構(gòu)等知識掌握得很好,但一旦碰到實際問題就束手無策,不知道如何用學到的知識解決實際問題,其實這是算法能力欠缺的一種表現(xiàn)。教師經(jīng)常注重于分析每條語句的含義,卻忽略了算法描述過程的展現(xiàn),造成學生知其然不知其所以然。其實,在VB中,算法設(shè)計是它的核心。如果學生掌握了良好的算法設(shè)計能力,也就掌握了釣魚的本領(lǐng),無論遇到什么問題都可以很好的解決。那么在教學中可以通過多種方法培養(yǎng)學生的算法設(shè)計能力:(1)詳細講授常用的算法。算法有很多種,學生一般只要掌握常用的就可以滿足編寫模塊的需要。而與數(shù)據(jù)結(jié)構(gòu)、軟件工程相關(guān)聯(lián)的算法則不做要求。(2)教師帶領(lǐng)學生多閱讀程序,分析過程,吸取他人的經(jīng)驗和成熟的算法,使學生少走彎路或不走彎路。(3)開展實踐性學習,引導(dǎo)學生積極參與編程實踐,促進思維的飛躍,比如讓學生練習編輯班級學生檔案管理軟件等等。在這個過程中,學生親自動手解決具有一定難度的實際問題,為之設(shè)計合適的算法, 經(jīng)過實踐去培養(yǎng)學生的創(chuàng)新意思、應(yīng)用意識和探究能力。這些意識和能力一旦形成,就會使學生利用VB解決實際問題能力得到很快的提高。
4、培養(yǎng)學生綜合運用知識及自己動手的能力
程序設(shè)計課程的實踐性很強,“精講多練”是程序設(shè)計課程教學的一大特點,實驗教學在程序設(shè)計教學中起著重要的作用,學生只有通過自己編寫程序、上機調(diào)試程序,才能從中理解程序設(shè)計的思想方法、積累程序調(diào)試的經(jīng)驗,體會成功的樂趣,從而激發(fā)學生的學習興趣,學生只聽不練根本達不到學習的目的。學生在完成課后習題時積極性不高,興趣不大,甚至想抄作業(yè)應(yīng)付老師。只有讓學生動手編制他們感興趣的程序,學生才會有成就感,才會對課程產(chǎn)生興趣,學起來才會從容自如。如在學生學會編寫求1+2+?+N!=?的程序后,即引導(dǎo)學生設(shè)計求N!的程序,待學生設(shè)計出N!的程序后,接著又讓學生進一步設(shè)計求1!+2!+?+N!=?的程序。這種一環(huán)緊扣一環(huán)的探究式的動手實踐練習, 以發(fā)展學生探索能力為主線來組織實踐, 以培養(yǎng)探究性思維的方法為目標,以基本的教材為內(nèi)容,使學生通過再發(fā)現(xiàn)的步驟進行主動實踐的過程,產(chǎn)生一種探索和發(fā)現(xiàn)的心理。因此如何讓學生綜合應(yīng)用所學知識解決實際問題,提高綜合應(yīng)用能力和動手操作能力,激發(fā)學習興趣也是我們需要加入課程設(shè)計的內(nèi)容。課程設(shè)計時,老師要重點設(shè)計選題, 使得選題既貼近實際需要,又能夠讓學生感興趣,并且能夠運用所學知識解決問題,課程設(shè)計題目分為基本題和綜合題?;绢}按教學順序設(shè)計,盡量避免涉及后續(xù)章節(jié)的知識,后續(xù)的課程設(shè)計題目盡量引用前面的課程設(shè)計內(nèi)容,以便加深對前面所學知識的理解;綜合性題目是對一學期所學知識的總結(jié)和鞏固,應(yīng)與實際生活或工作相關(guān)且具有一定規(guī)模,可將其分成幾個子項目,由更多的學生參與,分工合作,以期進一步鍛煉學生的動手能力,從而進一步培養(yǎng)學生分析問題、解決問題、研究和探索問題的能力和團隊協(xié)作精神。
四、切實落實以學生為中心,學生為主體,教師為主導(dǎo)的新課改思想。信息課教師絕大部分為青年教師,無論教學理論和教學經(jīng)驗上都相當缺乏。特別是在程序設(shè)計內(nèi)容時,自覺不自覺地還是走向了教師為主的教學模式。教師與學生缺乏互動,課堂氣氛沉悶。在課堂教學中,要鼓勵學生質(zhì)疑是激發(fā)學生的主體性、培養(yǎng)學生思維能力和創(chuàng)造能力的起點。學生的主體性主要體現(xiàn)在學習過程中能掌握學習主動權(quán),能夠主動、自覺、積極地學習。因此,在教學過程中特別要注意設(shè)置恰當?shù)膯栴},通過啟發(fā)引導(dǎo),體現(xiàn)教師的主導(dǎo)作用。集中學生的注意力,促進學生主動思考、主動探索,可以使學生在學習的過程中成為主體??傊?VB作為一門重要的編程語言,在高校的計算機基礎(chǔ)教學中仍然占據(jù)重要位置,教學方法在程序設(shè)計教學中的舉足輕重制約著程序設(shè)計教學的效率??茖W的教學方法一定會為學生提供良好的幫助。我們在教學過程中應(yīng)以學生為主體,教師為主導(dǎo),采用符合學生認知規(guī)律的、科學的教學方法,充分調(diào)動學生學習的主動性,同時,采用綜合評價學生的方式,努力培養(yǎng)學生自主學習的興趣,提高學生實際應(yīng)用能力,從而使得VB課程的教學質(zhì)量得到不斷地提高
第五篇:《算法與程序設(shè)計》教學探析 期
【摘 要】在高中“算法與程序設(shè)計”模塊教學中,算法的設(shè)計以及運用程序設(shè)計解決問題的方法與思路,與學生原有的知識結(jié)構(gòu)和解題經(jīng)驗有較大差異,使得學生的學習存在較大困難。教師應(yīng)從生活實例出發(fā),激發(fā)學生的學習興趣;降低編程起點,提高學生的學習信心;引導(dǎo)學生通過程序閱讀,學習他人編程經(jīng)驗;強化算法的分析與設(shè)計,培養(yǎng)學生分析問題與解決問題的能力。
【關(guān)鍵詞】算法與程序設(shè)計;教學探析
【中圖分類號】G40-057 【文獻標識碼】A 【論文編號】1671-7384(2013)11-0050-03 “算法與程序設(shè)計”是普通高中信息技術(shù)課程中難度較大的一個選修模塊。照本宣科的講授只能使學生死記硬背程序,這種缺乏理解的學習導(dǎo)致了學生進一步學習的困難,更談不上對所學知識的靈活運用。因此,如何改變學生的思維方式、如何組織教學以使學生真正理解算法并學會運用程序設(shè)計解決實際問題,值得我們探索和研究。
從生活實例出發(fā),激發(fā)學生的學習興趣
從教育心理學的角度來說,興趣是一個人傾向于認識、研究并獲得某種知識的心理特征,是可以推動人們求知的一種內(nèi)在力量。學生對某一學科有興趣,就會專心致志地鉆研它,從而提高學習效果。以下案例正是從學生興趣出發(fā),激發(fā)了學生參與的熱情。
案例1:遙控機器人
窗體上是一張機器人圖片以及“ 向上”、“ 向下”、“向左”、“向右”四個按鈕。怎樣讓機器人聽從我們的指令動起來呢?以向上為例,我們看到機器人圖片的Top屬性是1000,在“向上”按鈕的單擊事件中,可以寫這樣一句代碼:Picrobot.Top = 900。運行程序,單擊“向上”按鈕,機器人聽從指令向上挪了一部分。再按一次,機器人怎么沒有反應(yīng)?怎樣修改程序才能讓機器人根據(jù)指令不斷地向上移動呢?學生思考,得出程序代碼:Picrobot.Top = Picrobot.Top-50。
對于機器人,學生都有種神秘感,往往覺得不可思議,但是又想探索。在教師的引導(dǎo)下,學生的本能興趣轉(zhuǎn)化為內(nèi)在學習動力,在實現(xiàn)對機器人控制的過程中,加深了對控件、賦值語句和變量概念的理解。
降低編程起點,提高學生的學習信心
沒有人在學習程序設(shè)計的初始階段就能成為編程高手。然而在程序設(shè)計教學中,教師常常一開始就要求學生編寫完整的程序。導(dǎo)致很多學生無從下手,學習的自信心受到了嚴重打擊。因此,我們應(yīng)降低編程起點,將學生引入門。一方面,在問題的選擇上,盡可能使用學生能夠通過已有知識和經(jīng)驗分析出解決方法的問題;另一方面,可以采用案例教學法,從模仿典型程序開始,在代碼模板上補充關(guān)鍵代碼后即可調(diào)試運行,從而體驗成功的喜悅,增強學生學習的信心。下面就是一個使用案例教學法的例子。
案例2:循環(huán)結(jié)構(gòu) [1] 針對s=1+2+3+??+100問題,引導(dǎo)學生觀察累加求和的過程:s=s+數(shù)字。引出如果用變量i表示數(shù)字,整個計算過程是在重復(fù)執(zhí)行若干個同樣的操作:s=s+i。如何讓計算機自動重復(fù)上述過程呢?教師呈現(xiàn)用循環(huán)語句解決問題的程序,接著讓學生模仿累加程序,完善計算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)體。學生完成后,教師展示學生程序,引導(dǎo)學生歸納總結(jié)出For循環(huán)結(jié)構(gòu)的一般格式。然后提出“計算s=10+20+30+??+100”的任務(wù),讓學生在一般格式的指導(dǎo)下,獨立編寫程序解決問題。
牛頓說過:我之所以能取得現(xiàn)在的成就,是因為我站在巨人的肩膀上。在案例教學法中,案例和代碼模板就是“巨人的肩膀”,學生通過補充程序模板中的關(guān)鍵代碼,逐步認識For循環(huán)結(jié)構(gòu),并在多個“個”的嘗試中,找出隱藏在“個”背后的規(guī)律性內(nèi)容,歸納出For循環(huán)結(jié)構(gòu)的一般格式,進而在一般格式的指導(dǎo)下編寫程序,解決重復(fù)執(zhí)行“類”問題。在此過程中,學生的編程思維和分析能力獲得了快速的提高,提高了學習程序設(shè)計的信心。
通過程序閱讀,學習他人編程經(jīng)驗
學習程序設(shè)計,一個重要而有效的方法就是閱讀。閱讀書中的例題、軟件開發(fā)環(huán)境中的范例、網(wǎng)絡(luò)中的開放源代碼以及自己編寫的程序??伺卦f過:通過閱讀他人的程序獲得技巧,是極其重要,但在許許多多的計算機課程中,這樣的訓練卻可悲地被忽視了,因此導(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)鍵是代碼的積累?!白x書破萬卷,下筆如有神”,程序讀多了,自然容易借鑒別人的編程經(jīng)驗和方法。
強化算法設(shè)計,培養(yǎng)學生解決問題的能力
程序設(shè)計的核心是算法,語言只是表達工具。用程序設(shè)計解決問題,關(guān)鍵是要找到解決問題的算法。只要算法正確,就可以用任何一種語言編寫程序。對于初學程序設(shè)計的學生來說,接觸的問題并不復(fù)雜,相應(yīng)算法也較簡單。很多學生看到問題后,不進行細致的分析和設(shè)計,粗粗一想就開始動手,很簡單的問題往往寫出一大堆代碼,自己也說不清解決問題的方法和過程。
案例4 : 編寫程序,實現(xiàn)成績統(tǒng)計功能。通過InputBox函數(shù)輸入50個學生成績。當成績大于等于85時,為“優(yōu)秀”等級;成績大于等于60且小于85時,為“及格”等級;當成績小于60時,為“不及格”等級。要求統(tǒng)計優(yōu)秀人數(shù)、及格人數(shù)及不及格人數(shù)。
學生解決這個問題的過程,往往只是按照題目的表面意思進行處理,首先執(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)計。算法分析前,學生為自己編寫的程序沾沾自喜,然而進行算法分析后,學生意識到自己程序的缺陷,較好地體驗了算法對提高程序效率的作用,理解和掌握了隱藏在問題背后的知識,提高了解決問題的能力。
綜上所述,算法與程序設(shè)計教學需要我們在教學實踐中不斷地總結(jié)經(jīng)驗教訓,密切結(jié)合學生的自身情況,引導(dǎo)學生多閱讀、多思考、多實踐。讓學生在算法的指導(dǎo)下,在不斷完善和調(diào)試程序的過程中,潛移默化地掌握相關(guān)知識,養(yǎng)成縝密嚴謹?shù)目茖W態(tài)度,進一步提高邏輯分析能力、發(fā)散思維能力以及發(fā)現(xiàn)并解決問題的能力。