蔡婷婷
摘要:初中生處于身心發(fā)展的關(guān)鍵期,可塑性強(qiáng),同時(shí)課業(yè)壓力相對(duì)較小,是接觸并學(xué)習(xí)編程的好時(shí)期。若能合理的學(xué)習(xí)編程,學(xué)生將能更好地發(fā)展自己的思維和能力,在問題解決方面,問題考慮、抽象思維和創(chuàng)新思維發(fā)展等方面都能夠得到鍛煉和提升。同時(shí),社會(huì)對(duì)編程型人才的需求也日益加大。
關(guān)鍵詞:初中生;程序設(shè)計(jì);能力;思維
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)33-0176-02
1 概述
時(shí)代發(fā)展帶來了嶄新的認(rèn)知觀,編程學(xué)習(xí)不再只是“為了成為程序員才學(xué)”、“晦澀無趣”、“計(jì)算機(jī)專業(yè)才要學(xué)”等古老印象的代名詞,它代表了新型的思維和能力,受到了社會(huì)各界越來越廣泛的重視。
2015年12月,美國(guó)前總統(tǒng)奧巴馬提出“每天編程一小時(shí)”的活動(dòng),倡議并鼓勵(lì)孩子們從小開始接觸和嘗試編程,奧巴馬自己也以身作則,親自編寫了一段簡(jiǎn)單代碼。在更早之前的2014年,英國(guó)就已將“編程”列入青少年必學(xué)課程,隨后愛爾蘭、西班牙、芬蘭等國(guó)家也開始效仿,編程學(xué)習(xí)低齡化已經(jīng)成為全球教育的新趨勢(shì)。越來越多的家長(zhǎng)開始將編程學(xué)習(xí)當(dāng)成像樂器、舞蹈等必不可缺的一技之長(zhǎng)來培養(yǎng)孩子,更有甚之,有些人甚至將其定義成一種互聯(lián)網(wǎng)+趨勢(shì)下青少年必須掌握的“新的讀寫能力”,編程學(xué)習(xí)的火熱程度可見一斑。
初中學(xué)習(xí)是重要的人生歷程,初中生的身心特點(diǎn)決定了他們的好奇心重,可塑性強(qiáng),初中階段是掌握基礎(chǔ)知識(shí)、基本技能的極佳時(shí)期,加上初中生課業(yè)壓力相對(duì)較小,具備較充足的時(shí)間學(xué)習(xí)編程,若能把握這個(gè)時(shí)期,適時(shí)的讓學(xué)生接觸計(jì)算機(jī)語言,既能有效的鍛煉他們的思維和能力,也能為今后儲(chǔ)備順應(yīng)時(shí)代潮流、符合時(shí)代發(fā)展的一技之長(zhǎng),可謂一舉多得。
那么,程序設(shè)計(jì)究竟能為孩子的思維能力發(fā)展帶來什么樣的影響?筆者想通過自己近年來的編程學(xué)習(xí)經(jīng)歷和程序設(shè)計(jì)教學(xué)經(jīng)驗(yàn),來談?wù)剛€(gè)人體會(huì)。
2 程序設(shè)計(jì)對(duì)初中生思維、能力發(fā)展的影響
2.1 編程學(xué)習(xí)能提升學(xué)生的問題解決能力
應(yīng)試教育下的學(xué)生,對(duì)待知識(shí)容易囫圇吞棗,死記硬背,但他們大多缺乏深入理解知識(shí)的能力,更不用說學(xué)以致用,但是,讓學(xué)生學(xué)會(huì)用知識(shí)解決實(shí)際問題,是教育的重要意義之一。編程學(xué)習(xí)恰好彌補(bǔ)了這樣一個(gè)缺陷,它能夠鍛煉并提升學(xué)生的問題解決能力。
編程的實(shí)質(zhì),是一個(gè)“面對(duì)問題——分析問題——設(shè)計(jì)方案(編寫程序、調(diào)試程序)——解決問題”的過程,擺在學(xué)生面前的是一個(gè)現(xiàn)實(shí)的問題而非一道常規(guī)打分題,學(xué)生需要做的不僅僅是寫出公式算出答案,更重要的是,他們需要將這個(gè)問題還原在生活中,通過自己的思考去想出辦法,并在電腦上進(jìn)行測(cè)試,檢驗(yàn)自己的辦法是否可行。
例如有這樣一個(gè)問題,超市正在做活動(dòng),對(duì)于會(huì)員顧客,消費(fèi)滿1000元的,可以享受8折優(yōu)惠,未滿1000元的,享受9折優(yōu)惠,不是會(huì)員的不打折,應(yīng)該如何讓收銀系統(tǒng)快速判斷客人的消費(fèi)方式?
圖1
如果它僅僅是一道數(shù)學(xué)應(yīng)用題,那么學(xué)生很快就能解出正確答案,而編程學(xué)習(xí)者要做的,則是將問題還原到生活中,去思考如何可以設(shè)計(jì)出一個(gè)程序,讓這個(gè)程序能幫助收銀員在輸入金額時(shí)就自動(dòng)判斷顧客是否為會(huì)員,符合什么樣的折扣,從而更快更好的解決問題,讓收銀員即便在面對(duì)巨大的顧客流時(shí),也可以有條不紊的工作。
因此,每一次的編程,都是一次放手讓學(xué)生自主解決問題的歷練,不斷地讓學(xué)生思考和分析問題,制定適合的解決方案,在這種反復(fù)訓(xùn)練下,學(xué)生的問題解決能力會(huì)得到顯著提升。
2.2 編程學(xué)習(xí)能鍛煉思維縝密性,讓學(xué)生勇于嘗試
初中生考慮問題的方式較為簡(jiǎn)單,在遇到一些相對(duì)復(fù)雜的問題時(shí),第一想法往往是選擇放棄,不愿多做嘗試。即便有少數(shù)人嘗試去解決,也常常難以考慮周全。編程學(xué)習(xí)能有效改善學(xué)生的這種狀態(tài)。
在編程的學(xué)習(xí)過程中,學(xué)習(xí)者若想要解決當(dāng)下的問題,就必須不斷的嘗試各種解決路徑,就像是孩子小時(shí)候玩的走迷宮一樣,此路不通,就原路折回到分岔口另辟蹊徑,這個(gè)過程注定需要學(xué)生不斷嘗試,不斷對(duì)程序進(jìn)行調(diào)試,從而培養(yǎng)學(xué)生勇于嘗試的精神。
此外,學(xué)生在編程過程中,往往難以一次性就解決完整的問題,可能第一次編寫代碼實(shí)現(xiàn)了百分之三十的功能,那么學(xué)生就需要對(duì)當(dāng)下解決方案進(jìn)行“查缺補(bǔ)漏”,思考究竟是哪個(gè)循環(huán)里遺漏了什么或是哪個(gè)地方?jīng)]有考慮到,及時(shí)補(bǔ)充完善,第二次可能就能實(shí)現(xiàn)百分之七十的功能,而后繼續(xù)思考,繼續(xù)完善,在一次次的嘗試中尋找最合適的最優(yōu)解。
學(xué)生若經(jīng)常以這樣的方式進(jìn)行思考,經(jīng)過一定量的刻意練習(xí),就會(huì)形成周全考慮問題的思維習(xí)慣,同時(shí),在面對(duì)實(shí)際問題時(shí),也更愿意從各個(gè)角度進(jìn)行探索和動(dòng)手嘗試。
知乎上曾經(jīng)有人舉了這樣一個(gè)例子來說明編程學(xué)習(xí)者與普通人考慮問題的差異性,就比如生活中簡(jiǎn)單的“買蘋果”這個(gè)問題,普通人在還沒出門前,他的想法一般是:我想買一斤蘋果,其他晚點(diǎn)再說。而編程者的想法則是:1.我要買一斤蘋果,我只喜歡紅富士,我能接受的最高價(jià)格是10元/斤;2.正常情況下一斤蘋果一個(gè)袋子就能裝下,以防萬一,我會(huì)帶兩個(gè)袋子;3.我知道附近的3家水果店,所以我會(huì)依次訪問這三家水果店。
這個(gè)案例雖然頗具調(diào)侃性,但也真實(shí)反映了編程學(xué)習(xí)者的思考習(xí)慣,他們?cè)诳紤]問題時(shí),的確會(huì)比普通人更為周全縝密。
2.3 編程學(xué)習(xí)能培養(yǎng)學(xué)生的抽象思維
著名教育心理學(xué)家林崇徳教授發(fā)現(xiàn),初中二年級(jí)(約13-14歲)是中學(xué)階段抽象思維的質(zhì)變關(guān)鍵期,高中(15-17歲)則是成熟期。[1]成熟前的思維可塑性大,成熟后可塑性小,因此在初中階段設(shè)置合適的課程大力發(fā)展學(xué)生的抽象思維至關(guān)重要,無疑,編程是十分適合的一門課程。
計(jì)算機(jī)程序設(shè)計(jì)需要掌握許多抽象的概念,如數(shù)據(jù)類型,運(yùn)算符,各種語句的用法等,對(duì)初學(xué)者而言,這些概念較為抽象難理解[2],但等到后續(xù)教學(xué)在具體的問題和程序中使用時(shí),學(xué)生對(duì)這些概念的理解就會(huì)化抽象為具體。從抽象到具體的這樣一個(gè)轉(zhuǎn)變,潛移默化地培養(yǎng)了學(xué)生的抽象思維。
同時(shí),編程中有許多問題需要學(xué)生利用抽象思維進(jìn)行思考。例如遞歸算法,有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后問第一個(gè)人,他說是10歲。請(qǐng)問第五個(gè)人多大?對(duì)于初中生而言,這需要經(jīng)過艱難的抽象推理,才能理清楚問題解決的步驟,是對(duì)抽象思維的又一訓(xùn)練。
而代碼編寫的過程,則是對(duì)抽象思維的又一次強(qiáng)化,就以上述年齡的例子來看,遞歸函數(shù)的代碼可以這樣編寫:
int fun(int n)
{
if(n == 1)
return 10;
else if(n>1)
return fun(n-1)+2; //后面每個(gè)人年齡依次在前一人基礎(chǔ)上加2
else
return -1;
}
其中fun(n-1)+2這個(gè)式子在函數(shù)中的寫法,就很需要學(xué)生運(yùn)用抽象思維去理解。
2.4 編程學(xué)習(xí)能培養(yǎng)學(xué)生的創(chuàng)新思維能力
在編程的問題里,解決問題的途徑絕不僅僅只有一條,我們鼓勵(lì)用不同的方式進(jìn)行探索,代碼的編寫沒有固定的標(biāo)準(zhǔn)答案,只要最終能夠解決這個(gè)問題就可以。開放性的要求讓學(xué)生能積極思考,敢于將自己的想法用代碼表達(dá)出來,百花齊放。這樣的環(huán)境常常會(huì)帶來驚喜,學(xué)生會(huì)帶來許多具有創(chuàng)新性的答案。例如單單是判斷一個(gè)數(shù)是否為質(zhì)數(shù)這樣一個(gè)問題,學(xué)生就能用許多種方法解決。
培養(yǎng)學(xué)生的創(chuàng)新思維,不僅僅在于鼓勵(lì)學(xué)生發(fā)散思維,多想法、多途徑的解決問題,還在于幫助學(xué)生打破固化的常規(guī)思維。比如說,在程序代碼中,a=a*2+1,sum=sum+1這樣的式子,或許在平常的數(shù)學(xué)世界里難以成立,但在編程領(lǐng)域卻十分常見,這樣的認(rèn)知能夠拓寬學(xué)生的見識(shí)面,讓他們不再單一地看待事物,讓固化的思維得以解放和活躍,對(duì)培養(yǎng)創(chuàng)新性思維十分有益。
3 結(jié)束語
編程對(duì)學(xué)生的思維發(fā)展和能力提升具備深遠(yuǎn)的意義,具備編程思維和編程能力的人,會(huì)比對(duì)編程一竅不通的人,更具備時(shí)代競(jìng)爭(zhēng)力。
這是一個(gè)渴求交叉型人才的社會(huì),編程學(xué)習(xí)已經(jīng)不再是IT行業(yè)人員的專屬,越來越多的人將其當(dāng)成一項(xiàng)基本必備技能來學(xué)習(xí)。時(shí)代對(duì)具備編程思維人才的訴求也日益增大,美國(guó)政府曾公開表示將投入40億美元支持計(jì)算機(jī)編程發(fā)展,樂高、Facebook等大型公司也先后表明對(duì)編程人才的重視,因此,作為一名中學(xué)教師,培養(yǎng)社會(huì)需要的人才,是為人師者義不容辭的責(zé)任。
參考文獻(xiàn):
[1] 祈進(jìn).程序設(shè)計(jì)對(duì)中學(xué)生創(chuàng)新思維形成的作用[J].廣西教育,2013(42):81-81.
[2] 崔麗芹.淺談C程序教學(xué)對(duì)學(xué)生思維的培養(yǎng)[J].職業(yè),2014 (17):112-112.