略谈基于Python的数据分析指导高校课程设置初步探索
来源:未知 作者:admin 日期:2020-11-03
本文由辽宁教育行政学院学报官网整理。
【摘要】目前高校普遍存在技能发展迅速而课程设置滞后的矛盾,学生在校学习内容不能满足就业技能需求。针对高等教育课程设置与社会需求不匹配的问题,利用互联网招聘数据,分析社会技能需求,为调整课程设置提供参考,使高等教育与社会需求紧密结合。以Java课程设置为例,以Python为工具抓取互联网招聘岗位需求的数据,提取有价值的数据并分析,为科学设置课程提供理论参考和数据支撑。
【关键词】高等教育;课程设置;Python;Java;数据分析
一、研究背景和意义
目前,高校改革和发展面临许多困难和问题,导致毕业生就业难的问题之一是课程设置与就业脱节。传统课程设置难以满足快速发展的社会技能需求。学生在就业时对岗位技能再培训,导致就业成本增加,而用工单位难找到直接承担工作的毕业生,根据社会需求调整专业设置具有重要现实意义。在互联网背景获取最新技能需求数据,动态关注人才专业所需技能,解决培养与需求脱节问题,为传统高等教育注入新活力。
二、高校课程设置现状
在院校传统思维中,经验往往影响课程设置,或借鉴兄弟院校课程设置,缺乏深入调研社会技术需求,容易产生课程设置与社会需求脱节问题。在技术高速更新迭代的背景下,很多技术被社会淘汰,使很多专业课程的设置是没有前人经验可以借鉴的。而高校对课程更新相对较慢,甚至存在有什么老师开什么课程、有多少软硬件条件就培养多少相应学生的问题,忽视社会需求;对流行的重要技能知识,教学过程仍停留在基础理论和概念的层次,忽视具体应用技术知识能力培养。课程设置现状导致毕业生工作技能少且弱,需要用人单位花费时间精力再培训,满足岗位需求。
利用互联网大数据分析调研人才市场技能需求,不局限于借鉴传统和已有课程设置,再提出课程设置建议,引人新技术,使课程设置与需求接轨,使学生在校学习的技能与市场需求匹配,帮助更快掌握工作技能。本文使用Python数据爬取技术,以开设Java相关课程为实例,统计抓取招聘网站Java岗位信息,确定当前流行技术,优化指导课程设置。
三、仿真实验
目前,Java是主流开发技术。分析从事相关岗位所需技能,高校可以据此调整开设相关课程。期待能够分析Java技术重难点,教师据此调整具体教学内容,降低学生学习成本。
获取北京、上海、杭州、广州、深圳5个城市在2019年期间发布Java开发岗位共计4521条招聘信息,生成需求数据的CSV文件。采用分词技术分离数据,对数据降序排序,删除无关词,得到专业相关高频词,为后续数据分析做准备。
(一)数据获取
招聘数据主要是职位要求的信息。设计算法1,实现数据获取与存储。首先用Request库获取网页源代码,get方法对返回数据内容进行抓取和解析,将网页爬取的URL参数返回至Request对象。发现所需信息存在源代码标签内,再定位提取,获取标签内部内容。同时将结果存储在CSV文件,实现数据获取。合并算法生成的多个CSV文件,便于后续分词与数据分析:使用OS库操作目录和文件,使用Pandas库处理CSV文件,使用to_ save 方法把数据写人CSV文件。最后将相同目录文件合并。写人头部信息和数据,以CSV格式文件保存在硬盘。便于后续以文件流形式处理文件,操作简单便捷,内存占用少。
(二)数据分词和词频统计
本部分分析统计数据。汉字基本单位是字,与英文分词以空格为单位不同,汉语词语间缺少明显区分标记。需要分词处理。本文使用优秀中文分词.库Jieba库,支持精确模式、全模式及搜索引擎模式等模式门。将分词内容和词库对比,把语句切分为单词语,再统计分析,最终将结果可视化显示在Excel。
(三)数据分析
数据分析前,删去没有技术指引的词汇,得到最终高频词。实验照开发类课程和编程技术词汇分类,分析需求目标导向和趋势,以便指导课程内容及设置。
对于实验爬取职位描述数据,删除“开发”“经验”“技术”“优先”“能力”“设计”“工作”“负责”等非技术性词语。选取每类前10热点词汇,图显示编程语言和技术类词汇的统计结果。
除Java外,Spring词频最高。因为spring是设计层面框架,具有便于开发、方便集成优秀开源框架的优势。在S—ng、Mybatis、S—ngMVC三种框架技术中,Spring词频为2182,比Mybatis的953高出56.3%。s研ngMVc词频为382,它可视为Spring的模块,可以归为一类,显然S面ng与同类技术更具主流应用性,广泛应用于Java技术。
Mybatis是支持sQL查询、存储过程、高级映射的优秀持久层框架,具有简单易学、操作简单等特点,由数据表明它是Java涉及数据库的首选框架。出现频次仅次于S研ng。ysQL与后面排名第5的sQL和第8的Redis,都是数据库涉及的内容。其中MysQL和Redis词频分别是799和454,前者比后者高出43%,显然单位更倾向使用MysQL,学校应优先考虑使用。J2EE虽然排名第五,但在表1是唯一指明Java版本的词汇,显然是用工单位首选的Java开发平台;Linux作为类Unix操作系统,具有开源、免费的特点,占有一席之地。除S鲥ngMVC之外,排名最后的词汇是JVM一一Java虚拟机,由于JVM自动配置,不必单独考虑这项技术。
图2高频词说明Java技术常用的其他相关技术,对课程开设和重点关注内容产生指导作用。如数据库技术的MysQL和SQL,将SQL和Java语言结合,开设MySQL数据库课程。Java语言以J2EE为平台,使用S—ng或S鲥ngMVC、Mybatis框架,作为Java和J2EE后续课程开设。Linux操作系统提供Java web项目运行环境,可以与Java课程同步开设Linux操作系统课程。Redis数据库与MysQL相对独立,可以考虑与Java课程、MySQL课程同步开设。图2说明开设Java课程需要提前或同时开设其他紧密相关课程。
除统计Java和其它高频词词频外,还关心词汇间关联程度,用关联度表示。关联度值由关联的技术和开发类词汇数量总和表示,值越高,该词与其它词关联程度越大。关联度反映技术间相互需求依赖关系。
由表1可知,J2EE和“nux关联度值是最高的11。linux是操作系统,Java运行其中。使用Linux运行Java也涉及Java所有相关技术。J2EE是Java企业版,表中指明它可以配合S曲ng、SpringMVC、Mybatis、MySQL,是Java版本的首选。Spring、S研ngMVC和Mybatis关联度都是9,前两者是开发web程序所需技术,Mybatis是管理项目的框架,三者构成SsM框架,帮助减轻开发网站的复杂性。MySQL和sQL关联度都是8,而且技术类关联词基本一致。使用sQL操作MySQL数据库,是开设数据库课程首选。此外,MySQL还与Linux关联,说明MySQL运行于“nux系统。Redis关联度是1,说明与其他技术关联度很低作为NoSQL数据库,Java技术可能用到这种或其它数据库。结合表1低频次出现,可以不除统计Java和其它高频词词频外,还关心词汇间关联程度,用关联度表示。关联度值由关联的技术和开发类词汇数量总和表示,值越高,该词与其它词关联程度越大。关联度反映技术间相互需求依赖关系。由表1可知,J2EE和“nux关联度值是最高的11。linux是操作系统,Java运行其中。使用Linux运行Java也涉及Java所有相关技术。J2EE是Java企业版,表中指明它可以配合S曲ng、SpringMVC、Mybatis、MySQL,是Java版本的首选。Spring、S研ngMVC和Mybatis关联度都是9,前两者是开发web程序所需技术,Mybatis是管理项目的框架,三者构成SsM框架,帮助减轻开发网站的复杂性。MySQL和sQL关联度都是8,而且技术类关联词基本一致。使用sQL操作MySQL数据库,是开设数据库课程首选。此外,MySQL还与Linux关联,说明MySQL运行于“nux系统。Redis关联度是1,说明与其他技术关联度很低作为NoSQL数据库,Java技术可能用到这种或其它数据库。结合表1低频次出现,可以不关联,再度说明无需单独学习。建议开设S曲ng、s面ngMVC、Mybatis合并的SSM框架开发课,或作为Java课程的内容。SQL可归类到MySQL课程。Linux可作为单独课程。Redis可作为单独课程模块存在,在教学资源紧张的情况不建议单独开设。表2给出开设课程清单及内容直观建议。
图2中框架词频最高,它是因解决问题设计具有约束支撑结构,便于迅速构建完整解决方案,因此被许多Java开发团队使用。多线程、架构设计、分布式系统和数据库出现频次均超1000次,显著高于后续词汇。多线程同时执行多任务提升整体性能,架构设计是软件开发时各层次设计,在软件开发有重要作用。分布式系统有资源共享、计算速度快和可靠性高的优势,处理大数据更胜一筹。数据库是存储和管理数据的仓库,绝大多数软件都涉及数据库操作。优化、中间件、文档、编程和并发词频较低,但仍是数据的高频词,对课程设置有一定指导意义。
图2高频词统计结果与表l表2结合分析。框架排名第一,说明在框架方面要求,考虑课程设置时可以增加“基于SSM web应用程序设计”课程课时。多线程也是高频词,MysQL有多线程特点,在“数据库应用设计”课程增加多线程模块课时。架构设计排名第三,在“Java程序设计”课程增加对涉及架构的讲解。分布式系统以操作系统为运行平台,中间件依赖操作系统,在操作系统课程强调对这两方面讲解。数据库位列第五,增加“数据库应用设计”课程课时。优化和编程在编写代码有共同点,涉及编写代码课程如“Java程序设计”“基于SSM web应用程序设计”着重培养学生编程习惯。表3给出更直观建议。
四、结束语
针对课程设置与技术需求的差异,使用Python技术爬取分析招聘信息,以Java为关键字分析招聘需求,给出相关课程开设建议和重点关注内容。这种互联网信息分析课程设置,也适用其他技术类课程,缓解目前高校普遍存在知识技能发展迅速而课程设置滞后的矛盾有一定意义。参考文献和表,图详见辽宁教育行政学院学报官网。
欢迎大家向辽宁教育行政学院学报投稿。