《Python应用》课程的内容设计与教学方法探索
2019-03-19□吴涛
□吴 涛
近年来,信息技术的快速发展使得网络空间逐渐成为了各个领域关注的焦点。在网络空间中,人们获得各种网络与信息服务的同时,越来越频繁地出现隐私泄露、泄密、谣言、网络暴力等安全问题。面对网络空间严峻的安全形势,引起世界各国对网络安全的高度重视。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应用》课程的内容设计和教学方法,介绍了课程的预期目标、课程特点、内容设计。然而,本课程还处于初步建设阶段,相关教学内容、知识体系还不够完善,还需不断努力。只有不断优化、不断创新,才能够建设好本课程、建设好网络空间安全专业,培养出满足社会需要的专业人才。