魏冬梅,王 影,鐘世芬,陳紅紅
(西華大學 計算機與軟件工程學院,四川 成都 610039)
Python是當前非常流行的動態腳本語言,近年來已經連續被Tiobe評為互聯網時代最有價值的編程工具之一,2017年排名已上升至第四位。隨著敏捷開發思想和方法越來越多地被企業級開發團隊所采用,涉及網絡運維、金融大數據分析、機器學習、深度學習等方向的Python的應用越來越廣泛,基于Python構建的項目也越來越多。Python發展如此迅速,逐漸得到高校的重視,很多高校開始將Python納入專業必修或選修課程,旨在培養學生編程思維和實際開發能力。然而,由于Python在國內起步較晚,現有的課程體系及培養模式還存在一些不足,種種現狀透射出Python課程教學應當與時俱進,順應市場發展需要和大數據發展趨勢,制定課程改革方案,及時更新課程體系和框架,以實現更完善、高標準的培養目標。
Python起源于1989年底,由谷歌(Google)的工程師Guido van Rossum發明,設計該語言的初衷是為了讓編程像“ABC語言”一樣簡潔明了,事實上,Python的確具有語法簡潔清晰,可以很輕松地調用其他語言(如C語言或C++)編寫的模塊(DLL文件)。Python以其快速的開發速度,在計算機編程普及的一些國家被廣泛應用,在國際上也得到了足夠的認可,但在中國的發展還處于起步階段。
市場對Python人才需求陡增,而學校教育培養不能及時滿足市場的人才需求,產生該方向專業人才缺口;在國內,Python的研究資料相較于C語言或C++要欠缺得多,發展并不理想,很多學生在課后無法找到解決問題的方法;Python是動態語言,俗稱膠水語言,相對于其他高級語言,擁有較少的數據類型、結構等語法知識,然而傳統程序設計語言的教學都會偏重于對語法的講解和知識的傳授,沒有過多地從思考問題、分析問題、解決問題的能力方面培養學生的編程思維,教學方法不科學、不合理。
將Python課程立足于實際項目需求,采用CDIO工程教學理念,從課程體系、教學策略、教學框架和教學特色等方面對課程進行改革,改革傳統的教學方法、教學實施和考核方式,探索一套符合本課程實際的課程教學模式。在課程內容設計方面,突出工程教育的特點;在教學實施環節,強調理論教學與課內外實踐相結合,提出分組教學與創新團隊教學的模式;改革考核方式,提出讓學生參與的綜合實踐評價體系。
CDIO,指構思(conceive)、設計(design)、實現(implement)和運作(operate),是由美國麻省理工學院和瑞典皇家理工學院等4所大學提出的現代高等工程教育理念,它以現代產品的生命周期為藍本;以重視學生實踐能力、學習能力以及系統掌控能力培養為主題,培養學生的工程科學能力、知識能力、終生學習能力、團隊協作能力和職業能力。目前,丹麥、芬蘭、法國、新加坡等國家的20多所大學加入了CDIO合作計劃。
基于CDIO和Python語言特征和發展趨勢,對課程進行重新整理和設計,構建新的課程體系。由于Python語言本身非常精練,應用項目涉及領域非常廣泛,因此,將重點放在實踐環節和項目演練,課程框架主要由Python及擴展應用庫組成,如圖1所示。
Python是一種面向對象、直譯式的計算機程序設計語言,第一個公開發行版發行于1991年,語法簡捷而清晰,具有豐富和強大的類庫,是Google公司的四大開發語言之一。本課程主要以當前最流行的敏捷式腳本開發工具Python進行教學。通過課程的學習,學生需深刻理解動態語言的特征,區分與C語言、Java、C++等語言之間的聯系與不同;學生通過學習優秀的編程理念和方法,掌握敏捷式開發以及Python程序開發相關的知識和技能;通過腳本語言編程方法的學習,提升學生程序邏輯思維、奠定編程基礎;學生需掌握Python的數據結構和語法以及運行和調試的方法,函數式編程技巧;重點培養學生應用Python解決綜合問題的能力,包括數據分析、文本處理、圖形編程和Web編程等應用;要求學生利用實驗教學設備采集數據、實現編程處理,培養學生的自主學習能力、綜合應用能力、創新設計能力。
教師在教學中注重與學生交流、注重教學反饋,根據學生的實際情況來設定目標等級,做到分階梯、分階段的合理教學。分階梯指根據學生的個體差異,分層教學,既照顧到大多數同學,又讓實踐能力強的同學充分發揮;分階段指將教學過程分為認知階段、基本能力培養階段、創新與實踐階段。如針對基礎好的學生,除要求其完成基本的學習任務之外,應當正確引導其進行超前學習,擴展知識的方向,使其獲得真實項目體驗或參加各類大學生競賽的信息,擴大知識面。
根據課程的培養目標和構建的課程體系,理論教學要為項目實訓打好基礎,項目實訓也要為提高工程能力而服務,因此,理論教學與項目實訓的比例基本為2:3,這有助于幫助學生梳理知識,明確學習目標,為實踐操作搭建一個合理穩固的知識體系。
理論教學的具體實施分3個階段進行。第一階段以Python基礎教學為主,重點介紹Python數據基礎及數據結構、基本語法及Python面向對象編程基礎。第二階段以Python科學計算領域應用為主,介紹Numpy庫及Scipy庫的基本使用。第三階段,根據學生的興趣與特長,引導學生分類選擇學習相關的高級應用方向,如擅長Web方向的同學,引導其朝網絡運維和信息采集方向學習;善于多媒體方向的,引導其學習圖形圖像處理及Python游戲擴展。

