徐紅云,劉欣欣
(華南理工大學 計算機科學與工程學院,廣東 廣州 510006)
Python語言程序設計全英課程是面向大學一年級非計算機專業全英創新班學生開設的一門計算機公共基礎課,該課程通過Python語言介紹程序設計的基本思想,培養學生的計算思維能力,以及利用計算機程序設計方法解決實際問題的能力,為今后從事各個領域的研究和實踐工作提供方法和工具。
2020年隨著新冠疫情在全球肆虐,導致部分留學生不能按時返校參加學校正常的教學活動,本文通過為留學生開設Python語言程序設計的全英線上教學,探索了該課程全英教學方案、線上教學實施方法和課堂組織方式。通過借鑒Python語言程序設計的線下教學、一般課程的全英教學和線上教學等幾方面經驗,提出結合美國麻省理工學院的MIT OpenCourseWare平臺上的開放課程資源、騰訊會議課堂直播以及自行研發的輔助教學平臺的在線多元混合教學模式。
全英教學的目標是培養具有國際競爭力的高素質人才,因此在教學理念和教學方法上應和國際一流大學接軌。關于Python語言程序設計課程的全英教學,從目前公開發表的文獻資料看,尚沒有這方面可以借鑒的經驗。教材方面,目前國內沒有開展Python語言程序設計全英教學的合適的引進版英文教材,如果采用英文原版書作為教材,如比較經典的美國麻省理工學院出版社出版的,或者美國No Starch出版公司出版的,價格都比較昂貴,大大增加了學生的經濟負擔,不符合我國國情,不是主流的選擇。
教學資源方面,為滿足學生線上學習的需求,應盡可能為他們提供電子版的學習資源。國外著名高校開設的MOOC課程是開展全英教學一個良好的參考和借鑒,但這些課程不能作為全英教學使用。國外主流的MOOC平臺,如EdX、Coursera、Udacity等,從2017年開始陸續從免費轉為付費模式,即使平臺提供了“旁聽者免費”的服務,但旁聽一般都有時間限制,例如Coursera平臺只提供7天的免費體驗,EdX平臺不同課程的旁聽期限不同,從2個星期到3個月不等。所以,直接基于國外的MOOC平臺上的課程資源開設Python語言程序設計全英課程,不具備可行性。
國內清華大學學堂在線平臺引進了麻省理工學院開設的“Introduction to Computer Science and Programming Using Python”課程(簡稱“MIT Python課程”),供學習者自主、免費學習。該課程可以引入供校內教學使用,但該課程使用的授課語言是Python的 2.7版本,而目前Python的主流是3.0以上版本,Python 3系列版本比Python 2系列版本有較大的改進,而且并不兼容Python 2系列版本,為了讓學生學以致用,應選擇使用更廣泛,更符合發展趨勢的Python 3系列版本。
經廣泛調研,本文擬采用MIT OpenCourseWare 平臺上提供的相關課程開展Python語言程序設計的全英教學。平臺上的“Introduction to Computer Science and Programming in Python”課程使用了Python 3.5版本,免費提供了美國麻省理工學院在2016年開設該門課程的全部教學資源。采用該課程開展全英教學,能借鑒美國頂尖學府之一的麻省理工學院在Python語言程序設計課程上的教學理念、教學方法和教學手段,很好地使國內的計算機基礎課程的教學與國際接軌,利于培養具有國際視野的創新人才。
Python語言程序設計課程通過Python語言介紹程序設計的基本思想,旨在培養學生的計算思維能力和用程序設計方法解決本專業問題的能力。具體教學內容包括:程序設計基本方法,基本數據類型,程序的控制結構,函數和代碼復用,組合數據類型,文件和數據格式化、程序設計方法論和Python第三方庫等方面的內容。課程2學分,總學時40 學時,其中課堂教學32 學時,上機實驗8學時。
MIT OpenCourseWare平臺上的開放課程被視為一項龐大的、網絡出版的麻省理工學院教材。本文從該平臺上選用的“Introduction to Computer Science and Programming in Python”課程,免費提供課堂教學視頻、講義,和講義配套的程序演示代碼,課堂練習,課堂練習講解視頻,作業等內容。這些教學材料與教材內容完全一致。采用該課程組織教學,任課教師針對某些知識點進行適當的補充和擴展,即能滿足本校全英教學的需求,解決國內目前沒有合適的英文版引進教材、沒有合適的教學資源等問題。
MIT OpenCourseWare 平臺上 的Python 課程教學大綱和本文所述課程的教學大綱基本一致,表1給出了兩門課程教學大綱內容模塊的對比情況。由表1可知,關于程序設計的基本方法和Python語言的基礎知識(含基本數據類型、程序的控制結構、函數和代碼復用、組合數據類型、文件和數據格式化、程序設計方法論)部分,兩門課程的教學大綱基本一致。不同點主要在于表格第8行所列的4個學時,本文所述課程的教學大綱內容是Python第三方庫,要求通過介紹Python第三方庫的應用,幫助學生理解與掌握計算生態;而MIT OpenCourseWare平臺上的對應課程欄目的內容是面向對象編程、類和繼承,而系統介紹第三方庫的使用方面的內容缺失,所以這部分內容需要任課教師補充。對于該不同點,為滿足本文所述課程教學大綱的要求,任課老師可在Python第三方庫的網站上,找到豐富的關于第三方庫功能的介紹和使用示例,作為課程的補充資料,對課程進行擴展。

