楊樹(shù)秀
【摘 要】算法與程序設(shè)計(jì)是高中信息技術(shù)課程中的選修一模塊,本模塊是在必修模塊“信息加工與表達(dá)”基礎(chǔ)上的繼續(xù)深入。通過(guò)本模塊的學(xué)習(xí),使學(xué)生進(jìn)一步體驗(yàn)算法思想,了解算法和程序設(shè)計(jì)在解決問(wèn)題過(guò)程中的地位和作用;能從簡(jiǎn)單問(wèn)題出發(fā),設(shè)計(jì)解決問(wèn)題的算法,并能初步使用一種程序設(shè)計(jì)語(yǔ)言編制程序?qū)崿F(xiàn)算法,解決問(wèn)題。
【關(guān)鍵詞】算法與程序設(shè)計(jì);Visual Basic;探索;整合;創(chuàng)新思維
“萬(wàn)事開(kāi)頭難”,程序設(shè)計(jì)尤其如此。首先,對(duì)于幾乎沒(méi)有相關(guān)知識(shí)背景的高一學(xué)生而言,編制一個(gè)完整的程序必須先了解程序的基本結(jié)構(gòu),掌握常量、變量和表達(dá)式等概念,學(xué)會(huì)輸入、輸出、賦值等語(yǔ)句的格式,這些內(nèi)容枯燥而難以記憶。其次,由于計(jì)算機(jī)在計(jì)算方面的獨(dú)特優(yōu)勢(shì),使計(jì)算機(jī)解決問(wèn)題的技術(shù)思維方式和學(xué)生一向習(xí)慣的數(shù)理邏輯思維方式有所不同,這也給學(xué)生的學(xué)習(xí)帶來(lái)了困擾。
針對(duì)上述問(wèn)題,筆者做了如下嘗試:
一、大膽處理教材,整合課本知識(shí),激發(fā)學(xué)生的學(xué)習(xí)興趣
筆者所在地區(qū)信息技術(shù)學(xué)科使用粵教版教材,高中《算法與程序設(shè)計(jì)》選修模塊中選用Visual Basic語(yǔ)言描述算法。VB中的對(duì)象主要用于構(gòu)建界面,而具體程序功能的實(shí)現(xiàn)則要編寫(xiě)代碼行,因此任何一個(gè)完整的應(yīng)用程序都不可能只用對(duì)象或只用語(yǔ)法。教材中第二章《程序設(shè)計(jì)基礎(chǔ)》講述VB語(yǔ)言基礎(chǔ)知識(shí)和程序的基本結(jié)構(gòu)及相關(guān)語(yǔ)句的格式。第三章《可視化編程》講述VB中對(duì)象的使用。筆者認(rèn)為在講授時(shí)不宜將兩者分開(kāi),要把VB面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,事件驅(qū)動(dòng)的編程機(jī)制貫穿于整個(gè)教學(xué)過(guò)程中。將這兩塊內(nèi)容有機(jī)結(jié)合起來(lái)展開(kāi)教學(xué)。在教學(xué)過(guò)程中,筆者始終堅(jiān)持以學(xué)生已有的知識(shí)為基礎(chǔ),打破以課本知識(shí)的邏輯結(jié)構(gòu)為順序組織課堂教學(xué)的模式,先不講基本概念,改用從簡(jiǎn)單的實(shí)例人手,通過(guò)讓學(xué)生觀看、模仿,在實(shí)際操作中去探究和領(lǐng)悟這些概念,并適時(shí)地加以歸納總結(jié),讓學(xué)生在輕松愉快的氣氛中接受新知識(shí)。比如,在講到循環(huán)結(jié)構(gòu)中DO——LOOP語(yǔ)句和FOR——NEXT語(yǔ)句的用法時(shí),我用DO——LOOP語(yǔ)句的4種形式和FOR——NEXT語(yǔ)句實(shí)現(xiàn)求解N!的過(guò)程,讓學(xué)生去觀察、領(lǐng)悟它們的異同。
二、重視實(shí)踐活動(dòng)環(huán)節(jié),通過(guò)實(shí)例教學(xué)法訓(xùn)練學(xué)生的創(chuàng)新思維,培養(yǎng)學(xué)生的創(chuàng)新能力
創(chuàng)新思維是指人們?cè)谔岢鰡?wèn)題和解決問(wèn)題的過(guò)程中,能夠產(chǎn)生新成果的思維活動(dòng)。發(fā)散思維、類(lèi)推思維、求異思維等都是行之有效的創(chuàng)新思維形式。
VB 是一門(mén)實(shí)踐性很強(qiáng)的課程,實(shí)例教學(xué)法是筆者在本模塊教學(xué)中的常用方法。以教學(xué)的內(nèi)容為依據(jù),選擇一些接近學(xué)生的生活,有趣的、有實(shí)際意義的小程序?yàn)閷?shí)例。通過(guò)對(duì)實(shí)例進(jìn)行理論分析,指導(dǎo)學(xué)生模仿,通過(guò)知識(shí)再現(xiàn)達(dá)到在實(shí)踐中領(lǐng)悟知識(shí),開(kāi)拓設(shè)計(jì)程序的思路。在V B編程中,循環(huán)結(jié)構(gòu)是程序設(shè)計(jì)中學(xué)起來(lái)很費(fèi)勁但不可或缺,對(duì)于多重循環(huán)更不容易弄清其流程。這時(shí)可以在課堂上以現(xiàn)實(shí)中的問(wèn)題為例子向?qū)W生提問(wèn),例如:時(shí)針每走過(guò)一格,分針將會(huì)走過(guò)多少格?秒針又會(huì)走過(guò)多少格?根據(jù)日常生活中的情況,可以形象地把分針、秒針和時(shí)針的運(yùn)動(dòng)打比方,這就是三重循環(huán)嵌套。
教師鼓勵(lì)學(xué)生針對(duì)實(shí)例獨(dú)立思考解決問(wèn)題的算法,逐步引導(dǎo)他們改變以往單一的、邏輯的、線性的思維方式,多角度、多側(cè)面、多方位地考察問(wèn)題,并在實(shí)踐活動(dòng)中,借助程序的編譯反饋信息檢驗(yàn)思維成果。通過(guò)設(shè)計(jì)程序解決問(wèn)題是培養(yǎng)學(xué)生的創(chuàng)新思維的途徑之一。例如:在排序算法一節(jié)的教學(xué)過(guò)程中,就可以讓學(xué)生思考對(duì)一組數(shù)據(jù)進(jìn)行排序的多種方法(冒泡排序,選擇排序,快速排序等等)從而訓(xùn)練學(xué)生的創(chuàng)新思維,培養(yǎng)學(xué)生的創(chuàng)新能力。程序設(shè)計(jì)算法中的枚舉法、分治法、遞推法、遞歸、動(dòng)態(tài)規(guī)劃法等等,都是對(duì)學(xué)生創(chuàng)新思維的有效的訓(xùn)練方法。
三、采用小組互助的學(xué)習(xí)方式,培養(yǎng)團(tuán)隊(duì)精神,提高協(xié)作能力
將學(xué)生分為若干組,安排一些小組的任務(wù),讓多人在一起協(xié)商、協(xié)作來(lái)完成任務(wù),學(xué)會(huì)團(tuán)隊(duì)協(xié)作、集體決策,不僅適用于《算法與程序設(shè)計(jì)》的學(xué)習(xí),還適用于日常后生活與其他學(xué)科的學(xué)習(xí)。組織學(xué)生進(jìn)行研討,在思想的碰撞中往往會(huì)產(chǎn)生智慧的火花。
如:學(xué)習(xí)過(guò)程的定義與調(diào)用:
教師在上機(jī)課時(shí)采用小組互助的學(xué)習(xí)方式,讓組內(nèi)同學(xué)互相幫助,共同提高。
教師給出上課時(shí)的教學(xué)任務(wù):編寫(xiě)一個(gè)判斷素?cái)?shù)的公有過(guò)程,調(diào)用素?cái)?shù)過(guò)程,實(shí)現(xiàn)①產(chǎn)生一個(gè)三位隨機(jī)素?cái)?shù)數(shù)組x(10);②驗(yàn)證一個(gè)大于2的偶數(shù)可以表示為兩個(gè)素?cái)?shù)之和;③找到四位正整數(shù)中的超級(jí)素?cái)?shù)。
這些任務(wù)數(shù)量較多而互相有關(guān)聯(lián),小組成員內(nèi)部分工,每?jī)晌煌瑢W(xué)至少獨(dú)立完成其中一個(gè)小任務(wù),然后小組成員將小任務(wù)匯總,積極討論難點(diǎn),共同攻克,使得大家不斷提高能力與學(xué)習(xí)效率。
基本流程:
(1)教師下達(dá)任務(wù)后,學(xué)生完成組內(nèi)分工。
(2)學(xué)生6-8人一組,每位學(xué)生首先完成所自己所分配到的任務(wù),如組內(nèi)成員遇到難點(diǎn),要求組內(nèi)其他同學(xué)相互協(xié)作,提供必要的幫助,如果互相討論之后還是無(wú)法解決,則應(yīng)由組長(zhǎng)請(qǐng)教老師,再由組長(zhǎng)教給其他組員。
(3)各小組成員經(jīng)過(guò)任務(wù)匯總,完成整個(gè)教學(xué)任務(wù)。
(4)各小組推選代表展示成果。
(5)課后小組成員可以繼續(xù)深入討論學(xué)習(xí)。
采用小組互助式教學(xué),營(yíng)造出自由寬松的氛圍,學(xué)生擁有高度的參與性、自主性,激發(fā)了學(xué)生的學(xué)習(xí)興趣,調(diào)動(dòng)了學(xué)習(xí)積極性。小組成員互相學(xué)習(xí)、互相溝通、互相幫助、互相督促。讓學(xué)生在學(xué)習(xí)中學(xué)會(huì)了怎樣與人交往;學(xué)會(huì)正確認(rèn)識(shí)自我,尊重關(guān)心他人;學(xué)會(huì)取人之長(zhǎng),補(bǔ)己之短;學(xué)會(huì)寬容、忍讓、分享。能做到傾聽(tīng)別人的正確見(jiàn)解,并予以采納;能了解別人的困難所在,并給予幫助;能發(fā)現(xiàn)別人的優(yōu)點(diǎn),并不吝贊賞。學(xué)生在學(xué)習(xí)過(guò)程中提高了人際交往能力。
高中程序設(shè)計(jì)教學(xué)的主要目標(biāo)是為了使同學(xué)們了解現(xiàn)代程序設(shè)計(jì)理論中的面向?qū)ο缶幊毯徒Y(jié)構(gòu)化程序設(shè)計(jì)等基本思想,培養(yǎng)現(xiàn)代程序設(shè)計(jì)過(guò)程中所需要的一些基本能力。教學(xué)有法,教無(wú)定法,只要教學(xué)得法。在保護(hù)同學(xué)學(xué)習(xí)積極性的前提下,按照同學(xué)們的認(rèn)知規(guī)律組織教學(xué),合理運(yùn)用多種教學(xué)方法,靈活地、創(chuàng)造性地掌握教學(xué)過(guò)程,激發(fā)學(xué)生的興趣,培養(yǎng)學(xué)生的邏輯推理思維能力和創(chuàng)造性思維能力。