圖1 Python課程體系
項目驅動是CDIO模式中倡導的主要教學手段,整個課程通過一個完整的案例進行組織,在教學過程中為學生建立真實軟件項目開發的工作框架,引導學生“做中學”,提高學生的學習能力和工程實踐能力,使學生能夠從中得到實戰經驗。教學過程深入淺出、循序漸進,按照真實項目案例,在每一個知識點提升階段,以綜合實訓的方式布置任務,制定基于CDIO項目的實訓任務,見表1。
在教學過程中,將學生以2~4人分組,分配實訓任務,并將任務拆分成若干模塊,讓組內成員獨立完成后再整合,既訓練學生的獨立解決問題的能力,又培養團隊協作精神。任務完成后,教師可從小組中選拔出特別優秀的小組,幫助他們成立創新創業團隊,甚至利用自己的技術在校內外承接項目。
考慮到課程體系內容實踐性強、擴展應用層面廣,單一考核模式不能客觀反映學生的真實水平,因此,考核方式需要打破傳統。學生成績由實訓(40%)+項目(50%)+評價(10%)3部分組成,實訓部分以平常的知識模塊及實訓任務為參考;項目任務部分以分組完成的實際項目作為考查與評價的核心;評價部分以小組或團隊提交的項目為依據,各組通過答辯對項目進行展示和講解,教師與同學共同打分,教師點評。
基于CDIO模式的Python課程教學改革的多項措施已應用于日常教學,從教學效果及學生反饋來看,課程改革取得了一定成效,其中分組項目實訓和團隊組建挖掘出很多有潛力的學生團隊,他們已經具備獨立承擔小型項目和參與中型項目的能力。可以看出,基于CDIO的課程改革能更好地達到教學目標,提高學生成績、提升實踐能力,對學生未來專業發展有極大的促進作用。

表 1 基于CDIO項目的實訓任務
[1]王碩旺, 洪成文. CDIO: 美國麻省理工學院工程教育的經典模式: 基于對CDIO課程大綱的解讀[J]. 理工高教研究, 2009, 28(4):116-1l9.
[2]韓智, 張振虹, 李興娟. 基于CDIO理念的軟件工程課程教學改革[J]. 計算機教育, 2010(11): 56-59.
[3]嵩天, 黃天羽, 禮欣. Python語言: 程序設計課程教學改革的理想選擇[J]. 中國大學教學, 2016(2): 42-47.
[4]姚競. 面向項目的“Python程序設計”教學實踐與研究[J]. 福建電腦, 2009(7): 198-199.
[5]Hetland M L. Python基礎教程[M]. 司維, 曾軍崴, 譚穎華, 等, 譯. 2版. 北京: 人民郵電出版社, 2010.
[6]Chun W J. Python核心編程 [M]. 宋吉廣, 譯. 2版. 北京: 人民郵電出版社, 2009.