楊瀚盛
(廣東省廣州市番禺區實驗中學,廣東廣州 510000)
近年來,人工智能技術蓬勃發展,人工智能已成各國競爭的新領域,而人才將是這場競爭的關鍵。2018年教育部印發的《教育信息化2.0 行動計劃》提出,要完善課程方案和課程標準,充實適應信息時代、智能時代發展需要的人工智能和編程課程內容,推動落實各級各類學校的信息技術課程,并將信息技術納入初、高中學業水平考試[1]。可見,在中學階段開設人工智能課程、開展人工智能教育勢在必行,對我國人工智能人才培養有重大意義。
進入21世紀,科技創新不斷推動人類文明的進步,越來越多的國家意識到創新人才培養的重要性,并開始重視STEM 教育。2016年教育部印發的《教育信息化“十三五”規劃》中要求,有條件的地區要積極探索信息技術在“眾創空間”、跨學科學習(STEAM 教育)、創客教育等新的教育模式中的應用[2]。
《普通高中信息技術課程標準(2017年版)》(以下簡稱《新課標》)中必修模塊1《數據與計算》、選擇性必修模塊4《人工智能初步》、選擇性必修模塊6《開源硬件項目設計》及選修模塊1《算法初步》等均是對上述“行動計劃”“‘十三五’規劃”的推進與落實。《新課標》的實施給廣大一線高中信息技術教師帶來了新的機遇與挑戰。如何更好地開展《新課標》下高中信息技術課程是高中信息技術教師下一階段的工作重點。
OpenMV 是一套簡單易用的、開源的、基于Python 語言的嵌入式計算機視覺架構,它在一塊小巧的硬件模塊上提供了豐富的引腳接口及Python 編程接口。OpenMV 在人工智能技術方面的易用性與極低的入門門檻,使得其與其他眾多人工智能框架、開源項目相比更適合中學生。隨著時代的發展,我們對學生的要求也應發生轉變,因此學校課程也不能一成不變,科學合理的課程開發應與時俱進[3]。于是,我們便有了嘗試在我校開發一門行之有效的、基于OpenMV 的、以人工智能為特色的STEM 課程的想法。
這一新的課程,能讓學生熟練掌握人工智能首選語言——Python 語言,掌握如何使用Python 語言調用OpenMV 視覺函數,掌握如何使用Python 語言驅動OpenMV 硬件運作;讓學生體驗計算機如何識別圖像中的目標,理解計算機視覺實現的基本機理,了解人工智能實現的簡單原理;讓學生能夠綜合運用所學知識,并對知識進行合理整合、重構,學會把編程語言、計算機視覺、3D 打印、硬件驅動等多方面的科學、技術、工程知識結合起來,最終完成諸如追蹤小球、物品分揀,甚至解魔方機器人等項目。在此過程中,學生的創新意識、實踐能力得到充分的鍛煉。
根據OpenMV、STEM 教育的特點及對課程目標的分析,按照由淺入深、從基礎到項目應用的課程設計路線圖,我們把課程分成4 個主要模塊,即語言篇、硬件篇、計算機視覺篇及項目實踐篇(見表1)。課程共28 個課時(其中8 個課時在信息技術課完成),每周1 個課時,安排在一個學期內完成。

