(南京師范大學(xué)附屬中學(xué),江蘇南京210003)
“算法與程序設(shè)計(jì)”模塊以算法與程序設(shè)計(jì)為主線,揭示利用計(jì)算機(jī)解決實(shí)際問(wèn)題的過(guò)程。通過(guò)本模塊的學(xué)習(xí),可以讓學(xué)生體驗(yàn)算法思想,了解算法和程序設(shè)計(jì)在解決問(wèn)題過(guò)程中的地位和作用;能從簡(jiǎn)單問(wèn)題出發(fā),設(shè)計(jì)解決問(wèn)題的算法,并能初步使用一種程序設(shè)計(jì)語(yǔ)言編制程序、設(shè)計(jì)算法、解決問(wèn)題。
本模塊由“計(jì)算機(jī)解決問(wèn)題的基本過(guò)程”、“程序設(shè)計(jì)語(yǔ)言初步”和“算法與問(wèn)題解決例舉”三個(gè)主題組成。
通過(guò)本模塊的學(xué)習(xí)可以鍛煉學(xué)生的邏輯思維能力,使學(xué)生思考問(wèn)題時(shí)更加科學(xué)嚴(yán)密和細(xì)致全面。
我們知道“算法與程序設(shè)計(jì)”這個(gè)模塊的教學(xué)一直存在“難教”、“難學(xué)”的問(wèn)題。程序設(shè)計(jì)本身存在抽象、枯燥、邏輯思維性強(qiáng)的特點(diǎn)。能否找到一套有效的教學(xué)方式,使學(xué)生在學(xué)習(xí)過(guò)程中既能掌握高級(jí)編程語(yǔ)言的知識(shí),又能靈活運(yùn)用高級(jí)語(yǔ)言進(jìn)行程序設(shè)計(jì)一直是高中信息技術(shù)教師努力的方向??偨Y(jié)這個(gè)模塊的教學(xué),從教材內(nèi)容處理、教學(xué)方法和策略及應(yīng)用實(shí)例三個(gè)方面來(lái)探討本模塊的教學(xué)。
“計(jì)算機(jī)解決問(wèn)題的基本過(guò)程”主題是整個(gè)模塊的起始篇,計(jì)算機(jī)解決問(wèn)題的基本過(guò)程是重點(diǎn)。本主題中的內(nèi)容比較抽象,建議結(jié)合實(shí)例講解這部分內(nèi)容,教師不妨提供多個(gè)簡(jiǎn)單的例子讓學(xué)生分組進(jìn)行討論,如:猜數(shù)字游戲、倒油問(wèn)題、密碼鎖問(wèn)題,等等。教學(xué)時(shí)不要進(jìn)行實(shí)例代碼的分析,也不要展開深入探討,建議將第三個(gè)專題中的算法的概念提到這個(gè)專題來(lái)講,結(jié)合實(shí)例講解計(jì)算機(jī)解決問(wèn)題的步驟,理解算法的概念和算法的表示方法。
“程序設(shè)計(jì)語(yǔ)言初步”中程序設(shè)計(jì)基本思想、結(jié)構(gòu)化編程三大類型是教學(xué)重點(diǎn),也是難點(diǎn)。這個(gè)主題中基本數(shù)據(jù)類型、常量、變量、數(shù)組、函數(shù)等都是一些新概念,理論性較強(qiáng)、枯燥,容易引起學(xué)生厭學(xué)情緒,但這些知識(shí)卻是用計(jì)算機(jī)解決問(wèn)題的基礎(chǔ)。建議讓學(xué)生了解程序設(shè)計(jì)最基礎(chǔ)、最核心的內(nèi)容,增強(qiáng)學(xué)生學(xué)習(xí)的自信心,利用可視化的界面,提高學(xué)生興趣。在教學(xué)內(nèi)容的安排上可以采取“按需分配”的策略,常用的、要用的先講,難用的,用不著的后講。例如:基本數(shù)據(jù)類型中,重點(diǎn)介紹實(shí)型、整型、字符串型、布爾型等常用數(shù)據(jù)類型,貨幣型、日期型等不常用的類型可以暫不做介紹。
如果選用的是Visual Basic語(yǔ)言作為程序設(shè)計(jì)學(xué)習(xí)的語(yǔ)言,將會(huì)涉及到很多控件的運(yùn)用,以及屬性、事件、方法等專業(yè)概念的問(wèn)題。對(duì)于控件的介紹要避免“求全”。同樣遵循按需的原則,要用的控件先講,例如:標(biāo)簽、文本框、按鈕等。特別是Timer控件,可以先講解,因?yàn)閷W(xué)習(xí)了Timer控件后就可以實(shí)現(xiàn)很多有趣的程序了,例如:“捉蝴蝶”、“進(jìn)度條”等。另外,也要避免所有程序只用標(biāo)簽、文本框、按鈕,建議可以在不同的程序中采用不同控件,不斷增加新控件的學(xué)習(xí),也能使程序的界面更美觀,布局更合理。例如:“圖片瀏覽器”實(shí)例中可以增加列表框控件和下拉列表框控件的學(xué)習(xí)。
“算法與問(wèn)題解決例舉”中用典型的算法思想解決問(wèn)題是教學(xué)重難點(diǎn),本主題是以前面兩個(gè)主題為基礎(chǔ)的。對(duì)于不同版本的教材,可以根據(jù)實(shí)際教學(xué)適當(dāng)?shù)卣{(diào)整教學(xué)順序,建議依據(jù)課時(shí)以及學(xué)生認(rèn)知水平適當(dāng)進(jìn)行教學(xué)內(nèi)容的刪減。選取幾個(gè)容易理解又典型的算法思想來(lái)講解,例如:窮舉算法在生活中有很多應(yīng)用的實(shí)例,例如:密碼的暴力破解,查找罪犯指紋,“超女”海選等,學(xué)生比較容易理解和掌握;解析法在數(shù)學(xué)科目中經(jīng)常涉及到,也是比較容易掌握的算法之一。
教學(xué)方法是教學(xué)目標(biāo)達(dá)成的重要因素,當(dāng)然,沒(méi)有最好的教學(xué)方法,只有適合的教學(xué)方法。“任務(wù)驅(qū)動(dòng)”、“情境教學(xué)”都是本模塊教學(xué)中常用而且有效的教學(xué)方法。巧設(shè)情境,布置任務(wù),在教學(xué)過(guò)程中設(shè)置一個(gè)情境,讓學(xué)生融入進(jìn)去,有利于調(diào)動(dòng)學(xué)習(xí)的主動(dòng)性。
例如:在學(xué)習(xí)“用窮舉算法解決問(wèn)題”時(shí),創(chuàng)設(shè)這樣的情境,“達(dá)·芬奇家的保險(xiǎn)柜長(zhǎng)期不用,密碼忘了,達(dá)·芬奇找到一個(gè)密碼紙,顯示密碼有五個(gè)數(shù)字,但是,其中有兩個(gè)數(shù)字模糊不清了。不過(guò)達(dá)·芬奇記得密碼同時(shí)是他和他母親生日的倍數(shù)。他的生日是7月8日,他母親的生日是6月7日。我們能不能幫助達(dá)·芬奇找回保險(xiǎn)柜密碼,打開保險(xiǎn)柜呢?”,這個(gè)任務(wù)取名叫“達(dá)·芬奇密碼”,同名的電影和小說(shuō)會(huì)引起學(xué)生的共鳴,一下就吸引了他們的興趣。讓學(xué)生試著解開這個(gè)密碼,由于數(shù)據(jù)量大,自然而然就想到用計(jì)算機(jī)運(yùn)算速度快的特點(diǎn)去解決這個(gè)問(wèn)題,雖然密碼的可能性比較多,但卻是有范圍的,自然地引出窮舉算法使用的兩個(gè)關(guān)鍵:數(shù)據(jù)范圍和條件。學(xué)生通過(guò)這個(gè)實(shí)例很容易就理解了窮舉算法的思想和解題關(guān)鍵,編寫程序就不是問(wèn)題了。
高中學(xué)生的起點(diǎn)水平參差不齊,建議采用分層策略設(shè)計(jì)教學(xué)任務(wù)。分層次教學(xué)承認(rèn)學(xué)生的差異,符合因材施教的原則,分層次教學(xué)面向全體學(xué)生,使教學(xué)盡量適合大多數(shù)學(xué)生的發(fā)展需要和實(shí)際水平,這也符合學(xué)生的心理需求,能激發(fā)學(xué)生的自信和興趣。建議教師在布置教學(xué)任務(wù)時(shí),可以設(shè)計(jì)基礎(chǔ)題和拓展題兩種難度不同的任務(wù),基礎(chǔ)題主要用于基礎(chǔ)任務(wù)和基礎(chǔ)技能的訓(xùn)練,一般的學(xué)生基本能完成,作為學(xué)生必須要完成的任務(wù);而拓展題是課堂相關(guān)知識(shí)的拓展或創(chuàng)新,學(xué)有余力的學(xué)生可以盡量完成,這樣設(shè)計(jì)兼顧了不同層次學(xué)生的需求,不至于在課堂上造成能力強(qiáng)的學(xué)生無(wú)所事事的現(xiàn)象。
例如:在分支結(jié)構(gòu)中,《碰碰球》的實(shí)例屬于基礎(chǔ)題,只要用分支語(yǔ)句判斷窗口的邊界就可以實(shí)現(xiàn),而由它演變而來(lái)的《接球游戲》則難度要提升一些,不光要進(jìn)行窗口邊界的判定,還涉及到接球擋板的邊界判定,擋板與鍵盤的交互的設(shè)定等,這就要求學(xué)生有較高的能力。
實(shí)踐證明,基礎(chǔ)薄弱的學(xué)生完成基本任務(wù)后,很有滿足感;基礎(chǔ)好、學(xué)有余力的學(xué)生對(duì)拓展任務(wù)很感興趣,不僅完成,還對(duì)界面和功能進(jìn)行進(jìn)一步的優(yōu)化。當(dāng)然,這對(duì)教師前期的備課工作也是一種挑戰(zhàn)。
“算法與程序設(shè)計(jì)”模塊是一個(gè)過(guò)程性的教學(xué),是需要學(xué)生積累的一個(gè)過(guò)程。教師可以引導(dǎo)學(xué)生經(jīng)歷“理解——模仿——?jiǎng)?chuàng)新”這樣的一個(gè)學(xué)習(xí)過(guò)程。要知道學(xué)生通過(guò)理解程序,才能感知程序要做什么,以及結(jié)果會(huì)是什么,才能體驗(yàn)算法的奇妙,熟悉程序的流程。理解后學(xué)生就可以模仿,先學(xué)會(huì)走,再學(xué)會(huì)跑,學(xué)好了基礎(chǔ)才能靈活運(yùn)用、創(chuàng)造和創(chuàng)新。
教學(xué)中實(shí)例的選擇非常重要,可以說(shuō)是一節(jié)課成敗的關(guān)鍵。而在實(shí)例選取中經(jīng)常會(huì)有這樣兩個(gè)誤區(qū)。一類是過(guò)分簡(jiǎn)單,一眼就能看出答案,對(duì)這類實(shí)例學(xué)生會(huì)產(chǎn)生疑問(wèn):“為什么這么簡(jiǎn)單的問(wèn)題還要用計(jì)算機(jī)來(lái)做?”;一類是數(shù)學(xué)課上的數(shù)學(xué)題,信息技術(shù)教師去上數(shù)學(xué)課,無(wú)疑是沒(méi)什么優(yōu)勢(shì)的。
興趣是學(xué)習(xí)最好的老師,是學(xué)生積極求知的誘因,當(dāng)學(xué)生對(duì)所學(xué)的內(nèi)容產(chǎn)生濃厚興趣時(shí),自然便能主動(dòng)參與到教學(xué)過(guò)程中來(lái),主動(dòng)構(gòu)建知識(shí)。信息技術(shù)教師在選取實(shí)例的時(shí)候要盡量做到貼近生活,有趣味性,同時(shí)也要簡(jiǎn)單,便于理解和實(shí)現(xiàn)。例如:“猜數(shù)字”、“QQ秀”、“遙控機(jī)器人”、“換位思考”、“捉蝴蝶”、“自制屏幕保護(hù)程序”、“碰碰球”等實(shí)例,這些實(shí)例界面美觀,有趣又生動(dòng),最主要的是這些實(shí)例是學(xué)生能力范圍內(nèi)可以實(shí)現(xiàn)的。
每個(gè)實(shí)例中都包含了不同的知識(shí)點(diǎn)和教學(xué)內(nèi)容,可將教學(xué)引向寓教于樂(lè)的良性循環(huán)中。
[1]普通高中信息技術(shù)課程標(biāo)準(zhǔn).