湯蓉
項(xiàng)目式學(xué)習(xí)是近年來(lái)教學(xué)實(shí)踐的熱點(diǎn)之一。程序設(shè)計(jì)一直被認(rèn)為是最接近信息技術(shù)學(xué)科思維本質(zhì)的模塊,在新版高中信息技術(shù)教材中Python編程所占比例更是大幅上升。筆者對(duì)江蘇省姜堰中學(xué)、泰州市第二中學(xué)、南師附中、靖江高級(jí)中學(xué)等十多所高中的編程教學(xué)情況進(jìn)行了問(wèn)卷調(diào)研,統(tǒng)計(jì)結(jié)果顯示:過(guò)去五年里,僅有27%的高中信息技術(shù)教師在編程教學(xué)中實(shí)踐過(guò)項(xiàng)目式學(xué)習(xí),環(huán)節(jié)流程設(shè)計(jì)也并不完整;大部分教師花費(fèi)較多的時(shí)間在講解基本語(yǔ)法語(yǔ)句上,實(shí)踐任務(wù)內(nèi)容單一,只針對(duì)高二學(xué)業(yè)水平測(cè)試涉及的零散知識(shí)點(diǎn)進(jìn)行編程練習(xí);學(xué)生除了感覺(jué)到程序語(yǔ)句的規(guī)范嚴(yán)謹(jǐn),掌握幾個(gè)知識(shí)點(diǎn)外,缺乏系統(tǒng)化、邏輯化的思維方式去思考和解決問(wèn)題,對(duì)程序設(shè)計(jì)的意義和樂(lè)趣沒(méi)有體會(huì),往往望而卻步、失去興趣。因此在程序設(shè)計(jì)模塊中,該如何落實(shí)項(xiàng)目式學(xué)習(xí),成為亟待研究的問(wèn)題。
項(xiàng)目式學(xué)習(xí)與工程思維的內(nèi)涵及聯(lián)系
所謂項(xiàng)目式學(xué)習(xí)(project-based learning,簡(jiǎn)稱(chēng)PBL)是指師生共同實(shí)施一個(gè)完整的項(xiàng)目工作,以項(xiàng)目為主線(xiàn),以學(xué)生為主體,教師引導(dǎo)學(xué)生主動(dòng)探索現(xiàn)實(shí)問(wèn)題,獲得更深刻的知識(shí)和技能。簡(jiǎn)單說(shuō),就是提出問(wèn)題(老師提出或?qū)W生自己提出)并解決問(wèn)題(學(xué)生設(shè)計(jì)方案和實(shí)施,常采用小組分工,合作完成)。項(xiàng)目式學(xué)習(xí)有兩個(gè)關(guān)鍵點(diǎn):一個(gè)引發(fā)活動(dòng)的問(wèn)題或難題;學(xué)生自主創(chuàng)造出一個(gè)現(xiàn)實(shí)成果來(lái)回答問(wèn)題或解決問(wèn)題。
而現(xiàn)實(shí)中的工程實(shí)施也是從實(shí)際生活出發(fā),以?xún)r(jià)值為導(dǎo)向,以造物為實(shí)踐目標(biāo)。工程師對(duì)于工程活動(dòng)的認(rèn)識(shí)過(guò)程和解決問(wèn)題中所采取的方式、方法,對(duì)于項(xiàng)目式學(xué)習(xí)中學(xué)生的思維方法具有引導(dǎo)和借鑒意義。所謂工程思維,從殷瑞鈺、李伯聰?shù)葘W(xué)者提出的工程本體論出發(fā),是基于對(duì)工程自身結(jié)構(gòu)、運(yùn)作和發(fā)展規(guī)律的理性觀察,從而認(rèn)識(shí)、判斷事物并籌劃新的項(xiàng)目,著力于構(gòu)建理想化人工系統(tǒng)的一種思維方式。工程思維要統(tǒng)籌工程與環(huán)境、與人類(lèi)社會(huì)的相互關(guān)系,避免單純從技術(shù)的角度考慮問(wèn)題,因此,它與科學(xué)思維、技術(shù)思維既相互融合,又互有區(qū)別。
工程思維對(duì)于程序設(shè)計(jì)學(xué)習(xí)的意義
了解工程項(xiàng)目的設(shè)計(jì)思路和理念,用工程思維的方式引領(lǐng)高中程序設(shè)計(jì)教學(xué),可以讓學(xué)生站在一個(gè)軟件工程師的角度,思考如何分析項(xiàng)目、設(shè)計(jì)方案,需要解決哪些問(wèn)題等,把程序設(shè)計(jì)的知識(shí)點(diǎn)融入項(xiàng)目設(shè)計(jì)中,這種方式能真正激發(fā)學(xué)生的興趣,使得學(xué)生帶著問(wèn)題學(xué)習(xí),設(shè)計(jì)方案、解決問(wèn)題,而不是生硬理解算法語(yǔ)句。
1.工程思維的全局觀有助于形成系統(tǒng)化思維
作為工程活動(dòng)的主體,工程師需要考慮工程與環(huán)境、與人類(lèi)社會(huì)的相互關(guān)系,需要從系統(tǒng)論的視角,綜合全面地提出問(wèn)題,對(duì)工作步驟進(jìn)行排序與調(diào)整,判斷工作成果的優(yōu)劣等,因此工程思維在項(xiàng)目起步的階段就要大致構(gòu)建出整個(gè)框架,然后逐步添加功能。而程序設(shè)計(jì)在動(dòng)手編寫(xiě)代碼之前,需要從實(shí)際應(yīng)用的角度,綜合考慮編程項(xiàng)目的功能和價(jià)值,邏輯化地思考方案設(shè)計(jì)。對(duì)于編程項(xiàng)目,線(xiàn)性思維往往是想到哪寫(xiě)到哪,中途某個(gè)功能或代碼段的修改會(huì)導(dǎo)致很多工作推到重來(lái)。因此在編程學(xué)習(xí)中,首先要讓學(xué)生理解工程思維的全局觀,系統(tǒng)整體地思考問(wèn)題,而不是一開(kāi)始就設(shè)計(jì)變量、列表、模塊化等小問(wèn)題。
2.工程思維的實(shí)踐觀有助于提高自學(xué)能力
工程思維的目標(biāo)是為了造物,工程問(wèn)題大多不能通過(guò)單一學(xué)科理論解決,經(jīng)常用到超前的學(xué)科知識(shí)以及其他學(xué)科知識(shí),這些知識(shí)短時(shí)間內(nèi)不可能有老師來(lái)教,甚至以后也沒(méi)有人教,這就需要學(xué)生發(fā)揮自身的主觀能動(dòng)性,查閱資料,自主學(xué)習(xí)。在自學(xué)知識(shí)的過(guò)程中,讓相關(guān)的未知知識(shí)與現(xiàn)有知識(shí)進(jìn)行聯(lián)系、類(lèi)比,從各個(gè)角度、各個(gè)層次對(duì)項(xiàng)目功能和方案進(jìn)行觀察、分析和研究。因此,經(jīng)歷一個(gè)完整的工程項(xiàng)目,思維方式會(huì)發(fā)生質(zhì)的飛躍,有助于培養(yǎng)學(xué)生的自學(xué)能力,開(kāi)拓新思路。
3.工程思維的邏輯觀有助于培養(yǎng)抽象建模能力
工程項(xiàng)目的實(shí)施需要將理論知識(shí)邏輯性很強(qiáng)地應(yīng)用到生活實(shí)踐中,借助于已掌握的理論知識(shí)展開(kāi)想象、假設(shè)、推理和證明,通過(guò)甄別、聯(lián)系、排除,從而篩選出能夠應(yīng)用到的理論知識(shí),達(dá)到解決實(shí)際問(wèn)題的目的。項(xiàng)目方案設(shè)計(jì)的過(guò)程,需要學(xué)生從具體豐富的信息中提取關(guān)鍵信息,通過(guò)對(duì)所選用的科學(xué)知識(shí)的計(jì)算、驗(yàn)證、比較,從而制定出符合實(shí)際的工程方案,并建立模型,這個(gè)過(guò)程就是培養(yǎng)學(xué)生抽象建模的能力,而抽象化思維也是計(jì)算思維的本質(zhì)之一。
4.工程思維的回溯觀有助于自我評(píng)價(jià)和反思
工程在實(shí)施過(guò)程中,需要借助技術(shù)知識(shí)對(duì)制定的工程方案進(jìn)行模擬或?qū)嶋H操作,對(duì)科學(xué)知識(shí)再推理、證明、反問(wèn),常常需要回到上一步進(jìn)行修改和完善,這是工程思維很重要的回溯特點(diǎn)。在編程項(xiàng)目中繪制流程圖、編寫(xiě)代碼的過(guò)程中,也需要有意識(shí)地對(duì)前面步驟進(jìn)行推理和驗(yàn)證,對(duì)于不斷出現(xiàn)的新問(wèn)題,需要回溯到前面去修改功能、方案和代碼,直到這個(gè)程序最終實(shí)現(xiàn)我們的應(yīng)用需求。教師要善用測(cè)試、驗(yàn)證的步驟,來(lái)設(shè)計(jì)評(píng)價(jià)和反饋,及時(shí)促進(jìn)學(xué)生的自我評(píng)價(jià)和反思,優(yōu)化項(xiàng)目式學(xué)習(xí)的成果。
工程思維視角下,構(gòu)建項(xiàng)目式學(xué)習(xí)的策略
用工程思維引領(lǐng)程序設(shè)計(jì)的項(xiàng)目式學(xué)習(xí),首先要?jiǎng)?chuàng)設(shè)真實(shí)情境,讓學(xué)生思考如何設(shè)計(jì)一個(gè)有實(shí)用價(jià)值的產(chǎn)品,考慮它的功能性、創(chuàng)新性、可執(zhí)行性,然后設(shè)計(jì)方案,在項(xiàng)目方案執(zhí)行過(guò)程中,再思考需要解決的問(wèn)題。下面以程序設(shè)計(jì)中的函數(shù)一節(jié),“錢(qián)包管理小助手——可以復(fù)用的代碼”為例,具體闡述工程思維引領(lǐng)的項(xiàng)目式教學(xué)策略。教學(xué)流程如圖1所示。
1.從真實(shí)情境出發(fā),引入項(xiàng)目
工程思維是以創(chuàng)造價(jià)值、造物為目標(biāo)的思維方式,這一點(diǎn)恰恰是傳統(tǒng)教育教學(xué)所缺失的,因此教師在設(shè)計(jì)選擇項(xiàng)目時(shí),需要從學(xué)生的實(shí)際生活出發(fā),確定符合實(shí)際需求的項(xiàng)目,創(chuàng)設(shè)情境,激發(fā)學(xué)生研究的興趣,培養(yǎng)產(chǎn)品意識(shí)。
從生活中選取項(xiàng)目的出發(fā)點(diǎn):(1)避免重復(fù)勞動(dòng)的項(xiàng)目。從生活中存在的重復(fù)瑣碎、經(jīng)常要做的事情入手,如班上每天統(tǒng)計(jì)每門(mén)功課的上交情況、Excel中幾個(gè)功能經(jīng)常一起重復(fù)等,這時(shí)就可以把它開(kāi)發(fā)為項(xiàng)目。(2)解決實(shí)際難題。要多了解學(xué)生,發(fā)現(xiàn)他們需要解決的生活中或身邊的難題,這些感同身受的問(wèn)題項(xiàng)目,會(huì)激發(fā)起學(xué)生的研究興趣和創(chuàng)新意識(shí)。而這兩類(lèi)項(xiàng)目來(lái)源,都需要教師注重平時(shí)的積累和記錄,結(jié)合學(xué)科核心素養(yǎng)要求,融合相應(yīng)章節(jié)的知識(shí)點(diǎn),從而成為好的項(xiàng)目式素材。
在“錢(qián)包管理小助手”這節(jié)課中,我通過(guò)校園不良信貸的屢屢發(fā)生,突出學(xué)生管理好零花錢(qián)的重要性來(lái)創(chuàng)設(shè)情境,從而提出設(shè)計(jì)一款能輕松管賬的工具,解決零花錢(qián)管理的問(wèn)題。同時(shí)演示智能音箱“天貓精靈”的便捷有趣,提出能不能優(yōu)化智能音箱的功能,輕松管理零花錢(qián)。這樣設(shè)計(jì)的目的在于激發(fā)學(xué)生興趣,更能通過(guò)智能音箱的功能改進(jìn),培養(yǎng)學(xué)生的數(shù)字化學(xué)習(xí)和創(chuàng)新能力,并培養(yǎng)財(cái)商。
2.提出非良構(gòu)問(wèn)題,分析項(xiàng)目功能
工程項(xiàng)目中面臨的大多是非良構(gòu)問(wèn)題,存在于具體的情境中,問(wèn)題邊界很難明確界定,需要對(duì)大量信息進(jìn)行提煉抽象,抽取出關(guān)鍵因素,才能設(shè)計(jì)生成解決方案,方案也不是唯一的。非良構(gòu)問(wèn)題的開(kāi)放度是項(xiàng)目分析環(huán)節(jié)的重點(diǎn),教師在這個(gè)環(huán)節(jié)可以引導(dǎo)學(xué)生換位思考,從使用者的角度對(duì)產(chǎn)品功能進(jìn)行分析,如在“錢(qián)包管理小助手”項(xiàng)目中,設(shè)置討論問(wèn)題:你覺(jué)得哪些設(shè)計(jì)可以幫助你管理好零花錢(qián),做到心中有數(shù)?你希望“錢(qián)包管理小助手”具有哪些功能?引導(dǎo)學(xué)生,從眾多信息和可能性中概括出自己想要的功能,并梳理表達(dá)出來(lái),教師在小結(jié)時(shí),要給出足夠的開(kāi)放性空間,不要界定標(biāo)準(zhǔn)答案。在對(duì)項(xiàng)目功能的梳理和提煉中培養(yǎng)學(xué)生的抽象思維和創(chuàng)新能力。
3.找出關(guān)鍵點(diǎn)問(wèn)題,設(shè)計(jì)解決方案
教師設(shè)計(jì)項(xiàng)目式學(xué)習(xí),必須運(yùn)用與學(xué)生思考過(guò)程相反的逆向思維,即在理解學(xué)科大概念的基礎(chǔ)上,結(jié)合每個(gè)單元的內(nèi)容,找到其中隱含的問(wèn)題,將問(wèn)題置身于真實(shí)情境中,從而找到表現(xiàn)性任務(wù)。在項(xiàng)目設(shè)計(jì)環(huán)節(jié),針對(duì)上一步提煉出的項(xiàng)目產(chǎn)品功能,教師要設(shè)計(jì)關(guān)鍵點(diǎn)問(wèn)題,讓學(xué)生討論設(shè)計(jì)解決方案,并進(jìn)行抽象建模,在這個(gè)過(guò)程中培養(yǎng)學(xué)生的計(jì)算思維能力。
如何找到項(xiàng)目功能中的關(guān)鍵點(diǎn)問(wèn)題,在于將學(xué)生提出的功能梳理為幾個(gè)方面,找到相通的關(guān)鍵點(diǎn),結(jié)合本節(jié)的知識(shí)內(nèi)容,轉(zhuǎn)為進(jìn)一步的表現(xiàn)性任務(wù)。如在“錢(qián)包管理小助手”項(xiàng)目中,梳理學(xué)生提出的功能,無(wú)論是超額提醒,還是查詢(xún)賬目,都要用到的關(guān)鍵問(wèn)題是如何求已支出總額。針對(duì)這個(gè)關(guān)鍵點(diǎn)問(wèn)題,讓學(xué)生思考解決方案,設(shè)計(jì)代碼。接著提出,每次要調(diào)用已支出總額,是否都要復(fù)制粘貼這段代碼?如果修改要改幾次?由學(xué)生思考,從而引出函數(shù)的作用之一,方便多次調(diào)用。整個(gè)方案設(shè)計(jì)過(guò)程,都是學(xué)生自己發(fā)現(xiàn)問(wèn)題、解決問(wèn)題,教師只作適當(dāng)小結(jié)和引導(dǎo)。
4.重視程序的測(cè)試和完善,開(kāi)展過(guò)程性評(píng)價(jià)
對(duì)于程序員來(lái)說(shuō),測(cè)試程序,發(fā)現(xiàn)bug,返回修改,是一個(gè)經(jīng)常必須的步驟。教師要善于運(yùn)用程序的測(cè)試,設(shè)計(jì)問(wèn)題,培養(yǎng)學(xué)生的回溯思維習(xí)慣。如在“錢(qián)包管理小助手”項(xiàng)目中,主要程序編寫(xiě)完成后,由學(xué)生自己或者互相測(cè)試程序,發(fā)現(xiàn)程序bug:添加的金額沒(méi)有保存到列表中,數(shù)據(jù)丟失。這時(shí)小組思考討論原因,搜索解決辦法,引出調(diào)用現(xiàn)成函數(shù)open。于是回到前面,修改完善流程圖和程序,才實(shí)現(xiàn)了該項(xiàng)目的主要功能。這個(gè)過(guò)程性評(píng)價(jià)的設(shè)計(jì)與及時(shí)反饋?zhàn)寣W(xué)生體驗(yàn)了工程思維的回溯思想,同時(shí)也說(shuō)明,要開(kāi)發(fā)一個(gè)好的項(xiàng)目,除了自己設(shè)計(jì),也常用到別人共享的函數(shù)。從而真正理解Python作為開(kāi)源軟件的初衷:“君子不器,成己達(dá)人”“君子性非異也,善假于物也”。
工程思維為信息技術(shù)教學(xué)活動(dòng)的設(shè)計(jì)提供了一個(gè)新視角,對(duì)于教學(xué)理論與學(xué)習(xí)實(shí)踐的關(guān)系解答也提供了一種新的思維方式。但是工程思維同樣存在局限性,價(jià)值取向和量化對(duì)于項(xiàng)目環(huán)節(jié)的引導(dǎo)作用要適度,了解工程思維的運(yùn)行機(jī)制,積極導(dǎo)向,避免副作用的同時(shí),才能更好地發(fā)揮出工程思維的建設(shè)性作用和實(shí)踐價(jià)值。
參考文獻(xiàn)
李伯聰. 努力向工程哲學(xué)領(lǐng)域開(kāi)拓[J]. 自然辯證法研究,2019(7): 36-39.
趙致琢. 關(guān)于計(jì)算機(jī)科學(xué)與技術(shù)認(rèn)知問(wèn)題的研究簡(jiǎn)報(bào)[J]. 計(jì)算機(jī)研究與發(fā)展,2001(1): 1-15.
王榮良. 機(jī)器人教育與工程思維關(guān)系之研究[J]. 中國(guó)教育信息化,2008(24): 27-29.