摘要:本文基于計(jì)算思維三維框架(計(jì)算概念、計(jì)算實(shí)踐、計(jì)算觀念)和任務(wù)驅(qū)動(dòng)法的任務(wù)分類(封閉性任務(wù)、半開(kāi)放性任務(wù)、開(kāi)放性任務(wù))構(gòu)建面向計(jì)算思維培養(yǎng)的任務(wù)驅(qū)動(dòng)式編程教學(xué)模型,并以“火柴棒擺數(shù)字”問(wèn)題為例進(jìn)行編程實(shí)踐。實(shí)踐證明,通過(guò)該模型進(jìn)行教學(xué)對(duì)學(xué)生的計(jì)算思維有一定的促進(jìn)作用。
關(guān)鍵詞:計(jì)算思維;任務(wù)驅(qū)動(dòng);Python編程
中圖分類號(hào):G434 文獻(xiàn)標(biāo)識(shí)碼:A 論文編號(hào):1674-2117(2024)24-0058-04
問(wèn)題的提出
隨著《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)》的落地,計(jì)算思維的培養(yǎng)和貫徹已成為全學(xué)段的教學(xué)目標(biāo)。因此,信息技術(shù)課程應(yīng)從“知識(shí)本位”轉(zhuǎn)變成“育人為本”[1],不再僅僅注重操作性的知識(shí)習(xí)得,更要注重培養(yǎng)學(xué)生的核心素養(yǎng),特別是在編程教育中培養(yǎng)計(jì)算思維能力顯得尤為重要。
具身認(rèn)知理論認(rèn)為,學(xué)習(xí)是一個(gè)心智、身體與環(huán)境間保持動(dòng)態(tài)平衡的過(guò)程,強(qiáng)調(diào)認(rèn)知的情境性和身體性。[2]因此,在高中信息技術(shù)課堂教學(xué)中,教師應(yīng)創(chuàng)設(shè)真實(shí)的問(wèn)題情境,并設(shè)計(jì)層層遞進(jìn)的實(shí)踐任務(wù),幫助學(xué)生形成連貫的學(xué)習(xí)內(nèi)容和提升計(jì)算思維能力。而信息技術(shù)課程中最常用的教學(xué)方法是任務(wù)驅(qū)動(dòng)法,即學(xué)生根據(jù)恰當(dāng)?shù)娜蝿?wù)設(shè)置,在協(xié)作探究式學(xué)習(xí)中激活思維,運(yùn)用已有的知識(shí)技能并結(jié)合新的知識(shí)去完成任務(wù)。所以,面向計(jì)算思維培養(yǎng)的任務(wù)驅(qū)動(dòng)式教學(xué)就是為了使學(xué)生在真實(shí)的問(wèn)題情境中學(xué)習(xí),通過(guò)實(shí)踐任務(wù)形成連貫的知識(shí)體系,并在解決問(wèn)題的過(guò)程中發(fā)展計(jì)算思維能力,為學(xué)生的終身學(xué)習(xí)和未來(lái)職業(yè)發(fā)展奠定堅(jiān)實(shí)的基礎(chǔ)。
教學(xué)模型構(gòu)建
1.計(jì)算思維的三維框架
在教育教學(xué)過(guò)程中,對(duì)教學(xué)目標(biāo)的設(shè)定往往圍繞知識(shí)與技能、過(guò)程與方法、情感態(tài)度與價(jià)值觀三維目標(biāo)展開(kāi)。而在計(jì)算思維眾多定義中,與三維目標(biāo)較為呼應(yīng)的是2012年美國(guó)麻省理工學(xué)院媒體實(shí)驗(yàn)室(MIT)終身幼兒園研究小組(Lifelong Kindergarten Group)開(kāi)發(fā)出的計(jì)算思維三維框架,它包含了三個(gè)維度:一是計(jì)算概念,指編程中使用到的概念,如順序、循環(huán)、事件等;二是計(jì)算實(shí)踐,指編程完成作品的過(guò)程和方法,如遞增和重復(fù)、測(cè)試和調(diào)試、再利用和再創(chuàng)作等;三是計(jì)算觀念,指編程后人格塑造和思維習(xí)慣的學(xué)習(xí)結(jié)果,如表達(dá)、聯(lián)系和質(zhì)疑。[3]教育教學(xué)的三維目標(biāo)和計(jì)算思維的三維框架在核心理念中呈現(xiàn)了高度的契合性,知識(shí)與技能的培養(yǎng)實(shí)則為計(jì)算概念的學(xué)習(xí),過(guò)程與方法的培養(yǎng)實(shí)則為計(jì)算實(shí)踐的訓(xùn)練,情感態(tài)度與價(jià)值觀實(shí)則為計(jì)算觀念的培養(yǎng),這種對(duì)應(yīng)關(guān)系印證了計(jì)算思維三維框架的全面性和科學(xué)性。
2.任務(wù)驅(qū)動(dòng)法的概念及任務(wù)分類
任務(wù)驅(qū)動(dòng)法就是教師將教學(xué)內(nèi)容融入到任務(wù)中,學(xué)生在完成任務(wù)的動(dòng)力驅(qū)動(dòng)下,通過(guò)對(duì)學(xué)習(xí)資源的積極主動(dòng)應(yīng)用,進(jìn)行自主探索和互動(dòng)協(xié)作學(xué)習(xí),并在完成既定任務(wù)的同時(shí),進(jìn)行知識(shí)的意義建構(gòu)。任務(wù)驅(qū)動(dòng)法的特點(diǎn)可以概括為以任務(wù)為主線、以教師為主導(dǎo)、以學(xué)生為主體,確定任務(wù)是核心,怎樣驅(qū)動(dòng)是關(guān)鍵,信息素養(yǎng)是目的。[4]根據(jù)任務(wù)的開(kāi)放程度可以將任務(wù)分成封閉性任務(wù)、半開(kāi)放性任務(wù)、開(kāi)放性任務(wù)。[5]在編程教學(xué)中,封閉性任務(wù)表示的是答案唯一的情況,如教師通過(guò)預(yù)設(shè)好的問(wèn)題讓學(xué)生學(xué)習(xí)新的編程概念和知識(shí);半封閉性任務(wù)表示的是答案不唯一但有參考的情況,如學(xué)生根據(jù)已有的代碼進(jìn)行完善或者0478ba9abc93b0405f5a8042a3709232改寫;開(kāi)放性任務(wù)表示的是答案不唯一且沒(méi)有參考代碼,學(xué)生需要自主設(shè)計(jì)算法并完成代碼的編寫。因此,三種不同任務(wù)的使用場(chǎng)景以及學(xué)習(xí)目標(biāo)各有側(cè)重,需要適時(shí)設(shè)計(jì)與應(yīng)用。
3.面向計(jì)算思維培養(yǎng)的任務(wù)驅(qū)動(dòng)式編程教學(xué)模型構(gòu)建
筆者根據(jù)計(jì)算思維的三維框架、任務(wù)驅(qū)動(dòng)法中的三種任務(wù)以及編程教學(xué)的實(shí)際情況構(gòu)建了教學(xué)模型,具體內(nèi)容如圖1所示。
教學(xué)模型實(shí)施
教科版《必修1 數(shù)據(jù)與計(jì)算》主要的教學(xué)內(nèi)容是圍繞Python語(yǔ)言展開(kāi),下面,筆者以第二單元中《可以復(fù)用的代碼》一節(jié)中的“火柴棒擺數(shù)字”為例進(jìn)行說(shuō)明。
1.教學(xué)目標(biāo)設(shè)定、真實(shí)情境導(dǎo)入
在《可以復(fù)用的代碼》一節(jié)中,學(xué)生需要了解函數(shù)的作用、使用函數(shù)的定義和調(diào)用方法,因此筆者將項(xiàng)目目標(biāo)設(shè)置為:用函數(shù)定義的形式編寫代碼,解決火柴棒擺數(shù)字的問(wèn)題。在常規(guī)教學(xué)中,教師通常以直接講授知識(shí)點(diǎn)的方式引導(dǎo)學(xué)生進(jìn)入學(xué)習(xí)模式,但這樣會(huì)使很多學(xué)生無(wú)法跟上學(xué)習(xí)進(jìn)度,從而失去學(xué)習(xí)興趣,而生動(dòng)的情境能引起學(xué)生積極的情緒體驗(yàn),使其更好地投入到學(xué)習(xí)中。因此,教師可以創(chuàng)設(shè)真實(shí)的情境,引導(dǎo)學(xué)生用實(shí)物火柴棒擺數(shù)字,使學(xué)生通過(guò)對(duì)實(shí)物進(jìn)行操作,提升學(xué)習(xí)興趣。
2.任務(wù)驅(qū)動(dòng)設(shè)計(jì)、合作探究學(xué)習(xí)
用火柴棒擺0~9十個(gè)數(shù)字分別需要多少根火柴棒?對(duì)于這個(gè)問(wèn)題,教師可以將具體的數(shù)字存入列表中,通過(guò)對(duì)列表的操作調(diào)用所需的火柴棒數(shù),學(xué)生比較好理解,但是對(duì)于任意自然數(shù)所需要的火柴棒數(shù)以及固定數(shù)量的火柴棒數(shù)可以擺出的自然數(shù)的問(wèn)題,學(xué)生較難理解,因此,筆者設(shè)置了分層次的驅(qū)動(dòng)性任務(wù),讓學(xué)生在從易到難的探究中習(xí)得知識(shí)。
(1)封閉性任務(wù)設(shè)計(jì)——一位數(shù)所需要的火柴棒數(shù)
一位數(shù)需要的火柴棒數(shù)只需要調(diào)用列表的內(nèi)容即可,列表的小標(biāo)正好對(duì)應(yīng)數(shù)字,而列表的內(nèi)容正好對(duì)應(yīng)該數(shù)字所需的火柴棒數(shù),所以先定義列表,然后調(diào)用列表即可求出一位數(shù)需要的火柴棒數(shù),這段代碼可以讓學(xué)生復(fù)習(xí)“代碼的定義及調(diào)用”。但是本節(jié)課是學(xué)習(xí)可以復(fù)用的代碼,所以需要將一位數(shù)需要的火柴棒數(shù)的代碼定義為函數(shù),并且輸入一位數(shù)進(jìn)行調(diào)用,“?”表示要求學(xué)生填寫代碼的部分,主要學(xué)習(xí)“函數(shù)定義的關(guān)鍵詞def”和“返回值return”以及“函數(shù)調(diào)用的代碼”,具體代碼如圖2所示。
(2)半封閉性任務(wù)設(shè)計(jì)——6根火柴棒能擺出的自然數(shù)
對(duì)于6根火柴棒能擺出的自然數(shù),學(xué)生需要將問(wèn)題進(jìn)行分解,即先確定6根火柴棒能擺出的自然數(shù)的最大值111和最小值0,然后判斷這些數(shù)字哪些是需要6根火柴棒的,這樣就將問(wèn)題轉(zhuǎn)換成了任意數(shù)需要的火柴棒數(shù),從0到111建立循環(huán),對(duì)每個(gè)數(shù)都要判斷需要的火柴棒數(shù)是不是等于6,這就需要定義函數(shù),學(xué)生體會(huì)到了函數(shù)的應(yīng)用和使用場(chǎng)景。既然要求任意數(shù)需要的火柴棒數(shù),其實(shí)可以分解為一位數(shù)需要的火柴棒數(shù),那么只需要將任意數(shù)的每一位數(shù)字進(jìn)行拆解,然后對(duì)需要的火柴棒數(shù)求和即可(如圖3)。在這個(gè)過(guò)程中,學(xué)生通過(guò)探究,根據(jù)一位數(shù)所需火柴棒數(shù)的代碼以及數(shù)字分解的代碼,自主完成6根火柴棒能擺出的自然數(shù)代碼的編寫。
(3)開(kāi)放性任務(wù)設(shè)計(jì)——擺出特殊的數(shù)所需的火柴棒數(shù)
開(kāi)放性任務(wù)中不提供參考代碼,學(xué)生根據(jù)已學(xué)的知識(shí)進(jìn)行自主探索。首先,學(xué)生確定要擺出的數(shù)字類型,如水仙花數(shù)、四葉玫瑰數(shù)、五角星數(shù)等,然后查詢?cè)摂?shù)的特征,并且定義判斷符合數(shù)字特征的函數(shù)。接著,基于前面火柴棒擺數(shù)字掌握的知識(shí),學(xué)生嘗試編寫當(dāng)前程序,并且調(diào)試運(yùn)行。
3.學(xué)習(xí)交流評(píng)價(jià)、代碼調(diào)試優(yōu)化
在編程教學(xué)的實(shí)踐中,每個(gè)學(xué)生都積極投入到編寫代碼解決實(shí)際問(wèn)題的過(guò)程中,所以最終每個(gè)小組都會(huì)形成Python代碼作品集。在每一個(gè)任務(wù)完成之后,學(xué)生會(huì)在編程記錄上記錄代碼調(diào)試過(guò)程、出現(xiàn)的新問(wèn)題以及解決問(wèn)題的過(guò)程,最后還會(huì)對(duì)Python作品進(jìn)行評(píng)價(jià)(自評(píng)、互評(píng)、教師評(píng)價(jià)),每個(gè)作品根據(jù)自評(píng)、小組互評(píng)和教師評(píng)價(jià)的分?jǐn)?shù)記錄平均得分以及修改意見(jiàn),每個(gè)小組根據(jù)修改意見(jiàn)對(duì)自己的代碼進(jìn)行調(diào)試和優(yōu)化,使其更加完善和高效。
教學(xué)模型應(yīng)用
通過(guò)為期一個(gè)學(xué)期的教學(xué)實(shí)踐,筆者從計(jì)算概念、計(jì)算實(shí)踐和計(jì)算觀念三個(gè)方面對(duì)學(xué)生計(jì)算思維的發(fā)展進(jìn)行分析。①計(jì)算概念。對(duì)Python基礎(chǔ)概念的前后測(cè)試的平均分進(jìn)行分析,從變量與數(shù)據(jù)類型、判斷與循環(huán)、隊(duì)列與棧、迭代與遞歸五個(gè)方面設(shè)計(jì)測(cè)試卷,滿分設(shè)置為100分,教學(xué)前后學(xué)生的平均得分從35分提升到了85分,可以說(shuō)明在教學(xué)前學(xué)生幾乎沒(méi)有任何編程基礎(chǔ),在經(jīng)過(guò)一個(gè)學(xué)期學(xué)習(xí)之后,對(duì)Python的基礎(chǔ)概念有了較好的掌握。②計(jì)算實(shí)踐。在教學(xué)過(guò)程中,筆者每節(jié)課都收集學(xué)生的Python作品,并結(jié)合學(xué)生的編程過(guò)程記錄單和作品評(píng)價(jià)單對(duì)學(xué)生的編程行為進(jìn)行分析,發(fā)現(xiàn)學(xué)生在寫代碼前會(huì)對(duì)自己的作品進(jìn)行整體設(shè)計(jì),在編程過(guò)程中也會(huì)不斷地迭代改進(jìn),大多數(shù)學(xué)生能獨(dú)立思考并解決調(diào)試過(guò)程中遇到的問(wèn)題,說(shuō)明學(xué)生解決問(wèn)題的能力得到了提高。同時(shí),學(xué)生會(huì)基于生活的已有經(jīng)驗(yàn),或者考察他人作品,整合多項(xiàng)資源進(jìn)行再創(chuàng)作,也會(huì)將現(xiàn)實(shí)問(wèn)題和想法轉(zhuǎn)換成編程問(wèn)題進(jìn)行探究,具備了計(jì)算實(shí)踐能力。③計(jì)算觀念。課后,筆者與學(xué)生進(jìn)行面談,以此了解學(xué)生學(xué)習(xí)Python語(yǔ)言的目的及想法。交談后發(fā)現(xiàn),大多數(shù)學(xué)生將Python語(yǔ)言作為創(chuàng)作及表達(dá)想法的一種工具,在編程過(guò)程中通過(guò)與他人交流和聯(lián)系,對(duì)代碼不斷地優(yōu)化,創(chuàng)造出性能更優(yōu)的程序,但也有少部分學(xué)生對(duì)編程存在質(zhì)疑,不清楚學(xué)習(xí)編程的目的。
結(jié)語(yǔ)
計(jì)算思維的培養(yǎng)是一個(gè)長(zhǎng)期而復(fù)雜的過(guò)程,需要教師加強(qiáng)教學(xué)理論的學(xué)習(xí)以及在教學(xué)實(shí)踐中不斷探索和創(chuàng)新。本研究也存在一些不足:一是時(shí)間把控問(wèn)題,學(xué)習(xí)任務(wù)一個(gè)課時(shí)無(wú)法完成,到下一課時(shí)再探究就失去了連貫性,影響探究效果;二是進(jìn)度問(wèn)題,不同小組完成作品的快慢,會(huì)導(dǎo)致小組之間的比較,從而影響學(xué)習(xí)體驗(yàn)。因此,在接下來(lái)的研究和教學(xué)中,筆者將繼續(xù)深入研究計(jì)算思維的內(nèi)涵和外延,完善面向計(jì)算思維培養(yǎng)的任務(wù)驅(qū)動(dòng)式編程模型,以更好地適應(yīng)不同學(xué)生的需求和發(fā)展,從而培養(yǎng)學(xué)生的計(jì)算思維能力。
參考文獻(xiàn):
[1]崔允漷.如何開(kāi)展指向?qū)W科核心素養(yǎng)的大單元設(shè)計(jì)[J].北京教育:普教版,2019(02):11-15.
[2]葉浩生.具身認(rèn)知的原理與應(yīng)用[M].北京:商務(wù)印書館,2017.
[3]王旭卿.面向三維目標(biāo)的國(guó)外中小學(xué)計(jì)算思維培養(yǎng)與評(píng)價(jià)研究[J].電化教育研究,2014,35(07):48-53.
[4]鐘柏昌.任務(wù)驅(qū)動(dòng)教學(xué)的反思與重塑[D].南京:南京師范大學(xué),2004.
[5]郭紹青.任務(wù)驅(qū)動(dòng)教學(xué)法的內(nèi)涵[J].中國(guó)電化教育,2006(07):57-59.
作者簡(jiǎn)介:楊鉛,本科,二級(jí)教師。
本文系江蘇省教育學(xué)會(huì)“十四五”教育科研規(guī)劃2022年度立項(xiàng)課題“基于Minecraft游戲的結(jié)對(duì)編程教學(xué)實(shí)踐研究”(課題批準(zhǔn)號(hào):22A04JSSZ254)的階段性成果。