陳偉, 趙雷
摘 要:近年來伴隨著機(jī)器學(xué)習(xí)技術(shù)和人工智能應(yīng)用的迅速發(fā)展,Python程序設(shè)計(jì)得到了廣泛的關(guān)注,因?yàn)槟壳按蠖鄶?shù)AI框架都是基于Python搭建的,例如Pytorch與Tensorflow。但是,當(dāng)前Python程序設(shè)計(jì)課程的教學(xué)模式還不夠完善,一方面是由于該課程發(fā)展時(shí)間較短尚屬于開發(fā)階段;另一方面是由于新技術(shù)的快速迭代使得基于Python的新型應(yīng)用層出不窮,該現(xiàn)狀的持續(xù)發(fā)展給教學(xué)模式的跟進(jìn)帶來了極大的困難。為解決上述問題,文章分析了Python程序設(shè)計(jì)課程的特點(diǎn)及現(xiàn)有教學(xué)存在的問題,提出了以線下教學(xué)、線上教學(xué)、課程實(shí)踐、課程考核為基礎(chǔ)的綜合教學(xué)模式,以提高學(xué)生的編程能力,并著重培養(yǎng)學(xué)生分析問題、解決問題的能力。
關(guān)鍵詞: Python程序設(shè)計(jì);線下教學(xué);線上教學(xué);實(shí)踐教學(xué)
中圖分類號(hào):G642? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)21-0187-02
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
中共中央在十四五規(guī)劃建議中明確提出加快發(fā)展現(xiàn)代產(chǎn)業(yè)體系,壯大新一代信息技術(shù),推動(dòng)互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等各產(chǎn)業(yè)的深度融合。作為這些新興應(yīng)用的基礎(chǔ)課程,Python程序設(shè)計(jì)扮演著重要的角色,因?yàn)槟壳敖^大多數(shù)人工智能和數(shù)據(jù)挖掘的算法都是基于Python代碼實(shí)現(xiàn)的。為適應(yīng)時(shí)代的發(fā)展,給國家培養(yǎng)合格的現(xiàn)代化人才,需要在Python程序設(shè)計(jì)的教學(xué)過程中培養(yǎng)學(xué)生的綜合能力[1]。一方面,培養(yǎng)學(xué)生堅(jiān)實(shí)的代碼能力。另一方面,著重培養(yǎng)學(xué)生主動(dòng)思考問題的能力,可以針對不同實(shí)際需求提出相應(yīng)的解決方案。
與傳統(tǒng)程序設(shè)計(jì)課程C、C++相比,Python程序設(shè)計(jì)從內(nèi)容來講與這些課程有一定的相似性,因?yàn)镻ython的底層邏輯是基于C語言開發(fā)的。此外,Python程序設(shè)計(jì)也有一定的獨(dú)特性。一方面,它有不同于C語言的編碼風(fēng)格和界面設(shè)計(jì)。另一方面,它也有新的語法結(jié)構(gòu)和內(nèi)容,并具有豐富和強(qiáng)大的庫函數(shù)[2,3]。相較于其他傳統(tǒng)設(shè)計(jì)語言,對于新生來講Python更容易上手,這是因?yàn)镻ython的基礎(chǔ)內(nèi)容部分不涉及難度較高的指針操作、動(dòng)態(tài)內(nèi)存申請與釋放等。考慮到Python的廣泛應(yīng)用前景以及相對較低的上手難度,目前國內(nèi)已經(jīng)有部分高校將該語言作為新生的必修編程課程,將原來的C語言程序設(shè)計(jì)調(diào)整為選修課程。Python在學(xué)術(shù)界和工業(yè)界的普及和相關(guān)代碼的開源為諸多初學(xué)者帶來了極大的便利,但與此同時(shí)也帶來了一些問題。例如,在本科新生的教學(xué)過程中,有大量學(xué)生養(yǎng)成了知其然而不知其所以然的習(xí)慣。對于程序設(shè)計(jì)過程中出現(xiàn)的各種新函數(shù),學(xué)生通過查找資料了解了函數(shù)的應(yīng)用卻沒有深入了解函數(shù)的原型,包括參數(shù)的定義與返回值等。這種習(xí)慣的養(yǎng)成對后續(xù)其他編程語言的學(xué)習(xí)帶來了極大的困難,有很多學(xué)生會(huì)將Python中的某些函數(shù)直接應(yīng)用到其他語言,由此引發(fā)大量邏輯錯(cuò)誤。綜合考慮上訴情況,雖然Python程序設(shè)計(jì)是一門非常重要的課程,但需要精心設(shè)計(jì)才能達(dá)到事半功倍的效果。
2? Python程序設(shè)計(jì)課程的特點(diǎn)及存在的問題
2.1 Python程序設(shè)計(jì)課程的特點(diǎn)
Python語言在過去幾年中得了廣泛的關(guān)注和快速的發(fā)展,一方面得益于國家對人工智能的重視以及Python在該領(lǐng)域的杰出表現(xiàn),另一方面也源于該語言相對較低的學(xué)習(xí)難度和強(qiáng)大的功能以及友好的編程體驗(yàn)[4]。由于這些良好的特點(diǎn),Python程序設(shè)計(jì)正逐漸成為高校計(jì)算機(jī)專業(yè)的必修課程,并呈現(xiàn)以下特點(diǎn):
(1) 基礎(chǔ)性。從本質(zhì)上來講,Python程序設(shè)計(jì)是一門編程基礎(chǔ)課程,掌握好該語言有益于后續(xù)數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)等課程的學(xué)習(xí)。因此,在教學(xué)的過程中需要讓學(xué)生了解到該門課程的重要性,打好堅(jiān)實(shí)的代碼基礎(chǔ)。
(2) 前瞻性。考慮到國家對人工智能領(lǐng)域發(fā)展的切實(shí)關(guān)注以及行業(yè)的未來發(fā)展趨勢,Python將在未來的技術(shù)和產(chǎn)業(yè)升級(jí)中扮演者至關(guān)重要的角色。因此,需要在教學(xué)的過程中讓學(xué)生了解到該門課程的前瞻性,因?yàn)樗闇?zhǔn)的是未來的行業(yè)與市場。掌握好Python程序設(shè)計(jì)并靈活運(yùn)用對于計(jì)算機(jī)專業(yè)的學(xué)生來講是適應(yīng)未來發(fā)展的必要條件。
(3) 實(shí)踐性。雖然Python程序設(shè)計(jì)有一定的理論基礎(chǔ),但是總的來說,這是一門側(cè)重于實(shí)踐的課程。無論是基礎(chǔ)部分的條件語句、循環(huán)、函數(shù)等內(nèi)容,還是基于Python的算法設(shè)計(jì)、模型搭建等,都需要通過具體的代碼實(shí)現(xiàn)。因此,在教學(xué)的過程中,需要著重強(qiáng)調(diào)實(shí)踐能力的培養(yǎng),通過具體案例、隨堂測驗(yàn)等方式提高學(xué)生的實(shí)際動(dòng)手能力。
2.2 Python程序設(shè)計(jì)課程存在的問題
2.2.1教材單一
目前市面上已經(jīng)出現(xiàn)大量關(guān)于Python程序設(shè)計(jì)的教材,但是大多數(shù)教材對于本科新生的適用性都有待提升。在這些教材中,有很大一部分內(nèi)容過于簡單,沒有介紹程序在運(yùn)行過程中涉及內(nèi)存調(diào)用等底層操作的簡介,也有很大一部分介紹的內(nèi)容過多,沒有針對無編程基礎(chǔ)的本科生做相應(yīng)的重點(diǎn)內(nèi)容調(diào)整。此外,現(xiàn)有教材只關(guān)注于理論知識(shí)的無在線案例可參考,也沒有與教材相匹配的視頻資源。純理論的講解一方面加大了知識(shí)的理解難度,另一方面也容易在枯燥的學(xué)習(xí)過程中影響學(xué)生的學(xué)習(xí)興趣,從而降低學(xué)習(xí)效率。因此,Python程序設(shè)計(jì)教材單一的問題亟待解決。
2.2.2教學(xué)形式單一
目前Python程序設(shè)計(jì)的理論部分主要通過老師線下講授為主并側(cè)重于語法、算法等基礎(chǔ)知識(shí)[5],實(shí)踐部分主要通過學(xué)生完成實(shí)驗(yàn)報(bào)告實(shí)現(xiàn),而且大多數(shù)高校的理論和實(shí)踐是分開進(jìn)行的。對于本科生來講,日常繁多課程會(huì)在一定程度上分散學(xué)生的精力,部分學(xué)生會(huì)出現(xiàn)理論課上已經(jīng)理解的編程內(nèi)容到實(shí)驗(yàn)課上出現(xiàn)記憶衰退的現(xiàn)象。而且當(dāng)前線下講授的過程中沒有視頻錄制,部分學(xué)生也怯于向老師請教,這就導(dǎo)致在某些難度較高的知識(shí)點(diǎn)上學(xué)生理解不透,無法舉一反三、融會(huì)貫通。理論和實(shí)踐的單獨(dú)設(shè)立雖然明細(xì)了教學(xué)任務(wù)和行政步驟,但是卻沒有實(shí)現(xiàn)最好的教學(xué)效果,這種單一的安排需要得到進(jìn)一步的優(yōu)化。