張明霞

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