摘要:在編程教學(xué)中,教師應(yīng)充分利用信息技術(shù)和編程課程優(yōu)勢,更多地關(guān)注每個學(xué)生不同時期的特質(zhì),分階段循序漸進地讓學(xué)生“自主編程”。通過自主體驗、自主探究、自我規(guī)劃三段式“自主編程”,助力學(xué)生形成自主優(yōu)化意識,掌握自我提升的方法,提升自我規(guī)劃能力,以促進學(xué)生的自主發(fā)展。
關(guān)鍵詞:編程教學(xué);自主發(fā)展;自主體驗;自主探究;自我規(guī)劃
一、什么是“自主編程”
自主是指“自己不受他人支配,是行為的主宰者”,是個體內(nèi)部力量的“自我管理”“自我調(diào)節(jié)”“自我支配”。著名學(xué)者龐維國先生認為,學(xué)生自我意識發(fā)展上的“能學(xué)”、內(nèi)在學(xué)習(xí)動機上的“想學(xué)”、掌握學(xué)習(xí)方法策略上的“會學(xué)”、激發(fā)意志不斷努力上的“堅持學(xué)”構(gòu)成了當前的自主學(xué)習(xí)。自主能力并不是先天遺傳的,而是后天獲得的、趨于穩(wěn)定的目標驅(qū)動。它不需要別人的監(jiān)控,在任何環(huán)境下都能夠?qū)⒛繕伺c自身協(xié)調(diào)配合,從而達到主動判斷、主動選擇、主動承擔。它是對自我的高度掌控,對自身的高效運用。
《中國學(xué)生發(fā)展核心素養(yǎng)》提出,“自主發(fā)展”是“全面發(fā)展的人”這一核心的三個方面之一。黃建煌指出,自主發(fā)展指學(xué)生在逐步學(xué)會自我教育的基礎(chǔ)上的主動發(fā)展,即學(xué)生的獨立性、主動性和創(chuàng)造性得到充分發(fā)揮,產(chǎn)生自覺接受教育的內(nèi)在動機,發(fā)掘自身潛力,明確學(xué)習(xí)的方向,確定人生的目標,實現(xiàn)主動、和諧、全面的發(fā)展。
筆者在多年的編程教學(xué)中不斷探索,從遵循人的發(fā)展規(guī)律培養(yǎng)人才的角度出發(fā),引導(dǎo)學(xué)生通過自主體驗編程的過程,自主探究算法優(yōu)化的原理,自主實踐驗證算法和自主優(yōu)化算法及程序等環(huán)節(jié),經(jīng)歷“自主編程”的學(xué)習(xí)過程。“自主編程”,一方面可以充分激發(fā)學(xué)生學(xué)習(xí)的主動性,培養(yǎng)其自主學(xué)習(xí)的能力,達成自主學(xué)習(xí)目標;另一方面可以促使學(xué)生遷移運用,掌握自我提升的方法,培養(yǎng)自我規(guī)劃的能力,將編程過程中對程序本身的不斷優(yōu)化體會,轉(zhuǎn)變成成長過程中對自身認識和能力的持續(xù)“優(yōu)化”,形成自主發(fā)展的意識和方法。通過“自主編程”,學(xué)生可以逐步實現(xiàn)自覺以自身條件和需求為基礎(chǔ),結(jié)合學(xué)習(xí)內(nèi)容自主制訂學(xué)習(xí)目標和選擇適當學(xué)習(xí)方法,會進行自我評價和自我調(diào)控,從而實現(xiàn)編程知識的螺旋式提升和自身的自主發(fā)展。
二、“自主編程”的教學(xué)探索
筆者縱向研究了探究學(xué)習(xí)模式在編程教學(xué)不同階段的應(yīng)用并進行了優(yōu)化,總結(jié)出了自主體驗、自主探究、自我規(guī)劃三段式“自主編程”探究學(xué)習(xí)進階路徑。
(一)“自主體驗式編程”,引導(dǎo)學(xué)生形成自主優(yōu)化意識
編程是將現(xiàn)實世界和虛擬世界聯(lián)系起來的紐帶之一,現(xiàn)實生活中的大多數(shù)問題,都可以重新闡述為一個可以通過計算機程序解決的問題。
教師可以引導(dǎo)剛進入編程學(xué)習(xí)的學(xué)生,將身邊有趣的、具有挑戰(zhàn)性的問題加以抽象,開展“自主體驗式編程”(流程圖如圖1)。要充分實現(xiàn)教育目標和要求,必須通過內(nèi)因產(chǎn)生作用,激發(fā)受教育者內(nèi)在的積極性、主動性與自覺性。正如積極心理學(xué)所強調(diào)的,通過關(guān)注與激發(fā)個體優(yōu)秀品質(zhì)與潛能,來促進其自我完善、修復(fù)與發(fā)展,應(yīng)對外部環(huán)境變化。學(xué)生在開展“自主體驗式編程”中,親身體驗和經(jīng)歷解決問題的過程,主動學(xué)習(xí)新知識,探究算法形成和優(yōu)化的原理,進而形成自主優(yōu)化意識。這是引導(dǎo)學(xué)生開展探究學(xué)習(xí)的初始階段。教師可以采用項目、任務(wù)、活動和實驗等多種教學(xué)策略和方法,設(shè)計典型教學(xué)案例,重點讓學(xué)生通過看、聽、說、做、思等途徑初步了解探究學(xué)習(xí)的基本方法,規(guī)范探究學(xué)習(xí)的操作過程,嘗試認識自我,學(xué)會比較和評價,明晰成長的方向。
例如,教學(xué)“二分查找算法”時,教師通過“猜價格”游戲,引導(dǎo)學(xué)生開展“自主體驗式編程”。教學(xué)過程如下:
1.試玩“猜價格”游戲。教師告訴學(xué)生鋼筆的價格是不超過20元的整數(shù),讓他們猜鋼筆的真實價格。如果學(xué)生沒有猜對,教師提示他猜的價格是高了,還是低了,然后學(xué)生根據(jù)提示再繼續(xù)猜,直到猜中價格。
2.師生互換角色,學(xué)生設(shè)定價格,教師(或其他同學(xué))來猜,在游戲中深度思考。
3.學(xué)生發(fā)現(xiàn)教師(同學(xué))猜得快的秘密,梳理他們猜價格的過程,并描述其步驟。第一次總是猜10,如果提示低了,就再猜15,如果提示高了,就再猜5,即每次猜的數(shù)都是某個范圍內(nèi)的中間數(shù)。用這樣的方法,最多四次就可以猜對價格。
4.比較兩種查找算法,并嘗試設(shè)計程序完成小項目“猜價格游戲”。
在設(shè)計項目程序時,由于能力差異,有的學(xué)生能迅速理清思路,編寫出正確程序,有些學(xué)生編寫的程序可能會出現(xiàn)問題,需要反復(fù)調(diào)試。由于學(xué)生實踐的都是自己設(shè)計的代碼,所以他們不會輕易放棄,會在老師和同學(xué)的幫助下,不斷糾錯,最終體驗到完成任務(wù)的成就感。這樣,學(xué)生會覺得學(xué)習(xí)是輕松有趣的,會更有信心去解決問題,會更勇敢地表達自己的想法,并且勇于實踐自己設(shè)計的算法。學(xué)生運用已有知識和經(jīng)驗進行遷移,在自主體驗中嘗試解決問題,在深入思考后構(gòu)建新知識,在不同算法的比較中理解優(yōu)化的含義,初步形成自主優(yōu)化意識。
(二)“自主探究式編程”,促使學(xué)生掌握自我提升的方法
自我提升也被稱為自我增強、自我提高,是心理學(xué)研究者公認的自我評價中普遍存在的一種傾向。泰勒等在“肯定錯覺”(positive illusion)理論中提出,自我提升是指個體用有利于對自身作出正面評價的方式,收集和解釋有關(guān)自我的信息。它其實是個體對自身相關(guān)信息進行認知評定時出現(xiàn)的一種積極偏向,是人們實現(xiàn)和維持良好自我感覺的一種方式。編程學(xué)習(xí)通常貫穿著一個接一個問題的解決,解決方案的優(yōu)劣可以通過程序運行的結(jié)果來檢測。測試數(shù)據(jù)的通過率,程序運行速度,以及程序所占用的內(nèi)存資源,是評價程序優(yōu)劣的主要標準。這些評價過程的可視化程度非常高,強烈刺激學(xué)生將優(yōu)化算法的努力過程與所獲成效建立緊密聯(lián)系;推動他們收集相關(guān)信息,對自身的行為和方法作出正面評價;促使他們將優(yōu)化算法的思路方法遷移至日常學(xué)習(xí)和生活中,逐步掌握科學(xué)規(guī)劃時間、合理組織和利用空間、提高做事效率等自我提升的方法。
學(xué)生通過一段時間“自主體驗式編程”的學(xué)習(xí),會具備一定的編程基礎(chǔ)知識和一定的自主學(xué)習(xí)的方法,即可進入“自主探究式編程”(流程圖如圖2)階段。本階段主要是教師安排具體的項目和主題來組織學(xué)生開展探究。教師要注意提供給學(xué)生獨立思考、主動探究和合作學(xué)習(xí)的機會,讓他們使用更開放的學(xué)習(xí)資源,大膽假設(shè)、謹慎驗證、加強合作,在不斷試錯、糾錯、自我認可和取長補短中學(xué)會定位自身。同時,教師需把握住教育契機,引導(dǎo)學(xué)生通過優(yōu)化程序的過程,努力改善自己的思維缺陷和學(xué)習(xí)習(xí)慣,使算法優(yōu)化與自我提升相得益彰。在不斷優(yōu)化算法的過程中,學(xué)生更深入地理解“以時間換空間” “挖掘數(shù)據(jù)的性質(zhì)建立關(guān)聯(lián)”等計算思維。這將潛移默化地影響學(xué)生的成長,讓他們的思維更靈活,思路更開闊,更具創(chuàng)新能力。經(jīng)歷不斷優(yōu)化算法的學(xué)習(xí)過程,能夠促進學(xué)生樹立“其他事情也可以越做越好”“每個人都可以不斷進步”的信念。
例如,教師引導(dǎo)學(xué)生開展“自主體驗式編程”《解決“八皇后”問題的算法》的過程如下:
1.教師首先布置探究主題“解決‘八皇后問題的算法”:將n個皇后放置在n行n列的棋盤上,并且使皇后彼此之間不能相互攻擊,即任意兩個皇后不能在同一行、同一列和同一對角線上,計算不同的擺放方案數(shù)。接著,引導(dǎo)學(xué)生明確探究的思路,即從小規(guī)模的問題開始,由易及難,循序漸進,逐步擴大規(guī)模。教師可以將探究的主題劃分為若干層次的子任務(wù)加以呈現(xiàn),并提供給學(xué)生學(xué)習(xí)資源,指導(dǎo)學(xué)生從網(wǎng)絡(luò)上獲取更多有效學(xué)習(xí)資源的方法。
2.在任務(wù)記錄表的指引下,學(xué)生組成小組展開合作探究學(xué)習(xí)。任務(wù)記錄表包括數(shù)據(jù)規(guī)模、主要算法、時間復(fù)雜度分析、算法來源、探究學(xué)習(xí)時間、疑難問題、收獲感悟和主要負責人等內(nèi)容,確保學(xué)生沿著正確的方向開展探究,保障探究學(xué)習(xí)的效率。教師適時查看學(xué)生的任務(wù)記錄表,了解學(xué)生學(xué)習(xí)的進度以及存在的困難,并提供必要的幫助。
3.探究學(xué)習(xí)交流匯報。教師組織或者直接由學(xué)生主持匯報會,各小組介紹探究學(xué)習(xí)成果,回憶并分享印象最深刻的學(xué)習(xí)過程、收獲和存在的困難,其他小組適時地評價和補充。教師根據(jù)匯報的內(nèi)容進行點評,也可引導(dǎo)學(xué)生發(fā)現(xiàn)新的問題,啟發(fā)優(yōu)化算法的思路。通過仔細分析數(shù)據(jù)和充分利用關(guān)聯(lián),幫助學(xué)生找到算法優(yōu)化的切入口,并引導(dǎo)他們聯(lián)系現(xiàn)實生活,將數(shù)據(jù)聚集、存放遷移至生活中物品的分類管理,將自動化求解思維遷移至問題解決過程的有序化,將加強數(shù)據(jù)間的聯(lián)系遷移至構(gòu)建學(xué)科知識網(wǎng)絡(luò),促使學(xué)生逐步形成可理解、可操作的自我提升思路。
在探究學(xué)習(xí)的過程中,不同的學(xué)生表現(xiàn)出明顯的差異性。比如,所有小組都成功地通過想象模擬出了4個棋子的擺放,并用窮舉算法解決了問題。有一半的小組能探究到第二個層次,用搜索算法解決8個棋子的問題。有學(xué)生在搜索資源的過程中了解到更多信息,如數(shù)學(xué)家高斯當時在計算“八皇后”問題時多算了兩種情況。還有的學(xué)生發(fā)現(xiàn)了多種不同的程序代碼。學(xué)生通過程序與他人進行跨越時空的交流,這種獨特的交流方式讓他們進一步了解到自己在編程學(xué)習(xí)中的優(yōu)勢和劣勢,幫助他們學(xué)會自我評價和定位。少部分小組在教師的引導(dǎo)下,更是積極地嘗試探究位運算優(yōu)化算法以解決更大規(guī)模的棋盤問題。在交流匯報中,其他小組成員被這種算法的高效所震驚,并有所觸動。最終,教師演示“舞蹈鏈(Dancing Links)算法”。
通過這樣的過程,學(xué)生體會到學(xué)習(xí)的永無止境和精益求精的科學(xué)精神,從而在生活和其他學(xué)習(xí)領(lǐng)域中也不斷探尋優(yōu)化空間,不斷追求卓越。小組合作探究的學(xué)習(xí)模式促進了學(xué)生之間的交往,使學(xué)生在交流與合作中學(xué)會發(fā)現(xiàn)自我、評價自我、調(diào)控自我、完善自我,實現(xiàn)自我提升。
教師在教學(xué)過程中如果輕易將他人的算法和程序“灌輸”給學(xué)生,表面上看,學(xué)生解決問題的速度加快了;實際上,這將導(dǎo)致學(xué)生對問題的本質(zhì)分析不透徹,對所用算法的理解不深入。久而久之,學(xué)生會對算法設(shè)計和程序編寫產(chǎn)生畏難情緒,嚴重影響他們的編程學(xué)習(xí)興趣和進展。編程教學(xué)環(huán)境的開放,為學(xué)生的自主探究提供了有利條件。一方面,現(xiàn)代計算機和網(wǎng)絡(luò)技術(shù)的發(fā)展,有利于學(xué)生獲取大量開放的學(xué)習(xí)資源,有助于學(xué)生開展“自主探究式編程”;另一方面,在編程過程中,學(xué)生可以大膽將自己的想法在計算機上進行驗證,學(xué)習(xí)理論與實踐驗證同步發(fā)展,快速便捷地進行優(yōu)劣對比和自我評價。
通過這樣的自主探究學(xué)習(xí)過程,充分調(diào)動學(xué)生思考和實踐的積極性,促進學(xué)生的思維向深度發(fā)展。學(xué)生的計算思維和解決問題的能力在不斷地自我評價、自我糾錯、相互比較和自我定位過程中得以提升,從而為他們的自主發(fā)展打下堅實的基礎(chǔ)。
(三)“自我規(guī)劃式編程”,提升學(xué)生的自主規(guī)劃能力
在學(xué)生具備較高水準自主學(xué)習(xí)能力的前提下,教師可引領(lǐng)他們開展第三階段“自我規(guī)劃式編程”(流程圖如圖3)學(xué)習(xí),允許他們自行選擇合適的學(xué)習(xí)內(nèi)容、制訂學(xué)習(xí)計劃、展開探究學(xué)習(xí)。教師要注意引導(dǎo)學(xué)生記錄學(xué)習(xí)過程,定期梳理和歸納,并積極反思學(xué)習(xí)中存在的問題,開展自我評價和調(diào)整,使學(xué)習(xí)的規(guī)劃越來越完善,提升自主規(guī)劃能力。
本階段,教師引導(dǎo)學(xué)生探究的問題往往不是某一個具體的題目,而是給出一個探究方向或?qū)n},探究某一類問題的解決方案,如圖的最短路問題、樹的直徑問題等。此類問題本身具有較強的延展性,并且可以采用多種方法建模和實現(xiàn),利于學(xué)生用更廣闊的視角規(guī)劃、對比、反思和歸納,提升綜合運用知識解決問題的能力。教師也可以讓學(xué)生針對某個專題知識進行復(fù)習(xí)和總結(jié),如動態(tài)規(guī)劃算法的優(yōu)化方法、分塊思想的應(yīng)用等,引導(dǎo)學(xué)生自主構(gòu)建更全面的知識網(wǎng)絡(luò)。
例如,當學(xué)生學(xué)習(xí)了線段樹、ST表、分塊等數(shù)據(jù)結(jié)構(gòu)后,教師可以給出RMQ問題,讓學(xué)生探究其解決方法。RMQ (Range Minimum/Maximum Query)問題是指,對于長度為n的數(shù)列A,回答若干詢問RMQ(A,i,j)(i,j<=n),返回數(shù)列A中下標在i,j里的最?。ù螅┲?,即求區(qū)間最值問題。學(xué)生在教師的引導(dǎo)和學(xué)習(xí)資源的支撐下,從樸素的搜索算法到基于動態(tài)規(guī)劃算法的ST表,再到基于分治算法的線段樹和樹狀數(shù)組,既對各種算法進行了橫向聯(lián)系和比較,又對數(shù)據(jù)結(jié)構(gòu)的重要性有了更深入的理解。
“學(xué)后總結(jié)評價”是本階段的重要環(huán)節(jié),教師可以讓學(xué)生圍繞探究的問題制作PPT匯報學(xué)習(xí)過程和收獲,或者指導(dǎo)學(xué)生撰寫某一專題的小論文。整個學(xué)習(xí)過程由學(xué)生自主規(guī)劃和實施,教師只在學(xué)生求助時才提供必要的幫助。學(xué)生在自主完成前一個學(xué)習(xí)任務(wù)之后,自行發(fā)現(xiàn)新問題或在教師引導(dǎo)下將問題升級,生成一個待解決的新問題。如此循環(huán)迭代,促進自身優(yōu)化舊知識和構(gòu)建新知識,形成螺旋式提升。學(xué)生在“自我規(guī)劃式編程”學(xué)習(xí)過程中,更清晰地知道自己的優(yōu)勢和短板,也更能把控自己的學(xué)習(xí)過程,逐漸確立探究方向,逐步走向自主發(fā)展。
在編程教學(xué)中,教師應(yīng)充分利用信息技術(shù)和編程課程優(yōu)勢,更多地關(guān)注每個學(xué)生不同時期的特質(zhì),分階段循序漸進地實施“自主編程”,幫助學(xué)生形成自主優(yōu)化意識,生成自我提升的方法,提升自我規(guī)劃能力,促進自主發(fā)展。
參考文獻:
[1] 龐維國.自主學(xué)習(xí):學(xué)與教的原理和策略[M].上海:華東師范大學(xué)出版社,2003.
[2] 劉家春.高中數(shù)學(xué)自主學(xué)習(xí)的探究[D].武漢:華中師范大學(xué),2012.
[3] 黃建煌.基于核心素養(yǎng)的學(xué)生自主發(fā)展能力培養(yǎng)探賾[J].成才之路,2020(17).
[4] 連惠薌.積極心理學(xué)視域下自我教育優(yōu)化的心理機制[J].中學(xué)政治教學(xué)參考,2018(18).
[5] 荊曉虹.“自主體驗、自主探究、自我規(guī)劃”三段式探究學(xué)習(xí)模式在中學(xué)編程教育中的實踐與探索[J]. 中國信息技術(shù)教育,2020(5/6).
[6] 董玉琦,等.學(xué)習(xí)技術(shù)研究導(dǎo)論[M].北京:教育科學(xué)出版社,2020.
[7] 張進輔.現(xiàn)代青年心理學(xué)[M].重慶:重慶出版社,2002.