江蘇省南通市通州區(qū)教師發(fā)展中心 朱 艷
教育是什么?《說(shuō)文解字》中對(duì)“教育”的解釋是:“教,上所行,下所效也”,“育,養(yǎng)子使作善也”。比對(duì)教育的概念,編程教學(xué)好像只能算是茫?!敖獭焙5囊粭l溪流。有哲學(xué)家說(shuō),“存在,即合理”。那么編程教學(xué)對(duì)初中學(xué)生的教育意義在哪里呢?筆者在組織江蘇省信息學(xué)奧林匹克競(jìng)賽初賽及復(fù)賽這項(xiàng)工作中,在對(duì)部分初中參賽選手的數(shù)學(xué)成績(jī)進(jìn)行持續(xù)觀測(cè)后,驚喜地發(fā)現(xiàn)編程這一“小眾”的技能學(xué)習(xí)會(huì)給那些學(xué)生打開一扇門,開啟一個(gè)全新的世界,助他們自信地走向自主學(xué)習(xí)之路。究其根本,我認(rèn)為還是編程提升了他們的思維品質(zhì),量變引起了質(zhì)變。
百度百科上是這樣描述思維品質(zhì)的:“人們?cè)谒季S活動(dòng)過(guò)程中表現(xiàn)于不同方面的特點(diǎn)及其差異,就構(gòu)成其思維品質(zhì)?!彼季S的主要品質(zhì)有很多,比如:思維的邏輯性、廣闊性、深刻性、獨(dú)立性……個(gè)人認(rèn)為編程教學(xué)會(huì)對(duì)學(xué)生思維的邏輯性、創(chuàng)造性、預(yù)見性、獨(dú)立性產(chǎn)生較為深遠(yuǎn)的影響。
我們經(jīng)常用“靈”這個(gè)字來(lái)評(píng)價(jià)一個(gè)聰慧的孩子,這樣的孩子顯著的特征是很會(huì)隨機(jī)應(yīng)變、見“招”拆“招”,根據(jù)不同的情境解決問(wèn)題。世間有萬(wàn)事萬(wàn)物,但是這萬(wàn)事萬(wàn)物之間皆有關(guān)聯(lián),如何關(guān)聯(lián)?邏輯是橋梁。初中階段是編程學(xué)習(xí)的初級(jí)階段,學(xué)生學(xué)習(xí)了程序的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是依據(jù)問(wèn)題的求解的關(guān)鍵值來(lái)安排進(jìn)程,比如為了最終解決問(wèn)題,需要先做什么后做什么;選擇結(jié)構(gòu)則是用來(lái)賦予計(jì)算機(jī)以“決策”的能力,就需思考如何設(shè)計(jì)好條件表達(dá)式,讓計(jì)算機(jī)有更多的“選擇”權(quán),更具智能;至于循環(huán),則更需要學(xué)生具備火眼金睛,他們需要從題干中提煉出諸如:循環(huán)多少次結(jié)束?循環(huán)執(zhí)行什么?除了循環(huán)設(shè)計(jì)外,還需要綜合考慮循環(huán)之前的準(zhǔn)備工作,以及循環(huán)之后的結(jié)束工作。事情的發(fā)展順序,解決問(wèn)題的方法及步驟,學(xué)生都需全盤考慮。邏輯在哪里?個(gè)人認(rèn)為藏在問(wèn)題分析的過(guò)程中,藏在解決問(wèn)題的運(yùn)籌帷幄中。編程解決問(wèn)題,問(wèn)題不再是平面的文字,它們被學(xué)生轉(zhuǎn)化為各種立體的線索,最終他們用計(jì)算機(jī)語(yǔ)言去表達(dá),去實(shí)現(xiàn)。
何為創(chuàng)造力?創(chuàng)造力,是人類特有的一種綜合性本領(lǐng)。創(chuàng)造力是指產(chǎn)生新思想,發(fā)現(xiàn)和創(chuàng)造新事物的能力。學(xué)編程的學(xué)生們都有一股子不服輸?shù)膭艃?。同樣解決一道題,比如搜索類的經(jīng)典問(wèn)題迷宮,有的學(xué)生用深搜去解決,有的學(xué)生有寬搜解決。用寬搜算法解決的,又有學(xué)生用STL去寫代碼,有學(xué)生用數(shù)組模擬隊(duì)列去寫代碼。洛谷上有各種題解,想要“學(xué)習(xí)”他人的代碼是特別容易的事。但是,他們更樂(lè)于去寫有自己的思想與方法的代碼去解決問(wèn)題。他們更享受自己原創(chuàng)的題解,通過(guò)洛谷管理員的審核,與更多志同道合的人去探究、去碰撞、去創(chuàng)造。他們用計(jì)算機(jī)“聽”得懂的語(yǔ)言,去征服計(jì)算機(jī),讓計(jì)算機(jī)幫助他們解決看起來(lái)“紛繁復(fù)雜”的問(wèn)題??萍紡?qiáng)國(guó),在人工智能高速發(fā)展的今天,這群孩子步伐堅(jiān)定地朝著遠(yuǎn)方走去。他們深知,代碼是有靈魂的,COPY的代碼是沒(méi)有生命力的。通過(guò)自己的代碼去改變世界,是他們?cè)诰幊探鉀Q若干題后被喚醒的夢(mèng)想。實(shí)踐,讓夢(mèng)想不再遙不可及。
預(yù)見性是指一個(gè)人對(duì)事物發(fā)展的預(yù)判和前瞻。一個(gè)人預(yù)見性的強(qiáng)弱往往決定著一個(gè)人的能力大小。學(xué)習(xí)編程會(huì)提升學(xué)生的預(yù)見性思維能力?在我關(guān)注“教師們?cè)趺唇蹋瑢W(xué)生怎么學(xué)”的過(guò)程中,發(fā)現(xiàn)了一個(gè)有趣的算法:遞推算法,這個(gè)算法讓我聯(lián)想到預(yù)見性這三個(gè)字。遞推算法是根據(jù)事物發(fā)展的規(guī)律,找到其遞推關(guān)系式,然后編程解決相關(guān)問(wèn)題。比如爬樓梯問(wèn)題、兔子繁殖問(wèn)題,經(jīng)過(guò)推理發(fā)現(xiàn)問(wèn)題的本質(zhì)是斐波拉契數(shù)列規(guī)律相似。
在這一節(jié)全區(qū)初中教學(xué)公開課上,教師精心設(shè)計(jì)教學(xué)流程,學(xué)生推導(dǎo)發(fā)現(xiàn),最終發(fā)出這樣的感悟:大自然太神奇、人類太偉大了,推理可以發(fā)現(xiàn)規(guī)律,但規(guī)律并不局限于某一事物發(fā)展規(guī)律。由此發(fā)散出去:人所生活的物質(zhì)的世界,規(guī)律、定理也一定不僅局限于某一事物。比如能量守恒定理,有得必有失;比如月滿則虧,水滿則溢,房?jī)r(jià)股價(jià)漲跌皆有其規(guī)律。有專家說(shuō)計(jì)算機(jī)科學(xué)的盡頭就是哲學(xué),經(jīng)典算法是計(jì)算機(jī)科學(xué)家智慧的結(jié)晶,系統(tǒng)的算法學(xué)習(xí)必然會(huì)給學(xué)生們帶來(lái)更多的頭腦風(fēng)暴,讓他們對(duì)這個(gè)世界有更高層次的認(rèn)識(shí)。
經(jīng)研究發(fā)現(xiàn):在學(xué)科學(xué)習(xí)中學(xué)得輕松且高效的學(xué)生都有這樣的特點(diǎn):他們善于獨(dú)立地發(fā)現(xiàn)、分析和解決問(wèn)題。他們?cè)谡n堂上,眼里有光,胸中有竹,他們的思維是具有很強(qiáng)的獨(dú)立性的。具有獨(dú)立性思維品質(zhì)的學(xué)生,他們?cè)趯W(xué)科學(xué)習(xí)上游刃有余。為什么說(shuō)編程可以提升學(xué)生的獨(dú)立性思維能力呢?比如,學(xué)生用編程解決一道這樣的數(shù)學(xué)題:
“有一次,小魚要從A 處沿直線往右游,小魚第一秒游7 米,從第二秒開始每秒游的距離只有前一秒的98%。有個(gè)極其邪惡的獵人在距離A 處右邊S米的地方,安裝了一個(gè)隱蔽的探測(cè)器,探測(cè)器左右X米之內(nèi)是探測(cè)范圍。一旦小魚進(jìn)入探測(cè)器的范圍,探測(cè)器就會(huì)在這一秒結(jié)束時(shí)把信號(hào)傳遞給那個(gè)獵人,獵人在一秒后就要對(duì)探測(cè)器范圍內(nèi)的水域進(jìn)行抓捕,這時(shí)如果小魚還在這范圍內(nèi)就危險(xiǎn)了。也就是說(shuō)小魚一旦進(jìn)入探測(cè)器范圍,如果能在下1 秒的時(shí)間內(nèi)馬上游出探測(cè)器的范圍,還是安全的?,F(xiàn)在給出S 和X 的數(shù)據(jù),請(qǐng)你判斷小魚會(huì)不會(huì)有危險(xiǎn),如果有危險(xiǎn)輸出Y,沒(méi)有危險(xiǎn)輸出N?!痹诰幊讨?,他們得首先從題目中提煉關(guān)鍵字,找出解決問(wèn)題的核心。在這個(gè)階段,平面的文字并不利于分析問(wèn)題,學(xué)生們會(huì)使用數(shù)學(xué)中常用的辦法——畫圖。
圖畫出來(lái)之后,才能更快捷地找出解決問(wèn)題的關(guān)鍵:小魚花了多少時(shí)間游至探測(cè)器邊界(速度會(huì)衰減),進(jìn)了區(qū)域之后,小魚1 秒游行的路程是否能超出探測(cè)器區(qū)域,如果未能沖出探測(cè)器區(qū)域小魚即是有危險(xiǎn)的,否則就是安全的。
有了解題思路,接下來(lái)就是思考如何用程序去實(shí)現(xiàn),在程序編制中,學(xué)生需要考慮抽象幾個(gè)變量,需要用什么程序結(jié)構(gòu)……程序編制出來(lái),還需要進(jìn)行調(diào)試,調(diào)試成功后,在線評(píng)測(cè)測(cè)試是不是對(duì)任何給定的S 與X,都能得到正確的解。如果未能,還需思考是否在某些細(xì)節(jié)上未能考慮周全,比如本題中探測(cè)器所在的位置在距離A點(diǎn)7米以內(nèi),小魚是絕對(duì)有危險(xiǎn)的。這是一道模擬算法題,學(xué)生在學(xué)完順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)后可完成。洛谷此類題萬(wàn)千,教師不可能一一講解,學(xué)生們要體驗(yàn)Accept的成就感,只能通過(guò)學(xué)習(xí)借鑒教師的解題方法,獨(dú)立思考,勤于實(shí)踐。積跬步而至千里,方法、知識(shí)融會(huì)貫通后,遷移將是自然發(fā)生的。筆者對(duì)我區(qū)某初中參加信息學(xué)奧林匹克競(jìng)賽的二十多個(gè)學(xué)生的數(shù)學(xué)成績(jī)進(jìn)行持續(xù)觀測(cè)后發(fā)現(xiàn),這些學(xué)生數(shù)學(xué)成績(jī)提高率比沒(méi)有參加競(jìng)賽的學(xué)生的提高率高出20%。
任何一門學(xué)科,對(duì)學(xué)生的影響都是“潤(rùn)物細(xì)無(wú)聲”的,不是一蹴而就的。教師悉心地教,學(xué)生潛心地悟,才能感受程序的魅力,才能真正愛上編程,從而提升個(gè)人的思維品質(zhì)。編程教與學(xué)從來(lái)就不是一件功利的事,而是教師與學(xué)生皆漸入佳境的事。唯有熱愛,才能發(fā)現(xiàn)其間的樂(lè)趣,體會(huì)其中的益處。作為通州區(qū)教師發(fā)展中心的信息技術(shù)研訓(xùn)員,我將竭盡所能地培養(yǎng)更多熱愛編程教學(xué)、專注于編程教學(xué)研究的教師,進(jìn)而為更多的學(xué)生打開代碼世界的大門,幫助他們找到開啟提升思維品質(zhì)的鑰匙。