魏冬梅,王 影,鐘世芬,陳紅紅
(西華大學 計算機與軟件工程學院,四川 成都 610039)
Python是當前非常流行的動態(tài)腳本語言,近年來已經(jīng)連續(xù)被Tiobe評為互聯(lián)網(wǎng)時代最有價值的編程工具之一,2017年排名已上升至第四位。隨著敏捷開發(fā)思想和方法越來越多地被企業(yè)級開發(fā)團隊所采用,涉及網(wǎng)絡(luò)運維、金融大數(shù)據(jù)分析、機器學習、深度學習等方向的Python的應(yīng)用越來越廣泛,基于Python構(gòu)建的項目也越來越多。Python發(fā)展如此迅速,逐漸得到高校的重視,很多高校開始將Python納入專業(yè)必修或選修課程,旨在培養(yǎng)學生編程思維和實際開發(fā)能力。然而,由于Python在國內(nèi)起步較晚,現(xiàn)有的課程體系及培養(yǎng)模式還存在一些不足,種種現(xiàn)狀透射出Python課程教學應(yīng)當與時俱進,順應(yīng)市場發(fā)展需要和大數(shù)據(jù)發(fā)展趨勢,制定課程改革方案,及時更新課程體系和框架,以實現(xiàn)更完善、高標準的培養(yǎng)目標。
Python起源于1989年底,由谷歌(Google)的工程師Guido van Rossum發(fā)明,設(shè)計該語言的初衷是為了讓編程像“ABC語言”一樣簡潔明了,事實上,Python的確具有語法簡潔清晰,可以很輕松地調(diào)用其他語言(如C語言或C++)編寫的模塊(DLL文件)。Python以其快速的開發(fā)速度,在計算機編程普及的一些國家被廣泛應(yīng)用,在國際上也得到了足夠的認可,但在中國的發(fā)展還處于起步階段。
市場對Python人才需求陡增,而學校教育培養(yǎng)不能及時滿足市場的人才需求,產(chǎn)生該方向?qū)I(yè)人才缺口;在國內(nèi),Python的研究資料相較于C語言或C++要欠缺得多,發(fā)展并不理想,很多學生在課后無法找到解決問題的方法;Python是動態(tài)語言,俗稱膠水語言,相對于其他高級語言,擁有較少的數(shù)據(jù)類型、結(jié)構(gòu)等語法知識,然而傳統(tǒng)程序設(shè)計語言的教學都會偏重于對語法的講解和知識的傳授,沒有過多地從思考問題、分析問題、解決問題的能力方面培養(yǎng)學生的編程思維,教學方法不科學、不合理。
將Python課程立足于實際項目需求,采用CDIO工程教學理念,從課程體系、教學策略、教學框架和教學特色等方面對課程進行改革,改革傳統(tǒng)的教學方法、教學實施和考核方式,探索一套符合本課程實際的課程教學模式。在課程內(nèi)容設(shè)計方面,突出工程教育的特點;在教學實施環(huán)節(jié),強調(diào)理論教學與課內(nèi)外實踐相結(jié)合,提出分組教學與創(chuàng)新團隊教學的模式;改革考核方式,提出讓學生參與的綜合實踐評價體系。
CDIO,指構(gòu)思(conceive)、設(shè)計(design)、實現(xiàn)(implement)和運作(operate),是由美國麻省理工學院和瑞典皇家理工學院等4所大學提出的現(xiàn)代高等工程教育理念,它以現(xiàn)代產(chǎn)品的生命周期為藍本;以重視學生實踐能力、學習能力以及系統(tǒng)掌控能力培養(yǎng)為主題,培養(yǎng)學生的工程科學能力、知識能力、終生學習能力、團隊協(xié)作能力和職業(yè)能力。目前,丹麥、芬蘭、法國、新加坡等國家的20多所大學加入了CDIO合作計劃。
基于CDIO和Python語言特征和發(fā)展趨勢,對課程進行重新整理和設(shè)計,構(gòu)建新的課程體系。由于Python語言本身非常精練,應(yīng)用項目涉及領(lǐng)域非常廣泛,因此,將重點放在實踐環(huán)節(jié)和項目演練,課程框架主要由Python及擴展應(yīng)用庫組成,如圖1所示。
Python是一種面向?qū)ο?、直譯式的計算機程序設(shè)計語言,第一個公開發(fā)行版發(fā)行于1991年,語法簡捷而清晰,具有豐富和強大的類庫,是Google公司的四大開發(fā)語言之一。本課程主要以當前最流行的敏捷式腳本開發(fā)工具Python進行教學。通過課程的學習,學生需深刻理解動態(tài)語言的特征,區(qū)分與C語言、Java、C++等語言之間的聯(lián)系與不同;學生通過學習優(yōu)秀的編程理念和方法,掌握敏捷式開發(fā)以及Python程序開發(fā)相關(guān)的知識和技能;通過腳本語言編程方法的學習,提升學生程序邏輯思維、奠定編程基礎(chǔ);學生需掌握Python的數(shù)據(jù)結(jié)構(gòu)和語法以及運行和調(diào)試的方法,函數(shù)式編程技巧;重點培養(yǎng)學生應(yīng)用Python解決綜合問題的能力,包括數(shù)據(jù)分析、文本處理、圖形編程和Web編程等應(yīng)用;要求學生利用實驗教學設(shè)備采集數(shù)據(jù)、實現(xiàn)編程處理,培養(yǎng)學生的自主學習能力、綜合應(yīng)用能力、創(chuàng)新設(shè)計能力。
教師在教學中注重與學生交流、注重教學反饋,根據(jù)學生的實際情況來設(shè)定目標等級,做到分階梯、分階段的合理教學。分階梯指根據(jù)學生的個體差異,分層教學,既照顧到大多數(shù)同學,又讓實踐能力強的同學充分發(fā)揮;分階段指將教學過程分為認知階段、基本能力培養(yǎng)階段、創(chuàng)新與實踐階段。如針對基礎(chǔ)好的學生,除要求其完成基本的學習任務(wù)之外,應(yīng)當正確引導其進行超前學習,擴展知識的方向,使其獲得真實項目體驗或參加各類大學生競賽的信息,擴大知識面。
根據(jù)課程的培養(yǎng)目標和構(gòu)建的課程體系,理論教學要為項目實訓打好基礎(chǔ),項目實訓也要為提高工程能力而服務(wù),因此,理論教學與項目實訓的比例基本為2:3,這有助于幫助學生梳理知識,明確學習目標,為實踐操作搭建一個合理穩(wěn)固的知識體系。
理論教學的具體實施分3個階段進行。第一階段以Python基礎(chǔ)教學為主,重點介紹Python數(shù)據(jù)基礎(chǔ)及數(shù)據(jù)結(jié)構(gòu)、基本語法及Python面向?qū)ο缶幊袒A(chǔ)。第二階段以Python科學計算領(lǐng)域應(yīng)用為主,介紹Numpy庫及Scipy庫的基本使用。第三階段,根據(jù)學生的興趣與特長,引導學生分類選擇學習相關(guān)的高級應(yīng)用方向,如擅長Web方向的同學,引導其朝網(wǎng)絡(luò)運維和信息采集方向?qū)W習;善于多媒體方向的,引導其學習圖形圖像處理及Python游戲擴展。
圖1 Python課程體系
項目驅(qū)動是CDIO模式中倡導的主要教學手段,整個課程通過一個完整的案例進行組織,在教學過程中為學生建立真實軟件項目開發(fā)的工作框架,引導學生“做中學”,提高學生的學習能力和工程實踐能力,使學生能夠從中得到實戰(zhàn)經(jīng)驗。教學過程深入淺出、循序漸進,按照真實項目案例,在每一個知識點提升階段,以綜合實訓的方式布置任務(wù),制定基于CDIO項目的實訓任務(wù),見表1。
在教學過程中,將學生以2~4人分組,分配實訓任務(wù),并將任務(wù)拆分成若干模塊,讓組內(nèi)成員獨立完成后再整合,既訓練學生的獨立解決問題的能力,又培養(yǎng)團隊協(xié)作精神。任務(wù)完成后,教師可從小組中選拔出特別優(yōu)秀的小組,幫助他們成立創(chuàng)新創(chuàng)業(yè)團隊,甚至利用自己的技術(shù)在校內(nèi)外承接項目。
考慮到課程體系內(nèi)容實踐性強、擴展應(yīng)用層面廣,單一考核模式不能客觀反映學生的真實水平,因此,考核方式需要打破傳統(tǒng)。學生成績由實訓(40%)+項目(50%)+評價(10%)3部分組成,實訓部分以平常的知識模塊及實訓任務(wù)為參考;項目任務(wù)部分以分組完成的實際項目作為考查與評價的核心;評價部分以小組或團隊提交的項目為依據(jù),各組通過答辯對項目進行展示和講解,教師與同學共同打分,教師點評。
基于CDIO模式的Python課程教學改革的多項措施已應(yīng)用于日常教學,從教學效果及學生反饋來看,課程改革取得了一定成效,其中分組項目實訓和團隊組建挖掘出很多有潛力的學生團隊,他們已經(jīng)具備獨立承擔小型項目和參與中型項目的能力??梢钥闯?,基于CDIO的課程改革能更好地達到教學目標,提高學生成績、提升實踐能力,對學生未來專業(yè)發(fā)展有極大的促進作用。
表 1 基于CDIO項目的實訓任務(wù)
[1]王碩旺, 洪成文. CDIO: 美國麻省理工學院工程教育的經(jīng)典模式: 基于對CDIO課程大綱的解讀[J]. 理工高教研究, 2009, 28(4):116-1l9.
[2]韓智, 張振虹, 李興娟. 基于CDIO理念的軟件工程課程教學改革[J]. 計算機教育, 2010(11): 56-59.
[3]嵩天, 黃天羽, 禮欣. Python語言: 程序設(shè)計課程教學改革的理想選擇[J]. 中國大學教學, 2016(2): 42-47.
[4]姚競. 面向項目的“Python程序設(shè)計”教學實踐與研究[J]. 福建電腦, 2009(7): 198-199.
[5]Hetland M L. Python基礎(chǔ)教程[M]. 司維, 曾軍崴, 譚穎華, 等, 譯. 2版. 北京: 人民郵電出版社, 2010.
[6]Chun W J. Python核心編程 [M]. 宋吉廣, 譯. 2版. 北京: 人民郵電出版社, 2009.