龔俊梅 劉 洋
1.電子科技大學成都學院文理學院應用數(shù)學系 四川成都 611731;2.電子科技大學機械與電氣工程學院 四川成都 611731
在大數(shù)據(jù)、人工智能等技術(shù)發(fā)展的新形勢下,如今統(tǒng)計類或數(shù)學類專業(yè)的應用型本專科生除了需要具備基本的數(shù)據(jù)分析技能,還需要掌握一定的計算機編程技能?!癙ython語言”是一款用于數(shù)據(jù)統(tǒng)計、分析、可視化等任務以及機器學習、人工智能等領(lǐng)域的解釋型、面向?qū)ο蟮挠嬎銠C程序設計語言,它能滿足幾乎所有數(shù)據(jù)挖掘所需的數(shù)據(jù)處理、統(tǒng)計模型和圖表繪制等功能需求[1]。從目前人才市場的需求來看,具有扎實的專業(yè)基礎和Python編程應用技能的復合型人才更加受到青睞。因此,從應用型人才培養(yǎng)的角度,對該專業(yè)的學生開設Python課程的必要性尤為凸顯,然而當前高等學校Python課程存在問題較多,針對我校Python教學過程存在的問題,課程組進行了教學體系改革,搭建了支持移動終端遠程調(diào)試的開發(fā)環(huán)境,創(chuàng)建了線上學習資源庫并搭建了GitHub師生互動平臺,顯著改善了教學效果。
由于Python課程是針對大一新生開的課,大部分學生在學習這門課程時沒有電腦,僅僅只通過課堂教學時間進行實踐操作。同時,課程課時相對緊張,若在課堂上花費大量時間練習,教學進度會受到影響。此外,課后學生無法通過電腦操作鞏固其對代碼的理解,不利于對新知識的吸收和掌握,導致學習效果較差。
Python的學習僅通過課堂老師講授理論知識的方式相對枯燥,學生缺乏學習動力,容易導致學生學起來沒有興趣。因此,需要伴隨大量的代碼練習和實際案例,才能更好地培養(yǎng)學生獨立寫代碼的能力,為真正成為應用型人才打下基礎。然而當前學生很難接觸到實際的工程案例,缺乏具體應用需求,導致課堂教學與工程應用脫節(jié)。
由于老師和學生課程較多,師生間彼此交流的時間很少,學生在課后的學習過程中,很難及時地將問題反饋給老師,使得老師也無法掌握學生的具體學習情況和效果。
由于專業(yè)建設的核心內(nèi)容是課程建設,課堂教學質(zhì)量的提升是關(guān)鍵問題,現(xiàn)有Python課程存在的這些問題,導致理論與實踐脫節(jié),使得課堂教學的質(zhì)量不高。因此,亟須構(gòu)建一個支持遠程在線調(diào)試的Python課程,加強學生實踐聯(lián)系,促進師生積極交流,從而保障課程教學質(zhì)量的提升。
綜上所述,為進一步增強Python課程的實踐應用性,更好地培養(yǎng)學生的數(shù)據(jù)分析與編程技能,Python課程的實踐教學改革也是不可避免的趨勢。
3.1.1 編譯軟件Jupyter Notebook
對于剛接觸“Python語言”的學生來說,比較受歡迎的軟件有:Anaconda3、IPython、Jupyter Notebook和Pycharm等。其中,Jupyter Notebook是一個交互式筆記本,支持運行40多種編程語言,其本質(zhì)是一個Web應用程序,便于創(chuàng)建和共享文學化程序文檔,支持實時代碼、數(shù)學方程、可視化,用途包括:數(shù)據(jù)清理和轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計建模,機器學習,等等。Jupyter Notebook就像一個草稿本,能將文本注釋、數(shù)學方程、代碼和可視化內(nèi)容全部組合到一個易于共享的文檔中,以Web頁面的方式展示,是數(shù)據(jù)分析、機器學習的必備工具。結(jié)合本專業(yè)學生開設Python課程的目的,課程組選取Jupyter Notebook作為編譯代碼的軟件。
3.1.2 遠程調(diào)試軟件Termux和Aid Learning
為了滿足離開實驗室后學生在課下復習及完成作業(yè)的需求,可以通過在移動終端安裝Termux和Aid Learning軟件,并配備Jupyter,實現(xiàn)遠程代碼調(diào)試。
Termux是Android平臺上的一個終端模擬器,它將眾多Linux上運行的軟件和工具近乎完美地移植到了手機端。無須任何復雜的安裝和配置過程,軟件裝好以后即會自動配置一個基本的運行環(huán)境,用以執(zhí)行一些常見的Linux命令。
Termux下可以進行Python環(huán)境搭建以及Jupyter開發(fā)環(huán)境搭建。從而我們可以在手機上使用Jupyter Notebook運行Python代碼,解決大一學生沒有電腦無法進行代碼調(diào)試的問題。
Python代碼可移植性強,PC平臺開發(fā)的代碼可以直接在手機端運行和調(diào)試,為學生自主進行數(shù)學實驗提供了便利的環(huán)境。安卓平臺可以運行PPython的APP有QPython、Temux和Pydroid3[3]。
Aid Learning在Android手機上構(gòu)建了一個帶圖形界面的Linux系統(tǒng)(不需要Root),和Android系統(tǒng)共生共存,并內(nèi)置了目前排名top7的深度學習框架包括Caffe、Tensorflow、Mxnet、Pytorch、Keras、Ncnn、Opencv。AidLearning同時是一款口袋AI編程工具,內(nèi)置的AiCode可視化編程器,可以在手機上用Python(同時支持Python2和Python3)輕松零基礎編程,支持觸摸拖拽式界面設計,支持代碼實時調(diào)試和圖形化運行。
3.1.3 共享代碼平臺GitHub
GitHub可以共享代碼(托管代碼),它也是一個開源平臺,可以用來下載很多知名開源項目的源代碼,在修改項目的時候,可以創(chuàng)建一個分支,在修改完成后將它合并到主分支,進行版本管理。利用GitHub收集學生作業(yè),免去花時間和學生溝通作業(yè)問題,也便于期末平時成績匯總。同時,學生接觸GitHub后可從上面下載其他優(yōu)秀Python項目以供進一步學習。
GitHub是一個代碼托管云服務網(wǎng)站,幫助開發(fā)者存儲和管理其項目源代碼,且能夠追蹤、記錄并控制用戶對其代碼的修改。它會自動記錄代碼的修改,在必要的時候,能夠快速回退到之前的版本。
GitHub是世界頂級開發(fā)者的聚集地,在這里幾乎可以找到任何想要的東西。在遵守其License的前提下,可以免費使用、下載許多優(yōu)秀、著名的開源項目。GitHub上有很多優(yōu)秀開源項目和教程資源去學習。
3.1.4 線上資源課程資源開發(fā)
隨著互聯(lián)網(wǎng)的普及以及網(wǎng)絡技術(shù)的提升,在這兩三年來,國內(nèi)的在線教育獲得大量資本注入,國內(nèi)各大高等院校也開始積極研發(fā)、制作在線課程。線上免費教學資源主要包括MOOC、網(wǎng)頁公開課、騰訊課堂、學習通、雨課堂、B站等,這些平臺可以幫助學生進行自主學習。
越來越多的學?;蚪逃龣C構(gòu)采用線上教育的方式,這種方式雖然打破了地域上的限制,但是也有一定的弊端。如缺乏互動性、缺乏實踐、缺乏有效的管理。在教學過程中可以將線上線下教育結(jié)合起來,從而使學生更容易接受知識。
3.2.1 利用Termux搭建Python運行環(huán)境
安卓手機上利用超級終端Termux安裝Python運行環(huán)境,這樣可以應付沒有電腦的情況,可以隨時練習Python基礎,Termux是一個Android的高級終端模擬器,安裝后可以在Android手機上搭建一個完整的Linux環(huán)境,開源且支持Apt管理軟件包,十分方便安裝各類軟件,完美支持Python、PHP、Ruby、Go、Nodejs、MySQL等等。
Termux有官方的軟件源,網(wǎng)速不快,國內(nèi)用戶下載安裝Termux后可以修改配置使用清華軟件源,安裝更新各類軟件速度很快[2],上面的軟件基本與Linux軟件源保持同步,安裝后效果如圖1所示。
圖1 Termux安裝界面
依次安裝Jupyter、Numpy、Pandas、Matplotlib等包。輸入Jupyter Notebook并復制運行結(jié)果下的網(wǎng)址,打開瀏覽器得到Python代碼編寫頁面,如圖2所示。
圖2 瀏覽器中Python代碼編輯頁面
學生可在此頁面內(nèi)調(diào)試測試教材及課上演示代碼,也可將完成作業(yè)提交到Github上,如圖3所示。
圖3 移動終端代碼運行效果圖
3.2.2 利用Aid Learning搭建Python運行環(huán)境
移動終端搭建Python運行環(huán)境也可使用工具軟件Aid Learning。相比Termux而言,借助Aid Learning安裝Jupyter過程更加簡便。在Aid Learning中打開應用中心,搜索Jupyter,點安裝即可完成插件安裝,如圖4所示。
圖4 在Aid Learning中安裝Jupyter
安裝后的效果如圖5所示。
圖5 移動終端上安裝Jupyter
點擊Jupyter圖標,代碼編輯運行頁面與圖2、圖3所示方式相同。
課下可通過GitHub和學生之間進行溝通交流,解決學生課上不懂的問題,同時發(fā)布課上資料、課后作業(yè),學生通過GitHub下載完成后上傳,如圖6所示。
圖6 學生在Github上傳作業(yè)文件夾
同時GitHub上可以接觸到最新的、最前沿的IT技術(shù)。任何軟件或者產(chǎn)品在上線發(fā)布之前,都有開發(fā)的過程和測試的過程,GitHub上可以接觸到這些產(chǎn)品的初始狀態(tài)、中間狀態(tài)和發(fā)布狀態(tài),可以第一時間了解到產(chǎn)品的動向。而且根據(jù)GitHub上每年發(fā)布的統(tǒng)計數(shù)據(jù),可以知道哪些技術(shù)是最火熱的技術(shù),及時跟上這些技術(shù),這對Python課程的學習有很大幫助。
在線下課程的基礎上,借助線上課程資源,引導學生課下學習。為了引導學生進行線上學習,對學生學習效果評價方式的選取直觀重要。結(jié)合Python程序設計課程輕理論重應用的特點,關(guān)于該課程的考核,可選擇多元化過程考核方法[3]。
階段性測試則利用線上考試專用題庫組卷,且要求學生線下統(tǒng)一時間和地點在老師監(jiān)督下完成,最大限度保證測試的公平性、有效性[4]。
期末成績需包含線上課程學習,例如,可采取課程學習結(jié)構(gòu)截圖后予以平時成績加分的形式。為了保證公平性隨機試卷中所涉及的知識點、分值以及題型均保持一致,力爭通過多元化考核方法實現(xiàn)科學評價[5]。
“Python語言”的學習重在實踐,學生需要有大量的案例實踐才能盡快上手。手機端運行Python代碼可解決一部分學生沒有電腦無法運行代碼的問題,可隨時隨地測試代碼。GitHub提供教師與學生交流學習的平臺,讓學生能更好地接受這門課。線上資源的利用突破了教學的時空限制,提高了學生的自主學習能力,提升了教學質(zhì)量。這種教學模式整合了優(yōu)質(zhì)的教學資源,達到資源共享,給學生提供了更好的學習平臺[5]。