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