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