李芬芬,高尚兵
(淮陰工學(xué)院 計算機(jī)與軟件工程學(xué)院,江蘇 淮陰 223000)
Python語言在計算生態(tài)的大背景下誕生、發(fā)展與再生,以最接近自然語言及面向生態(tài)的設(shè)計理念得到了廣泛的關(guān)注,目前已有超過14萬個第三方庫,支持從數(shù)據(jù)處理到人工智能、從Web解析到網(wǎng)絡(luò)空間、從人機(jī)交互到藝術(shù)設(shè)計的所有計算領(lǐng)域的應(yīng)用[1-2]。2016年教育部高等學(xué)校大學(xué)計算機(jī)課程教學(xué)指導(dǎo)委員會發(fā)布了《大學(xué)計算機(jī)基礎(chǔ)課程教學(xué)基本要求》,首次建議將Python語言作為程序設(shè)計課程的教學(xué)語言,并給出了Python語言教學(xué)方案[3]。2017年12月,教育部考試中心發(fā)布了全國計算機(jī)等級考試 (National Computer Rank Examination,簡稱NCRE)新增科目二級Python語言程序設(shè)計,該科目于2018年9月首次開考。在應(yīng)用和應(yīng)試的大背景下,筆者依托《Python語言程序設(shè)計》國家精品在線課程,面向淮陰工學(xué)院的計算機(jī)專業(yè)學(xué)生和非計算機(jī)專業(yè)學(xué)生開展了Python語言程序設(shè)計實踐教學(xué)與課程教學(xué),取得了較好的教學(xué)效果和反饋。
Python語言誕生于1990年前后,經(jīng)過近30年的改進(jìn)與發(fā)展,以其開源通用、簡潔優(yōu)雅及高效生態(tài)的特點已經(jīng)成為國際上最受歡迎的程序設(shè)計語言。搜索引擎Google的核心代碼、迪士尼公司的動畫和生成、豆瓣網(wǎng)的網(wǎng)站架構(gòu)和相關(guān)應(yīng)用的設(shè)計與開發(fā)都使用了Python語言。Python具有極其簡單的語法,采用強制縮進(jìn)方式體現(xiàn)程序格式框架,具有極強的可讀性,是容易入門的程序設(shè)計語言。目前國際著名高校大都在開設(shè)Python程序設(shè)計課程,近3年,國內(nèi)一批高校逐漸開設(shè)了Python語言課程,進(jìn)行較好的教學(xué)實踐。
2017年12月,根據(jù)《教育部關(guān)于加強高等學(xué)校在線開放課程建設(shè)應(yīng)用與管理的意見》(教高 [2015]3號)精神和 《教育部辦公廳關(guān)于開展2017年國家精品在線開放課程認(rèn)定工作的通知》(教高廳函[2017]40號)要求,教育部認(rèn)定490門課程為國家精品在線開放課程。愛課程(中國大學(xué)MOOC)有3門關(guān)于Python語言的在線開放課程被認(rèn)定為國家精品在線開放課程,分別是北京理工大學(xué)嵩天等老師的《Python語言程序設(shè)計》、南京大學(xué)張莉老師的《用Python玩轉(zhuǎn)數(shù)據(jù)》、哈爾濱工業(yè)大學(xué)車萬翔老師的《高級語言程序設(shè)計(Python)》。由985高校開展Python語言教學(xué)的教師開設(shè)的在線開放課程,從課程定位到教學(xué)方法,從教學(xué)理念到教學(xué)資源,從考核目標(biāo)到課程互動,均體現(xiàn)了一流大學(xué)的高水平教學(xué)。
Python在線開放課程提供了最先進(jìn)的課程教學(xué)大綱、高質(zhì)量的課程教學(xué)視頻,適合系統(tǒng)化學(xué)習(xí)的課程資源(課件、實例、練習(xí))和OJ平臺,非常適合普通二本高校在教學(xué)資源缺乏、師資緊張的情況下開展翻轉(zhuǎn)課堂教學(xué),進(jìn)行以學(xué)生為中心的課程改革、教學(xué)方式與學(xué)習(xí)方式變革,實現(xiàn)教育教學(xué)質(zhì)量全面提高。
“計算生態(tài)”,是“生態(tài)”概念在計算機(jī)技術(shù)中的對應(yīng),在此特指在程序設(shè)計領(lǐng)域構(gòu)建的支撐計算機(jī)技術(shù)發(fā)展的生態(tài)體系,即以開源項目為組織形式,充分利用“共識原則”和“社會利他原則”組織人員,在競爭發(fā)展、相互依存和迅速更迭中完成信息技術(shù)的更新?lián)Q代,形成技術(shù)的自我演化路徑[4]。Python語言課程教學(xué)旨在培養(yǎng)學(xué)生理解、運用和構(gòu)建計算生態(tài)的能力,學(xué)會使用第三方庫,理解快速開發(fā)理念,建立對信息世界的新認(rèn)識[2]。筆者基于中國大學(xué)MOOC在線開放課程《Python語言程序設(shè)計》,制定了課程教學(xué)方案、課程考核方案及課程評價與建議。
面向非計算機(jī)專業(yè)Python零基礎(chǔ)學(xué)生開設(shè)公共選修課,教學(xué)目標(biāo)定位為學(xué)生能掌握Python語言基礎(chǔ)語法及理解計算生態(tài),學(xué)時設(shè)置為32學(xué)時,由24講授學(xué)時和8學(xué)時上機(jī)學(xué)時構(gòu)成。面向計算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生,在 《人工智能應(yīng)用》專業(yè)選修課程中,主要介紹Python計算生態(tài)實例,由16講授學(xué)時構(gòu)成,教學(xué)目標(biāo)定位為學(xué)生具有能運用計算生態(tài)的能力。
Python語言基礎(chǔ)語法主要包括數(shù)字類型(int,float,complex)、字符串類型(str)、程序的控制結(jié)構(gòu)、函數(shù)和代碼復(fù)用、組合數(shù)據(jù)類型(元組、列表、集合和字典)、文件和數(shù)據(jù)格式化。
理解計算生態(tài)是指讓學(xué)生廣泛感知計算生態(tài)的存在[4]。課程內(nèi)容主要包括常用的第三方庫的應(yīng)用,第三方庫主要包括turtle庫、math庫、random庫、time庫、pyinstaller庫、jieba庫、PIL庫、csv庫、json庫等。 利用第三方庫wordcloud,使用5行代碼即可生成中英文詞云[2]。
運用計算生態(tài)是指面向能力、圍繞一系列第三方庫培養(yǎng)學(xué)生掌握某一方面的基礎(chǔ)能力[4]。如講解PyQT,培養(yǎng)學(xué)生掌握GUI圖形用戶界面庫;如講解itchat,培養(yǎng)學(xué)生理解微信個人微信網(wǎng)頁版接口。
在課堂教學(xué)中,通過12個生動有趣具有現(xiàn)代氣息的實例把基礎(chǔ)語法與計算生態(tài)緊密聯(lián)系起來,包括溫度轉(zhuǎn)換、Python蟒蛇繪制、天天向上的力量、文本進(jìn)度條、身體質(zhì)量指數(shù)BMI、利用蒙特卡洛方法計算圓周率、七段數(shù)碼管繪制、科赫雪花小包裹、基本統(tǒng)計值計算、中英文詞頻統(tǒng)計、自動軌跡繪制、政府工作報告詞云。
《Python語言程序設(shè)計》課程是實踐性強、邏輯性強的課程,教師和學(xué)生的互動時間主要在于課堂教學(xué)和上機(jī)操作。本課程的考核方案旨在于課堂之外建立有效途徑,幫助建立學(xué)生自主學(xué)習(xí)、快速學(xué)習(xí),進(jìn)而培養(yǎng)其終身學(xué)習(xí)能力及團(tuán)隊合作能力。
(1)考核點一:平時 OJ練習(xí)
在免費的OJ平臺https://python123.io/上完成教師設(shè)置的課程單元練習(xí)內(nèi)容,課程代碼為hyitpython。單元類型設(shè)置為練習(xí),特點是不限提交次數(shù)提交代碼,根據(jù)測試用例,在線評測代碼的準(zhǔn)確度。學(xué)生通過在線提交代碼查看得分,如對分?jǐn)?shù)不滿意修改代碼,再次提交代碼查看得分,如此反復(fù)直到自己對得分滿意。
Python語言課程教學(xué)開設(shè)時間與北京理工大學(xué)國家精品在線開放課程《Python語言程序設(shè)計》保持相同的課程進(jìn)度,建議學(xué)生在中國大學(xué)MOOC在線同步學(xué)習(xí),學(xué)生通過實名認(rèn)證后,系統(tǒng)提供相應(yīng)練習(xí)、測試和考核頁面的作業(yè)提交界面(見圖1)作為作業(yè)依據(jù)。如果同期獲得中國大學(xué)MOOC北京理工大學(xué)《Python語言程序設(shè)計》課程認(rèn)證證書,證書可作為本課程認(rèn)定成績。
圖1 練習(xí)、作業(yè)及考試部分界面
(2)考核點二:團(tuán)隊任務(wù)
本考核點成績由團(tuán)隊任務(wù)的完成度決定。在課程教學(xué)過程中,建議學(xué)生根據(jù)自身程序設(shè)計能力組成Pair Team團(tuán)隊,完成團(tuán)隊任務(wù)。Pair Team組隊完成3項子任務(wù):①設(shè)計組隊Logo,提交設(shè)計Logo的Python文件。②文本詞頻統(tǒng)計,團(tuán)隊自行選擇感興趣的文章或者小說,設(shè)計代碼統(tǒng)計文章詞頻,提交分析文本的txt文件(.txt格式)、詞頻統(tǒng)計的Python文件(.py格式)和統(tǒng)計結(jié)果的詞云圖片(.png格式)。③根據(jù)學(xué)生自己專業(yè)的特點及特色,檢索考察Python的第三方庫應(yīng)用,完成說明文檔一篇(每個隊1份)??蓞⒖嫉谌綆旖榻B的url鏈接:春色盎然中不可不知的 10個 Python計算生態(tài)(https://python123.io/index/monthly_packages/201803)。
每個團(tuán)隊的綜合成績由3項按比例加權(quán)計算得出,每個隊員成績等同團(tuán)隊成績。
(3)考核點三:平時考勤數(shù)據(jù)統(tǒng)計實例設(shè)計
根據(jù)每位學(xué)生10次本課程課堂考勤簽到數(shù)據(jù)的CSV文件,通過CSV標(biāo)準(zhǔn)庫設(shè)計程序統(tǒng)計每位學(xué)生的出勤情況和座位習(xí)慣,比較分享每個人統(tǒng)計結(jié)果的異同,對于學(xué)生而言,是一件很有趣的事情。
基于移動平臺的方便快捷,《Python語言程序設(shè)計》課程評價與建議是通過分享手機(jī)二維碼完成的。對學(xué)生而言,拿起手機(jī)掃描課程評價二維碼(如圖2),是非常友好的課程總結(jié)與評價體驗(如圖3)。目前收到了機(jī)械設(shè)計制造及其自動化、軟件工程、信息管理、工業(yè)工程、植物生產(chǎn)、新能源、通信工程、食品科學(xué)與工程、制藥工程、工業(yè)工程、信息與計算科學(xué)、物理、車輛工程、材料等專業(yè)60份有效課程評價數(shù)據(jù)。物理專業(yè)2017級某同學(xué)說:“打開了新世界的大門,感覺眼界開闊了許多?!敝扑幑こ虒I(yè)2017級某同學(xué)說:“結(jié)合中國大學(xué)慕課的上課形式挺好的,可以線上學(xué)習(xí)……”在課程建議中,很多學(xué)生都提到希望開設(shè)后續(xù)課程,如Python進(jìn)階、Python與專業(yè)結(jié)合的應(yīng)用課程等。車輛工程2017級某同學(xué)說:“以小組形式,希望老師指定計算機(jī)專業(yè)+非計算機(jī)專業(yè)組成Pair Team團(tuán)隊,便于相互幫助,達(dá)到1+1>2的學(xué)習(xí)效果?!?/p>
圖2 課程評價二維碼
圖3 課程評價手機(jī)界面
翻轉(zhuǎn)課堂[5](Flipped Classroom)旨在重視以學(xué)生為中心的教學(xué),把學(xué)習(xí)的主動權(quán)還給學(xué)生,教師重在啟發(fā)學(xué)生的學(xué)習(xí)興趣和動機(jī),幫助學(xué)生構(gòu)建自主學(xué)習(xí)能力,并認(rèn)同多元評量與多元價值。目前很多高校在課程教學(xué)中進(jìn)行了課堂翻轉(zhuǎn)[6][7],筆者在面向計算機(jī)科學(xué)與技術(shù)專業(yè)的《項目實習(xí)》實踐選修(Python語言方向)課程中,嘗試基于翻轉(zhuǎn)課堂形式的實踐教學(xué)。在實訓(xùn)前,根據(jù)時間安排,建議學(xué)生選修中國大學(xué)MOOC在線開放課程《Python數(shù)據(jù)分析與展示》(2017年秋);在實訓(xùn)過程中,要求學(xué)生對Python數(shù)據(jù)分析與展示課程中的概念性知識、程序性知識、元認(rèn)識知識做進(jìn)一步的主題討論、實例編程;最后設(shè)置項目演示環(huán)節(jié),學(xué)生通過合作演示展示了完整的項目開發(fā),完美地完成了項目實習(xí)。
采用翻轉(zhuǎn)課堂+項目實戰(zhàn)形式,運用Python計算生態(tài),培養(yǎng)學(xué)生實戰(zhàn)項目能力,符合工程教育認(rèn)證體系OBE培養(yǎng)目標(biāo)要求。教學(xué)考核方案的考核等第由學(xué)生自評分、答辯得分、報告得分、綜合扣分、綜合得分按比例構(gòu)成。其中學(xué)生自評總分包括實訓(xùn)過程自我態(tài)度、概念性知識、程序性知識、元認(rèn)識知識、實訓(xùn)日志完成情況、Python實例完成情況、中國大學(xué)MOOC課程參與情況及課程證書取得情況、實訓(xùn)課題完成情況、實習(xí)報告的完整度和格式、文字與參考文獻(xiàn)數(shù)量及相關(guān)、總結(jié)與課程建議。自評總分占20%,答辯得分占30%,報告得分占50%。通過線上學(xué)習(xí)和線下實戰(zhàn)相結(jié)合的教學(xué)方法,本課程取得了很好的教學(xué)效果。通過中國大學(xué)MOOC在線學(xué)習(xí),85%的學(xué)生取得了2017年秋季《Python數(shù)據(jù)分析與展示》優(yōu)秀課程證書(如圖4所示),有效調(diào)動了學(xué)生的對Python的學(xué)習(xí)興趣,從而順利完成了Python項目實習(xí)課題(如圖5所示)。
圖4 學(xué)生Python數(shù)據(jù)分析與展示MOOC課程證書
圖5 某生項目實戰(zhàn)數(shù)據(jù)分析頁面
基于“理解和運用計算生態(tài)”教學(xué)理念,筆者在本校公選課、專業(yè)選修課、實習(xí)課程中進(jìn)行了基于在線開放課程的Python語言程序設(shè)計教學(xué),學(xué)生反映熱誠且積極,教學(xué)效果非常好,說明了Python語言混合教學(xué)模式很有效。2017年,筆者所在學(xué)院獲批數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè),目前已將Python語言作為該培養(yǎng)方案中的專業(yè)基礎(chǔ)必修課程。隨著人工智能與大數(shù)據(jù)時代的到來,Python語言的計算生態(tài)必會蓬勃發(fā)展,基于在線開放課程的Python語言混合式教學(xué)模式將會在不同專業(yè)的程序設(shè)計教學(xué)中得到廣泛認(rèn)可。