馬偉良
(閩西職業(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)地對(duì)相關(guān)軟件技術(shù)提出了更高的需求,我國(guó)大部分高校的理工類專業(yè)中開(kāi)設(shè)了計(jì)算機(jī)語(yǔ)言編程課程,有助于增強(qiáng)現(xiàn)代化信息技能。現(xiàn)階段,我國(guó)高校中多個(gè)專業(yè)都開(kāi)設(shè)了Python程序設(shè)計(jì)相關(guān)課程,具體包括信息與技術(shù)、軟件、物聯(lián)網(wǎng)、工程等,以此來(lái)滿足社會(huì)對(duì)專業(yè)人才的需求,同時(shí)為了畢業(yè)生順利就業(yè)。
筆者根據(jù)自身的教學(xué)經(jīng)驗(yàn),充分運(yùn)用各種教學(xué)模式,以此提高程序設(shè)計(jì)過(guò)程中學(xué)生分析解決問(wèn)題的綜合能力,增強(qiáng)自身綜合實(shí)力,有助于學(xué)校培養(yǎng)應(yīng)用型人才的目標(biāo),滿足社會(huì)對(duì)人才提出的多元化需求。
在高校辦學(xué)規(guī)模不斷擴(kuò)大的今天,計(jì)算機(jī)實(shí)驗(yàn)設(shè)備的數(shù)量也不斷增加。如用傳統(tǒng)的機(jī)房管理方式,需要在每臺(tái)教師機(jī)和學(xué)生機(jī)上都安裝一次編程語(yǔ)言的內(nèi)核和集成開(kāi)發(fā)環(huán)境,工作量非常大,就算是能用還原卡的局域網(wǎng)廣播安裝的方式,也需花費(fèi)大量時(shí)間。此外,教師在教學(xué)過(guò)程中布置作業(yè)任務(wù),學(xué)生做完后上交也需要通過(guò)文件傳輸或是電子郵件傳輸?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)頁(yè)中對(duì)代碼進(jìn)行編寫(xiě)和運(yùn)行,最終的運(yùn)行結(jié)果可在下方直接顯示出來(lái)。頁(yè)面文檔主要對(duì)Cell形式組織加以采用,能夠?qū)D文混排效果、代碼及其運(yùn)行結(jié)果進(jìn)行顯示,能夠結(jié)合代碼對(duì)文字說(shuō)明進(jìn)行組織;它支持十幾種語(yǔ)言,包括魔法命令、Python等,并能滿足信息技術(shù)程序設(shè)計(jì)需要用到的功能。
Jupyter Notebook作為利用瀏覽器遠(yuǎn)程訪問(wèn)方式進(jìn)行編程的一種交互式應(yīng)用平臺(tái),它支持 Python、R、Julia、C等40多種編程語(yǔ)言,用戶可以通過(guò)網(wǎng)頁(yè)訪問(wèn)Jupyter Notebook平臺(tái),創(chuàng)建和共享支持實(shí)時(shí)代碼和數(shù)學(xué)公式的程序文檔,在網(wǎng)頁(yè)中對(duì)代碼進(jìn)行編寫(xiě)和運(yùn)行,并將運(yùn)行結(jié)果直接展示在網(wǎng)頁(yè)中。頁(yè)面文檔主要對(duì)Cell形式組織加以采用,能夠?qū)D文混排效果、代碼及其運(yùn)行結(jié)果進(jìn)行顯示,能夠結(jié)合代碼對(duì)文字說(shuō)明進(jìn)行組織[1]。以Jupyter Notebook為平臺(tái)進(jìn)行教學(xué)具有以下幾個(gè)優(yōu)點(diǎn):
(1)教師可以在線上編輯,直接通過(guò)平臺(tái)發(fā)布任務(wù)和查看學(xué)生的作業(yè)完成情況。學(xué)生能在第一時(shí)間接收到信息,了解自己要完成的作業(yè),在不打開(kāi)第三方軟件的情況下,直接通過(guò)瀏覽器在平臺(tái)上完成編程和執(zhí)行,方便快捷。
(2)Jupyter Notebook平臺(tái)還能清晰地顯示當(dāng)前需要處理的程序,用目錄的形式呈現(xiàn)出來(lái),程序的文檔還能以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 語(yǔ)法加以標(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ù)類型的一種高級(jí)程序設(shè)計(jì)語(yǔ)言,是在1989年由 Guido van Rossum 發(fā)明的,其具有清晰且簡(jiǎn)潔的語(yǔ)法,并且類庫(kù)也非常強(qiáng)大和豐富[3]。因?yàn)镻ython語(yǔ)言具有可擴(kuò)展、簡(jiǎn)潔以及易讀等優(yōu)勢(shì),在其發(fā)展的二十幾年后,逐漸成為非常重要的一門(mén)程序設(shè)計(jì)語(yǔ)言,在國(guó)內(nèi)外一些知名大學(xué)已經(jīng)采用Python程序設(shè)計(jì)課程。Python語(yǔ)言在開(kāi)展程序設(shè)計(jì)教學(xué)時(shí)的特點(diǎn)如下:
(1)Python的語(yǔ)法簡(jiǎn)單易于上手,在Python語(yǔ)言中并沒(méi)有指針、地址等關(guān)于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的內(nèi)容,而且代碼簡(jiǎn)潔,不需要通過(guò)函數(shù)封裝,不管是閱讀還是編寫(xiě)都非常的清晰易懂。
(2)用Python語(yǔ)言編寫(xiě)的程序無(wú)須進(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ā)行版本的安裝包,且安裝簡(jiǎn)單穩(wěn)定。支持Python的集成開(kāi)發(fā)環(huán)境也很多,除了其專用的PyCharm,在Eclipse + PyDev、PyCharm、Visual Studio中均能很好地支持Python語(yǔ)言的開(kāi)發(fā)。
(4)Python有功能強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和豐富的第三方擴(kuò)展庫(kù),標(biāo)準(zhǔn)庫(kù)可以實(shí)現(xiàn)如管理系統(tǒng)進(jìn)程、訪問(wèn)互聯(lián)網(wǎng)處理通信協(xié)議、大數(shù)據(jù)處理和機(jī)器學(xué)習(xí)等功能。而豐富的第三方擴(kuò)展庫(kù)(具體包括Matplotlib、Num Py等常用的擴(kuò)展庫(kù),分別對(duì)繪圖功能、快速數(shù)組處理等各種功能進(jìn)行提供;計(jì)算機(jī)視覺(jué)庫(kù) Open CV、三維可視化庫(kù) VTK、醫(yī)學(xué)圖像處理庫(kù) ITK等各種行業(yè)的擴(kuò)展庫(kù)。)正是由于豐富的庫(kù)資源,有助于各個(gè)行業(yè)的開(kāi)發(fā)者對(duì)所在行業(yè)需要的工具包進(jìn)行探索。
由于Jupyter Notebook支持多個(gè)操作系統(tǒng),本文安裝的操作系統(tǒng)為Windows 10專業(yè)版。在安裝Jupyter Notebook之前需要先安裝Python,Python的版本為2.0以即可。在Python安裝完成之后,打開(kāi)命令提示符窗口,根據(jù)Python版本輸入安裝命令pip install jupyter,這時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行安裝。
圖2 Jupyter Notebook安裝命令
圖3 Jupyter Notebook安裝過(guò)程
安裝完成后我們?cè)诿钐崾痉翱谳斎隞upyter Notebook,這時(shí)默認(rèn)瀏覽器會(huì)打開(kāi) Jupyter Notebook窗口,說(shuō)明 Jupyter Notebook 安裝成功了。
除了Windows平臺(tái),Jupyter Notebook還可以在Linux、MacOS等平臺(tái)上運(yùn)行,其安裝均可采用此命令行的模式進(jìn)行。
Jupyter Notebook安裝配置成功后,就可以讓學(xué)生用瀏覽器進(jìn)行遠(yuǎn)程訪問(wèn)。當(dāng)輸入正確的IP地址+端口號(hào)后,就可以以網(wǎng)頁(yè)的形式在瀏覽器上直接啟動(dòng)Jupyter Notebook,這時(shí)可在頁(yè)面中直接編寫(xiě)程序代碼和運(yùn)行程序。
當(dāng)學(xué)生在瀏覽器上啟動(dòng)Jupyter Notebook后,可直接單擊new按鈕選擇Python3,建立一個(gè)新的Python文檔。如圖4所示。Notebook文檔由一系列單元構(gòu)成,分為代碼單元和Markdown單元。對(duì)于代碼單元,用戶進(jìn)行代碼編寫(xiě),單擊運(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é)生在代碼單元編寫(xiě)完程序后,就可以將文件直接存放在自己的目錄下,便于教師端的檢查和批改。
Jupyter Notebook作為集合了開(kāi)發(fā)、文檔編寫(xiě)、運(yùn)行代碼和展示結(jié)果于一體的交互式編程工具,能夠很方便地應(yīng)用到編程教學(xué)中。而Python作為當(dāng)下最熱門(mén)的編程語(yǔ)言,又是Jupyter Notebook平臺(tái)所直接支持的程序設(shè)計(jì)語(yǔ)言之一,兩者相結(jié)合后非常適合高校進(jìn)行教學(xué)。本文演示了如何在Jupyter Notebook平臺(tái)上進(jìn)行Python語(yǔ)言教學(xué)的過(guò)程,可以看出,使用該方式既能快捷地在計(jì)算機(jī)機(jī)房的系統(tǒng)中安裝軟件平臺(tái),又能方便教師的教學(xué)和學(xué)生的學(xué)習(xí),非常適合當(dāng)下高校教學(xué)改革和人才培養(yǎng)的需要,建議在高校的程序設(shè)計(jì)課程上使用該平臺(tái)。■