【摘要】信息社會(huì),越來越多的領(lǐng)域需要使用程序設(shè)計(jì),編寫程序成為新時(shí)代學(xué)生需要具備的一項(xiàng)基本技能??菰锏木幊虝?huì)讓剛接觸程序設(shè)計(jì)的學(xué)生漸漸失去興趣,如何在程序設(shè)計(jì)中增加更多的閃光點(diǎn),讓學(xué)生感到更有親和力,更能吸引學(xué)生去編寫程序?本文以Python循環(huán)結(jié)構(gòu)教學(xué)融合學(xué)科知識(shí)的例子來與大家一起探討程序設(shè)計(jì)教學(xué)中的一些創(chuàng)新思路。
【關(guān)鍵詞】循環(huán)結(jié)構(gòu)?學(xué)科知識(shí)
現(xiàn)在的教學(xué)中,各個(gè)學(xué)科不再是各自為戰(zhàn),守好自己的一畝三分地。隨著學(xué)習(xí)的深入,需要越來越多地進(jìn)行學(xué)科融合,信息技術(shù)特別是程序設(shè)計(jì),也需要在教學(xué)中融合多學(xué)科的知識(shí)。以下我結(jié)合自己的這節(jié)Python循環(huán)結(jié)構(gòu)的教學(xué)設(shè)計(jì)和授課過程,談?wù)勛约簩?duì)程序設(shè)計(jì)與學(xué)科融合的一些做法。
一、借用語(yǔ)文的關(guān)聯(lián)詞來理解程序邏輯
中國(guó)的語(yǔ)言藝術(shù)博大精深,關(guān)聯(lián)詞不僅能清楚地表達(dá)語(yǔ)言中的邏輯關(guān)系,同樣適用于在程序設(shè)計(jì)中的邏輯關(guān)系和算法思路。
計(jì)數(shù)for循環(huán),可以用關(guān)聯(lián)詞的“當(dāng)。。。”來理解。例如for i in range(1,101)可以這樣想:當(dāng)i=1時(shí),執(zhí)行一次循環(huán)語(yǔ)句;當(dāng)i=2時(shí),執(zhí)行一次循環(huán)語(yǔ)句;。。。。。。當(dāng)i=100時(shí),執(zhí)行一次循環(huán)語(yǔ)句。這樣解釋,學(xué)生就能明白for循環(huán)的本質(zhì)就是遍歷列表中的所有元素。
對(duì)于遍歷,我還舉了這樣一個(gè)事例:有3個(gè)同學(xué)A、B、C被評(píng)為三好學(xué)生,將A、B、C放在一個(gè)列表中,領(lǐng)導(dǎo)for循環(huán)來訪問列表,循環(huán)體就是發(fā)三好學(xué)生獎(jiǎng)狀,領(lǐng)導(dǎo)為A同學(xué)發(fā)獎(jiǎng)狀,領(lǐng)導(dǎo)為B同學(xué)發(fā)獎(jiǎng)狀,領(lǐng)導(dǎo)為C同學(xué)發(fā)獎(jiǎng)狀,結(jié)束循環(huán)。遍歷就是依次訪問列表中的元素,并執(zhí)行一次循環(huán)體,直到訪問完所有的元素,結(jié)束循環(huán)。
二、融合英語(yǔ)寫作表達(dá)能力
學(xué)英語(yǔ)的兩個(gè)重點(diǎn)是寫作和表達(dá)能力,在程序設(shè)計(jì)中也可以讓學(xué)生展示自己的英語(yǔ)風(fēng)采。我在課程中設(shè)計(jì)了這樣一個(gè)練習(xí)題:想出至少三個(gè)你喜歡的東西或人,將他(它)們存儲(chǔ)在一個(gè)列表中,使用for循環(huán)實(shí)現(xiàn)對(duì)每個(gè)事物都打印一個(gè)句子,如"A dog would make a grate pet",在程序的末尾添加一行代碼,打印指出這些動(dòng)物的共同特點(diǎn)(諸如"Any of these animals would make a great pet!")或表達(dá)自己的情感(諸如"They are all my best friends!")。
看到這個(gè)題目學(xué)生來了興趣,熱火朝天地在鍵盤上敲擊自己的代碼。課堂上同學(xué)們都積極舉手展示自己的程序,展示興趣愛好,用流利的英語(yǔ)演說。下面我展示一個(gè)學(xué)生的思路,她設(shè)計(jì)了這樣一個(gè)程序:
三、解決物理位移問題
在這個(gè)環(huán)節(jié),我截取了高一第一次月考物理試卷的一道解答題:從一定高度的氣球上自由落下兩個(gè)物體,第一物體下落1s后,第二物體開始下落,兩物體用長(zhǎng)93.1m的繩連接在一起。求:第二個(gè)物體下落多長(zhǎng)時(shí)間繩被拉緊?
剛考完的緣故,學(xué)生對(duì)這個(gè)問題感到很親切,對(duì)正確答案仍然記憶猶新,都饒有興趣地試著編程去解答。While循環(huán)最難的地方應(yīng)該就是循環(huán)條件的提取。引導(dǎo)學(xué)生思考兩個(gè)物體從同一高度自由下落,什么情況下繩子才會(huì)被拉緊。同學(xué)們異口同聲地回答,兩個(gè)物體的距離s必須大于等于93.1m。再引導(dǎo)學(xué)生思考,那循環(huán)條件應(yīng)該怎么寫,有的同學(xué)脫口而出距離s>=93.1。提出問題:循環(huán)體是什么?分別計(jì)算自由下落的位移,并用位移相減計(jì)算出距離s。再提出問題,一開始的距離s是多少?生:距離是0。師:那么s=0有沒有滿足你們給出的循環(huán)條件,能不能執(zhí)行循環(huán)體?學(xué)生思考后恍然大悟,立刻改口循環(huán)條件應(yīng)該是s<93.1。確定完循環(huán)條件,我就讓學(xué)生自主編寫程序解答,最終有一半同學(xué)通過使用while循環(huán)程序打印出了正確答案。
四、應(yīng)用數(shù)學(xué)一題多解的思路
數(shù)學(xué)老師經(jīng)常提倡學(xué)生要思考一題多解,程序設(shè)計(jì)也應(yīng)該有這種想法,這對(duì)將來算法優(yōu)化有很重要的意義。我設(shè)計(jì)的題目是計(jì)算1+2+。。。+100=? 學(xué)生從本節(jié)課的兩個(gè)循環(huán)出發(fā),大部分都能設(shè)計(jì)出兩種解法:
解完題目,讓學(xué)生思考哪種算法更好?很多同學(xué)的看法就是for循環(huán)更好,可能是因?yàn)閒or循環(huán)更好理解,更容易編寫。老師提示學(xué)生從存儲(chǔ)空間的角度再思考想。有學(xué)生發(fā)表自己的看法:使用while循環(huán)更優(yōu)化,因?yàn)閒or循環(huán)的列表有多少個(gè)元素,就要給它多少個(gè)存儲(chǔ)空間,而while循環(huán)只要i和s兩個(gè)存儲(chǔ)空間,所以while更優(yōu)化,特別是數(shù)據(jù)量很大時(shí)。程序設(shè)計(jì)一定要一題多解,思考更多的思路和算法,并從中去選取最優(yōu)化的一種來實(shí)現(xiàn)。
【結(jié)語(yǔ)】
程序設(shè)計(jì)與學(xué)科的多方位全面融合,不僅可以讓學(xué)生愛上編程,還能讓學(xué)生習(xí)慣用程序設(shè)計(jì)來解決很多現(xiàn)實(shí)問題,體會(huì)編程的實(shí)用與優(yōu)勢(shì)。
【參考文獻(xiàn)】
[1]《發(fā)現(xiàn)數(shù)學(xué)之美,點(diǎn)燃學(xué)生機(jī)器人編程的思維火花》.[G]. 喬磊.??試題與研究.?2019年34期
[2]《淺談VB編程與中職英語(yǔ)的學(xué)科融合教學(xué)》.[G].林志敏.現(xiàn)代職業(yè)教育.?2018年03期
莆田四中 福建省莆田市?鄭葉青