楊榮領





摘 ?要:《Python語言程序設計基礎》是計算機相關專業的核心課程,文章針對Python語言本身的特點,提出了該課程教學的兩個層次:1.基礎知識、語法講解,以簡單的有趣的例子講解;2.利用第三方庫結合數據分析的實例,貫穿教學,實現數據的獲取、處理、分析、可視化。以提高學生編程的興趣和應用能力,推動教學改革。
關鍵詞:Python語言;程序設計;數據分析;教學改革
中圖分類號:G642 文獻標志碼:A 文章編號:2096-000X(2019)03-0135-03
Abstract: "The Foundation of Python Language Programming" is the core course of computer related majors. This paper proposes two levels of teaching in the course of Python language: 1. Basic knowledge, grammar explanation, with simple and interesting examples; 2 Using third-party libraries combined with data analysis examples, through the teaching, to achieve data acquisition, processing, analysis, visualization. To promote the interest and application of students in programming, and promote teaching reform.
Keywords: Python language; program design; data analysis; teaching reform
引言
《程序設計基礎》是高等學校計算機科學與技術及相關專業的核心課程[1],以講述程序設計語言的基本知識和程序設計方法,介紹程序設計的思想和方法,有助于學生了解計算機求解問題的方式,即計算機思維方式的培養,主要有C、JAVA、C++等傳統程序設計語言,但相對語法復雜,對計算機理論知識要求高,入門難。在“互聯網+”的時代背景下,尤其是大數據、云計算、人工智能、深度學習等領域的推動,Python語言的優勢突顯出來。
一、Python語言的特點與優勢
Python 是一種面向對象、解釋型計算機程序設計語言,由Guido van Rossum(吉多·范羅蘇姆)于1989年發明,第一個公開發行版發行于1991年。它是一個開源語言,擁有大量的庫,可以高效地開發各種應用程序。特點:簡單、高級、面向對象、可擴展性、免費開源、可移植性、豐富的庫、可嵌入性[2]。
Python語言在程序設計基礎教學過程中,也呈現較強的有優點和優勢:
1. 語法簡單,簡潔,優雅。安裝簡單,有較多的IDE工具,學生可以根據自己的喜好選擇并可以在較短時間內輕松地掌握相關的基礎知識、語法。
2. 可讀性強。Python語言通過縮進的語句塊來控制結構,可讀性強,有利于培養學生良好的編程習慣,可以“#”來進行解釋性注釋,增加程序可讀性。
3. 豐富的第三方庫。面向對象的程序Python不僅提供了豐富的數據結構,還有豐富的第三方庫。如requests、BesautifulSoup、re等,實現數據的獲取;科學計算的Numpy、Scipy和Matplotlib等,實現數據的處理、分析、可視化;OpenCV、Tenserflow等為圖像處理、深度學習提供了有利的基礎。豐富的第三方庫,廣泛應用于大數據中數據獲取、處理、分析、可視化、計算機視覺等領域[3]。不僅可以培養了學生的學習興趣,還可以提高了學生的應用能力和項目能力。
二、《Python語言程序設計基礎》教學改革實踐
通過前面對Python語言的特點和優勢的分析,可以把整個教學設計為兩個層次:1. Python基礎知識、語法講解,以簡單的有趣的例子講解;2. 利用第三方庫結合數據分析的實例,貫穿教學,實現數據的處理,分析,可視化。
(一)Python基礎知識、語法講解
1. 從生活中的趣事引入Python
這是畫的一張Python圖,模擬薯片掉到地上的樣子,會發現一個弧面掉在了一個平面上,那么他們就是一個相切的接觸,也就是說這兩個面其實相交于一條線,一條線在二維平面上的面積是多少呢?是0。這就是相切可吃定理。也就是說薯片掉地上接觸地面的面積為零,不影響食用。如圖1a和圖1b所示。
情人節送心形圖,從簡單的心形函數圖?籽=a·(1+cos?茲) (圖2)到復雜漂亮的愛的詮釋基于微博數據用 Python打造一顆“心”(圖3),圖2是簡單的函數作圖,體會Python的作圖功能,圖3展示了Python實現數據處理的基本過程,從數據的爬取,保存,分詞,生成圖片到心形圖。引發學生的興趣。
2. 在快樂中學習Python的基本知識
在教學中,使用Anaconda,它自帶了Numpy、Scipy、Matplotlib等第三方庫,教學用Jupyter Noetbook可以將文字、代碼、圖形、公式整合在一起,方便教學。以問題求解為導向,“提出問題——對應算法——轉化程序”的思維過程,教導“編程”為主,培養學生的編程能力,教授如何用計算機程序解決問題的思維和技巧(即計算思維),講解要由淺入深,清晰易懂。主要培養學生的邏輯思維,計劃構建,循環計算,遞歸求解等能力,重點講解容易出錯的語法。結合上機操作課,鞏固練習,讓學生能夠加深理論知識的理解和掌握。
(二)利用第三方庫結合數據分析的實例,貫穿教學
利用第三方庫,如requests、BesautifulSoup、re等,實現數據的獲取;Numpy、Scipy和Matplotlib等,實現數據的處理、分析、可視化。主要從網頁上抓取數據進行數據分析,這個涉及到很多領域,如:影視、歌曲、就業、房價、空氣污染等,可進行興趣,情感等方面分析。但在網絡爬取到的數據一般都是非結構化的數據,數據的處理,分析是涉及到很多難點,所以在實際教學講授中,一般分兩大主線:1. 數據的收集——爬蟲。2. 利用結構化的數據,進行數據的處理、分析、可視化。
1. 數據的收集——爬蟲
爬蟲是一種按照一定規則,自動地在網頁抓取信息的程序或者腳本,一般分為數據采集、處理、儲存三個部分,工作原理:先找到目標信息網,抓取模塊、頁面分析模塊、數據存取模塊[4]。爬蟲部分教學以案例講解為主,如:藝術電影智庫[5],房價數據[6]等,以實操為主導,介紹爬蟲的流程和模塊,以過程和結果展示調動學生的興趣。
2. 數據的處理、分析、可視化
數據的處理、分析、可視化主要利用已有的數據,如:學生學習成績的分析,泰坦尼克號沉船幸存者預測、貸款違約風險預測等。通過Jupyter Noetbook 展示,利用一些簡單到復雜的例子進行講解,主要實現數據的導入,如圖4,Jupyter Noetbook可直接執行Python代碼。數據量大時,導入數據后可以通過代碼anscombe.head(),anscombe.shape,anscombe.info() 查看數據的前條信息,數據的結構,類型,是否有缺失等信息。
然后利用Numpy、Scipy庫對數據清洗,數據缺失的填充,對數據進行簡單的統計分析(平均值、中位數、期望、方差等)主要代碼如下:X.mean(),X.median(),X.std(),X.var()等(X為數據對象)。研究利用Matplotlib庫繪制散點圖、直方圖,條形圖,折線圖,餅圖,相關矩陣圖等,通過圖形整體分析數據的特征和變化趨勢,如散點圖可以看出變量的分布特征,相關矩陣圖可以看出變量之間的關系,如圖5。
三、結論
本文根據Python語言的特點,提出了《Python語言程序設計基礎》課程教學的兩個層次,一方面是基礎知識的講授,另一方面利用第三方庫結合兩大主線,案例講學,不僅提高學生的興趣,更好地掌握基本的程序設計的方法和技巧,還能提高學生的自主學習解決問題和參與項目能力。
參考文獻:
[1]教育部高等學校計算機基礎課程教學指導委員會.高等學校計算機基礎核心課程教學實施方案[M].北京:高等教育出版社,2011.
[2]江紅,余青松.Python程序設計與計算基礎教程[M].北京:清華大學出版社,2017.
[3]趙廣輝.面向新工科的Python程序設計交叉融合案例教學[J].計算機教育,2017,8:23-27.
[4]李臣臣,肖巍.網絡爬蟲技術在高校學生行為分析系統的應用研究[J].電腦迷,2018,6:50-51.
[5]http://www.cbooo.cn/year?year=2017[EB/OL].
[6]http://www.xueqing.tv/course/81[EB/OL].