曹現(xiàn)慶
我們已經(jīng)進入到人工智能+的時代,如:圖像識別、指紋識別、機器人技術(shù)等,而所有的這一切都離不開編程。在眾多發(fā)達國家,編程教育早就開始進入校園了。2017年,國務院印發(fā)《新一代人工智能發(fā)展規(guī)劃》,將少兒編程教育提升為國家戰(zhàn)略。讓孩子學習編程,是對孩子未來的一個布局。規(guī)劃明確提出:“在中小學階段設置人工智能相關(guān)課程,逐步推廣編程教育。”那么,程序設計究竟能為孩子的思維能力發(fā)展帶來什么樣的影響?筆者通過自己近年來的編程學習經(jīng)歷來談談個人體會。
一、 培養(yǎng)學習積極性和創(chuàng)造性
我們平時的教學中,往往注重理論教學,會使學生覺得概念抽象,又沒有規(guī)律可循,影響學習的興趣。而編程的過程是一個實踐的過程,只有親自動手編寫代碼、調(diào)試、運行,才能真正掌握和理解所學的知識,很容易激發(fā)學生學習的好奇心。如在講解條件分支語句時,通過警察斷案的例子:四個嫌犯分別的供詞“a說不是我,b說是c,c說是d,d說c在胡說”已知有三個人說了真話,一個人說了假話。根據(jù)這些信息來判斷誰是兇手?同學們熱情很高,紛紛舉手回答,老師讓同學們用python語言中的條件語句來實現(xiàn)。有的用了if的嵌套,有的用了多個if語句來實現(xiàn)。事實上只需要用一個條件語句就可以表達出誰是兇手:if(thisman!='a')+(thisman==‘d')+(thisman!=‘c')+(thisman==‘c')==1: ?print(thisman,"是兇手!")這樣就可以把復雜的問題,簡單的解決了,即培養(yǎng)了學生學習的興趣,又拓寬學生的見識面,讓學生固化的思維得以解放和活躍,對培養(yǎng)創(chuàng)新性思維十分有益。 ?
二、提升學生解決問題的能力
應試教育下,學習知識容易囫圇吞棗,不去思考,缺乏深入理解,但是,通過編程解決問題,恰好彌補了這樣一個缺陷。編程的實質(zhì),是一個“提出問題――分析問題――設計方案(編寫程序、調(diào)試程序)――解決問題”的過程,他們需要將這個問題還原在生活中,通過思考建模,并在電腦上進行測試實現(xiàn)。例如:新世紀五一優(yōu)惠大酬賓活動,對于會員顧客,消費滿1500元的,可以享受6折優(yōu)惠,消費滿1000元的,享受8折優(yōu)惠,未滿1000元的,享受9折優(yōu)惠,不是會員的不打折,針對不同的消費,收銀員如何快算出每人的消費額呢? 做為一道數(shù)學題,同學們也許很容易的就能寫出答案。而作為讓計算機去解決的問題,則是將問題還原到生活中,去思考如何設計出一個程序,讓這個程序能幫助收銀員在輸入金額時就自動判斷顧客是否為會員,符合什么樣的折扣,從而更快更好的解決問題,讓收銀員即便在面對巨大的顧客流時,也可以有條不紊的工作。
因此,每一次的編程,都是一次放手讓學生自主解決問題的歷練,不斷地讓學生思考和分析問題,制定適合的解決方案,在這種反復訓練下,學生的問題解決能力會得到顯著提升。 ? 三、鍛煉思維縝密性,勇于探究的精神,我們考慮問題的方式往往較為簡單,在遇到一些相對復雜的問題時,第一想法往往是選擇放棄,不愿多做嘗試。即便有少數(shù)人嘗試去解決,也常常難以考慮周全。編程學習能有效改善學生的這種狀態(tài)。如在講循環(huán)語句時,讓學生設計一個求全班同學總分的程序,有的同學因為沒設置改變步長的條件,結(jié)果程序進入死循環(huán)。有的同學求一個同學時正確,再求后面同學時錯誤,經(jīng)過多次嘗試后發(fā)現(xiàn)是因為求和變量在進入下一循環(huán)時沒有初始化。這樣一次次的訓練,培養(yǎng)了學生的耐心和勇于嘗試探究的精神。此外,學生在編程過程中,往往難以一次性就解決完整的問題,可能第一次編寫代碼實現(xiàn)了百分之三十的功能,那么學生就需要對當下解決方案進行“查缺補漏”,思考究竟是哪個循環(huán)里遺漏了什么或是哪個地方?jīng)]有考慮到,及時補充完善,第二次可能就能實現(xiàn)百分之七十的功能,而后繼續(xù)思考,繼續(xù)完善,在一次次的嘗試中尋找最合適的最優(yōu)解。
學生若經(jīng)常以這樣的方式進行思考,經(jīng)過一定量的刻意練習,就會形成周全考慮問題的思維習慣,同時,在面對實際問題時,也更愿意從各個角度進行探索和動手嘗試。 ?
四、培養(yǎng)學生的抽象思維的能力
初中(約13-14歲)是中學階段抽象思維的質(zhì)變關(guān)鍵期,成熟前的思維可塑性大[1]。因此在初中階段設置合適的課程大力發(fā)展學生的抽象思維至關(guān)重要,無疑,編程是十分適合的一門課程。 通過編程訓練(需要后續(xù)數(shù)據(jù)結(jié)構(gòu)、算法的學習),學生學會化抽象為具體。從抽象到具體的這樣一個轉(zhuǎn)變,潛移默化地培養(yǎng)了學生的抽象思維。
如著名的漢諾塔問題:漢諾塔(又稱河內(nèi)塔)問題是源于印度一個古老傳說的益智玩具。大梵天創(chuàng)造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。貌似不可能實現(xiàn)的問題,如果學了數(shù)據(jù)結(jié)構(gòu)中的遞歸思想,就能很容易用抽象思維去理解。
編程對學生的思維發(fā)展和能力提升具備深遠的意義,我注重在教學過程中對學生思維能力和動手能力的訓練,思維能力的培養(yǎng)和提升不是一朝一夕所能實現(xiàn)的,如果能從編程訓練入手,無疑對提高學生的創(chuàng)新思維大有裨益。