王飛
《算法與程序?qū)崿F(xiàn)》是高中信息技術(shù)學(xué)科得以立足的核心內(nèi)容之一,充分體現(xiàn)了學(xué)科特色與價(jià)值。在新課標(biāo)的引領(lǐng)下,如何落實(shí)《算法與程序?qū)崿F(xiàn)》相關(guān)內(nèi)容?如何把握這部分內(nèi)容的精髓,引領(lǐng)學(xué)生構(gòu)建學(xué)科特有的思想方法和操作范式,從而提升學(xué)生的計(jì)算思維能力?這些都是每位信息技術(shù)教師需要思索與探究的問題。
《算法與程序?qū)崿F(xiàn)》教學(xué)并不是一個(gè)新的內(nèi)容,它是我們這個(gè)學(xué)科的立身之本。早期的教學(xué)注重語句命令的解讀、調(diào)試,如今的教學(xué)更加關(guān)注學(xué)生思維和意識(shí)的培養(yǎng)。在對(duì)這部分教學(xué)內(nèi)容的長(zhǎng)期教學(xué)實(shí)踐與研究過程中,信息技術(shù)學(xué)科教師積累了大量豐富的經(jīng)驗(yàn)和實(shí)踐案例。隨著技術(shù)的飛速發(fā)展,相關(guān)知識(shí)結(jié)構(gòu)和體系也在發(fā)生著變化;對(duì)學(xué)科教學(xué)理解的不斷深入和教育理念的不斷更新,促使我們需要花費(fèi)更多的精力去研習(xí)這部分內(nèi)容,以使教學(xué)始終跟上時(shí)代發(fā)展的步伐。近些年人工智能教育探索的深入,要求我們更多地思考算法、編程、人工智能之間的關(guān)系是什么,如何在《算法與程序?qū)崿F(xiàn)》中體現(xiàn)更多的新知與價(jià)值。
《課標(biāo)》的啟示與思考
在《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》(以下簡(jiǎn)稱《課標(biāo)》)中,《算法與程序?qū)崿F(xiàn)》包含在必修模塊1“數(shù)據(jù)與計(jì)算”中,人工智能相關(guān)的內(nèi)容也建構(gòu)在這一部分基礎(chǔ)之上。通過對(duì)《課標(biāo)》的研讀,筆者認(rèn)為與以往相比,《算法與程序?qū)崿F(xiàn)》這部分有以下幾個(gè)新的特點(diǎn)。
1.注重學(xué)科思想方法,突出學(xué)科核心價(jià)值
在以往的教學(xué)過程中,我們通常將算法與程序?qū)崿F(xiàn)當(dāng)作教學(xué)過程的一個(gè)重要內(nèi)容,更多地從知識(shí)層面去落實(shí)經(jīng)典算法的原理與實(shí)現(xiàn)過程,關(guān)注具體語句的落實(shí)、程序的調(diào)試等工作。在《課標(biāo)》中,《算法與程序?qū)崿F(xiàn)》的相關(guān)內(nèi)容延伸到整個(gè)課程體系中。教學(xué)強(qiáng)調(diào)對(duì)綜合任務(wù)的解決過程,關(guān)注利用算法和程序設(shè)計(jì)將實(shí)際問題落地。在這個(gè)轉(zhuǎn)變中,《算法與程序?qū)崿F(xiàn)》的定位就不再僅僅是其中的一個(gè)教學(xué)內(nèi)容,更要將其定位成貫穿于整個(gè)學(xué)科的思想方法與解決問題的操作范式,是構(gòu)建整個(gè)學(xué)科的方法論和實(shí)踐指南。它需要教師引導(dǎo)學(xué)生將算法與程序?qū)崿F(xiàn)作為信息技術(shù)學(xué)科處理實(shí)際問題的一種有效的方法和手段,強(qiáng)調(diào)知識(shí)體系的構(gòu)建與實(shí)踐經(jīng)驗(yàn)的結(jié)合。
2.關(guān)注實(shí)際生活,建立抽象模型
在內(nèi)容要求和教學(xué)提示部分,《課標(biāo)》多次強(qiáng)調(diào)基于生活中的問題情境創(chuàng)設(shè),從生活中的實(shí)例出發(fā),引導(dǎo)學(xué)生對(duì)問題進(jìn)行理解。在這個(gè)過程中,要引導(dǎo)學(xué)生從生活實(shí)例中提煉本質(zhì)問題,設(shè)計(jì)解決問題的一般方法,建立抽象模型。在以往的教學(xué)中,教師通常會(huì)直接拋出一個(gè)算法問題,引導(dǎo)學(xué)生分析解決,編程實(shí)現(xiàn)。而學(xué)生可能更加關(guān)注問題解決方法的意義和實(shí)踐價(jià)值,單純的算法學(xué)習(xí)可能會(huì)降低他們的學(xué)習(xí)興趣,同時(shí)不利于學(xué)生對(duì)知識(shí)的深化理解。因此,在講解算法的過程中,可以從具體的實(shí)例入手,引導(dǎo)學(xué)生去理解現(xiàn)實(shí)中需要解決的核心問題,找到影響問題解決的關(guān)鍵要素,通過分析各要素之間的關(guān)系,以適當(dāng)?shù)姆绞奖磉_(dá)出來,構(gòu)建出抽象的描繪問題的模型,轉(zhuǎn)化成相應(yīng)的算法和程序代碼,運(yùn)行、調(diào)試,解決問題。在實(shí)現(xiàn)基本過程后,還要在原來實(shí)例的基礎(chǔ)上進(jìn)行拓展與發(fā)散,完成深層次的探索與應(yīng)用。
3.項(xiàng)目學(xué)習(xí)引導(dǎo),關(guān)注數(shù)據(jù)的運(yùn)算與處理
從對(duì)《課標(biāo)》的閱讀中不難發(fā)現(xiàn),《算法與程序?qū)崿F(xiàn)》內(nèi)容置于數(shù)據(jù)與計(jì)算模塊之中,強(qiáng)調(diào)算法在數(shù)據(jù)處理中的重要作用。在教學(xué)過程中,建議采用項(xiàng)目學(xué)習(xí)方式,在項(xiàng)目完成過程中深化算法原理,內(nèi)化知識(shí)點(diǎn),完善編程技術(shù)的實(shí)踐操作內(nèi)容,將實(shí)際問題轉(zhuǎn)換成為數(shù)據(jù)處理的算法問題,利用程序落實(shí)數(shù)據(jù)相關(guān)的操作。在每個(gè)環(huán)節(jié)中,需要關(guān)注的問題如右圖所示。
教材內(nèi)容分析與重組
與其他學(xué)科相比,由于信息技術(shù)知識(shí)更新快,地區(qū)間信息化差異大,學(xué)情復(fù)雜,因此,信息技術(shù)學(xué)科對(duì)教材的依賴程度相對(duì)較小,需要教師靈活處理教材,在把握教材核心內(nèi)容的同時(shí),要根據(jù)情況對(duì)內(nèi)容進(jìn)行合理加工。分析教材是完成進(jìn)一步優(yōu)化教學(xué)內(nèi)容的第一步,以人教版必修一內(nèi)容為例,在《算法與程序?qū)崿F(xiàn)》單元(包含人工智能內(nèi)容),案例與知識(shí)點(diǎn)內(nèi)容呈現(xiàn)如表1所示。
《算法與程序?qū)崿F(xiàn)》被安排在第二章,以自動(dòng)紅綠燈系統(tǒng)為貫穿整章節(jié)的線索,在涉及到具體知識(shí)點(diǎn)與程序結(jié)構(gòu)和基礎(chǔ)算法時(shí)引入了常用的數(shù)學(xué)經(jīng)典案例,如枚舉、排序等問題,嘗試在知識(shí)上進(jìn)行突破。人工智能體驗(yàn)環(huán)節(jié)則是在第四章,在完成基本內(nèi)容后,在Python模塊使用的基礎(chǔ)上,引入itchat模塊和函數(shù)調(diào)用相關(guān)的知識(shí),完成信息值守機(jī)器人應(yīng)用的開發(fā)。整個(gè)《算法與程序?qū)崿F(xiàn)》的過程與項(xiàng)目的實(shí)踐過程緊密相連。筆者認(rèn)為,在使用教材時(shí),應(yīng)該關(guān)注如下問題。
1.及時(shí)搭建腳手架,幫助學(xué)生克服學(xué)習(xí)困難
從表1不難看出,與原來的教材相比,這部分在內(nèi)容處理和案例選擇環(huán)節(jié)變化較大。以綜合案例為基礎(chǔ),詳盡闡述問題解決的思維路線,并試圖將相關(guān)的算法內(nèi)容進(jìn)行整合與引申,但解決與實(shí)踐層面缺乏完整的技術(shù)路線,對(duì)于剛剛接觸Python的教師而言,很難從中梳理出一條清晰的線路去組織教學(xué),對(duì)于幾乎處于零基礎(chǔ)的學(xué)生而言,這些案例相對(duì)綜合,在學(xué)習(xí)過程中缺少專業(yè)知識(shí)和腳手架的支持。
從知識(shí)結(jié)構(gòu)看,項(xiàng)目學(xué)習(xí)的方式側(cè)重問題解決的過程,知識(shí)框架被打散。對(duì)于還沒有構(gòu)建起知識(shí)體系的學(xué)生而言,直接引入綜合案例不利于理解,同時(shí)不利于知識(shí)結(jié)構(gòu)的搭建,無法形成清晰的知識(shí)線路和思維脈絡(luò),在這樣的情況下,照本宣科不利于教學(xué)內(nèi)容的落實(shí)。
從技術(shù)實(shí)踐與操作層面上看,教材中給出了宏觀的操作范式,具體的落實(shí)細(xì)節(jié)則是以一種粗線條的方式,通過知識(shí)鏈接進(jìn)行過渡,并沒有給全完整的代碼和解決方案。在這種情況下教師如何根據(jù)學(xué)生的學(xué)情搭建腳手架,是亟待解決的問題。
2.基礎(chǔ)知識(shí)的落實(shí)與知識(shí)的重構(gòu)
通過上述分析可知,在進(jìn)行課堂教學(xué)和案例加工時(shí)需要關(guān)注具體知識(shí)點(diǎn)的滲透與知識(shí)的重組,尤其要關(guān)注Python語言特質(zhì)內(nèi)容在《算法與程序?qū)崿F(xiàn)》過程中發(fā)揮的作用。筆者認(rèn)為在教學(xué)過程中,Python的基礎(chǔ)知識(shí)和程序設(shè)計(jì)的精髓內(nèi)容一定不能忽略,要在構(gòu)建基本知識(shí)框架的前提下聚焦方法引領(lǐng)、任務(wù)的解決和項(xiàng)目的設(shè)計(jì)。