馬偉良
(閩西職業(yè)技術(shù)學(xué)院,福建 龍巖 364000)
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,建立在其基礎(chǔ)上的物聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)技術(shù)、云計(jì)算技術(shù)等新的信息技術(shù)正在不斷的涌現(xiàn),相應(yīng)地對相關(guān)軟件技術(shù)提出了更高的需求,我國大部分高校的理工類專業(yè)中開設(shè)了計(jì)算機(jī)語言編程課程,有助于增強(qiáng)現(xiàn)代化信息技能。現(xiàn)階段,我國高校中多個(gè)專業(yè)都開設(shè)了Python程序設(shè)計(jì)相關(guān)課程,具體包括信息與技術(shù)、軟件、物聯(lián)網(wǎng)、工程等,以此來滿足社會(huì)對專業(yè)人才的需求,同時(shí)為了畢業(yè)生順利就業(yè)。
筆者根據(jù)自身的教學(xué)經(jīng)驗(yàn),充分運(yùn)用各種教學(xué)模式,以此提高程序設(shè)計(jì)過程中學(xué)生分析解決問題的綜合能力,增強(qiáng)自身綜合實(shí)力,有助于學(xué)校培養(yǎng)應(yīng)用型人才的目標(biāo),滿足社會(huì)對人才提出的多元化需求。
在高校辦學(xué)規(guī)模不斷擴(kuò)大的今天,計(jì)算機(jī)實(shí)驗(yàn)設(shè)備的數(shù)量也不斷增加。如用傳統(tǒng)的機(jī)房管理方式,需要在每臺(tái)教師機(jī)和學(xué)生機(jī)上都安裝一次編程語言的內(nèi)核和集成開發(fā)環(huán)境,工作量非常大,就算是能用還原卡的局域網(wǎng)廣播安裝的方式,也需花費(fèi)大量時(shí)間。此外,教師在教學(xué)過程中布置作業(yè)任務(wù),學(xué)生做完后上交也需要通過文件傳輸或是電子郵件傳輸?shù)确绞剑瑐鬏斖瓿珊螅處熡忠饌€(gè)地將其復(fù)制到安裝了運(yùn)行環(huán)境的計(jì)算機(jī)上才能編譯批改。使用傳統(tǒng)的機(jī)房管理軟件和模式進(jìn)行程序設(shè)計(jì)教學(xué)的就顯得比較低效,這時(shí)就需要一種新的平臺(tái)和教學(xué)模式。
用戶所采用的Jupyter Notebook編程工具,其在Web應(yīng)用平臺(tái)基礎(chǔ)上,可更為方便地部署并進(jìn)行應(yīng)用和分享。利用該工具用戶能夠在網(wǎng)頁中對代碼進(jìn)行編寫和運(yùn)行,最終的運(yùn)行結(jié)果可在下方直接顯示出來。頁面文檔主要對Cell形式組織加以采用,能夠?qū)D文混排效果、代碼及其運(yùn)行結(jié)果進(jìn)行顯示,能夠結(jié)合代碼對文字說明進(jìn)行組織;它支持十幾種語言,包括魔法命令、Python等,并能滿足信息技術(shù)程序設(shè)計(jì)需要用到的功能。
Jupyter Notebook作為利用瀏覽器遠(yuǎn)程訪問方式進(jìn)行編程的一種交互式應(yīng)用平臺(tái),它支持 Python、R、Julia、C等40多種編程語言,用戶可以通過網(wǎng)頁訪問Jupyter Notebook平臺(tái),創(chuàng)建和共享支持實(shí)時(shí)代碼和數(shù)學(xué)公式的程序文檔,在網(wǎng)頁中對代碼進(jìn)行編寫和運(yùn)行,并將運(yùn)行結(jié)果直接展示在網(wǎng)頁中。頁面文檔主要對Cell形式組織加以采用,能夠?qū)D文混排效果、代碼及其運(yùn)行結(jié)果進(jìn)行顯示,能夠結(jié)合代碼對文字說明進(jìn)行組織[1]。以Jupyter Notebook為平臺(tái)進(jìn)行教學(xué)具有以下幾個(gè)優(yōu)點(diǎn):
(1)教師可以在線上編輯,直接通過平臺(tái)發(fā)布任務(wù)和查看學(xué)生的作業(yè)完成情況。學(xué)生能在第一時(shí)間接收到信息,了解自己要完成的作業(yè),在不打開第三方軟件的情況下,直接通過瀏覽器在平臺(tái)上完成編程和執(zhí)行,方便快捷。
(2)Jupyter Notebook平臺(tái)還能清晰地顯示當(dāng)前需要處理的程序,用目錄的形式呈現(xiàn)出來,程序的文檔還能以HTML、PDF、TXT等多種格式進(jìn)行導(dǎo)出。
(3)Jupyter Notebook平臺(tái)可進(jìn)行多空間隔離,可以修改文件,并創(chuàng)建出多個(gè)不同的工作空間,有助于學(xué)生實(shí)現(xiàn)分組隔離,防止學(xué)生之間相互影響。
Jupyter Notebook作為典型Web架構(gòu)的一個(gè)應(yīng)用,客戶端主要負(fù)責(zé)提供運(yùn)行、存儲(chǔ)以及輸出代碼等功能,并借助markdown 語法加以標(biāo)記,根據(jù)JSON 格式向服務(wù)器端發(fā)送和存儲(chǔ);服務(wù)器端主要負(fù)責(zé)提供調(diào)用編譯內(nèi)核以及代碼存取等功能。[2]

