□吳 濤
近年來,信息技術的快速發展使得網絡空間逐漸成為了各個領域關注的焦點。在網絡空間中,人們獲得各種網絡與信息服務的同時,越來越頻繁地出現隱私泄露、泄密、謠言、網絡暴力等安全問題。面對網絡空間嚴峻的安全形勢,引起世界各國對網絡安全的高度重視。2015年,“網絡空間安全”被國務院學位委員會正式批準為“國家一級學科”。然而,除了密碼學等少數分支外,“網絡空間安全”至今還沒有形成獨立的基礎理論體系,相關的學科建設仍然不夠成熟。在2017年,重慶郵電大學網絡空間安全與信息法學院成立了網絡空間安全專業,并開始進行本科生招生。為了有效地構建網絡空間安全專業的課程體系,本文將探討《Python應用》課程的內容設計與教學方法問題。
近年來,Python計算機編程語言在工業界被廣泛采用,從系統底層到各種各樣的產品應用開發,都越來越多地采用Python作為開發語言。因此,Python語言的學習對于信息技術相關專業學生的能力培養已經變得不可或缺[1]。同時,面臨大數據時代的來臨,各個行業各個領域都開始進入以數據資源利用為核心的新的發展階段,從而數據分析能力的培養是網絡空間安全專業需要考慮的課題[2]。因此,重慶郵電大學從Python語言和數據分析的角度出發,提出建設《Python應用》課程,培養具有分析研究和工業應用能力的網絡空間安全人才。
(一)課程目標。《Python應用》是一門網絡空間安全及相關信息類專業學生的專業課程,此課程將主要包括三個方面的內容。第一,課程將介紹Python語言的基本內容,包括Python語言開發環境搭建和Python語言的基礎知識,比如,列表、字符串、字典等及python面向對象編程:對象、包與模塊以及Python語言的解釋執行過程等。第二,課程將介紹較為高級的內容,包括常見的Python第三方模塊的介紹和使用和基于Python的數據庫操作、網絡爬蟲、郵電發送等功能的開發。第三,課程將介紹大數據分析處理相關的問題,包括數據清洗、數據可視化、模型算法、網絡數據分析等。本課程旨在通過講授Python語言的關鍵知識、常見應用問題、數據分析基礎,讓學生通過本課程的學習快速掌握基于Python的應用開發、大數據分析及可視化等實際問題的解決能力。
(二)課程特點。《Python應用》是一門以Python編程語言學習為基礎,面向實際專業能力培養的應用型課程。《Python應用》課程總體上涉及的內容比較廣泛,要良好地掌握各個知識點有一定的難度。為了提高學生對本門課程的學習效果,此課程同時包括理論課程和實驗課程。每次實驗課程都以專題的形式,面向代表性的技術方法開展。通過實驗課程的設計,促使學生深入理解相應的技術方法,形成相關技術方法的實際運用能力。總體上,《Python應用》課程以當前關鍵技術熱點為指導,以理論教學和實驗教學相結合為方法,通過目標明確的針對性講解和練習達成課程的教學目標,讓參與這門課程的同學了解行業與技術前沿,形成良好的問題思考習慣和求解能力,構建未來參與大型工程項目和理論算法研究的基礎。
《Python應用》課程結合吉林大學出版社的《零基礎學Python》以及人民郵電出版社《Python基礎教程》教材進行授課,講解Python編程語言的基礎知識。同時,課程摘選人民郵電出版社《Python數據科學入門》以及機械工業出版社《Python數據科學-技術詳解與商業實踐》中的部分內容講解數據分析及可視化的相關知識。課程共安排了48個學時,其中理論教學32學時,實驗教學16學時。
(一)理論教學。重慶郵電大學理論教學大致安排如下:Python入門(4學時):主要講解Python概述,以及Python應用領域,熟悉Python環境搭建,掌握Python語法特點、注釋、縮進、編碼規范、掌握Python變量、數據類型、運算符、I/O、保留字與標識符;字符串與流程控制(2學時):主要內容包括字符串操作、字符串編碼和循環程序結構,掌握選擇、循環、跳轉、空語句;列表、元組與字典(2學時):主要內容包括序列、列表、元組、字典、集合等基礎知識;函數、模塊與包(2學時):主要內容包括函數的創建、調用與參數傳遞及變量作用域、模塊定義、命名空間與作用域、包;文件與目錄(2學時):主要內容包括掌握文件與目錄的創建、讀寫與操作;異常處理與程序調試(2學時):主要內容包括了解Python運行原理、熟悉Python內存機制、掌握Python異常處理;類與對象(2學時):主要內容包括掌握面向對象、掌握類、掌握屬性、了解繼承;Python標準庫與應用(2學時):主要內容包括Socket網絡編程、Turtle繪畫模塊、信息存儲與交換JSON、jieba中文分詞、wordcloud詞云技術;數據科學與數據可視化(4學時):主要內容包括掌握數據科學、了解數據科學與python、掌握數據可視化、編碼實現常見的數據圖表;機器學習-回歸與聚類(4學時):主要內容包括了解機器學習基本概念和熟悉相關算法回歸、聚類等及編碼實現相關經典算法;鏈路預測(4學時):主要內容包括了解復雜網絡、鏈路預測概念基本概念和應用場景,熟悉鏈路預測常用方法,實現鏈路預測算法的編碼,進行實際應用;網絡節點排序(2學時):主要內容包括了解節點排序的產生背景和實際意義、掌握節點排序的經典算法、掌握節點排序的實際應用。
(二)實驗教學。《Python應用》課程選擇Socket網絡編程實驗、數據庫實驗、網絡爬蟲實驗、數據分析與可視化實驗、邏輯回歸實驗、數據聚類實驗、鏈路預測實驗和節點排序實驗。Socket網絡編程實驗(2學時):在理論教學的基礎上學習Socket網絡通信的原理,熟悉Socket開發模塊,完成網絡通信客戶端、服務器的編碼實現,并畫出工作流程圖。數據庫實驗(2學時):學習數據庫操作的基本技術,基于Python數據庫操作模塊完成數據庫應用的編碼實現。網絡爬蟲實驗(2學時):學習網絡爬蟲的基本原理,熟悉網絡爬蟲的Python模塊,完成網絡爬蟲的編碼實現和網絡爬取。數據分析與可視化實驗(2學時):在理論教學的基礎上學習數據分析的基本流程,掌握數據分析的基本操作,編碼實現數據的統計分析及可視化展示。邏輯回歸實驗(2學時):學習機器學習中邏輯回歸的基本理論,了解邏輯回歸的應用場景,基于Sklearn機器學習模塊實現邏輯回歸的編碼應用。數據聚類實驗(2學時):了解經典的數據聚類算法,理解聚類算法的思想和其可能的實際應用場景,基于Sklearn機器學習模塊編碼實現k-means聚類算法。鏈路預測實驗(2學時):學習鏈路預測問題的思想和實際應用場景,了解經典的鏈路預測算法,基于NetworkX模塊實現經典的鏈路預測算法。節點排序實驗(2學時):了解網絡數據中節點排序的目的和應用場景,學習經典的節點排序方法,基于NetworkX模塊實現相關的網絡節點排序算法的實際應用。
在理論教學方面,《Python應用》是一門面向實際應用的課程,強調學生實際動手能力的培養。因此,筆者認為課程講授應該以基礎知識、關鍵難點為主要內容,鼓勵學生結合豐富的網絡資源學習Python語言相關的細節、語法規范等,從而形成以課堂講解為主體、以學生課后自學為輔助、以最終解決實際應用問題為導向的教學模式。另外,由于此課程是一門編程語言類課程,應該結合實際案例進行問題講解,讓學生在實際問題求解過程中進行理論學習。
在實驗教學方面,《Python應用》課程在講授Python編程語言的基礎上,強調要結合實際應用問題。因此,本課程選取軟件開發的關鍵應用問題以及當前應用廣泛的數據挖掘相關的基礎算法作為實驗內容。筆者希望,通過實驗教學的相關訓練,學生能夠形成面對實際問題的編碼解決能力。
本文結合重慶郵電大學網絡空間安全專業的發展現狀,根據當前工業界相關技術的發展階段探討了《Python應用》課程的內容設計和教學方法,介紹了課程的預期目標、課程特點、內容設計。然而,本課程還處于初步建設階段,相關教學內容、知識體系還不夠完善,還需不斷努力。只有不斷優化、不斷創新,才能夠建設好本課程、建設好網絡空間安全專業,培養出滿足社會需要的專業人才。