趙勝楠 朱立才 張輝
摘? 要: 為彌補(bǔ)當(dāng)前Python程序設(shè)計課程教學(xué)中的不足,根據(jù)融合CDIO工程教育理念,以人臉檢測—控制燈光項目為例,借助Jupyter Notebook平臺,通過“構(gòu)思—設(shè)計—實施—運行”四個環(huán)節(jié),探索一種線上線下混合式課程改革方案。先從課堂的知識點入手,以創(chuàng)新實訓(xùn)項目為切入點,學(xué)生分組合作,最終完成一個仿真實踐。該方案培養(yǎng)了學(xué)生實際開發(fā)項目的能力,從而提升了課程教學(xué)的質(zhì)量。
關(guān)鍵詞: Python; 程序設(shè)計; CDIO; Jupyter Notebook
中圖分類號:G434? ? ? ? ? 文獻(xiàn)標(biāo)識碼: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是一種面向?qū)ο蟆⒅弊g式的計算機(jī)程序設(shè)計語言[1]。近幾年,Python語言發(fā)展迅速,已在機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、大數(shù)據(jù)等領(lǐng)域廣泛應(yīng)用。Jupyter Notebook是當(dāng)前非常流行的一種基于Web、支持Python語言的交互式開發(fā)工具[2]。隨著Jupyter Notebook插件的不斷開發(fā)與應(yīng)用,其在教學(xué)方面的功能逐漸被發(fā)掘。運用Jupyter Notebook,并結(jié)合 Python豐富的庫資源,教師可共享教學(xué)PPT、實時代碼、開展線上答題等多樣化的混合式教學(xué)。學(xué)生也可利用 Jupyter平臺進(jìn)行主動學(xué)習(xí)和翻轉(zhuǎn)學(xué)習(xí)。
CDIO是構(gòu)思(Conceive)、設(shè)計(Design)、實現(xiàn)(Implement)與運作(Operate)縮寫[3]。CDIO 模式的核心理念是以實際項目工程為載體,讓學(xué)生以主動的、實踐的方式學(xué)習(xí)工程項目,重視實踐教學(xué),倡導(dǎo)學(xué)生“做中學(xué)”。因此,本文基于CDIO思想,并結(jié)合Jupyter平臺,針對Python程序設(shè)計中項目實踐環(huán)節(jié),探索一種線上線下混合式課程改革方案。
1 Python語言現(xiàn)狀
目前,市場對Python的人才需求陡增,許多高校已開設(shè)了Python相關(guān)課程,但我國Python教學(xué)還處于起步和發(fā)展階段,存在教學(xué)案例陳舊、實踐創(chuàng)新不足等問題。在Python 理論學(xué)習(xí)的基礎(chǔ)上,將算法運用到實際實驗項目,這并非易事。很多學(xué)生對理論知識并沒有深刻的理解,對算法的學(xué)習(xí)只停留在表面,只能知其然卻不知其所以然。盡管目前網(wǎng)絡(luò)上有許多精品課程,但這些課程多以理論知識的教學(xué)為主,注重介紹算法本身,較少涉及實際應(yīng)用。而且很多Python語言教材中的教學(xué)實例落后于時代發(fā)展,比如,仍以繪制五角星、打印乘法口訣等為主的數(shù)學(xué)計算案例。教師應(yīng)與時俱進(jìn),實時地更新教學(xué)案例,如智能垃圾分類、新冠肺炎X光檢測、機(jī)器人視覺檢測智能送風(fēng)、人臉檢測智能開燈等與日常生活息息相關(guān)的案例,從而激發(fā)學(xué)生的學(xué)習(xí)興趣。
2 CDIO理念教學(xué)實施
按照CDIO理念,首先從課堂的知識點入手,運用信息化教學(xué)方式掌握基本知識點,以創(chuàng)新實訓(xùn)項目為切入點, 學(xué)生分組合作,最終完成一個仿真實踐[4]。本文將通過人臉檢測_控制燈光這一項目案例組織開展教學(xué),在教學(xué)過程中為學(xué)生建立真實軟件項目開發(fā)的工作框架,從而提高學(xué)生的學(xué)習(xí)能力和工程實踐能力,使學(xué)生能夠從中得到實戰(zhàn)經(jīng)驗[5]。在CDIO理念下,每個階段制定相應(yīng)的實訓(xùn)任務(wù),如表1所示。
2.1 構(gòu)思階段
本階段主要通過線上完成。課前,教師通過Jupyter平臺發(fā)布關(guān)于人臉識別算法的研究現(xiàn)狀以及基本知識點的微課視頻。微課視頻旨在幫助學(xué)生課前通過線上自主學(xué)習(xí),獲取人臉檢測相關(guān)知識點并且了解該項目本節(jié)課的學(xué)習(xí)任務(wù),引導(dǎo)學(xué)生對人臉檢測_控制燈光這一項目進(jìn)行構(gòu)思,便于教師以此為基礎(chǔ)開展翻轉(zhuǎn)課堂。學(xué)生分組合作,開展需求分析,共同完成線上學(xué)習(xí)任務(wù)。
2.2 設(shè)計階段
本階段采用線上線下混合式教學(xué)模式。學(xué)生根據(jù)需求分析,進(jìn)行模塊劃分、功能及算法分析。首先,教師通過線上學(xué)習(xí)平臺發(fā)布各小組的實驗構(gòu)思方案,讓學(xué)生先了解其他各組的初步想法。其次,線下開展知識點講解,組織學(xué)生展開討論,每組派出代表陳述本組的算法思想。若方案存在的重大問題,教師提出修正,學(xué)生對實驗方案進(jìn)行修改和完善,再重新提交。
2.3 實施階段
本階段是通過線下實操完成。首先學(xué)生需準(zhǔn)備訓(xùn)練數(shù)據(jù)集,包括數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)篩選、數(shù)據(jù)標(biāo)注、數(shù)據(jù)增強(qiáng)、公共數(shù)據(jù)集等;然后進(jìn)行模型訓(xùn)練,搭建Jupyter開發(fā)環(huán)境、預(yù)訓(xùn)練模型、超參數(shù)設(shè)置、模型過程可視化、模型精度評估;再將模型部署。學(xué)生編寫簡單代碼調(diào)用攝像頭,平臺將數(shù)據(jù)傳到傳感器,最終實現(xiàn)當(dāng)攝像頭檢測到人臉時,開燈,否則,關(guān)燈。各小組按照實施方案進(jìn)行編程操作,教師巡視各小組的操作過程,針對操作中的重難點進(jìn)行講解和現(xiàn)場演示,并給予適當(dāng)?shù)闹笇?dǎo)。
2.4 運行階段
本階段是線下展示。學(xué)生分組進(jìn)行項目答辯,匯報項目設(shè)計方案、實施過程中存在的問題和解決辦法,在Jupyter平臺上展示運行結(jié)果。教師對各小組的整個實驗項目實施過程進(jìn)行分析和點評,引導(dǎo)學(xué)生多角度思考問題和自我反思。最后,教師開展項目考核,在評價中將學(xué)生引入評價主體,引導(dǎo)學(xué)生開展自評和互評等多元化評價方式[3]。從而改變傳統(tǒng)教學(xué)中存在的重理論輕實踐、重知識輕創(chuàng)新、忽視團(tuán)隊協(xié)作等問題。
3 案例設(shè)計與實施
運用Jupyter平臺的優(yōu)勢之一就是算法的底層代碼已封裝好,學(xué)生無需再進(jìn)行復(fù)雜的底層設(shè)計開發(fā),極大簡小了編程工作量。以人臉檢測_控制開燈實戰(zhàn)項目為例,部分代碼如下:
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)
學(xué)生可通過簡單Python語句調(diào)用攝像頭,實時采集圖像數(shù)據(jù),實現(xiàn)人臉檢測功能,運行fan.fan_power_on()、fan.fan_power_off()便可實現(xiàn)開、關(guān)燈。學(xué)生能夠?qū)崟r看到運行結(jié)果,擺脫了以往編程軟件“黑底白字”的運行界面,從而能夠激發(fā)起學(xué)習(xí)興趣,進(jìn)而探索復(fù)雜的人臉識別算法[6]。
4 結(jié)束語
本文融合CDIO工程教育理念,借助Jupyter平臺,以學(xué)生為主體,以基礎(chǔ)理論為指導(dǎo),改進(jìn)教學(xué)模式。該教學(xué)模式,能夠讓學(xué)生更好地融入課堂教學(xué)活動,調(diào)動學(xué)生探究學(xué)習(xí)的積極性,加強(qiáng)師生間的互動交流,對培養(yǎng)學(xué)生項目開發(fā)的能力起到一定的促進(jìn)作用。未來,可進(jìn)一步將線上課堂練習(xí)融入課堂,并豐富線上學(xué)習(xí)內(nèi)容。
參考文獻(xiàn)(References):
[1] 左衛(wèi)剛.基于CDIO模式的Python程序設(shè)計課程教學(xué)應(yīng)用研究[J].計算機(jī)時代,2019,(8):78-80,96
[2] 陸釗,韋舒惠.大數(shù)據(jù)專業(yè)混合式教學(xué)的ICT應(yīng)用方案分析與設(shè)計[J].信息技術(shù)與信息化,2021(5):226-2294
[3] 盧文娟,曾達(dá)幸,張立杰等.基于CDIO-OBE工程教育改革思想的教學(xué)實踐[J].教育現(xiàn)代化,2017(26):29-30,41
[4] 魏冬梅,王影,鐘世芬等.基于CDIO模式的Python程序設(shè)計課程教學(xué)實踐[J].計算機(jī)教育,2018(2):129-131
[5] 孟穩(wěn).基于OBE和CDIO的“工業(yè)機(jī)器人編程與操作”課程教學(xué)探究[J].黑龍江教育:理論與實踐,2021(7):91-92
[6] 謝春麗,高宇翔,吳昊聰?shù)?程序設(shè)計類課程項目驅(qū)動化教學(xué)改革與實踐[J].計算機(jī)教育,2019(7):133-137
3327501908268