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