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