莊海燕
(鐵道警察學院,河南 鄭州 450053)
關鍵字:Python教學;課程內容設計;課程改革
作為目前最流行的語言之一,Python在多個領域都得到了很好的應用。在新工科背景下,我國各高校相繼開設了Python程序設計語言課程,公安院校中的工科專業也緊跟教學改革步伐,開設了此類課程。多數公安院校中,Python 程序設計語言是網絡安全與執法專業的專業基礎必修課,課程在專業建設中有著重要地位。
我國高等院校教育教學改革如火如荼進行著,對課程教學提出了“兩性一度”的要求。對于Python 程序設計語言這門課程,如何達到“高階性、創新性、挑戰度”的新標準,做到以網絡安全與執法專業人才培養為目標前提下,發揮課程在整個課程體系中的作用,真正為該專業人才培養起到支撐作用,是公安院校Python教學研究的熱點問題。
面向網絡安全與執法專業Python課程改革,既是網絡安全與執法實戰需要,也是公安教育改革面臨的課題。
公安教育的生命力在于實戰化,網絡安全與執法實戰工作發展對專門人才的編程能力提出進一步要求,其實就是對公安院校的Python 程序設計語言課程應用水平提出了更高要求。為滿足新工科背景產生的新需求,只有面向網絡安全與執法專業,針對性地進行課程內容改革,才能有效提高學生計算思維和編程能力,提高Python 課程教學質量,提升學生的就業水平。
公安教育是以專業核心能力培養為目標的應用型本科教育,公安院校各專業人才培養目標明晰,各專業都需要不同的專業知識、專業理論、專業技能等專業素質。Python 程序設計語言課程應根據不同專業培養目標,不同專業的職業素養培養入手,結合專業核心課程對前續課程提出的需求,進行課程內容、教學方法等的設計,增強專業課程體系之間粘合度,形成體系化的課程,使學生無縫地、連貫地完成大綱要求的基礎課程、專業課程和公安實踐課程這一系列的階梯型課程。
許多公安院校的Python程序設計語言課程是在原本Java程序設計語言課程或者VC++程序設計語言等課程基礎上改革而成的。作為專業基礎課,Python程序設計語言又是網絡安全與執法專業的一門核心課程,課程面臨著師資、教學方法等一系列的問題,面對這些問題,院校同行進行了相關研究。
劉衛國的《程序設計教學的NLTK 模塊應用案例設計Python》[1]研究了依托Python 的第三方庫設計應用案例,用Python的自然語言處理模塊NLTK作為主要分析工具、以就職演說語料庫以及十九大報告作為分析素材、介紹文本內容抽取的方法并對高頻詞實現可視化的教學案例。劉文飛、趙銘偉《面向人文社科類專業的Python 教學案例實踐》[2]一文中,分析人文社科類專業學生使用程序設計解決專業領域問題的一般場景,設計了以電影數據為基礎的Python 教學案例。可以看出,這類研究僅僅提出適用于該專業的某個案例或針對Python的某個具體庫進行研究,并沒有從課程體系結構及分層課程間的支持與關聯角度去考慮課程內容的設計。左衛剛在《基于CDIO模式的Python程序設計課程教學應用研究》[3]文中針對目前Python語言課程教學現狀,在詳細分析其存在問題的基礎上,提出將CDIO工程教育理念與Python 教學相結合,其研究更多將構思(Conceive)、設計(Design)、實現(Implement)和運作(Operate)工程理念,引入Python 教學,此類研究更多著重于教學理論研究,未從實踐上考慮課程內容設計問題。此外,更多的研究聚焦在教學方法的研究上,如吳敏等《疫情下線上信息化教學的探索與實踐——以
網絡安全與執法專業,在教育部頒布的本科專業分類目錄中,專業代碼為083108TK,屬于工科公安技術類,修業年限為四年。專業目標是培養具有良好的科學素質、人文素質和警察基本素質,具備扎實的網絡保衛執法的基礎知識、基本技術,經過針對軟件開發技術、網絡情報技術、計算機犯罪偵查取證技術和網絡監察技術的專門學習與訓練,能在公安機關網絡保衛執法部門及相關領域從事與預防網絡犯罪、控制網絡犯罪和處置網絡犯罪相關的執法、教學及研究工作的應用型公安高級專門技術人才。作為一個包含工學(計算機科學與信息技術)、法學、公安學等多學科交叉融合的新型公安科技專業,網絡安全與執法專業的專業課程體系包括計算機網絡、操作系統、計算機犯罪偵查、網絡信息監控技術、信息等等,同時,作為公安技術類專業,在四年的學習過程中,需要更多的課時去學習掌握法學、警察體能等公安職業相關的課程。按照教育部規定,人才培養方案的制定,課時總量是有一定限制的,這造成一個最大的問題是:即許多技術類的專業基礎課程課時量相較于普通院校會有所壓縮。如何在有限課時內,讓學生高效掌握必要的知識、能力,最終融匯成專業素養,是Python程序設計語言課程教學面臨的極大挑戰。
Python 程序設計語言在網絡安全與執法專業課程體系中的位置如圖1所示。圍繞網絡安全與執法人才培養目標,網絡安全與執法專業課程體系大致分為三層:通識課程,專業基礎課(含專業基礎必修課和專業基礎選修課),專業課程(含專業必修課程和專業選修課程),依次支撐,最終共同形成網絡安全專業核心能力培養課程體系,為培養網絡安全執法、網絡安全保衛人才的網絡犯罪偵查能力、網絡安全管理能力和網絡安全預防能力服務。其中,Python程序設計語言是專業基礎必修課,對專業課程起支撐作用,關系到該專業所有核心課程的后續學習。

