張明霞
摘要:程序設(shè)計(jì)語(yǔ)言是我國(guó)高等教育,尤其是很多非計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的理工科方向開(kāi)設(shè)的公共課程。Python因其自身優(yōu)勢(shì)已被不少高校應(yīng)用于二級(jí)計(jì)算機(jī)公共課教學(xué)中,相對(duì)于C語(yǔ)言、VB等,Python應(yīng)用于公共課教學(xué)的時(shí)間并不長(zhǎng)。根據(jù)實(shí)際教學(xué),并結(jié)合2020年春學(xué)期線上教學(xué)模式,對(duì)在Python高級(jí)程序設(shè)計(jì)語(yǔ)言公共課教學(xué)中的教學(xué)體系設(shè)計(jì)、平臺(tái)環(huán)境的搭建、學(xué)生先行條件研究、基本知識(shí)點(diǎn)講解、單元總結(jié)、Python第三方庫(kù)、資源利用及等級(jí)考試等進(jìn)行了探討。
關(guān)鍵詞:Python;公共課教學(xué);案例;IDLE;第三方庫(kù)
中圖分類(lèi)號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)35-0169-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1引言
作為人類(lèi)重要思維心態(tài)之一的“計(jì)算思維”,近些年越來(lái)越受到廣泛重視。高等教育領(lǐng)域中程序設(shè)計(jì)類(lèi)課程開(kāi)設(shè)目的之一就是培養(yǎng)和發(fā)展學(xué)生的計(jì)算思維。程序設(shè)計(jì)類(lèi)課程可選的語(yǔ)言有很多,就Python而言,可以說(shuō)是近幾年發(fā)展起來(lái)的新秀。
“人生苦短,我學(xué)Python”,自2018年3月起,國(guó)家計(jì)算機(jī)等級(jí)考試中加入了“Python語(yǔ)言程序設(shè)計(jì)”科目以來(lái),越來(lái)越多的高校計(jì)算機(jī)二級(jí)方面的公共課開(kāi)始開(kāi)設(shè)Python相關(guān)課程,也有越來(lái)越多的學(xué)生在報(bào)考計(jì)算機(jī)二級(jí)考試時(shí)選擇語(yǔ)種Python。
出現(xiàn)當(dāng)前狀態(tài)很重要的原因在于Python語(yǔ)言的自身特點(diǎn):首先,相比其他語(yǔ)言(如C語(yǔ)言),語(yǔ)法簡(jiǎn)潔,保留字少,易學(xué);其次,生態(tài)豐富,不僅Python自帶的解釋器有大量?jī)?nèi)置類(lèi)和函數(shù)庫(kù)(如常用的turtle庫(kù)),此外,由于Python語(yǔ)言的開(kāi)放性,世界各地的程序員源源不斷地貢獻(xiàn)著第三方庫(kù),且安裝容易;第三,多語(yǔ)言集成,甚至Python語(yǔ)言有“膠水語(yǔ)言”這一說(shuō)法,可以借助其他語(yǔ)言的優(yōu)勢(shì)來(lái)提高執(zhí)行速度。此外,Python還具有與平臺(tái)無(wú)關(guān)、強(qiáng)制可讀、支持中文等。
2 Python高級(jí)程序設(shè)計(jì)語(yǔ)言公共課教學(xué)
2.1 教學(xué)體系設(shè)計(jì)
首先,公共課教學(xué)體系的設(shè)計(jì),也就是整體的教學(xué)安排,必須在學(xué)校的教學(xué)大綱的基礎(chǔ)上制定。就鹽城師范學(xué)院來(lái)講,所有課程的教學(xué)大綱都有“課程思政”這一要求。因此從大綱制定到教學(xué)體系的設(shè)計(jì)與以往有不少區(qū)別。就目前來(lái)看,安排是靈活多樣的。有直接利用教材體系,然后在其中設(shè)計(jì)“思政”元素。這樣做的好處是無(wú)論教師和學(xué)生都可以將教材作為非常重要的參考依據(jù)或者以其為綱。也有的將教材僅僅作為輔助資料,依據(jù)學(xué)生專(zhuān)業(yè)特點(diǎn)及“思政”要求重新整合知識(shí)點(diǎn)和教學(xué)案例,這樣學(xué)生在學(xué)習(xí)時(shí)對(duì)課程的認(rèn)可度會(huì)更高,認(rèn)為“學(xué)有所用”,對(duì)于提高學(xué)生的學(xué)習(xí)興趣很有幫助,但同時(shí)也將需要教師有更多的投入。
2.2 平臺(tái)和環(huán)境的搭建
Python集成開(kāi)發(fā)環(huán)境(IDLE)可以針對(duì)電腦的自身環(huán)境而選擇,一般學(xué)生的筆記本或者臺(tái)式機(jī)都比較新,因此可以到Python官網(wǎng)(https://www.Python.org)下載最新版本安裝。而一些公用機(jī)房,則可能需要安裝版本稍低的,如Python-3.5.3。但不管怎樣,都需安裝Python3.x系列版本,因?yàn)镻ython和其他軟件不一樣,不能“向下兼容”,且Python3.x系列和Python2.x系列的版本在語(yǔ)法表述等多方面是不一樣的。對(duì)于版本較新的,在安裝首頁(yè)直接選擇環(huán)境變量的復(fù)選框,而對(duì)于較低版本的安裝,則需要單獨(dú)進(jìn)行環(huán)境變量的設(shè)置??梢允褂胏md命令或者在“計(jì)算機(jī)”的“高級(jí)系統(tǒng)設(shè)置”中進(jìn)行配置。
安裝好Python的集成開(kāi)發(fā)環(huán)境(IDLE)后,還可以引導(dǎo)學(xué)生安裝PyCharm或者其他的編程輔助工具,如Notepad++等,因?yàn)檫@些工具可以幫助學(xué)生在編程時(shí)提高效率,比如調(diào)試、語(yǔ)法高亮、Project管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、糾錯(cuò)等,當(dāng)然,這些都是在Python的IDLE環(huán)境基礎(chǔ)上搭建的。
也有教師在教學(xué)開(kāi)始的幾周不做輔助工具的介紹,這樣的好處是可以讓學(xué)生快速熟悉Python自身的集成開(kāi)發(fā)環(huán)境、基本語(yǔ)法關(guān)鍵字、書(shū)寫(xiě)規(guī)范等。
2.3學(xué)生先行條件
因?yàn)閷W(xué)生來(lái)自全國(guó)不同省市地區(qū),所以學(xué)生對(duì)于編程語(yǔ)言的了解程度存在差異。目前來(lái)看,絕大部分同學(xué)在此之前并未接觸或并未深入接觸過(guò)編程語(yǔ)言,而計(jì)算機(jī)編程所涉及的思維方式和日常生活或其他學(xué)科思維方式區(qū)別還是很大的。因此,學(xué)生初步接觸Python課程時(shí),好奇、期待、畏難等這些情緒都或多或少的有。對(duì)于這樣的現(xiàn)狀,起初的幾節(jié)課就顯得很關(guān)鍵,此時(shí)需要既要讓學(xué)生對(duì)計(jì)算機(jī)編程及思維方式有初步認(rèn)知,又必須讓學(xué)生認(rèn)識(shí)到Python在當(dāng)前實(shí)際中的價(jià)值,從而產(chǎn)生克服畏難情緒以及進(jìn)一步探索的欲望。
為了解學(xué)生對(duì)編程語(yǔ)言及Python的熟悉程度,一方面,可以通過(guò)一些平臺(tái)做初步調(diào)研,2020年春學(xué)期很多問(wèn)卷調(diào)研工作都是在慕課堂中進(jìn)行的,當(dāng)然問(wèn)卷調(diào)研平臺(tái)有很多,如問(wèn)卷星、騰訊問(wèn)卷等。通過(guò)基本問(wèn)題的設(shè)置初步掌握學(xué)生對(duì)編程乃至Python的了解情況。另一方面,開(kāi)始這門(mén)課之前,可以設(shè)置幾個(gè)小案例,以引導(dǎo)學(xué)生用“計(jì)算思維”的方式去解決問(wèn)題,如經(jīng)典的裴波拉契數(shù)列、求和計(jì)算1+2+...+100。
2.4 基本知識(shí)點(diǎn)與單元總結(jié)
基本知識(shí)點(diǎn)的學(xué)習(xí)是整個(gè)課程學(xué)習(xí)的主體部分,常規(guī)教學(xué)中,可以先讓學(xué)生先行預(yù)習(xí)。結(jié)合2020春學(xué)期線上教學(xué)來(lái)看,知識(shí)點(diǎn)講解之前或之后,當(dāng)然也可以是教學(xué)過(guò)程中,可以向?qū)W生展示學(xué)習(xí)流程(任務(wù)單)或思維導(dǎo)圖,這樣學(xué)生對(duì)于學(xué)習(xí)流程、內(nèi)容及任務(wù)都了然于心。
在教學(xué)過(guò)程中,基本知識(shí)點(diǎn)和小案例可以穿插進(jìn)行。如果有條件,可以適時(shí)讓學(xué)生進(jìn)行實(shí)際操作。2020年春學(xué)期,受疫情影響,全國(guó)高校大面積開(kāi)展了線上教學(xué),有的課程整個(gè)學(xué)期都是線上教學(xué)模式。線上教學(xué)有利有弊,對(duì)于Python課程而言,從后期學(xué)生視頻學(xué)習(xí)數(shù)據(jù)統(tǒng)計(jì)來(lái)看,很多原視頻錄制時(shí)間幾分鐘的,而學(xué)生的學(xué)習(xí)平均時(shí)間則用了十幾分鐘或者更長(zhǎng)。尤其是視頻中有實(shí)際案例,教師提供的學(xué)習(xí)任務(wù)單又做了相應(yīng)的編程要求的。這種及時(shí)利用實(shí)際小案例來(lái)鞏固和強(qiáng)化所學(xué)的知識(shí)點(diǎn),對(duì)學(xué)生的學(xué)習(xí)效果起到了很大的作用。
每一單元結(jié)束后,知識(shí)點(diǎn)的總結(jié)歸納,這一部分工作主要一是進(jìn)一步強(qiáng)化所學(xué);二是形成知識(shí)塊、知識(shí)鏈。這一部分工作可以通過(guò)知識(shí)點(diǎn)、小案例的羅列,也可以通過(guò)規(guī)模略大的編程案例實(shí)現(xiàn)。例如,教育部考試中心二級(jí)教程中《倒背如流》《凱撒密碼》等實(shí)例。當(dāng)然,還可以隨機(jī)出題。例如,2020年春學(xué)期我校很多公共課教學(xué)的老師充分利用了慕課堂、Python123網(wǎng)站平臺(tái)(https://Python123.io/)出題,為學(xué)生提供了相應(yīng)的練習(xí)進(jìn)行知識(shí)和編程技能的強(qiáng)化。
2.5 常用的第三方庫(kù)的學(xué)習(xí)
Python這一編程語(yǔ)言?xún)?yōu)勢(shì)之一就是有著豐富的第三方庫(kù)和工具。這些庫(kù)可用于文件讀寫(xiě)、網(wǎng)絡(luò)抓取和解析、數(shù)據(jù)連接、數(shù)據(jù)計(jì)算和統(tǒng)計(jì)分析、圖像和視頻處理、音頻處理、數(shù)據(jù)挖掘/機(jī)器學(xué)習(xí)/深度學(xué)習(xí)、數(shù)據(jù)可視化、交互學(xué)習(xí)、集成開(kāi)發(fā)以及其他Python協(xié)同數(shù)據(jù)工作工具等。
首先是讓學(xué)生理解所要講解的第三方庫(kù)的作用和使用,并給出能引起學(xué)生興趣的一些案例。例如wordcloud庫(kù),能以詞語(yǔ)為基本單元,根據(jù)其在文本中出現(xiàn)的頻率設(shè)計(jì)不同大小以形成視覺(jué)上的不同效果,形成“關(guān)鍵詞云層”或“關(guān)鍵詞渲染”,從而使讀者只要“一瞥”即可領(lǐng)略文本的主旨,當(dāng)前這種展示方式已經(jīng)成為文本展示的樣板,比較流行。舉例時(shí),可選擇當(dāng)前熱點(diǎn)話題文章或者經(jīng)常接觸的比較熟悉的文章,比方筆者在教學(xué)中選擇了學(xué)生時(shí)政中可能關(guān)注到的文章《習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想是黨和國(guó)家必須長(zhǎng)期堅(jiān)持的指導(dǎo)思想》,并要求學(xué)生利用特殊形狀——五角星形成詞云,效果如圖1所示。
又如,舉一個(gè)平時(shí)教師使用的自動(dòng)批改選擇題的實(shí)例。在演示如何批量批改學(xué)生答題后展示批改程序中所導(dǎo)入的庫(kù)(具體如下文的代碼),并做大概說(shuō)明。
import xlrd
import xlwt
from xlwt import *
import unittest
import io
import sys
import os
需要說(shuō)明的是的第三方庫(kù)安裝。在實(shí)際教學(xué)中發(fā)現(xiàn),由于學(xué)生情況各異,安裝第三方庫(kù)過(guò)程中出現(xiàn)了多種問(wèn)題。正常可以用pip工具安裝,此外,還可以自定義安裝或文件安裝。下載第三方庫(kù)的時(shí)候,可能會(huì)因?yàn)榫W(wǎng)絡(luò)問(wèn)題而出現(xiàn)暫時(shí)無(wú)法下載的情況,此時(shí),可以暫緩下載,選擇其他的時(shí)間段去操作。當(dāng)然對(duì)于一些不容易講解和理解的內(nèi)容,可以借鑒線上教學(xué)經(jīng)驗(yàn):錄制微課視頻。
2.6 充分利用可用資源
由于2020春學(xué)期的特殊性,很多網(wǎng)絡(luò)資源都免費(fèi)提供。我校公共課多位老師合力在Python123平臺(tái)(https://Python123.io/)建立了校內(nèi)資源,提供給老師和學(xué)生。在此平臺(tái)上有大量的題庫(kù),也可以自建題庫(kù),教師可以組建單選、多選、填空、判斷,以及編程題。同時(shí)支持在線編程,在電腦端和手機(jī)端均可登錄。這樣學(xué)生可以隨時(shí)隨地學(xué)習(xí),充分利用碎片化時(shí)間,很方便。當(dāng)然,除了Python123平臺(tái)之外,還有很多不錯(cuò)的學(xué)習(xí)資源平臺(tái),如中國(guó)大學(xué)MOOC(https://www.icourse163.org/)上的課程資源、相關(guān)的論壇等。中國(guó)大學(xué)MOOC課程中設(shè)置了討論區(qū),在討論區(qū),可以發(fā)起討論主題,加入該課程的學(xué)生和課程組老師都可以參與討論,形成類(lèi)似頭腦風(fēng)暴的方式解答問(wèn)題。在一些專(zhuān)題論壇上,大家可以把有疑惑的部分發(fā)布出來(lái)共同討論,群策群力,對(duì)學(xué)習(xí)同樣非常有利。
2.7 等級(jí)考試
雖然很多學(xué)校學(xué)生獲取學(xué)位證書(shū)已不再與計(jì)算機(jī)等級(jí)考試結(jié)果掛鉤,但作為公共課程開(kāi)設(shè)的程序設(shè)計(jì)類(lèi)課程,無(wú)論教與學(xué)都將涉及計(jì)算機(jī)等級(jí)考試。如在教材選擇方面,首選教育部考試中心編著的相關(guān)教材。且從2018年3月起,全國(guó)計(jì)算機(jī)等級(jí)考試已把Python列為可選語(yǔ)言之一,考試雖不是最終目的,但可以作為檢驗(yàn)學(xué)習(xí)效果的手段之一,當(dāng)然也可以通過(guò)等級(jí)考試帶動(dòng)學(xué)生學(xué)習(xí)。在一些網(wǎng)站資源,如上文提及的Python123平臺(tái)(https://Python123.io/)或者考試系統(tǒng)中,都有大量的題庫(kù),通過(guò)針對(duì)性的訓(xùn)練,一方面可以備考,另一方面對(duì)于學(xué)生基礎(chǔ)知識(shí)的鞏固、簡(jiǎn)單程序設(shè)計(jì)、綜合運(yùn)用(如文件等)都有很大的幫助。當(dāng)然,需要與學(xué)生說(shuō)明的是,全國(guó)計(jì)算機(jī)二級(jí)考試中,無(wú)論哪種語(yǔ)言,選擇題均有20分是計(jì)算機(jī)基礎(chǔ)知識(shí)部分,這在課程教學(xué)中往往涉及不到,需要學(xué)生自主學(xué)習(xí)并強(qiáng)化練習(xí)。在課程教學(xué)的最后一兩周,通常會(huì)安排學(xué)生模擬練習(xí)等級(jí)考試,并說(shuō)明考試要求,諸如做選擇題時(shí)中途不可退出等。
而對(duì)于興趣濃厚,且基礎(chǔ)知識(shí)掌握較好的學(xué)生可以提出更為復(fù)雜的設(shè)計(jì)要求,如組成學(xué)習(xí)小組、公共協(xié)作設(shè)計(jì)綜合案例等。
3總結(jié)
計(jì)算思維是一種解決問(wèn)題的方式,已經(jīng)成為教育教學(xué)中著重培養(yǎng)的一種思維,程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)則是培養(yǎng)學(xué)生計(jì)算思維的重要途徑。Python程序設(shè)計(jì)語(yǔ)言因其他語(yǔ)言不可比擬的優(yōu)勢(shì)成為很多高校公共課程序設(shè)計(jì)方面的所選語(yǔ)種。在公共課教學(xué)中,從教學(xué)體系設(shè)計(jì)、平臺(tái)搭建、學(xué)生先前條件研究、基本知識(shí)學(xué)習(xí)、單元總結(jié)、第三方庫(kù)安裝與學(xué)習(xí)、資源利用乃至等級(jí)考試準(zhǔn)備都是非常重要的環(huán)節(jié)。
參考文獻(xiàn):
[1] 嵩天.Python語(yǔ)言程序設(shè)計(jì)[M].高等教育出版社,2019(12):11.
[2] 孫建中.基于Python的計(jì)算機(jī)教學(xué)研究[J].電腦知識(shí)與技術(shù),2020(4):159-160.
[3] 文一憑,張進(jìn)良,姜磊,等.應(yīng)用驅(qū)動(dòng)的漸進(jìn)式Python案例教學(xué)探索與實(shí)踐[J].當(dāng)代教育理論與實(shí)踐,2020(3):51-56.
[4] 林樹(shù)青.大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)的新思路探討[J]. 當(dāng)代教育實(shí)踐與教學(xué)研究, 2020(8):84-85.
[5] 王潤(rùn)鴻,劉燕. 基于Python的大學(xué)計(jì)算機(jī)公共課教學(xué)研究[J]. 電腦知識(shí)與技術(shù),2019(4):149-150.
[6] 陳杰華. 基于計(jì)算思維的Python語(yǔ)言實(shí)驗(yàn)設(shè)計(jì)與實(shí)施[J]. 計(jì)算機(jī)教育,2020(2):12-15.
[7] 孟凡芳. 基于計(jì)算思維的Python程序設(shè)計(jì)語(yǔ)言教學(xué)改革[J]. 計(jì)算機(jī)產(chǎn)品與流通, 2020(2):215.
[8] 闖躍龍,郭文平. 面向非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的Python教學(xué)內(nèi)容設(shè)計(jì)[J]. 臺(tái)州學(xué)院學(xué)報(bào),2018(6):56-60.
【通聯(lián)編輯:王力】