柳棟 武健 沙金 史澤齊 田君慧子
摘要:本文根據(jù)當(dāng)今我國社會發(fā)展的需要、信息科技學(xué)科發(fā)展的趨勢和學(xué)生認(rèn)知心理的規(guī)律,針對課程標(biāo)準(zhǔn)對信息科技領(lǐng)域問題解決能力的要求,通過對數(shù)據(jù)、程序、算法等本質(zhì)學(xué)習(xí),把握住“編程本質(zhì)就是翻譯”這個關(guān)鍵,在已有實(shí)踐的基礎(chǔ)上提出了從需求辨析、邏輯梳理到代碼實(shí)現(xiàn)的初中三步轉(zhuǎn)譯編程教學(xué)法框架,并根據(jù)教學(xué)探索給出了相關(guān)的學(xué)習(xí)場景、過程的初步描述。
關(guān)鍵詞:信息科技;編程;教學(xué)法
中圖分類號:G434? 文獻(xiàn)標(biāo)識碼:A? 論文編號:1674-2117(2023)15-0005-04
20多年來,不論哪個版本的中小學(xué)信息科技課程標(biāo)準(zhǔn),其主要內(nèi)容一直是學(xué)習(xí)運(yùn)用ICT技術(shù)手段幫助學(xué)習(xí)活動的開展、學(xué)習(xí)程序的編制等,或可稱之為信息科技課程的主要學(xué)習(xí)方向。信息科技課程在建設(shè)與實(shí)施過程中,一直強(qiáng)調(diào)發(fā)展學(xué)生的核心素養(yǎng)、發(fā)展學(xué)生的計算思維等內(nèi)容,但是,素養(yǎng)、思維等詞匯抽象層級比較高,要落實(shí)到教學(xué)中需要數(shù)次層級轉(zhuǎn)換才能夠轉(zhuǎn)化為具體的內(nèi)容和行為指標(biāo)。本文將聚焦程序編制方向來討論學(xué)與教的實(shí)踐方法。
泰勒在討論課程目標(biāo)和學(xué)習(xí)內(nèi)容厘定方法的時候指出,對社會生活的研究、對學(xué)科的研究和對學(xué)習(xí)者的研究是課程目標(biāo)和學(xué)習(xí)內(nèi)容的三大來源;這些研究的結(jié)果經(jīng)教育哲學(xué)和認(rèn)知心理兩把篩子,基本可以梳理出可實(shí)現(xiàn)的課程學(xué)習(xí)目標(biāo)和學(xué)習(xí)內(nèi)容。本文將參照泰勒的建議來思考初中編程學(xué)習(xí)目標(biāo)和學(xué)習(xí)內(nèi)容。
問題與思考
1.對社會生活變化的認(rèn)識
當(dāng)前,我國社會生產(chǎn)正處在產(chǎn)業(yè)升級轉(zhuǎn)型、提升核心競爭力的過程中,產(chǎn)業(yè)競爭力的核心是高素養(yǎng)的人才與“從零到一”的原創(chuàng)能力。各行業(yè)在數(shù)字化轉(zhuǎn)型中對IT業(yè)與其他行業(yè)的相互理解、深度融合提出了明確的需求。但是,IT業(yè)過度細(xì)致的分工,如有大批從事簡單編寫代碼的從業(yè)人員,不僅影響了企業(yè)的核心競爭力,而且導(dǎo)致在面對與其他行業(yè)深度融合的需求時,缺乏需求確認(rèn)及技術(shù)轉(zhuǎn)述的人才。
2.對信息科技領(lǐng)域的透視
信息科技與其他學(xué)科之間不一定有清晰的界線,卻已經(jīng)是穩(wěn)定的領(lǐng)域,開放性、綜合性十分明顯。[1]信息科技領(lǐng)域就其根本技術(shù)手段與方法來說,“程序與編程”是明確的回答。信息科技產(chǎn)品開發(fā)過程一般是從用戶需求了解與辨析開始,經(jīng)過模型構(gòu)建與算法選擇,最后編寫代碼形成程序系統(tǒng),以實(shí)現(xiàn)預(yù)設(shè)功能。[2][3]
面對IT行業(yè)與其他行業(yè)的相互理解與融合,軟件開發(fā)行業(yè)也提出了“領(lǐng)域驅(qū)動設(shè)計”模式:在大多數(shù)軟件項(xiàng)目中,主要的焦點(diǎn)應(yīng)該是領(lǐng)域與領(lǐng)域邏輯;軟件的核心是其為用戶解決領(lǐng)域相關(guān)問題的能力。[3]
3.對學(xué)生學(xué)習(xí)規(guī)律的回顧
少年兒童的認(rèn)知發(fā)展呈現(xiàn)著由外而內(nèi)、由表及里、從具象到抽象的過程(如圖1)。心理學(xué)家安德森則認(rèn)為計算機(jī)語言源于自然語言、區(qū)別于自然語言,抽象度更高,是一類很難配入的特殊語言。[4]計算機(jī)程序的發(fā)源地是英語作為母語的地區(qū),程序編制從某種角度來說也可以看成是英語的“自然語言”寫作。華盛頓大學(xué)一項(xiàng)研究表明,就編程能力的影響因子來說,一般認(rèn)知能力是最佳預(yù)測因子,語言能力是最強(qiáng)有力的預(yù)測因素。[5]
4.課程教學(xué)中的相關(guān)反應(yīng)
我國6-7年級學(xué)生的年齡大部分在11~12歲,認(rèn)知心理發(fā)展大致位于皮亞杰的具體運(yùn)算晚期到形式運(yùn)算早期。所以,這個階段的我國中小學(xué)信息科技課程編程的學(xué)習(xí),主要借助“圖形化”編程工具等作為編程學(xué)習(xí)的技術(shù)工具。同時,在學(xué)習(xí)編程的學(xué)習(xí)活動中也常常選用項(xiàng)目學(xué)習(xí)這樣的實(shí)踐型學(xué)習(xí)方式。《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》也在課程總目標(biāo)中明確指出要發(fā)展學(xué)生的問題解決能力(如圖2)[6],但是其發(fā)展無法通過簡單的講授來實(shí)現(xiàn),需要在問題解決的實(shí)踐過程中具體落實(shí)與積累。
三步轉(zhuǎn)譯編程教學(xué)法的框架
1.數(shù)據(jù)、程序、算法等的本質(zhì)
(1)數(shù)據(jù)的本質(zhì)與需求辨析
數(shù)據(jù)=現(xiàn)實(shí)世界的數(shù)字化映射。[7]運(yùn)用ICT技術(shù)手段解決問題,不僅需要理解數(shù)據(jù),還需要理解數(shù)據(jù)背后的對象與對象的運(yùn)行邏輯;而實(shí)境中的體驗(yàn)與各類行業(yè)實(shí)踐經(jīng)驗(yàn),為這些理解的產(chǎn)生提供了堅實(shí)的經(jīng)驗(yàn)與理性基礎(chǔ)[8],需求辨析是問題解決與創(chuàng)新的開始。
(2)程序、算法的本質(zhì)與編程
瑞士計算機(jī)科學(xué)家Niklaus Wirth指出,程序=數(shù)據(jù)結(jié)構(gòu)+算法[9];英國計算機(jī)科學(xué)家Robert Kowalski則指出,算法=控制+邏輯。[10]程序體現(xiàn)了對象的數(shù)字化結(jié)構(gòu),問題解決步驟的邏輯、控制與時序,這意味著“編程的本質(zhì)是翻譯[11]”。程序是特定問題解決辦法用特定領(lǐng)域符號的代碼表達(dá)。
(3)對算法的各種實(shí)際理解
Robert Kowalski在界定算法概念時指出:邏輯成分能對問題和解題中能用的知識提供更清楚和更明顯正確的陳述,控制成分對算法的功效承擔(dān)更大的責(zé)任,因而算法能通過提高控制的功效而更易于改進(jìn)。[10]
對算法的前科學(xué)認(rèn)識有一種是“計算的方法”,這個認(rèn)識只是“顧名思義”,并沒有認(rèn)識到“計算”有“受控演繹”含義,這類錯誤或起源于對數(shù)學(xué)構(gòu)成的誤解。
另一種認(rèn)識認(rèn)為學(xué)習(xí)“算法”就是要學(xué)習(xí)算法中的基本結(jié)構(gòu),這類認(rèn)識僅側(cè)重了算法的控制成分,而對邏輯成分重視不夠。還有一種認(rèn)識是“算法的表現(xiàn)形式一定是數(shù)學(xué)或符號樣式”,而沒有看到“數(shù)學(xué)或符號樣式”所指代的問題解決辦法。
生活算法是武健在2007年前后在義務(wù)教育信息科技教學(xué)中提出的一個專用詞匯[12][13],主要強(qiáng)調(diào)在學(xué)習(xí)程序編制的過程中,重視學(xué)生用自然語言來描述對象、對象運(yùn)動的邏輯與步驟,以契合學(xué)習(xí)者的認(rèn)知發(fā)展規(guī)律與特點(diǎn),進(jìn)而有效發(fā)展學(xué)生編程能力。
2.三步轉(zhuǎn)譯編程教學(xué)法的一般框架
三步轉(zhuǎn)譯編程教學(xué)法是針對義務(wù)教育信息科技課程中編程學(xué)習(xí)的教學(xué)法,不涉及信息科技課程中其他學(xué)習(xí)內(nèi)容。
第一步轉(zhuǎn)譯:從真實(shí)問題到自然語言描述的文本;
第二步轉(zhuǎn)譯:從自然語言描述的文本到邏輯過程的圖示;
第三步轉(zhuǎn)譯:從邏輯過程的圖示到程序代碼。
三步轉(zhuǎn)譯編程教學(xué)法選用項(xiàng)目學(xué)習(xí)作為基本的學(xué)習(xí)方法,借助圖形化編程工具,通過這三步將問題解決的具體辦法轉(zhuǎn)譯為可執(zhí)行的程序(如圖3)。同時,三步轉(zhuǎn)譯法作為問題解決在編程領(lǐng)域的映射,是編程學(xué)習(xí)中主要的過程—方法維度的學(xué)習(xí)目標(biāo)。
3.三步轉(zhuǎn)譯編程教學(xué)法可能的學(xué)習(xí)場景與過程
在義務(wù)教育階段的信息科技課程中,常見的編程學(xué)習(xí)主要體現(xiàn)在兩類學(xué)習(xí)活動中,一是借助開源硬件的智能機(jī)械裝置搭建(含物聯(lián)網(wǎng)應(yīng)用、機(jī)器人等),二是依托圖形化編程軟件的編程動畫。三步轉(zhuǎn)譯編程教學(xué)法可能的學(xué)習(xí)場景與過程簡述如右表所示。
4.三步轉(zhuǎn)譯編程教學(xué)法與其他常見教學(xué)法的異同
(1)學(xué)習(xí)目標(biāo)與內(nèi)容等方面的異同
三步轉(zhuǎn)譯編程教學(xué)法與其他編程教學(xué)法一樣,在學(xué)習(xí)目標(biāo)和內(nèi)容中都包含程序編寫技能的學(xué)習(xí)。但前者將問題解決的一般流程與程序編寫技能同時列為主要的學(xué)習(xí)目標(biāo)。
在社會生產(chǎn)領(lǐng)域,編程語言是重要的生產(chǎn)力工具,編程語言隨著社會的發(fā)展而發(fā)展、隨著應(yīng)用側(cè)重點(diǎn)的不同而有不同的選擇。三步轉(zhuǎn)譯編程教學(xué)法因其注重問題解決能力的發(fā)展,可實(shí)現(xiàn)編程能力發(fā)展與具體編程語言之間的松耦合,編程語言發(fā)展對編程教學(xué)的變動要求可能更為適度。
(2)學(xué)習(xí)流程與方式等方面的異同
三步轉(zhuǎn)譯編程教學(xué)法與其他編程教學(xué)法一樣,都關(guān)注編程學(xué)習(xí)的產(chǎn)物—程序,但在學(xué)習(xí)流程上三步轉(zhuǎn)譯編程教學(xué)法大致涵蓋了軟件開發(fā)的全過程,所以三步轉(zhuǎn)譯編程教學(xué)法在每個轉(zhuǎn)譯階段結(jié)束,都生成相應(yīng)的階段學(xué)習(xí)產(chǎn)物(如下頁圖4)。
三步轉(zhuǎn)譯編程教學(xué)法與其他編程教學(xué)法有著各自的側(cè)重點(diǎn):講練式教學(xué)法更適合深入細(xì)化編程學(xué)習(xí)的場景;任務(wù)驅(qū)動教學(xué)法強(qiáng)調(diào)學(xué)習(xí)者代碼語句學(xué)習(xí)的理解基礎(chǔ)與興趣激發(fā);三步轉(zhuǎn)譯編程教學(xué)法選用項(xiàng)目學(xué)習(xí)作為主線學(xué)習(xí)方法,注重在運(yùn)用編程手段解決問題的實(shí)踐過程中學(xué)習(xí)編程,并不斷積累軟件開發(fā)這類活動的初步經(jīng)驗(yàn),強(qiáng)調(diào)問題解決能力的發(fā)展,更適合形成編程整體概念的學(xué)習(xí)場景。
其他的討論
三步轉(zhuǎn)譯編程教學(xué)法是編程教學(xué)方法的發(fā)展而不是對其他方法的替代,在不同學(xué)習(xí)者的不同發(fā)展階段可能需要不同的學(xué)與教方法,三步轉(zhuǎn)譯編程教學(xué)法可能更適合中小學(xué)階段學(xué)習(xí)者,而對于大專院校需要編程精進(jìn)的場合,或許講練法有其運(yùn)用的必要性。
面向中小學(xué)生的教學(xué)是一項(xiàng)復(fù)雜的社會實(shí)踐工程,教學(xué)法的掌握與活用是一類復(fù)雜的專業(yè)能力。根據(jù)已有的學(xué)校教育實(shí)踐經(jīng)驗(yàn),一般對某個教學(xué)方法的初步掌握,教師需要在專業(yè)支持下經(jīng)歷三輪的探索實(shí)踐。對于義務(wù)教育階段的信息科技課程來說,編程學(xué)習(xí)內(nèi)容只在某個學(xué)期中出現(xiàn),這意味著一位教師的每一輪嘗試往往需要間隔一個學(xué)年。所以,對教學(xué)法的探索是一個長期的過程,三步轉(zhuǎn)譯編程教學(xué)法的探索需要通過更多教師的實(shí)踐來豐富、發(fā)展。
參考文獻(xiàn):
[1]柳棟,武健,魏寧.信息科技學(xué)科基本框架與核心內(nèi)容—基礎(chǔ)教育信息類課程建設(shè)的思考[J].中國電化教育,2012(02):6-10.
[2]柳棟.已有基礎(chǔ)、教育邏輯、體系變革和交易結(jié)構(gòu)—基礎(chǔ)教育領(lǐng)域“互聯(lián)網(wǎng)+”實(shí)踐中幾個問題的討論[C]//.互聯(lián)網(wǎng)時代的教育發(fā)展—第十八屆海峽兩岸暨港澳地區(qū)教育學(xué)術(shù)研討會論文集,2016:28-34.
[3]Eric Evans.領(lǐng)域驅(qū)動設(shè)計[M].北京:人民郵電出版社,2010:2-3.
[4]J·R·安德森.認(rèn)知心理學(xué)[M].長春:吉林教育出版社,1989.
[5]余娟,李佳琪,陳瓏丹.學(xué)編程如學(xué)外語?[J].上海教育,2021(06):18-19.
[6]中華人民共和國教育部.義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)[S].北京:北京師范大學(xué)出版社,2022:6.
[7]李濤.很多程序員開發(fā)軟件多年,但并未意識到軟件是對現(xiàn)實(shí)世界的映射[EB/OL].(2023-01-06)[2023-01-10].https://www.toutiao.com/w/7185302623544214307/.
[8]郭朝暉.病、癥關(guān)系與數(shù)字空間[EB/OL].(2023-01-02)[2023-01-10].https://mp.weixin.qq.com/s/0QRqfkd5AFW0gEsPm8I9Mg.
[9]焦華.基礎(chǔ)編程的思考方法[J].軟件,2018,39(03):57-62.
[10]Robert Kowalski,張幸兒.算法=邏輯+控制[J].計算機(jī)科學(xué),1980(05):28-40.
[11]李濤.一文看懂編程的本質(zhì),程序員有前途么?[EB/OL].(2021-09-22)[2023-01-10].https://www.toutiao.com/article/7010310998829646348/.
[12]武健.從生活算法中審視程序設(shè)計算法[J].信息技術(shù)教育,2007(05):36-37.
[13]武健.信息科技視角下的生活算法[J].中國信息技術(shù)教育,2014(23):83-84.