Python编程语言教学中问题分析能力培养的研究
2022-02-06徐文正
□孙 琳 徐文正
一、引言
Python语言由于其开发效率高、第三方库丰富、应用领域广等优点,广泛在互联网包括人工智能、数据分析、自动化运维、SDN、智能网络等应用领域,成为全球最流行的语言。因此绝大多数高校开设了“Python语言程序设计”课程,全国计算机等级考试NCRE也从2018年3月起新增了“Python语言程序设计”科目。
我国的工程教育认证2006年启动,开展认证是工程师制度和教育国际互认的基础,也是教育部推动工程教育改革、提高质量的重要手段。中国2016年正式加入《华盛顿协议》,这个协议也是目前国际上最具影响力的工程教育学位互认协议之一,通过认证协会认证的工程专业,其毕业生学位得到《华盛顿协议》各成员组织的认可。截至目前,中国工程教育认证结果和通过认证专业的毕业生质量,已经可以在美国、英国、日本、俄罗斯、印度、澳大利亚、加拿大、南非等20个《华盛顿协议》正式成员内认可。越来越多的高校根据工程教育认证理念和标准要求,进行教学改革,强化人才培养模式,提高人才培养质量。
针对高校开展工程教育认证体系的工作,怎样将Python的企业应用与Python语言程序设计课程讲解的基础知识点相结合,培养锻炼学生解决复杂工程问题的能力,是众多“Python语言程序设计”授课教师研究的重点。车志毅及段韶鹏等[1~2]引入与Python结合的数据分析、Web开发等专业知识将Python应用场景实例化,取得了较好的效果,赵震奇[4]将Turtle图形库引入教学环节,通过图形化手段深入学生对于Python应用的理解。这些方法从案例角度确实加深了学生对于Python基础知识的了解程度,但是案例之间是割裂的,没有体现解决复杂工程问题。袁野[3]基于情境构建培养解决复杂工程问题能力,段韶鹏等[2]对于复杂工程问题的探索研究是基于实训进行的。
工程教育专业认证强调培养学生解决复杂工程问题的能力,解决复杂工程问题包括分析、解决、总结、合作多种能力。上述研究都是基于解决复杂工程问题的专业综合能力进行的,但是对于复杂工程问题解决能力的总体提升,问题分析能力是第一步也是极为关键的一步,目前没有研究对问题分析能力培养进行探索。因此本文结合Python程序设计课程进行了问题分析能力培养的探索研究。
二、问题分析能力的重要性
复杂工程问题是教育从面向学科办学转向面向社会需求办学的目标转变过程中,为适应社会需求所提出的。复杂工程问题能力训练的就是企业应用场景中快速的判断和决策、解决和协调能力,这种能力保证了学生在企业中能快速适应工作角色,完成工作任务,这也是目前新工科培养的目标。
“复杂工程问题”不仅需要考虑技术理论与实现的复杂性,还需要考虑企业实现中的各种实际问题,最终设计出合理有效、性价比高、实施性强、可扩展性好的项目方案。在实现过程中,要注意与客户的沟通交流,满足客户需求,降低客户成本,在实施中与同事合作协调,最短时间、最高效率完成工程项目。
各方面要求的交叉会导致工程问题本身出现一些错综复杂的局面,甚至产生矛盾,对学生能力的要求也是很高的。怎样将复杂问题划分为不同的子问题,并针对每一个子问题找到适合解决方案,对于学生来说是非常重要和必要的能力。因此,问题分析能力的培养至关重要。
三、基于Python编程语言的问题分析能力培养模式
基于Python编程语言的问题分析能力培养模式分为应用领域分析、问题解决流程分析、问题解决方案分析三个部分。主要对应着问题的what is it、what to do、how to do三个问题,分析出来这三个问题,学生对于问题所需的领域知识清晰明了,问题的解决方案明确,才能进行下一步具体解决问题的阶段。
(一)应用领域分析。Python语言的应用领域较多,包括了爬虫、数据分析、网络流量分析、自动化运维、SDN、Web开发、图像处理等多个领域,当面对复杂工程问题时,需要先分析清楚问题的应用领域,是某个领域的问题,还是若干个领域的问题融合。例如网络流量采集与统计分析系统研发这个网络工程专业的复杂工程问题,就涉及到爬虫、数据分析、网络流量分析、Web系统开发等多个应用领域。
(二)问题解决流程分析。在确定好问题的应用领域后,教师需要引导学生针对不同的应用领域,通过查询资料,分析每个领域解决问题的常见方法,然后采用流程图对问题进行逐层解析,将问题深度和广度都进行细化,然后根据问题解决先后顺序,确定问题解决流程。
依然以网络流量采集与统计分析系统研发问题为例,详细分析如下:一是对于爬虫领域,需要完成数据爬取任务。二是对于网络流量分析领域,需要将流量数据制定流量过滤规则,提取异常流量特征。三是对于数据分析领域,根据流量特征,进行数据打标,继而建立流量检测模型,实现数据分析。四是对于Web系统开发领域,开发原型系统,分析结果图表展示,实现流量统计分析。
通过每个领域的细分,将问题解决流程设定为爬取——制定流量过滤规则,提取异常流量特征——数据打标,建立流量检测模型——开发原型系统,分析结果图表展示,实现流量统计分析等四个过程。
(三)问题解决方案分析。确定好问题的解决流程,教师引导学生通过问题性质和个人技术擅长选择合适的技术解决方案。技术文档查询通常包括互联网资料、论文、技术文档,查询途径常见使用百度、知网、Github以及该领域技术论坛等。
网络流量采集与统计分析系统研发问题的解决方案如下:一是爬虫可以采用两种方法,对于网上有的数据包,可以直接使用bs4、lxml等方式爬取下来;也可以使用Wireshark工具直接在网络上爬取。二是流量过滤规则,可以使用Pyshark指定流量规则,提取异常流量特征;或者人工指定规则上下限,人工进行数据清洗和特征提取。三是流量检测模型,可以选择合适的机器学习或者深度学习算法,例如XGBoost或者RNN,实现数据分析。四是可以采用django或者flask开发原型系统,使用Echart设计分析结果图表展示,实现流量统计分析。
四、结语
通过在实训中使用应用领域分析、问题解决流程分析、问题解决方案分析三流程进行问题分析能力培养,高校网络工程专业学生在面对爬虫、数据分析、网络流量分析、自动化运维、SDN、Web开发、图像处理等多个领域的复合问题时,能够较好进行问题分析,并选择较好的问题解决方案,复杂工程问题解决能力得到大幅提升。
通过这种模式的训练,学生的知识架构、逻辑思维能力、技术把控度都得到提升,因此面对企业复杂问题时能够综合各方面要素,进行权衡并且选择,设计最为优化的方案,学生在企业就业后表现广泛得到企业认可,也验证了该模式的有效性。