于曉雅
摘? ?要:數(shù)字化學(xué)習(xí)與創(chuàng)新是信息社會公民的基本素養(yǎng),是信息技術(shù)學(xué)科的核心素養(yǎng)及價值追求。編程教育作為信息技術(shù)學(xué)科的核心內(nèi)容,教師更多地關(guān)注了計算思維的培養(yǎng),而忽視了編程教育能很好地體驗和培養(yǎng)學(xué)生數(shù)字化學(xué)習(xí)與創(chuàng)新能力。文章以編程語言Python和數(shù)字化環(huán)境Jupyter Notebook的選擇和應(yīng)用為例,詳細(xì)解析了從評估和選擇數(shù)字化工具、幫助學(xué)生實現(xiàn)自主和協(xié)同創(chuàng)新、培養(yǎng)實踐創(chuàng)新能力三個維度來踐行學(xué)生數(shù)字化學(xué)習(xí)與創(chuàng)新能力的培養(yǎng),探索和引導(dǎo)信息技術(shù)學(xué)科教師通過編程教育培養(yǎng)學(xué)生的數(shù)字化學(xué)習(xí)與創(chuàng)新能力。
關(guān)鍵詞:編程教育;數(shù)字化學(xué)習(xí)與創(chuàng)新;Python語言;Jupyter Notebook數(shù)字化環(huán)境
中圖分類號:G434 文獻標(biāo)志碼:A 文章編號:1673-8454(2021)10-0080-04
一、引言
數(shù)字化學(xué)習(xí)與創(chuàng)新是信息社會公民核心素養(yǎng)的基本組成部分,是世界各國課程標(biāo)準(zhǔn)的重要取向之一。在歐盟“數(shù)字素養(yǎng)框架”[1]和美國“21世紀(jì)技能框架”中,把“建構(gòu)數(shù)字化學(xué)習(xí)環(huán)境”并獲得“學(xué)習(xí)和創(chuàng)新技能”作為學(xué)習(xí)成果的關(guān)鍵組成部分。在我國,數(shù)字化學(xué)習(xí)與創(chuàng)新和信息意識、計算思維、信息社會責(zé)任同為信息技術(shù)學(xué)科的核心素養(yǎng),釋義為“個體通過評估和選擇常見的數(shù)字化資源與工具,有效地管理學(xué)習(xí)過程與學(xué)習(xí)資源,創(chuàng)造性地解決問題,從而完成學(xué)習(xí)任務(wù),形成創(chuàng)新作品的能力”[2]。數(shù)字化學(xué)習(xí)與創(chuàng)新素養(yǎng)作為發(fā)展其他三項核心素養(yǎng)的實踐經(jīng)驗來源和具體體現(xiàn),是我國信息技術(shù)學(xué)科的核心價值追求[3]。
自從《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017版)》(以下簡稱《課程標(biāo)準(zhǔn)》)將計算思維作為核心素養(yǎng)以來,提起信息技術(shù)課程的核心內(nèi)容編程教育,信息技術(shù)學(xué)科教師首先想到的是學(xué)生計算思維的培養(yǎng)。編程教育的確是培養(yǎng)計算思維的有效途徑,但是在計算思維的基礎(chǔ)之上,編程教育更能很好地體現(xiàn)信息時代的數(shù)字化學(xué)習(xí)與創(chuàng)新能力,這是信息技術(shù)學(xué)科教師教學(xué)中很容易忽略的地方?!墩n程標(biāo)準(zhǔn)》對“數(shù)字化學(xué)習(xí)與創(chuàng)新”的內(nèi)涵表述為“能夠認(rèn)識數(shù)字化學(xué)習(xí)環(huán)境的優(yōu)勢與局限性,適應(yīng)數(shù)字化學(xué)習(xí)環(huán)境,養(yǎng)成數(shù)字化學(xué)習(xí)與創(chuàng)新的習(xí)慣;掌握數(shù)字化學(xué)習(xí)系統(tǒng)、學(xué)習(xí)資源與工具的操作技能,用于開展自主學(xué)習(xí)、協(xié)同工作、知識分享與創(chuàng)新創(chuàng)造,助力終身學(xué)習(xí)能力的提高?!睋?jù)此,本文從評估和選擇數(shù)字化工具、實現(xiàn)自主和協(xié)同的教與學(xué)、培養(yǎng)學(xué)會學(xué)習(xí)和實踐創(chuàng)新三個維度來解析如何在編程教育中培養(yǎng)學(xué)生的數(shù)字化學(xué)習(xí)與創(chuàng)新能力。[4][5]
二、利用編程教育培養(yǎng)評估和選擇數(shù)字化工具的能力
數(shù)字化學(xué)習(xí)與創(chuàng)新能力首先是能夠認(rèn)識數(shù)字化學(xué)習(xí)環(huán)境的優(yōu)勢和局限,評估和選擇數(shù)字化資源和工具。編程教育中學(xué)生的數(shù)字化學(xué)習(xí)與創(chuàng)新能力培養(yǎng)首先是認(rèn)識所選語言的優(yōu)勢和選擇適當(dāng)?shù)木幊汰h(huán)境。在高中階段,首先要引導(dǎo)學(xué)生認(rèn)識Python編程語言與其他語言的優(yōu)勢和局限,在此基礎(chǔ)上選擇最適合Python語言的數(shù)字化編程環(huán)境。這不僅是學(xué)生數(shù)字化學(xué)習(xí)與創(chuàng)新能力培養(yǎng)的關(guān)鍵步驟,也是教師信息素養(yǎng)提升的重要環(huán)節(jié)。
1.Python編程語言的優(yōu)勢
Python是現(xiàn)代編程思想的產(chǎn)物,開發(fā)環(huán)境支持包括Windows、OS X、Linux在內(nèi)的主流操作系統(tǒng)和平臺,是典型的開源平臺;同時具備解釋型、編譯型和腳本型語言的共同特點,執(zhí)行效率高;與C/C++、JavaSript等重要編程語言有很好的應(yīng)用庫共享機制,不僅支持模塊化編程,還支持面向?qū)ο缶幊?,方便協(xié)同工作;擁有眾多功能強大的應(yīng)用擴展庫,可擴展性強;其開源硬件接口庫種類繁多、功能完善,有利于創(chuàng)造真實產(chǎn)品;語法簡單精煉,格式要求低,是最接近自然語言的程序語言;Python語言提供大量的庫/框架,各種各樣的插件,使得開發(fā)者僅寫相對較少的代碼就可以完成令人印象深刻的準(zhǔn)專業(yè)級應(yīng)用。Python的諸多優(yōu)點使其逐漸成為企業(yè)級中小型軟件開發(fā)領(lǐng)域的主流語言。對于中小學(xué)生來說,自然語言讓沒有編程基礎(chǔ)的學(xué)生也能體會到編程的樂趣,獲得成就感,從而愛上編程。對于中小學(xué)教師而言,Python代碼在書寫格式上的嚴(yán)格(如強制要求縮進),讓教師不必花費大量時間去處理學(xué)生代碼格式的錯誤問題。Python語言不需要編譯即可直接執(zhí)行的特點,也有利于程序調(diào)試、代碼檢測等,方便教學(xué)和指導(dǎo)。綜上,Python語言不僅是企業(yè)開發(fā)的首選語言之一,也是一種非常適合用于教學(xué)的語言。學(xué)生在中學(xué)階段系統(tǒng)地學(xué)習(xí)Python語言,也可以為今后進入大學(xué)繼續(xù)研究和進入社會就業(yè)打下良好基礎(chǔ),因此高中信息技術(shù)新課標(biāo)也把Python語言作為核心編程語言。[6]
2.Python開發(fā)環(huán)境(IDE)的優(yōu)勢與局限
每一種編程語言都有自己的集成開發(fā)環(huán)境(Integrated Development Environment,IDE)。如C、C++等語言的Visual Studio,Java語言的Eclipse,適用于php語言開發(fā)的PhpStorm等。Python語言也有自己的開發(fā)環(huán)境,如PythonWin、MacPython、PyCharm等。好的IDE開發(fā)環(huán)境不僅包括代碼編輯、編譯、調(diào)試等功能,還包括自動建立工具、除錯器、語法高亮、智能提示、格式自動調(diào)整、快捷鍵自動完成、項目管理、版本控制等輔助功能。作為系統(tǒng)化的編程環(huán)境,Python的IDE開發(fā)環(huán)境(如PyCharm)基本具備了上述IDE的優(yōu)勢,在大型軟件開發(fā)中依然是主流選擇。這種系統(tǒng)化對于傳統(tǒng)程序設(shè)計來說是優(yōu)點,而對于數(shù)據(jù)分析和機器學(xué)習(xí)等人工智能編程人員來說,卻是極大的不便。大數(shù)據(jù)和機器學(xué)習(xí)編程的突出特點是分析和建模碎片化,也就是每一塊代碼都是強獨立性的,可以說除了數(shù)據(jù)本身,代碼塊之間并沒有很強的關(guān)聯(lián)性,下一模塊和上一模塊之間經(jīng)常只有輸入輸出參數(shù)的聯(lián)系。但是數(shù)據(jù)分析和處理的過程又需要不斷地反復(fù)調(diào)試和修改,如改變預(yù)處理的方式、嘗試不同的特征處理、調(diào)整模型參數(shù)等。使用傳統(tǒng)的IDE環(huán)境(如Visual Studio)每次都需要編譯運行整個程序,而不能單獨運行每一行代碼,限制了Python解釋性程序的優(yōu)勢;編輯環(huán)境和運行環(huán)境分離,不能直接查看運行效果,降低了參數(shù)調(diào)試的可視化;注釋文字不能直接輸出,使得教師在編程教學(xué)中經(jīng)常要在編程環(huán)境和運行環(huán)境、教學(xué)PPT之間來回切換。傳統(tǒng)IDE環(huán)境不僅降低了程序開發(fā)的效率,也極大地限制了師生學(xué)習(xí)過程中的自主、協(xié)作和創(chuàng)新。特別是需要小組協(xié)作,共同完成一個任務(wù)時,IDE環(huán)境就非常麻煩。
3.Jupyter Notebook的特色和優(yōu)勢
Jupyter源于2014年的ipython項目,是一個非盈利的開源產(chǎn)品,名字源自數(shù)據(jù)科學(xué)的三種開源語言Julia、Python和R,如今已經(jīng)逐漸發(fā)展成為支持跨所有編程語言的開源軟件、開放標(biāo)準(zhǔn)和交互式數(shù)據(jù)科學(xué)計算工具。Jupyter Notebook具有智能時代數(shù)字化學(xué)習(xí)環(huán)境所需要的開放性、預(yù)設(shè)性、生成性、交互性以及虛擬性等特點,讓編程調(diào)試更方便快捷,更適合新課標(biāo)運用計算思維實現(xiàn)問題解決和數(shù)字化創(chuàng)新能力培養(yǎng)的目標(biāo)。不僅在課堂教學(xué)中深受信息技術(shù)學(xué)科教師的喜愛,也非常有利于在線教學(xué)場景,目前已成為MOOC平臺的首選環(huán)境。
(1)Jupyter Notebook的模塊化適應(yīng)了人工智能編程的特點
Jupyter Notebook是基于瀏覽器的交互式編程環(huán)境。Jupyter Notebook作為一種模塊化的Python編輯器(現(xiàn)在也支持R等多種語言),可以把大段的Python代碼碎片化處理,并分開每一段來運行。該工具不僅為數(shù)據(jù)處理、分析、建模、觀察結(jié)果提供更好的視覺體驗,更能大大縮小運行代碼及調(diào)試代碼的時間,同時還會讓整個處理和建模過程變得異常清晰。因此,Jupyter Notebook逐漸成為互聯(lián)網(wǎng)和人工智能企業(yè)中小程序開發(fā)環(huán)境的主流選擇。
(2)Jupyter Notebook適合Python編程教學(xué)
Jupyter Notebook通過可重復(fù)交替設(shè)置的代碼單元、標(biāo)注單元和輸出單元,將實時運行的代碼、敘事性的注釋文本及圖片、可視化運行輸出結(jié)果整合在同一平臺內(nèi),使得其不僅具有如PPT一般的展示工作成果功能,還可以在同一窗口進行程序調(diào)試和觀察效果。通過添加代碼單元,可以單獨運行每一行代碼,能很好地契合Python解釋性語言的特色,大大增加了程序調(diào)試的效率。輸出單元讓程序運行和運行結(jié)果在一個環(huán)境內(nèi)的不同代碼塊中,可視化效果好。標(biāo)注單元可以輸出注釋文字、兼容的HTML和LaTex等網(wǎng)頁效果和公式。一體化平臺讓教學(xué)不再頭疼于運行、結(jié)果和講義之間的往復(fù)切換。同時,該工具允許在一個文檔中使用任意多個編程單元,讓課程的組織呈現(xiàn)非線性化。以上特色讓Jupyter Notebook成為最適合Python的教學(xué)平臺。
Jupyter Notebook允許在瀏覽器上運行交互式python代碼,支持編寫和調(diào)試幾乎同時進行,又有眾多的插件和命令,大大增強了Python的編程體驗。同時讓編程過程不像專業(yè)IDE環(huán)境那樣復(fù)雜,有利于學(xué)生將注意力集中在問題解決本身上,而不是環(huán)境的使用上,從而激發(fā)學(xué)生的學(xué)習(xí)興趣。北美頂尖的計算機課程幾乎都放棄了命令行Python的形式,轉(zhuǎn)而選擇Jupyter Notebook作為授課和作業(yè)實踐的基本工具。
三、利用互動創(chuàng)生的教與學(xué)應(yīng)用培養(yǎng)學(xué)生自主學(xué)習(xí)能力
在信息技術(shù)學(xué)科教學(xué)中,學(xué)生在數(shù)字化環(huán)境中的自主性、創(chuàng)造性和問題解決能力是“數(shù)字化學(xué)習(xí)與創(chuàng)新”的三個主要評價指標(biāo)。創(chuàng)設(shè)適合學(xué)生發(fā)展的數(shù)字化學(xué)習(xí)環(huán)境,促進其自主學(xué)習(xí)和創(chuàng)新能力形成,是信息技術(shù)學(xué)科教師教學(xué)設(shè)計的一個重要基礎(chǔ)。學(xué)生在數(shù)字化環(huán)境中接觸信息技術(shù)、掌握信息技術(shù),并充分應(yīng)用信息技術(shù)探索解決現(xiàn)實世界的問題,逐漸形成自己的“數(shù)字化學(xué)習(xí)與創(chuàng)新”素養(yǎng)。選擇適當(dāng)?shù)臄?shù)字化編程環(huán)境后,還需要在實踐中充分認(rèn)識和利用該環(huán)境,以及它提供的學(xué)習(xí)資源與工具,用于開展自主學(xué)習(xí)、協(xié)同工作、知識分享與創(chuàng)新創(chuàng)造,助力終身學(xué)習(xí)能力的提高,更加有效地達到數(shù)字化學(xué)習(xí)和創(chuàng)新的內(nèi)涵要求。
1.支持同行數(shù)字化協(xié)同和協(xié)作
和同行使用相同的協(xié)作工具交流,是數(shù)字化學(xué)習(xí)與創(chuàng)新能力的主要外在特征。Markdown是Jupyter Notebook標(biāo)記單元內(nèi)書寫文本內(nèi)容的格式,每個Markdown單元都可以看作一個小的文本編輯器,不僅兼容多種編程語言,還支持HTML語言格式的引用。原則上任何HTML網(wǎng)頁效果都可以直接放置在Markdown單元中。文檔標(biāo)記單元內(nèi)還支持嵌入國際主流科學(xué)類雜志的標(biāo)準(zhǔn)格式LaTex語言標(biāo)簽,從而能產(chǎn)生任意復(fù)雜的印刷質(zhì)量數(shù)學(xué)符號和方程。
Markdown已經(jīng)成為開源社區(qū)一種新的文檔標(biāo)準(zhǔn),賦予Jupyter Notebook強大的兼容性,極大地方便了Python語言的功能和使用者在開源社區(qū)與同行的交流協(xié)作。教師可以利用Jupyter中Markdown語句的操作,將輸出結(jié)果嵌套在Notebook中,使得在Jupyter中輸入任何內(nèi)容都會以一種有組織、有層次的形式排列展示出來,也非常有利于教案的設(shè)計排版和教學(xué)講義的生成。
2.支持互動創(chuàng)生的教與學(xué)過程
在編程教學(xué)中,最讓教師頭疼的是在PPT講義和編程環(huán)境之間來回切換,代碼放在PPT中,既沒辦法呈現(xiàn)調(diào)試過程,也無法觀察編程效果,而IDE環(huán)境又無法直接做成講義。Jupyter是一個集代碼編寫、文本顯示和運行結(jié)果為一體的數(shù)字化整合環(huán)境,當(dāng)被應(yīng)用于教學(xué)時,教師可以利用這個特點設(shè)置相應(yīng)的題目以及部分講解內(nèi)容,而學(xué)生則負(fù)責(zé)填滿教師所預(yù)留的空白以達到作業(yè)的要求,師生互動完成編程任務(wù)。也可以組織學(xué)生小組協(xié)作、合作完成一個任務(wù)。通常在一個Jupyter Nootebook文件中,標(biāo)注單元、代碼單元交替重復(fù)出現(xiàn),運行單元緊隨其后,學(xué)生可以一邊學(xué)習(xí),一邊驗證,一邊拓展,通過執(zhí)行代碼來理解問題,迭代式地修改代碼來改進解決方法。這種交互創(chuàng)生的教與學(xué)方式有利于極大地發(fā)揮學(xué)生學(xué)習(xí)的自主性和創(chuàng)造的興趣。豐富的庫、框架及插件為學(xué)生提供了支架幫助,掃清學(xué)生創(chuàng)新創(chuàng)造的技術(shù)障礙。這種在IDE環(huán)境中做不到、想不到的事情,在Jupyter Notebook數(shù)字化環(huán)境中不僅能想到,而且可以做到,并能方便地引入課堂,這才是數(shù)字化學(xué)習(xí)與創(chuàng)新的價值所在。
3.支持生成可運行程序的網(wǎng)頁演示文檔
Jupyter Notebook可以通過安裝插件的方式擴展其功能。例如,可以使用一個稱為RISE的擴展,將Notebook文檔轉(zhuǎn)換為基于網(wǎng)頁的演示文稿,而演示文稿中的代碼單元仍然可以實時運行和調(diào)試,還可以用隱藏命令隱去不需要演示的部分,非常方便教師撰寫教學(xué)文檔,并直接開展教學(xué)。
4.支持快速生成并輸出PDF版文檔作品
若想分享在Jupyter Notebook中處理好的數(shù)據(jù)流程和創(chuàng)建的繪圖,或者將文字、圖片、代碼和注釋快速生成文檔,只要安裝“notebook-as-pdf”包并通過相應(yīng)的命令,就可以快速實現(xiàn)。利用該功能,學(xué)生可以快速生成學(xué)習(xí)成果匯報作業(yè),教師可以生成教學(xué)講義以及教材的原型稿,進而形成論文和著作等。
四、利用問題解決過程培養(yǎng)實踐創(chuàng)新能力
數(shù)字化學(xué)習(xí)與創(chuàng)新是學(xué)會學(xué)習(xí)和實踐創(chuàng)新的綜合體現(xiàn)。根據(jù)建構(gòu)主義的觀點,學(xué)習(xí)更多是一種“向內(nèi)”的自我建構(gòu),而創(chuàng)新則是一種“向外”的踐行。信息技術(shù)學(xué)科教師首先要熟悉學(xué)科核心素養(yǎng)的語境,理解數(shù)字化學(xué)習(xí)和創(chuàng)新的概念,但更重要的是在課堂教學(xué)中,創(chuàng)設(shè)合適的數(shù)字化學(xué)習(xí)與創(chuàng)新的環(huán)境和活動,引導(dǎo)學(xué)生利用數(shù)字化資源創(chuàng)造性地解決問題。例如,在“神奇的π”項目學(xué)習(xí)中,教師設(shè)計了借助Python和Jupyter的編程語言和環(huán)境,探索π值計算的算法,不僅能深刻理解我國魏晉時期數(shù)學(xué)家劉徽首創(chuàng)的割圓術(shù)“以直代曲、無限趨近、內(nèi)外夾逼”的極限思想,而且可以用完整的程序重現(xiàn)計算過程,來驗證中國古籍中記載的π值計算的準(zhǔn)確性,進而拓展到現(xiàn)存的各種π值計算方法。該方法不僅突破了數(shù)學(xué)學(xué)科教學(xué)的難點,還通過編程實現(xiàn),讓學(xué)生體驗了算法解決問題的奧妙,最終讓學(xué)生認(rèn)識到數(shù)字化工具在解決問題過程中的重要作用。在“AI文學(xué)鑒賞”項目中,基于已有的文學(xué)詩詞文庫,利用分詞技術(shù)、正則匹配、實體抽取等技術(shù),可以提取唐代詩人關(guān)系圖、蘇軾詩詞特點、李白不同詩歌類型的寫作數(shù)量甚至詩詞的創(chuàng)作地點分布圖等,給學(xué)生提供一個利用數(shù)字化工具認(rèn)識和鑒賞中國文化的新視角。諸如此類的實踐創(chuàng)新項目,是運用信息技術(shù)學(xué)科編程技術(shù)獨有的問題解決過程,但不是簡單的技術(shù)輔助學(xué)科學(xué)習(xí),而是信息技術(shù)學(xué)科思維和學(xué)科思維的深度融合,不僅強化了學(xué)生對于學(xué)科內(nèi)容的深刻理解,還極大地促進了學(xué)生的學(xué)習(xí)興趣,提升創(chuàng)新性解決問題的能力。
五、結(jié)語
數(shù)字化學(xué)習(xí)環(huán)境不僅改變了人們的學(xué)習(xí)方式、交往方式,也深深影響了人們的思維方式。因此,數(shù)字化學(xué)習(xí)與創(chuàng)新中的學(xué)習(xí)是運用數(shù)字化環(huán)境自主學(xué)習(xí)和協(xié)同協(xié)作的相結(jié)合,創(chuàng)新是數(shù)字化環(huán)境下問題解決過程中的創(chuàng)造。
中小學(xué)信息技術(shù)學(xué)科教師應(yīng)當(dāng)具有比學(xué)科教師更高的數(shù)字化環(huán)境創(chuàng)設(shè)及信息技術(shù)應(yīng)用能力。但據(jù)實際調(diào)研可知,信息技術(shù)學(xué)科教師授課時,往往直奔主題,而忽視了教育技術(shù)與教學(xué)內(nèi)容的深度融合,注重技術(shù)掌握目標(biāo)的達成,而忽視了核心素養(yǎng)的培養(yǎng)。編程教育要擺脫傳統(tǒng)“程序員式”代碼編寫和語法學(xué)習(xí)的枯燥教學(xué)方式,就必須提升信息技術(shù)學(xué)科教師的信息素養(yǎng)。信息技術(shù)學(xué)科教師不僅能認(rèn)識編程語言的優(yōu)勢與局限,還要能選擇適當(dāng)?shù)臄?shù)字化環(huán)境,開展項目式的問題解決過程實踐,最終培養(yǎng)學(xué)生“創(chuàng)造性地解決問題,完成學(xué)習(xí)任務(wù),形成創(chuàng)新作品”的能力。
參考文獻:
[1]任友群,隨曉筱,劉新陽.歐盟數(shù)字素養(yǎng)框架研究[J].現(xiàn)代遠(yuǎn)程教育研究,2014(5):3-4.
[2]潘家琪,劉俊強.“數(shù)字化學(xué)習(xí)與創(chuàng)新”素養(yǎng)解讀與教學(xué)建議[J].中國教育信息化,2019(6):1-4.
[3]劉向永.面向核心素養(yǎng)的高中信息技術(shù)課程標(biāo)準(zhǔn)修訂——訪教育部高中信息技術(shù)課程標(biāo)準(zhǔn)修訂組組長任友群教授[J].中國信息技術(shù)教育,2017(12):4-8.
[4]楊曉哲,任友群.高中信息技術(shù)學(xué)科的價值追求:數(shù)字化學(xué)習(xí)與創(chuàng)新[J].中國電化教育,2017(1):21-26.
[5]解月光,楊鑫,付海東.高中學(xué)生信息技術(shù)學(xué)科核心素養(yǎng)的描述與分級[J].中國電化教育,2017(5):8-14.
[6]樊磊.面向中小學(xué)教師的Python編程入門[M].上海:上??萍冀逃霭嫔?,2020.8.
(編輯:王曉明)