劉 衍,王 剛,楊興春,張明旺,徐 紅
(四川警察學(xué)院 四川瀘州 646000)
隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,網(wǎng)民規(guī)模不斷壯大,新型網(wǎng)絡(luò)犯罪大量產(chǎn)生,涉網(wǎng)案件數(shù)量在不斷增加,監(jiān)控、維護(hù)網(wǎng)絡(luò)安全的工作面臨巨大挑戰(zhàn)。國(guó)務(wù)委員、公安部部長(zhǎng)郭聲琨在全國(guó)公安機(jī)關(guān)網(wǎng)絡(luò)安全保衛(wèi)工作會(huì)議上強(qiáng)調(diào):“各級(jí)公安機(jī)關(guān)要深入學(xué)習(xí)貫徹習(xí)近平總書(shū)記關(guān)于維護(hù)網(wǎng)絡(luò)安全的重要指示及網(wǎng)絡(luò)安全和信息化工作座談會(huì)精神,深刻認(rèn)識(shí)新形勢(shì)下加強(qiáng)網(wǎng)安工作的重要意義,著力提升維護(hù)網(wǎng)絡(luò)安全能力,積極推動(dòng)網(wǎng)絡(luò)社會(huì)治理創(chuàng)新,堅(jiān)決維護(hù)網(wǎng)絡(luò)公共安全,為營(yíng)造風(fēng)清氣正的網(wǎng)絡(luò)空間、推進(jìn)網(wǎng)絡(luò)強(qiáng)國(guó)建設(shè)作出新的更大的貢獻(xiàn)[1]。作為培養(yǎng)預(yù)備警官的公安院校,有義務(wù)為公安機(jī)關(guān)輸送合格的網(wǎng)絡(luò)安全執(zhí)法技術(shù)人才,打擊日益高發(fā)的網(wǎng)絡(luò)犯罪,維護(hù)網(wǎng)絡(luò)空間安全。
近年來(lái),公安院校積極探索適合公安技術(shù)類(lèi)專(zhuān)業(yè)面向?qū)崙?zhàn)的網(wǎng)絡(luò)課程改革,大力提升培養(yǎng)具備信息化實(shí)戰(zhàn)知識(shí)技能人才的能力,取得了顯著成效。但是,在大數(shù)據(jù)、云計(jì)算、人工智能等新技術(shù)快速興起的背景下,如何緊緊跟上技術(shù)進(jìn)步的節(jié)奏,仍然需要不斷探索。例如,面向網(wǎng)絡(luò)安全與執(zhí)法專(zhuān)業(yè)開(kāi)設(shè)的面向?qū)ο蟪绦蛟O(shè)計(jì)課程,普遍講授的是C++語(yǔ)言。由于C++語(yǔ)言語(yǔ)法繁瑣、入門(mén)困難、多用于軟硬件系統(tǒng)開(kāi)發(fā)、設(shè)備驅(qū)動(dòng)等,對(duì)網(wǎng)安實(shí)戰(zhàn)需要來(lái)說(shuō),適用性不是很強(qiáng),應(yīng)適時(shí)進(jìn)行調(diào)整補(bǔ)充。我們考察,國(guó)內(nèi)外很多高校已經(jīng)開(kāi)展python 程序設(shè)計(jì)語(yǔ)言教學(xué)。Python 語(yǔ)言,既支持面向過(guò)程也支持面向?qū)ο?,功能?qiáng)大且入門(mén)簡(jiǎn)單,是目前最流行的程序設(shè)計(jì)語(yǔ)言。網(wǎng)絡(luò)安全從業(yè)者與網(wǎng)絡(luò)黑客在網(wǎng)絡(luò)攻防較量中基本都在使用Python,甚至人工智能的實(shí)現(xiàn)也需用使用Python。因此,網(wǎng)安儲(chǔ)備技術(shù)人才應(yīng)當(dāng)具備Python 技能。鑒此,本文就面向?qū)ο蟪绦蛟O(shè)計(jì)課程的開(kāi)設(shè)提出幾點(diǎn)初步探索。
Python語(yǔ)言自誕生以來(lái),作為一種“膠水”語(yǔ)言,在統(tǒng)計(jì)分析、科學(xué)計(jì)算可視化、人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、系統(tǒng)運(yùn)維等幾乎所有專(zhuān)業(yè)和領(lǐng)域得到了廣泛使用,是最受歡迎的程序設(shè)計(jì)語(yǔ)言之一。近年來(lái)國(guó)內(nèi)有幾百所高校的多個(gè)專(zhuān)業(yè)選擇使用Python作為程序設(shè)計(jì)入門(mén)教學(xué)語(yǔ)言或者作為各專(zhuān)業(yè)擴(kuò)展課程。
Python語(yǔ)言具有簡(jiǎn)單易學(xué),免費(fèi)開(kāi)源的特點(diǎn)。用python編寫(xiě)程序,無(wú)需關(guān)心硬件底層細(xì)節(jié),無(wú)需編譯鏈接。它既支持面向過(guò)程編程也支持面向?qū)ο缶幊?,可以移植到多個(gè)平臺(tái)與其他語(yǔ)言例如c、c++進(jìn)行擴(kuò)展和嵌入。它提供了豐富強(qiáng)大的標(biāo)準(zhǔn)庫(kù),無(wú)論實(shí)現(xiàn)什么功能,都有現(xiàn)成的、相似的類(lèi)庫(kù)可以使用。隨著版本的不斷更新和語(yǔ)言新功能的添加,越來(lái)越多被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。
Python 可在多平臺(tái)上使用,比如Windows、Linux、Unix 和Mac 等,它也可以在Java 和.NET 虛擬機(jī)上使用。在Linux中寫(xiě)的Python程序,也能在Windows中運(yùn)行。
學(xué)習(xí)Python程序設(shè)計(jì),首先需要搭建開(kāi)發(fā)環(huán)境。安裝Python后,自帶內(nèi)置的解釋器,可以命令行交互環(huán)境中編寫(xiě)代碼運(yùn)行程序。
除此之外,支持Python的集成開(kāi)發(fā)環(huán)境(IDE)有很多,例如PyCharm軟件是一種Python IDE,帶有一整套可以幫助用戶(hù)在使用Python語(yǔ)言開(kāi)發(fā)時(shí)提高效率的工具,支持Django框架下的專(zhuān)業(yè)Web開(kāi)發(fā),也方便跟相關(guān)GUI進(jìn)行配合界面開(kāi)發(fā)。例如Eclipse軟件可以集成多個(gè)插件實(shí)現(xiàn)多種開(kāi)發(fā)環(huán)境搭建,使用各種編程語(yǔ)言不需要切換IDE。
Python 是最好的程序設(shè)計(jì)入門(mén)語(yǔ)言,是最先進(jìn)的程序設(shè)計(jì)語(yǔ)言,也是國(guó)際上最流行的程序設(shè)計(jì)語(yǔ)言。在大數(shù)據(jù)時(shí)代背景下,各行各業(yè)都在加速人工智能替代演變。Python 的分布式爬蟲(chóng)用于網(wǎng)絡(luò)數(shù)據(jù)采集,分布式計(jì)算、機(jī)器學(xué)習(xí)用于數(shù)據(jù)分析,已在各高校課程中陸續(xù)開(kāi)展。據(jù)中國(guó)互聯(lián)網(wǎng)信息中心《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截止2018 年12 月,我國(guó)網(wǎng)民規(guī)模為8.29 億,互聯(lián)網(wǎng)普及率達(dá)59.6%,普及率呈逐年增加的趨勢(shì)[2]。隨著“互聯(lián)網(wǎng)+”的飛速發(fā)展,網(wǎng)絡(luò)安全問(wèn)題日益嚴(yán)峻,涉網(wǎng)犯罪案件數(shù)量趨勢(shì)逐年上升。公安工作模式需要做出相應(yīng)轉(zhuǎn)變,積極應(yīng)對(duì)。公安院校在公安專(zhuān)業(yè)人才的培養(yǎng)中,也需要積極探索,緊跟科技進(jìn)步,順應(yīng)時(shí)代發(fā)展。以四川警察學(xué)院為例,其網(wǎng)絡(luò)安全與執(zhí)法專(zhuān)業(yè)開(kāi)設(shè)計(jì)算機(jī)網(wǎng)絡(luò)、網(wǎng)絡(luò)安全技術(shù)、網(wǎng)絡(luò)攻防等系列專(zhuān)業(yè)課程,在常規(guī)教學(xué)的同時(shí),師生積極開(kāi)展參與各類(lèi)網(wǎng)絡(luò)安全技能競(jìng)賽。在此過(guò)程中,有關(guān)教學(xué)環(huán)節(jié)經(jīng)常用到專(zhuān)門(mén)用于網(wǎng)絡(luò)安全滲透和測(cè)試的開(kāi)源操作系統(tǒng)Kali Linux,效果甚佳。由于Kali Linux系統(tǒng)中已經(jīng)安裝配置好python 環(huán)境,這為我們進(jìn)行安全測(cè)試實(shí)驗(yàn)和維護(hù)(例如主機(jī)掃描,數(shù)據(jù)包注入,數(shù)據(jù)嗅探,遠(yuǎn)程攻擊主機(jī)等等[3])提供了極大的便利。
目前,以“課堂教學(xué)”和“網(wǎng)絡(luò)課程”優(yōu)勢(shì)相結(jié)合的混合式教學(xué)方式得到了越來(lái)越多院校的推廣,也取得了良好的教學(xué)效果。比如,使用音頻、視頻、微課、協(xié)作學(xué)習(xí)等多種網(wǎng)絡(luò)技術(shù),用交互的形式設(shè)計(jì)課程協(xié)作學(xué)習(xí)。線下學(xué)生通過(guò)網(wǎng)課學(xué)習(xí)Python的語(yǔ)法和程序設(shè)計(jì)流程的知識(shí)點(diǎn),學(xué)生通過(guò)角色分工、組隊(duì)協(xié)作的方式完成代碼開(kāi)發(fā)、運(yùn)行調(diào)試、程序發(fā)布等任務(wù),促使全體學(xué)生充分參與課程。再比如,網(wǎng)絡(luò)課程師生可以共同分享課件、案例、課程資料等,隨時(shí)隨地進(jìn)行教師與學(xué)生以及學(xué)生與學(xué)生之間的在線互動(dòng),有利于學(xué)生根據(jù)自己的掌握程度自主高效的學(xué)習(xí),教師也能實(shí)時(shí)掌握學(xué)生學(xué)習(xí)的反饋情況。
圖1 2004年1月至2018年4月關(guān)鍵詞Python搜索熱度[4]
Python 語(yǔ)言簡(jiǎn)單易學(xué),零基礎(chǔ)學(xué)生適用。其豐富的標(biāo)準(zhǔn)庫(kù),能滿(mǎn)足不同層次教學(xué)??梢詫?duì)網(wǎng)絡(luò)安全與執(zhí)法專(zhuān)業(yè)開(kāi)設(shè)必修課Python程序設(shè)計(jì),替換原有的C++程序設(shè)計(jì)課程,滿(mǎn)足面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)需要;其他公安專(zhuān)業(yè)以選修課的形式,開(kāi)設(shè)Python編程基礎(chǔ)與應(yīng)用、Python爬蟲(chóng)入門(mén)、Python信息提取與數(shù)據(jù)分析、Python機(jī)器學(xué)習(xí)應(yīng)用等課程。
網(wǎng)絡(luò)安全與執(zhí)法專(zhuān)業(yè)開(kāi)設(shè)專(zhuān)業(yè)必修課——Python面向?qū)ο蟪绦蛟O(shè)計(jì),教學(xué)目標(biāo)設(shè)定為通過(guò)介紹Python語(yǔ)言的基本語(yǔ)法、程序結(jié)構(gòu)、類(lèi)與對(duì)象、文件操作、標(biāo)準(zhǔn)庫(kù)及第三方庫(kù)的使用,使學(xué)生熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念與方法,得到程序設(shè)計(jì)方面的基本訓(xùn)練,掌握一門(mén)高級(jí)程序設(shè)計(jì)語(yǔ)言,培養(yǎng)學(xué)生程序設(shè)計(jì)的能力和調(diào)試程序的基本技能,提高學(xué)生利用計(jì)算機(jī)解決問(wèn)題的能力,為后續(xù)網(wǎng)絡(luò)安全技術(shù)、網(wǎng)絡(luò)攻防等課程奠定編程基礎(chǔ)。
采取講授和實(shí)驗(yàn)相結(jié)合的方式,依托現(xiàn)有的網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)比如藍(lán)墨云、超星學(xué)習(xí)通等,發(fā)布課程學(xué)習(xí)日歷和教學(xué)大綱等。將每個(gè)章節(jié)的知識(shí)點(diǎn)細(xì)化,以小視頻或資料的形式提前一周發(fā)布,布置針對(duì)該章節(jié)的實(shí)驗(yàn)或題目(不給出答案),要求學(xué)生按時(shí)完成閱讀與練習(xí),同時(shí)開(kāi)放本章在線互動(dòng),方便學(xué)生交互研討;上課前統(tǒng)計(jì)每位學(xué)生的學(xué)習(xí)時(shí)間、學(xué)習(xí)進(jìn)度、練習(xí)和互動(dòng)情況。課堂上主要講解該章節(jié)的重難點(diǎn)、解答線上發(fā)布的實(shí)驗(yàn)和試題、針對(duì)學(xué)生的學(xué)習(xí)和交互情況反饋進(jìn)行現(xiàn)場(chǎng)答疑。以限定時(shí)間內(nèi)網(wǎng)絡(luò)平臺(tái)上的實(shí)驗(yàn)完成度和期末考試,構(gòu)成整個(gè)課程的最終成績(jī)。期末根據(jù)學(xué)生對(duì)整個(gè)課程的評(píng)價(jià),以及對(duì)學(xué)生的考核結(jié)果分析,對(duì)課程進(jìn)行教學(xué)改進(jìn),為下一次開(kāi)課做好準(zhǔn)備。
Python面向?qū)ο蟪绦蛟O(shè)計(jì)課程內(nèi)容采用分層結(jié)構(gòu)由基本到深入再到提高,循序漸進(jìn)。穿插案例和編程練習(xí),激發(fā)學(xué)生學(xué)習(xí)的積極性,提高課程的趣味性。課程共64個(gè)學(xué)時(shí),占4個(gè)學(xué)分,教學(xué)內(nèi)容和章節(jié)課時(shí)分配可以參考表2,其中包含實(shí)驗(yàn)教學(xué)。
第一部分主要講授Python的基本語(yǔ)法元素、基本圖形繪制、基本數(shù)據(jù)類(lèi)型、程序結(jié)構(gòu)、函數(shù)與模塊[5]。第二部分異常處理和調(diào)試程序,學(xué)習(xí)如何糾正程序錯(cuò)誤,加強(qiáng)代碼的可操作性,提高編程效率。第三部分學(xué)習(xí)文本文件的讀寫(xiě)操作,數(shù)據(jù)庫(kù)的連接和各種系統(tǒng)操作以及如何 存儲(chǔ)對(duì)象。第四部分以面向?qū)ο鬄榛A(chǔ),講授類(lèi)和對(duì)象、封裝、繼承、多態(tài)、接口和模板等。第五部分以案例的形式,學(xué)習(xí)Python程序綜合應(yīng)用,web開(kāi)發(fā)、圖像處理、網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)可視化處理,AI人工智能機(jī)器學(xué)習(xí)算法等。
表1 Python程序設(shè)計(jì)課程的教學(xué)內(nèi)容及課時(shí)分配
從Python自身強(qiáng)大的功能來(lái)說(shuō),Python語(yǔ)言程序設(shè)計(jì)不止包含以上的基本應(yīng)用,還有面向不同領(lǐng)域的高級(jí)應(yīng)用,包括GUI編程、網(wǎng)絡(luò)編程、大數(shù)據(jù)處理、線程編程與進(jìn)程編程、多媒體編程與游戲編程、逆向工程與軟件分析、密碼學(xué)編程、統(tǒng)計(jì)分析與可視化、人工智能與機(jī)器學(xué)習(xí)編程等。這些應(yīng)用分支可以根據(jù)需要,開(kāi)設(shè)相關(guān)選修課程。
相對(duì)于理科背景學(xué)生,文科學(xué)生邏輯思維和計(jì)算思維能力相對(duì)薄弱,也沒(méi)有開(kāi)設(shè)C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)課程這類(lèi)前導(dǎo)課程,在選修課中,如果直接講授語(yǔ)法規(guī)則和如何使用第三方庫(kù),學(xué)生可能無(wú)從下手[6]。因此,選修課可以用只講案例的形式,增加學(xué)生學(xué)習(xí)興趣,按照編碼模塊逐步融入知識(shí)點(diǎn),一步步由簡(jiǎn)入深、由少到多帶領(lǐng)學(xué)生編寫(xiě)代碼,調(diào)動(dòng)學(xué)習(xí)積極性。
例如“Python爬蟲(chóng)入門(mén)”,可以用Python設(shè)計(jì)爬取熱搜關(guān)鍵字輿情分析;爬蟲(chóng)程序爬取圖像智能識(shí)別、淘寶物品比價(jià)等做課程引入,可以參考圖2,圍繞第三方庫(kù)進(jìn)行講解。主要通過(guò)講解Requests 第三方庫(kù)使學(xué)生掌握HTTP/HTTPS協(xié)議自動(dòng)從互聯(lián)網(wǎng)獲取數(shù)據(jù)并向其提交請(qǐng)求的方法;講解Beautiful Soup第三方庫(kù),使學(xué)生掌握從爬取的HTML頁(yè)面中解析完整Web信息的方法;講解標(biāo)準(zhǔn)庫(kù)Re,使學(xué)生掌握從爬取的HTML頁(yè)面中提取關(guān)鍵信息的方法;講解Scrapy第三方庫(kù),介紹通過(guò)網(wǎng)絡(luò)爬蟲(chóng)框架構(gòu)造專(zhuān)業(yè)網(wǎng)絡(luò)爬蟲(chóng)的基本方法。
圖2 Python爬蟲(chóng)教學(xué)案例:爬取圖像識(shí)別
python語(yǔ)言被廣泛使用在互聯(lián)網(wǎng)中的各個(gè)領(lǐng)域。python語(yǔ)言該課程是培養(yǎng)學(xué)生程序設(shè)計(jì)能力的有效手段,可以培養(yǎng)學(xué)生的計(jì)算思維和問(wèn)題求解能力。目前Python程序員人數(shù)排名世界前三,受歡迎程度緊隨在C/C++語(yǔ)言和Java語(yǔ)言之后。國(guó)內(nèi)外高校開(kāi)展python程序設(shè)計(jì)語(yǔ)言教學(xué)的經(jīng)驗(yàn)表明,其收獲了良好的教學(xué)效果,受到了學(xué)生們的歡迎。在大數(shù)據(jù)、云計(jì)算、網(wǎng)絡(luò)時(shí)代,公安院校大學(xué)生除了具備計(jì)算機(jī)基本操作能力外,還應(yīng)具備一定的編程能力。對(duì)未來(lái)從事打擊網(wǎng)絡(luò)違法犯罪的預(yù)備警官來(lái)說(shuō),加強(qiáng)專(zhuān)業(yè)技術(shù)知識(shí)的學(xué)習(xí)和實(shí)踐顯得更為重要。用網(wǎng)絡(luò)課程的形式革新程序設(shè)計(jì)課程是一個(gè)技術(shù)迭代的過(guò)程,也是契合時(shí)代發(fā)展趨勢(shì)的必經(jīng)之路。