圖1 Python程序設計語言在網絡安全與執法專業課程體系中的位置
Python程序設計語言課程的內容設計,一定程度上對學生的積極性調動具有決定性的作用。基于公安院校人才培養的跨學科特殊性和課程本身專業基礎必修的性質,為避免人才培養方案中的課程課時量受限而影響人才培養,為充分體現其對專業課程的支撐作用,發揮其對人才能力養成的基礎功能,應當將課程置于專業的課程體系之內,緊密結合專業核心課程,形成一體化的課程體系。一方面,從課程體系角度,能夠提高人才培養的效率;另一方面,能夠提高學生學習的積極性,從而提高學習效率,最終實現應用型專業人才培養目標。
根據Python程序設計語言特點,結合網絡安全與執法專業培養目標,及其后續課程對編程能力要求,將Python 程序設計語言課程內容分為四個階段,依次循序漸進教與學,如圖2所示。

圖2 面向網絡安全與執法專業Python程序設計語言課程內容結構分析與設計
第一階段,Python程序設計語言入門相關內容。該階段主要考慮引入計算思維解決實際問題的基本方法,可以流程圖為工具,進行思維訓練,主要內容包括:
(1)基本編程方法和思路(流程圖);
(2)運行環境及基本環境配置;
(3)代碼的運行。
第二階段,Python基礎語法及簡單代碼編寫。從整體上了解Python 程序基本結構,包含的元素,程序的作用。內容包含:
(1)基本語法元素(輸入、輸出、基本數據結構、流程控制);
(2)基本庫(IO);
(3)基礎應用(10行以內代碼);
(4)網絡安全:惡意代碼刪除(文件、目錄操作)。
第三階段,掌握基本語法和基本編程方法后,學習復雜的Python數據結構,并運用Python編寫簡短代碼完成模塊化的功能。內容包括:
(1)函數與代碼復用;
(2)組合數據類型;
(3)文件處理;
(4)面向對象的編程;
(5)代碼的異常處理。
第四階段,進入實戰,按照模塊化思想,針對網絡安全與執法專業后續的核心專業課相關內容,編寫簡單實用的程序。本階段的內容包括:
端口掃描:主要掌握模塊和套接字,實現端口掃描器。學習內容涉及實現端口掃描、使用ms17_010 漏洞來控制Windows7系統、理解端口掃描的原理、實現端口掃描器基礎功能、實現網段端口掃描器。支持網絡安全管理、網絡犯罪偵查、網絡攻防技術、網絡犯罪現場勘查與取證等后續課程。
文件操作:通過文件和目錄處理進行數據分析,刪除惡意代碼等。支撐情報搜集與分析技術、網絡安全管理、網絡犯罪偵查、網絡攻防、網絡犯罪現場勘查與取證等后續課程。
操作系統判斷滲透測試:用Scapy/Kamene 模塊實現SYN DDoS 滲透測試。支持網絡安全管理、網絡犯罪偵查、網絡攻防技術等后續課程。
網絡爬蟲:安裝Scrapy模塊、創建Scrapy項目、分析URL和網頁源碼、編寫爬蟲程序爬取數據。支持情報搜集與分析技術、電子數據分析與檢驗等后續課程。
數據可視化:利用數據可視化進行相關數據分析。支撐情報搜集與分析技術、電子數據分析與檢驗、網絡犯罪現場勘查與取證等后續課程。
(1)第一至第三階段,主要采用線上結合線下混合教學模式
對于第一階段Python 程序設計語言入門、第二階段Python 基礎語法及簡單代碼編寫兩個部分的教學可采用線上線下混合式教學模式。在基礎前期搜集、整理線上優秀教學資源,課前要求學生結合自身接受能力、自身時間安排,利用資源進行自主學習,對預設問題進行思考,課中可以采用翻轉課堂、討論等形式深入學習探討,課后繼續以論壇等形式繼續問題討論互動。
前三個階段的內容,利用線上資源可多次循環直至掌握。
(2)第四階段,線下授課、注重實驗、善用評價
進階到實戰階段,要求按照模塊化思想針對網絡安全與執法專業核心專業課相關內容,編寫簡單實用的程序。本階段需要進行更好的教學路徑設計、形態規劃,做到與之前學習內容呼應,線上線下呼應,另外,善用評價、鼓勵團隊幫扶支持。
Python程序涉及語言線上線下緊密銜接的混合式教學,考慮針對網絡安全與執法專業選擇合適的主題、案例;針對課程內容進行梳理后構建恰當的學習路徑;采用線上和線下充分結合,并充分利用評價引導學生學習;鼓勵團隊作戰,老師充分給予靈活支持。通過以上幾個方面,提高教與學的效率,增強學習效果。
針對Python程序設計語言課程,面向特定的網絡安全與執法專業,依據專業人才培養目標與實戰發展需求,充分分析課程在專業課程體系中的作用,在此基礎上,整個專業課程體系角度考慮并選擇貼近實戰應用,進行Python程序設計語言課程內容設計,充分發揮該課程在整個課程體系中對后續課程以及專業核心能力培養的支撐作用,不僅能提高Python程序設計語言課程學習積極性與效果,也增加了專業培養過程中各課程之間的粘合度,對整個課程體系的人才培養作用具有重要意義。