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