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