趙勝楠 朱立才 張輝
摘? 要: 為彌補當前Python程序設計課程教學中的不足,根據融合CDIO工程教育理念,以人臉檢測—控制燈光項目為例,借助Jupyter Notebook平臺,通過“構思—設計—實施—運行”四個環節,探索一種線上線下混合式課程改革方案。先從課堂的知識點入手,以創新實訓項目為切入點,學生分組合作,最終完成一個仿真實踐。該方案培養了學生實際開發項目的能力,從而提升了課程教學的質量。
關鍵詞: Python; 程序設計; CDIO; Jupyter Notebook
中圖分類號:G434? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2022)03-83-03
Abstract: In order to make up for the deficiencies in the current Python programming course teaching, according to the CDIO engineering education concept, taking the project of face detection & lighting control as an example, with the help of the Jupyter Notebook platform, a online-offline blended course reform scheme is explored through the four links of “conception-design- implementation-operation”. Starting with the knowledge points of the classroom, taking the innovative training project as the starting point, students cooperate in groups to complete a simulation practice finally. The scheme cultivates students' ability to actually develop projects, so as to improve the quality of the course teaching.
Key words: Python; programming; CDIO; Jupyter Notebook
0 引言
Python是一種面向對象、直譯式的計算機程序設計語言[1]。近幾年,Python語言發展迅速,已在機器學習、深度學習、大數據等領域廣泛應用。Jupyter Notebook是當前非常流行的一種基于Web、支持Python語言的交互式開發工具[2]。隨著Jupyter Notebook插件的不斷開發與應用,其在教學方面的功能逐漸被發掘。運用Jupyter Notebook,并結合 Python豐富的庫資源,教師可共享教學PPT、實時代碼、開展線上答題等多樣化的混合式教學。學生也可利用 Jupyter平臺進行主動學習和翻轉學習。
CDIO是構思(Conceive)、設計(Design)、實現(Implement)與運作(Operate)縮寫[3]。CDIO 模式的核心理念是以實際項目工程為載體,讓學生以主動的、實踐的方式學習工程項目,重視實踐教學,倡導學生“做中學”。因此,本文基于CDIO思想,并結合Jupyter平臺,針對Python程序設計中項目實踐環節,探索一種線上線下混合式課程改革方案。
1 Python語言現狀
目前,市場對Python的人才需求陡增,許多高校已開設了Python相關課程,但我國Python教學還處于起步和發展階段,存在教學案例陳舊、實踐創新不足等問題。在Python 理論學習的基礎上,將算法運用到實際實驗項目,這并非易事。很多學生對理論知識并沒有深刻的理解,對算法的學習只停留在表面,只能知其然卻不知其所以然。盡管目前網絡上有許多精品課程,但這些課程多以理論知識的教學為主,注重介紹算法本身,較少涉及實際應用。而且很多Python語言教材中的教學實例落后于時代發展,比如,仍以繪制五角星、打印乘法口訣等為主的數學計算案例。教師應與時俱進,實時地更新教學案例,如智能垃圾分類、新冠肺炎X光檢測、機器人視覺檢測智能送風、人臉檢測智能開燈等與日常生活息息相關的案例,從而激發學生的學習興趣。
2 CDIO理念教學實施
按照CDIO理念,首先從課堂的知識點入手,運用信息化教學方式掌握基本知識點,以創新實訓項目為切入點, 學生分組合作,最終完成一個仿真實踐[4]。本文將通過人臉檢測_控制燈光這一項目案例組織開展教學,在教學過程中為學生建立真實軟件項目開發的工作框架,從而提高學生的學習能力和工程實踐能力,使學生能夠從中得到實戰經驗[5]。在CDIO理念下,每個階段制定相應的實訓任務,如表1所示。
2.1 構思階段
本階段主要通過線上完成。課前,教師通過Jupyter平臺發布關于人臉識別算法的研究現狀以及基本知識點的微課視頻。微課視頻旨在幫助學生課前通過線上自主學習,獲取人臉檢測相關知識點并且了解該項目本節課的學習任務,引導學生對人臉檢測_控制燈光這一項目進行構思,便于教師以此為基礎開展翻轉課堂。學生分組合作,開展需求分析,共同完成線上學習任務。
2.2 設計階段
本階段采用線上線下混合式教學模式。學生根據需求分析,進行模塊劃分、功能及算法分析。首先,教師通過線上學習平臺發布各小組的實驗構思方案,讓學生先了解其他各組的初步想法。其次,線下開展知識點講解,組織學生展開討論,每組派出代表陳述本組的算法思想。若方案存在的重大問題,教師提出修正,學生對實驗方案進行修改和完善,再重新提交。
2.3 實施階段
本階段是通過線下實操完成。首先學生需準備訓練數據集,包括數據采集、數據預處理、數據篩選、數據標注、數據增強、公共數據集等;然后進行模型訓練,搭建Jupyter開發環境、預訓練模型、超參數設置、模型過程可視化、模型精度評估;再將模型部署。學生編寫簡單代碼調用攝像頭,平臺將數據傳到傳感器,最終實現當攝像頭檢測到人臉時,開燈,否則,關燈。各小組按照實施方案進行編程操作,教師巡視各小組的操作過程,針對操作中的重難點進行講解和現場演示,并給予適當的指導。
2.4 運行階段
本階段是線下展示。學生分組進行項目答辯,匯報項目設計方案、實施過程中存在的問題和解決辦法,在Jupyter平臺上展示運行結果。教師對各小組的整個實驗項目實施過程進行分析和點評,引導學生多角度思考問題和自我反思。最后,教師開展項目考核,在評價中將學生引入評價主體,引導學生開展自評和互評等多元化評價方式[3]。從而改變傳統教學中存在的重理論輕實踐、重知識輕創新、忽視團隊協作等問題。
3 案例設計與實施
運用Jupyter平臺的優勢之一就是算法的底層代碼已封裝好,學生無需再進行復雜的底層設計開發,極大簡小了編程工作量。以人臉檢測_控制開燈實戰項目為例,部分代碼如下:
fan_state = 0
while True:
time.sleep(1)
body_state = body.get_body_di_data()
if body_state == 0 and fan_state == 0:
fan.fan_power_on()
time.sleep(1)
fan.open_fan()
fan_state = 1
elif body_state == 1 and fan_state == 1:
fan.fan_power_off()
fan_state = 0
break
time.sleep(1)
學生可通過簡單Python語句調用攝像頭,實時采集圖像數據,實現人臉檢測功能,運行fan.fan_power_on()、fan.fan_power_off()便可實現開、關燈。學生能夠實時看到運行結果,擺脫了以往編程軟件“黑底白字”的運行界面,從而能夠激發起學習興趣,進而探索復雜的人臉識別算法[6]。
4 結束語
本文融合CDIO工程教育理念,借助Jupyter平臺,以學生為主體,以基礎理論為指導,改進教學模式。該教學模式,能夠讓學生更好地融入課堂教學活動,調動學生探究學習的積極性,加強師生間的互動交流,對培養學生項目開發的能力起到一定的促進作用。未來,可進一步將線上課堂練習融入課堂,并豐富線上學習內容。
參考文獻(References):
[1] 左衛剛.基于CDIO模式的Python程序設計課程教學應用研究[J].計算機時代,2019,(8):78-80,96
[2] 陸釗,韋舒惠.大數據專業混合式教學的ICT應用方案分析與設計[J].信息技術與信息化,2021(5):226-2294
[3] 盧文娟,曾達幸,張立杰等.基于CDIO-OBE工程教育改革思想的教學實踐[J].教育現代化,2017(26):29-30,41
[4] 魏冬梅,王影,鐘世芬等.基于CDIO模式的Python程序設計課程教學實踐[J].計算機教育,2018(2):129-131
[5] 孟穩.基于OBE和CDIO的“工業機器人編程與操作”課程教學探究[J].黑龍江教育:理論與實踐,2021(7):91-92
[6] 謝春麗,高宇翔,吳昊聰等.程序設計類課程項目驅動化教學改革與實踐[J].計算機教育,2019(7):133-137
3327501908268