表1 課程模塊分析表
本模塊涵蓋了程序設計三大結構及Python 語法等內容。它是本課程的基礎,是后續3 個模塊的前導知識。當然,本模塊活動的開展還有一個很重要的目的:它充分體現了《新課標》對學生計算思維能力的要求,以培養學生計算思維、程序設計能力為主要目的。另外,因為本模塊內容與信息技術課程中程序設計相關知識內容重疊,所以要求學生在信息技術課堂上完成本模塊的學習。
OpenMV 的核心是一塊意法半導體的STM32 芯片,它在OpenMV 板上提供了10 個可復用IO 接口,1 個SPI 總線、1個I2C 總線,1 個串口總線,12 位數模、模數接口各1 個,還有3 個I/O 引腳可用于舵機控制。
按照由淺入深的原則,本模塊的內容被劃分成了三個部分:(1)入門——學生將首先了解OpenMV 的基本功能、常用接口介紹;(2)進階——學習數字IO 接口,結和Python語言調用Pin 類的函數方法,實現數字接口的輸入與輸出,在此基礎上做一些如按鍵開關燈等小實驗;(3)提高——學生將完成兩個實驗:編程調用Pin 類+OpenMV 電機擴展板驅動小車運動、調用Servo 類+舵機實現2 軸云臺轉動。通過開展實驗活動,學生不僅掌握了OpenMV 的硬件使用方法,還激發了對OpenMV 課程的學習興趣,提高了創客精神與動手實踐能力。
與其他開源架構相比,OpenMV 最大的特色是在主板上提供了一個攝像頭,實現了計算機視覺算法。因此,本模塊以計算機視覺為方向的人工智能學習是課程的最大特色與亮點。
本模塊開篇以人工智能發展現狀、趨勢導入,從計算機視覺原理開始,逐步向學生展示OpenMV 的魅力所在:圖像繪制、顏色識別、顏色追蹤、直線檢測、線段檢測、形狀識別、形狀追蹤、邊緣檢測、關鍵點檢測、數字識別、二維碼讀取、人臉檢測、人臉追蹤、瞳孔檢測、模板匹配、特征點檢測……OpenMV的開發參考了大名鼎鼎的OpenCV視覺庫,它把很多OpenCV 中專業的算法封裝起來。因此,學生可以在不需要掌握計算機圖像專業算法的情況下,用Python 調用OpenMV 的計算機視覺庫函數,實現上述大量圖像識別內容。學生在完成本模塊內容學習后,能夠對人工智能技術有初步的了解,掌握基本的計算機視覺處理方法,從而為日后更深入地學習人工智能技術打下基礎。
通過前面的學習,學生已具備一定的知識技能,能夠在教師的引導下獨立完成簡單的任務。在此基礎上,本模塊要求學生把所學知識進行整合,可以結合OpenMV 官方提供的如LCD 顯示屏擴展板、電機擴展板、PWM 舵機擴展板、IMU 姿態傳感器擴展板、ToF 光學測距擴展板等模塊進行合理的項目開發。本模塊充分體現了STEM 教育理念,以培養學生分析問題、解決問題的能力,知識綜合運用能力,實踐能力,協作能力,探究精神,創新思維為主要目的。
項目式學習是STEM 教育的一大法寶。基于OpenMV 的STEM 課程,以信息技術程序設計為基礎,在進行項目實踐過程中還需要融合大量科學、技術、工程領域的知識,它強調培養學生的問題解決能力、實踐能力與創新精神。項目式學習主要包括項目情景導入、分析問題、制訂解決方案、項目開展與實施、交流總結幾個環節。在情景導入環節,教師可圍繞項目的核心問題創設情境,激發學生的學習興趣,幫助學生理解問題;在分析問題環節,學生可運用現有知識分析問題,把握問題的核心,培養自身分析問題的能力;在制訂解決方案環節,學生可根據問題核心提出解決問題的策略和方法,培養自身問題求解的能力;在項目實施環節,學生可在教師的引導下按照設計方案實施項目,培養自身協作能力、實踐能力、探究精神與創新精神;最后,在交流與總結環節,學生可以以小組為單位進行項目經驗交流與總結,培養自身語言表達能力、歸納總結能力。
在STEM 課程學習過程中,學生需要掌握Python、硬件、計算機視覺等多學科知識。由于該課程涉及知識面廣,知識點較多而且相對零散,學生對知識的遺忘率比較高。尤其在項目實踐階段完成較復雜的任務時,學生往往需要查閱課程資料、查看課程活動記錄,以幫助提高學習效率,加快項目開發進度。為此,我們引入了Moodle 在線課程管理系統。Moodle 提供了豐富的課程活動,如論壇、測驗、資源、投票、問卷調查、作業、聊天室、博客等。通過這些豐富的活動,學生可以記錄下完整的學習過程。同時,Moodle 強調學習過程中學生的互動、交流與協作,要求生生之間、師生之間共同探索,合作解決問題[4]。這與STEM 項目式學習理念不謀而合。
總之,學校應把國家大力倡導發展的“人工智能技術”與能培養學生創新能力的STEM 教育有效地整合成一門實用的、易學的、可操作性極強的課程,利用OpenMV 在人工智能技術方面的易用性與極低的入門門檻,使用“人工智能語言”Python,以極其豐富的硬件接口開發出一門全新的STEM課程。在當前國內幾乎找不到在中學階段開展以研究人工智能技術、培養學生創新能力為核心的STEM 課程的情況下,這門課程的開發顯得彌足珍貴。因此,作為中學STEM 教育的一線教師,我們應努力提高自身素養,繼續完善與豐富課程內容,為國家培養新一代人工智能人才與創新思維人才貢獻自己的力量。