苗宣衍
學(xué)習(xí)內(nèi)容分析
Python編程是蘇教版《初中信息技術(shù)》八年級(jí)第4章《算法與程序設(shè)計(jì)》最后一節(jié)的內(nèi)容。本章前幾節(jié)講述了算法與編程的基本知識(shí),使用Visual Basic語言實(shí)現(xiàn)順序結(jié)構(gòu)、選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的運(yùn)用。本章最后一節(jié)在VB的基礎(chǔ)上,讓學(xué)生快速了解另一種程序設(shè)計(jì)語言的思維和方法,為今后深入學(xué)習(xí)Python或其他高級(jí)語言做準(zhǔn)備。本節(jié)課的定位是《Python循環(huán)語句》的第1課時(shí),主要目的是幫助學(xué)生理解Python中for語句的功能,認(rèn)識(shí)for語句的應(yīng)用,在分析、解決問題的過程中逐步培養(yǎng)計(jì)算思維,而對(duì)于for語句的具體使用方法安排在后續(xù)課時(shí)中訓(xùn)練。本課圍繞“探尋計(jì)算機(jī)軟件的秘密”這一主題,以學(xué)生學(xué)過的“填充柄、查找替換、圖片反相”等舊知識(shí)為抓手,串聯(lián)起對(duì)新知識(shí)“循環(huán)語句”的學(xué)習(xí),引發(fā)學(xué)生運(yùn)用計(jì)算思維解決問題,編程實(shí)現(xiàn)數(shù)據(jù)處理、文本處理、圖像處理和信息安全四個(gè)領(lǐng)域的軟件功能。
學(xué)習(xí)者分析
八年級(jí)的學(xué)生已經(jīng)完成“信息技術(shù)基礎(chǔ)”模塊的學(xué)習(xí),掌握了信息編碼、信息安全等概念,對(duì)Excel數(shù)據(jù)處理、Word文字編輯、Photoshop圖像處理都有操作經(jīng)驗(yàn);本學(xué)期學(xué)習(xí)了“算法與程序設(shè)計(jì)”的大部分內(nèi)容,掌握了VB和Python編程的基礎(chǔ)知識(shí)。學(xué)生的上機(jī)操作能力較強(qiáng),同時(shí)也具備一定的數(shù)學(xué)推理能力,為本課的學(xué)習(xí)奠定了很好的基礎(chǔ)。但學(xué)生還未接觸過Python循環(huán)語句及其應(yīng)用,對(duì)程序與軟件之間的關(guān)系還沒有概念,需要通過本課學(xué)習(xí)。
學(xué)習(xí)目標(biāo)
①掌握for循環(huán)語句的格式與功能。②掌握range()函數(shù)的使用方法。③認(rèn)識(shí)軟件功能的實(shí)現(xiàn)原理,學(xué)會(huì)運(yùn)用循環(huán)語句編程解決問題。
教學(xué)過程
1.導(dǎo)入
師:老師需要打印這樣一張表(如圖1),每行開頭都是一個(gè)數(shù)字“1”,你能幫幫我嗎?
生:可以用WPS表格中的填充柄來完成。(學(xué)生演示)
師:為什么填充柄可以快速完成這樣一個(gè)復(fù)雜的任務(wù)呢?其實(shí)每一款軟件的功能都是由程序控制的,今天我們就一起來探尋計(jì)算機(jī)軟件的秘密!
設(shè)計(jì)意圖:從學(xué)生熟知的填充柄引入循環(huán),引導(dǎo)學(xué)生思考軟件背后的原理,理解循環(huán)的概念,這樣既能夯實(shí)學(xué)生的語法基礎(chǔ),同時(shí)也能啟發(fā)學(xué)生的計(jì)算思維。
2.探秘一:數(shù)據(jù)處理
(1)復(fù)制填充
師:同學(xué)們已經(jīng)學(xué)會(huì)在Python中使用print語句打印一行內(nèi)容,那么,如何快速打印多行呢?(演示使用多行print(1)語句完成打印,觀察后可發(fā)現(xiàn),完成該任務(wù)需要重復(fù)執(zhí)行同一條語句,這就是“循環(huán)”。在Python中可以用for循環(huán)語句實(shí)現(xiàn)指定次數(shù)的循環(huán),書寫時(shí)注意不要忘記冒號(hào)和縮進(jìn)。學(xué)生登錄OJ平臺(tái),完成任務(wù)1:打印100行數(shù)字“1”。教師在線查看班級(jí)答題情況,請(qǐng)學(xué)生糾錯(cuò),代碼如下頁圖2所示)
短短兩行代碼為何能實(shí)現(xiàn)復(fù)雜的功能呢?在for循環(huán)語句中,i是循環(huán)變量,range()函數(shù)默認(rèn)會(huì)生成一個(gè)從0開始的自然數(shù)序列,在循環(huán)開始后,序列中的數(shù)字會(huì)依次賦值給i,接著執(zhí)行循環(huán)體里的語句,直至最后循環(huán)結(jié)束。(結(jié)合課件動(dòng)畫演示,如圖3所示)
(2)序列填充
師:除了復(fù)制填充,填充柄還可以快速填充序列。(演示)這又是如何實(shí)現(xiàn)的呢?我們可以設(shè)置range函數(shù)的參數(shù)來生成指定序列。(講解,演示)學(xué)生登錄OJ平臺(tái),完成任務(wù)2:打印1,3,5,7……n。
老師在OJ平臺(tái)看到同學(xué)們都能順利完成這兩個(gè)任務(wù)(代碼如圖2所示),可見大家對(duì)for循環(huán)語句掌握得很好!至此,我們已經(jīng)成功地探究出數(shù)據(jù)處理中填充柄的秘密!
設(shè)計(jì)意圖:通過兩個(gè)任務(wù),學(xué)生能學(xué)會(huì)正確書寫for循環(huán)語句,理解for循環(huán)語句的執(zhí)行過程;教師的講解、演示可進(jìn)一步幫助學(xué)生認(rèn)識(shí)range函數(shù)的功能,掌握range函數(shù)的參數(shù)設(shè)置方法,在達(dá)成本課學(xué)習(xí)目標(biāo)的同時(shí),也為完成后續(xù)任務(wù)奠定基礎(chǔ)。自動(dòng)化是計(jì)算思維的一個(gè)本質(zhì)特征,在本環(huán)節(jié)中學(xué)生使用循環(huán)語句編程,能夠初步建立計(jì)算思維。與此同時(shí),本課采用OJ平臺(tái)(Online Judge,在線判題系統(tǒng)),使得師生均能實(shí)時(shí)獲得答題反饋,節(jié)約課堂批閱評(píng)價(jià)時(shí)間,也能通過數(shù)據(jù)及時(shí)了解學(xué)生掌握程度。學(xué)生間互相糾錯(cuò)也可豐富課堂的評(píng)價(jià)方式,促進(jìn)提升課堂學(xué)習(xí)效果。
3.探秘二:文本處理
師:這篇文章里有一個(gè)詞寫錯(cuò)了,如何找到所有寫錯(cuò)的詞語并糾正呢?
生:使用WPS文字軟件里的查找替換?。ㄑ菔救鐖D4所示)
師:查找替換又該如何編程實(shí)現(xiàn)呢?Python中的count函數(shù)與replace函數(shù)能夠?qū)崿F(xiàn)對(duì)一個(gè)字符串的查找與替換。一篇文檔是由一行行字符串組成的,也相當(dāng)于一個(gè)序列,因此也能使用for循環(huán)。(結(jié)合課件動(dòng)畫演示)
為了統(tǒng)計(jì)總次數(shù),我們需要使用一個(gè)變量n,而循環(huán)體內(nèi),變量n的值會(huì)根據(jù)情況增加。請(qǐng)你完善程序,完成查找替換文字。(學(xué)生打開學(xué)件,完成任務(wù)3:文字查找替換,如下頁圖5所示)
有的同學(xué)已經(jīng)完成了任務(wù)3,我們請(qǐng)一名同學(xué)來講解自己的代碼。(學(xué)生展示代碼如下頁圖6所示,并講解思路)
設(shè)計(jì)意圖:學(xué)生看到任務(wù)3后,很快能夠聯(lián)想到使用文字處理軟件的查找替換功能,教師結(jié)合課件動(dòng)畫演示進(jìn)行講解,逐步引導(dǎo)學(xué)生思考查找替換功能背后的循環(huán)原理。本環(huán)節(jié)借助舊知識(shí),學(xué)生能發(fā)現(xiàn)其蘊(yùn)含的循環(huán)規(guī)律,認(rèn)識(shí)循環(huán)語句在實(shí)際生活中的運(yùn)用,并能正確設(shè)置變量在循環(huán)體外的初值,控制變量在循環(huán)體中的變化。計(jì)算思維的另一個(gè)本質(zhì)特征是抽象,本環(huán)節(jié)學(xué)生通過思考完成對(duì)實(shí)際問題的分解和抽象,并運(yùn)用循環(huán)語句自動(dòng)化解決問題,逐步建立計(jì)算思維。教師請(qǐng)學(xué)生展示自己的代碼,簡述理解過程幫助學(xué)生理清思維過程,鞏固知識(shí)點(diǎn),同時(shí)起到良好的示范作用。
4.探秘三:圖像處理
師:請(qǐng)同學(xué)們看這兩張圖片(如圖7),你發(fā)現(xiàn)了什么?
生:它們的黑白顏色顛倒了。
師:這是怎么做到的呢?
生:可以用Photoshop來完成。
師:這個(gè)任務(wù)看似困難,其實(shí)用PS反相功能可以快速完成。(演示)它的背后又有什么秘密呢?同學(xué)們學(xué)過信息的編碼,知道黑白像素在計(jì)算機(jī)中是用二進(jìn)制數(shù)0和1來表示的,現(xiàn)在你發(fā)現(xiàn)PS反相功能的秘密了嗎?
生:就是把0變成1、把1變成0即可。
師:(出示圖片的數(shù)字矩陣)可是這么多密密麻麻的數(shù)字,倘若人工一個(gè)個(gè)去修改,將是一個(gè)龐大的工程,那我們再找找,其中是否蘊(yùn)含某種規(guī)律?
對(duì)于一行數(shù)字,我們需要從左到右逐個(gè)變換,這樣使用一次循環(huán)語句即可。而整張圖片是由多行數(shù)字組成的,我們需要不斷對(duì)每一行進(jìn)行變換,再用一次循環(huán)語句就可以實(shí)現(xiàn)了,所以這里使用了多重循環(huán)。(講解、演示)請(qǐng)同學(xué)們完善程序,實(shí)現(xiàn)圖像的反相處理(任務(wù)4:圖像反相)。
同學(xué)們完成得不錯(cuò)!代碼如圖8所示??梢娨粋€(gè)復(fù)雜的任務(wù),只要找到其中的規(guī)律,將其分解成一個(gè)個(gè)簡單的任務(wù),運(yùn)用循環(huán)語句就可以讓計(jì)算機(jī)自動(dòng)、快速完成。
設(shè)計(jì)意圖:學(xué)生有信息編碼的基礎(chǔ),很容易理解黑白位圖反相的原理,即0、1數(shù)字的變換。而圖像的本質(zhì)是數(shù)字矩陣,所以本環(huán)節(jié)將圖像處理與多重循環(huán)教學(xué)相結(jié)合,不僅讓學(xué)生認(rèn)識(shí)到反相功能是應(yīng)用了多重循環(huán)來自動(dòng)化實(shí)現(xiàn)更復(fù)雜的功能,而且培養(yǎng)了學(xué)生從具體問題中抽象出循環(huán)規(guī)律的能力,進(jìn)而培養(yǎng)其計(jì)算思維。
5.探秘四:信息安全
師:我們用循環(huán)語句可以實(shí)現(xiàn)反轉(zhuǎn)每一個(gè)0和1,請(qǐng)大家看這樣一張反轉(zhuǎn)后的圖片(展示圖片),你能看到什么嗎?
生:看不出來。
師:請(qǐng)你運(yùn)行老師發(fā)送的程序,把數(shù)字反轉(zhuǎn)回來,看看會(huì)有什么結(jié)果?
生:(任務(wù)5:圖像解密)我看到圖片上有“你真厲害!”。
師:沒錯(cuò),你們真厲害!老師按照指定的規(guī)則,使用循環(huán)語句將某些數(shù)字打亂,就會(huì)得到剛才的圖片,這樣就保護(hù)了原始信息,實(shí)現(xiàn)了圖像加密。而同學(xué)們按照同樣的規(guī)則,使用循環(huán)語句反向轉(zhuǎn)換回來,就可以得到原圖,實(shí)現(xiàn)了圖像解密!
師:其他形式的信息可以這樣加密嗎?
生:可以,因?yàn)橛?jì)算機(jī)中存儲(chǔ)信息都是使用二進(jìn)制。
師:沒錯(cuò),我們用類似的、更復(fù)雜的方法實(shí)現(xiàn)更高級(jí)別的信息加密,保護(hù)信息安全。
設(shè)計(jì)意圖:探秘四是在圖像處理基礎(chǔ)上的延伸,本環(huán)節(jié)將信息加密與循環(huán)語句相結(jié)合,學(xué)生不僅能更加深入地理解循環(huán)語句的應(yīng)用,還能對(duì)信息加密算法有初步認(rèn)識(shí),新舊知識(shí)的融合既能促進(jìn)學(xué)生計(jì)算思維的強(qiáng)化,又能樹立他們在信息社會(huì)的安全意識(shí)。
教學(xué)反思
本課設(shè)計(jì)了四個(gè)探秘環(huán)節(jié),通過五個(gè)有趣的小任務(wù),由淺入深,涉及數(shù)據(jù)處理、文本處理、圖像處理和信息安全多個(gè)領(lǐng)域,讓學(xué)生在學(xué)習(xí)循環(huán)語句的同時(shí),逐步建立并運(yùn)用計(jì)算思維。第一個(gè)環(huán)節(jié)讓學(xué)生掌握循環(huán)語句的基礎(chǔ)知識(shí),鍛煉學(xué)生書寫完整的程序代碼,體驗(yàn)自動(dòng)化解決問題的過程。后三個(gè)環(huán)節(jié)結(jié)合循環(huán)語句的具體應(yīng)用,將側(cè)重點(diǎn)集中在問題的分析、解決上,注重對(duì)學(xué)生思維的鍛煉,學(xué)生在將復(fù)雜的問題簡單化的過程中,能夠強(qiáng)化分解、抽象的思維方式,最終以自動(dòng)化的方式編程完成任務(wù)。計(jì)算思維使人們在不必理解每一個(gè)細(xì)節(jié)的情況下就能夠安全地使用、調(diào)整和影響一個(gè)大型復(fù)雜系統(tǒng),因此在后三個(gè)任務(wù)中教師提供程序框架,學(xué)生僅需關(guān)注與問題關(guān)聯(lián)最密切的核心代碼,這樣既減輕了學(xué)生的代碼書寫負(fù)擔(dān),也為學(xué)生在有限時(shí)間內(nèi)完成編程實(shí)踐、培養(yǎng)計(jì)算思維提供了保障。
本課的四個(gè)探秘環(huán)節(jié)均與學(xué)生已習(xí)得的知識(shí)、技能相關(guān),將新舊知識(shí)很好地串聯(lián)在一起,不僅使學(xué)生掌握了新的編程技巧,還升華了其對(duì)舊知識(shí)的理解,有利于計(jì)算思維的培養(yǎng)。
點(diǎn)評(píng)
本課是一節(jié)市級(jí)公開課,教學(xué)內(nèi)容為江蘇鳳凰科學(xué)技術(shù)出版社八年級(jí)信息技術(shù)教材第4章《算法與程序設(shè)計(jì)》第6節(jié)《初識(shí)Python》的第二課時(shí),主要介紹循環(huán)語句。這一版教材的程序設(shè)計(jì)模塊仍然以VB為基本教學(xué)內(nèi)容,將Python放在了最后一節(jié)進(jìn)行知識(shí)補(bǔ)充。學(xué)生在前五節(jié)中已經(jīng)完成了程序設(shè)計(jì)的算法、語言等基本概念的知識(shí)學(xué)習(xí),也使用VB進(jìn)行了順序、分支和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的學(xué)習(xí),對(duì)程序設(shè)計(jì)已經(jīng)有一定的知識(shí)儲(chǔ)備和技能基礎(chǔ)。因此,授課教師結(jié)合教材中Python作為補(bǔ)充知識(shí)的定位,以及學(xué)生已有的程序設(shè)計(jì)經(jīng)驗(yàn),將這一課時(shí)的教學(xué)內(nèi)容進(jìn)行了全新的設(shè)計(jì)嘗試,其最大的亮點(diǎn)就是通過學(xué)生自己的補(bǔ)充編寫,模擬完成了七、八年級(jí)之前教學(xué)中的不同章節(jié)的模塊簡化版功能,包括數(shù)據(jù)處理章節(jié)的“填充柄”功能、文字處理章節(jié)的“查找替換”功能、圖像處理章節(jié)的“反色”功能、信息安全章節(jié)的“加密”功能。一方面將應(yīng)用的案例變得親切有感,另一方面通過編程實(shí)現(xiàn)功能模塊,可以進(jìn)一步增強(qiáng)學(xué)生對(duì)解決更復(fù)雜問題的信心,繼而提高學(xué)習(xí)的興趣和動(dòng)力。這種通過新知識(shí)深度“喚醒”舊應(yīng)用的嘗試,將信息技術(shù)學(xué)科的學(xué)習(xí)從應(yīng)用的角度向?qū)W科內(nèi)涵的角度轉(zhuǎn)向,是有趣、有益也有研究價(jià)值的。需要說明的是,作為VB補(bǔ)充內(nèi)容的教學(xué),這樣的呈現(xiàn)是合理的,但如果僅使用Python進(jìn)行程序設(shè)計(jì)單元的整體教學(xué),只用一節(jié)課作為循環(huán)結(jié)構(gòu)的程序教學(xué)的開場可以,作為循環(huán)結(jié)構(gòu)的完整教學(xué)還不夠扎實(shí)與深入,需要后續(xù)課時(shí)的練習(xí)與補(bǔ)充,或者將本課的任務(wù)群分解到多個(gè)課時(shí)加以深化。