圖1 Jupyter Notebook架構(gòu)示意圖
Python作為面向?qū)ο蟆?dòng)態(tài)化、解釋型數(shù)據(jù)類型的一種高級程序設(shè)計(jì)語言,是在1989年由 Guido van Rossum 發(fā)明的,其具有清晰且簡潔的語法,并且類庫也非常強(qiáng)大和豐富[3]。因?yàn)镻ython語言具有可擴(kuò)展、簡潔以及易讀等優(yōu)勢,在其發(fā)展的二十幾年后,逐漸成為非常重要的一門程序設(shè)計(jì)語言,在國內(nèi)外一些知名大學(xué)已經(jīng)采用Python程序設(shè)計(jì)課程。Python語言在開展程序設(shè)計(jì)教學(xué)時(shí)的特點(diǎn)如下:
(1)Python的語法簡單易于上手,在Python語言中并沒有指針、地址等關(guān)于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的內(nèi)容,而且代碼簡潔,不需要通過函數(shù)封裝,不管是閱讀還是編寫都非常的清晰易懂。
(2)用Python語言編寫的程序無須進(jìn)行編譯就可以直接運(yùn)行,這使它的移植性更強(qiáng),運(yùn)行效率和擴(kuò)展性也更高。
(3)Python能在多個(gè)平臺(tái)上運(yùn)行,包括Linux和Windows系統(tǒng),在Python.org的官方網(wǎng)站上能夠下載支持不同操作系統(tǒng)的多個(gè)發(fā)行版本的安裝包,且安裝簡單穩(wěn)定。支持Python的集成開發(fā)環(huán)境也很多,除了其專用的PyCharm,在Eclipse + PyDev、PyCharm、Visual Studio中均能很好地支持Python語言的開發(fā)。
(4)Python有功能強(qiáng)大的標(biāo)準(zhǔn)庫和豐富的第三方擴(kuò)展庫,標(biāo)準(zhǔn)庫可以實(shí)現(xiàn)如管理系統(tǒng)進(jìn)程、訪問互聯(lián)網(wǎng)處理通信協(xié)議、大數(shù)據(jù)處理和機(jī)器學(xué)習(xí)等功能。而豐富的第三方擴(kuò)展庫(具體包括Matplotlib、Num Py等常用的擴(kuò)展庫,分別對繪圖功能、快速數(shù)組處理等各種功能進(jìn)行提供;計(jì)算機(jī)視覺庫 Open CV、三維可視化庫 VTK、醫(yī)學(xué)圖像處理庫 ITK等各種行業(yè)的擴(kuò)展庫。)正是由于豐富的庫資源,有助于各個(gè)行業(yè)的開發(fā)者對所在行業(yè)需要的工具包進(jìn)行探索。
由于Jupyter Notebook支持多個(gè)操作系統(tǒng),本文安裝的操作系統(tǒng)為Windows 10專業(yè)版。在安裝Jupyter Notebook之前需要先安裝Python,Python的版本為2.0以即可。在Python安裝完成之后,打開命令提示符窗口,根據(jù)Python版本輸入安裝命令pip install jupyter,這時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行安裝。

圖2 Jupyter Notebook安裝命令

圖3 Jupyter Notebook安裝過程
安裝完成后我們在命令提示符窗口輸入Jupyter Notebook,這時(shí)默認(rèn)瀏覽器會(huì)打開 Jupyter Notebook窗口,說明 Jupyter Notebook 安裝成功了。
除了Windows平臺(tái),Jupyter Notebook還可以在Linux、MacOS等平臺(tái)上運(yùn)行,其安裝均可采用此命令行的模式進(jìn)行。
Jupyter Notebook安裝配置成功后,就可以讓學(xué)生用瀏覽器進(jìn)行遠(yuǎn)程訪問。當(dāng)輸入正確的IP地址+端口號后,就可以以網(wǎng)頁的形式在瀏覽器上直接啟動(dòng)Jupyter Notebook,這時(shí)可在頁面中直接編寫程序代碼和運(yùn)行程序。
當(dāng)學(xué)生在瀏覽器上啟動(dòng)Jupyter Notebook后,可直接單擊new按鈕選擇Python3,建立一個(gè)新的Python文檔。如圖4所示。Notebook文檔由一系列單元構(gòu)成,分為代碼單元和Markdown單元。對于代碼單元,用戶進(jìn)行代碼編寫,單擊運(yùn)行按鈕,其結(jié)果就會(huì)顯示在本單元下方[4]。

圖4 Jupyter Notebook上運(yùn)行Python程序

圖5 Jupyter Notebook下建立Python文檔
用戶可以在Jupyter Notebook中單擊new按鈕選擇folder建立目錄,在選擇自建目錄后單擊Rename按鈕修改名稱,這樣就可以在自己的目錄下進(jìn)行操作了,當(dāng)學(xué)生在代碼單元編寫完程序后,就可以將文件直接存放在自己的目錄下,便于教師端的檢查和批改。
Jupyter Notebook作為集合了開發(fā)、文檔編寫、運(yùn)行代碼和展示結(jié)果于一體的交互式編程工具,能夠很方便地應(yīng)用到編程教學(xué)中。而Python作為當(dāng)下最熱門的編程語言,又是Jupyter Notebook平臺(tái)所直接支持的程序設(shè)計(jì)語言之一,兩者相結(jié)合后非常適合高校進(jìn)行教學(xué)。本文演示了如何在Jupyter Notebook平臺(tái)上進(jìn)行Python語言教學(xué)的過程,可以看出,使用該方式既能快捷地在計(jì)算機(jī)機(jī)房的系統(tǒng)中安裝軟件平臺(tái),又能方便教師的教學(xué)和學(xué)生的學(xué)習(xí),非常適合當(dāng)下高校教學(xué)改革和人才培養(yǎng)的需要,建議在高校的程序設(shè)計(jì)課程上使用該平臺(tái)。■