表1 教學大綱對比
另外,MIT OpenCourseWare平臺上的“Introduction to Computer Science and Programming in Python”中關于面向對象編程基礎的介紹,有利于學生更好地理解字符串的操作函數,組合數據類型的操作函數,以及庫函數的使用,因為這些都是面向對象編程中對類的方法的調用,所以可以借鑒該課程這部分內容,對本文所述課程的教學方案進行適當地調整,用2學時介紹Python第三方庫,2學時介紹面向對象編程的基本思想。
Python語言程序設計全英課程線上教學在開課前,創建班級QQ群,方便教師和學生的線上溝通。直播平臺方面,主要考慮騰訊公司的騰訊會議和騰訊課堂,通過對二者的調研和對比,發現二者都能滿足線上教學的基本需求,但各有優勢和側重點。
在騰訊課堂中,要實現課堂互動,需要老師先發起舉手功能,然后學生申請語音,主要適用于老師對學生的提問,是一種學生較為被動的互動。全英教學提倡采用國際先進的教學理念和教學方法,在教學過程中,鼓勵學生隨時對老師講解不明白的地方發問。在騰訊會議中,學生可以隨時發言,能營造一種主動互動和討論交流的學習氛圍。全英教學主要面向全英創新班學生和留學生開設,這些班級通常都是小班教學,班級人數在50人以內,學生素質也比較高,不會因為學生可以隨時發言而造成課堂秩序的混亂。另外,在騰訊課堂中,只能老師一人共享屏幕,而在騰訊會議中,所有參會成員都可以共享屏幕,該功能對于程序設計類課程的線上教學較為重要。程序設計類課程是一門實踐性較高的課程,學生要通過編程,動手實踐才能掌握程序設計方法。初學者在開始編程時,難免遇到各種編程問題,通過屏幕共享,老師能更容易地幫學生發現和解決問題,達到線下在實驗室機房上機的效果。屏幕共享功能也方便學生進行項目展示。
綜上,根據本課程的特點,騰訊會議比騰訊課堂更便于開展課堂互動,更適合程序設計類課程的線上教學使用,所以本文所述課程決定采用騰訊會議作為課堂直播教學平臺。在線上教學的實施中,還借助了自主開發的Python語言程序設計輔助教學平臺。該平臺具有課前預習、課堂小測、課后作業、作業互評、期末考試等功能,可以對學生課前、課中和課后整個學習過程進行記錄和評價,并形成良好的教學反饋。另外,Python語言程序設計輔助教學平臺的考試系統,具有身份認證、考試期間限制瀏覽網頁、作答客觀題時限制打開Python集成開發環境等功能,能較好地滿足線上機考的各項要求。
在Python語言程序設計全英課程線上教學的組織上,借助MIT OpenCourseWare平臺上“Introduction to Computer Science and Programming in Python”課程提供的免費教學資源,使用了翻轉課堂的教學方法。每周課前任課老師通過QQ 群向學生發布本周的教學內容,要求學生在平臺上觀看規定的教學視頻,完成課程預習。在課堂上,主要開展小測、重點難點解析、課堂練習、擴展討論等環節的教學,下面以兩學時(90 分鐘)的課堂教學為例,說明線上課堂教學各個環節的組織情況。
在線課堂教學的第一個環節是在自行研發的輔助教學平臺上進行10分鐘的小測,測試內容主要涵蓋上次課所講授的內容,題型包括選擇題和程序填空題,題量為10道左右。測試結束后,輔助教學平臺能對課堂小測進行即時批改并統計每道題的班級正確率,方便任課教師及時了解教學班各位同學對有關知識點的掌握情況。然后,任課老師針對學生錯誤率較高的題目,進行約5分鐘的講解。
接下來進入第二個環節,任課老師對本節新課的重點知識內容進行約45分鐘的講解,主要使用MIT OpenCourseWare平臺上對應課程所提供的課程講義,以及與講義配套的程序演示代碼。借助騰訊會議的共享屏幕功能,任課老師能方便地將課程講義(即授課PPT)和在Python集成開發環境下開發程序的步驟及程序代碼分享給學生。在講解過程中,使用騰訊會議的批注功能,其中的激光筆和線下課堂教學使用的激光筆一樣,能引領學生視線,抓住學生的注意力。通過使用批注中的畫筆、熒光筆和圖形等標注工具能在屏幕上進行寫畫說明,達到與線下課堂在黑板上寫畫相同的教學效果。
任課老師對重點難點內容進行講解之后,即進入第三個環節,開展約15分鐘的課堂練習,此處,使用MIT OpenCourseWare平臺上對應課程對應章節所提供的課堂練習,學生直接登錄網站作答提交,并能即時查看結果,該練習由學生自主完成,完成之后,學生通過騰訊會議的屏幕共享功能,向全班展示自己的答題情況并進行講解。
最后,任課教師針對本堂課使用的程序實例,提出擴展要求,即要求學生在已有代碼的基礎上,進行擴充和改進,大約15分鐘完成。例如,在介紹程序的控制結構時,任課老師使用一個求立方根的實例,通過該實例同時介紹了猜測檢驗法、近似法和二分法的使用,所提供的實例代碼對大于1的正數求立方根有效,但不適用于負數和小于1的正數,在擴展討論環節,要求學生對代碼進行改進,在15分鐘之內,給出更完整的求立方根的程序,任課老師根據學生的完成情況進行點評和總結。
Python語言程序設計全英課程的線上教學,目前尚沒有可以借鑒的公開發表的文獻資料,也缺少合適的引進版英文教材等必要的教學資源,本文借助美國麻省理工學院MIT OpenCourseWare平臺上的開放課程“Introduction to Computer Science and Programming in Python”所提供的免費學習資源,探索了Python語言程序設計全英課程的線上教學方案、實施方法和課堂組織方式,將線上教學劃分為四個教學環節。通過引入國外知名高校的課程,學生能從課堂教學方式、課堂小測、課后作業等多個環節體驗國外高校的教學過程,開闊學生的國際視野,培養學生的創新能力。為了提升在線教學的效果,文中提出了采用騰訊會議、QQ群以及輔助教學平臺相結合的多元混合教學模式。本文的做法對類似全英課程在線教學的開展具有較好的借鑒意義。