利用Java进行疫情大数据分析

来源 :现代信息科技 | 被引量 : 0次 | 上传用户:shijunjie88
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:很多高职院校都开设有“Java面向对象程序设计”和编程类课程,通过问卷调查了解学生学习基础与习惯,调研企业,结合建构主义、最近发展区理论,内化提炼知识目标、能力目标、素质目标,以项目驱动形式,设计生活化案例,融入课程知识点,结合实事热点和新技术应用,用Java进行疫情大数据分析,激发学生的学习热情,帮助学生积累项目经验。通过实际教学过程对教学设计进行检验,通过反思继续提升教学效果。
  关键词:Java;任务驱动;大数据;建构主义;最近发展区
  中图分类号:TP312      文献标识码:A 文章编号:2096-4706(2020)13-0068-03
  Abstract:Many higher vocational colleges have set up “Java Object-oriented Programming” and programming courses. Through questionnaire survey,students’learning foundation and habits are understood,and enterprises are investigated. Combined with constructivism and the theory of zone of proximal development,knowledge objectives,ability objectives and quality objectives are internalized and refined. In the form of project driven,life oriented cases are designed,curriculum knowledge points are integrated,and combining practical hot spot and new technology application,using Java for epidemic big data analysis,stimulating students’learning enthusiasm and helping them accumulate project experience. Through the actual teaching process to test the teaching design,through reflection to continue to improve the teaching effect.
  Keywords:Java;task driven;big data;constructivism;zone of proximal development
  0  引  言
  笔者从事计算机软件技术专业教学多年,在程序设计类课程教学中,将21点游戏、双色球彩票、微信发红包、英雄联盟游戏等项目案例引入,学生对这些生活化案例表现出极大的兴趣,激发了学习潜力。
  基于湖北职业技术学院信息技术学院,软件技术专业省级品牌专业建设,推动教学内涵式发展,“以综合素质为目标、以岗位需求为导向、以工作过程为主线”的线上线下混合式教学,合理运用不同的教学方法与手段,利用工学结合特点,教师为项目经理,学生为程序员,向准职业人转变,教室和机房理实一体,围绕认识、探索、运用、设计、评价等环节开展教学设计,将“Java面向对象程序设计”课程知识与能力目标,有机融入項目教学,最终提升教学质量,促进学生高质量就业。
  1  设计过程
  1.1  数据分析
  根据学生问卷数据分析,93.8%的学生喜欢编程,不喜欢“一言堂”和“死板”的编程案例;根据企业问卷数据分析,Java程序员岗位需要掌握的知识,分解到“Java面向对象程序设计”这门课程,要求学生必须掌握类和对象、方法、重载、重写、封装、继承、接口、集合、反射、JDBC、文件流等Java知识,能熟练运用这些知识解决编程中的实际问题;还需要掌握数据库增、删、改、查的知识,能熟练编码解决数据访问需求。
  1.2  知识与技能目标构建
  依据教育部高等职业学校软件技术专业教学标准,软件技术专业人才培养方案,基于Java程序员岗位工作过程,结合大数据应用开发(Java)职业技能“1+X”证书,采用以“逆向工程式”为开发过程的课程内容处理思路,按照知识、能力、素质三方面构建Java实践教学内容。
  结合当前新冠疫情,各地卫健委每天都在官网及时公布疫情相关数据,我们需要将疫情数据网页保存成TXT文件;通过Java文件流操作,读取文件为字符串;通过Java提供的API接口,对字符串进行分析、加工处理,重复分割成一条条疫情信息数据,然后存储到数据库中。
  整个过程,可以分为信息的获取、分析、处理与存储共四个环节。在这些过程中,需要用到类和对象、方法、重载、重写、封装、继承、接口、集合、反射、JDBC、文件流等知识。
  后期可利用数据库DML语言,按照不同的需求,对数据进行分析操作,而这些都是数据库课程核心知识与能力目标。
  1.3  实践课学时安排
  整个项目教学实施共计8学时,由教师用2学时讲解项目需求与整体设计思路,学生在课后查阅资料,试着进行项目设计;2学时讲解疫情数据实体类、设计数据库、数据库操作类;2学时讲解数据的分析与加工处理;2学时讲解测试类,实现项目主要功能的整合和测试。
  2  教学实施
  2.1  需求分析   各大网站都有官方发布的疫情数据,用文件流方式将我们所需要的疫情数据进行爬取,然后对数据进行预处理,之后将这些数据存储到数据库中。
  2.2  项目设计
  各大网站都以网页形式公布数据,不同网站源代码不尽相同,但都是将一条条数据通过同一个类选择器进行修饰与展现。为了简化操作过程,这里先手动将一条条重复数据保存到.txt文件。
  读取文件并生成一个长的字符串,将字符串按照特定格式进行分割,得到一条条疫情数据。每条疫情数据包含地区码、地区名、新增数、确诊总数、治愈数、死亡数等信息,将每条疫情数据通过疫情对象承载,添加到泛型对象集合并排序;最后遍历泛型集合中的对象,将数据逐条添加进数据库,后面就可随时对数据进行查询与分析,项目处理流程如图1所示。
  2.3  功能模块划分
  整个项目文件包、类文件结构如图2所示。
  (1)疫情监控数据Info实体类:一条疫情数据包含疫情发生的区域代码、区域名、新增确诊人数、确诊总人数、治愈人数、死亡人数等信息,为增强数据安全性,将所有字段访问属性设置为privat,然后对各字段进行get和set方法封装。
  private int infoId;//地区ID
  private String infoLocation;//地区名
  private int infoAdd;//新增确诊人数
  private int infoTotal;//确诊总人数
  private int infoCure;//治愈人數
  private int infoDie;//死亡人数
  (2)InfoDao类:本类主要用来对Info实体类数据进行操作,包含对info实体对象数据添加进数据库,然后进行修改、删除、查询等操作。
  public int addInfo(Info info)//将Info对象的信息存入数据库中。
  public int deleteInfo(int infoId)//根据infoId删除数据。
  public int updateInfo(int infoId,Info info)//根据infoId修改数据。
  public Info getInfoById(int infoId)//根据infoId查询数据。
  public List<Info> getOrderedInfo()//获取所有区域的数据,按确诊总数降序排列。
  (3)IoUti类:本类包含一个字符串类型的字段,用于存放数据文件路径,还有一个数据文件读取的方法。
  private final String fileUrl    //txt文件路径。
  public String readFile()//读取疫情数据txt文件。
  (4)InfoUtil类:读取的数据文件中可能会有一些空格、换行标记、制表符等无效数据,需要对这些数据进行剔除、转换为合适的分隔符等预处理。
  public String preString(String s, String oldString, String newString)//字符串替换。
  public List<Info> stringToInfo(String s)//将特定规格字符串转换为Info实体类对象,添加进List集合并返回。
  public List<Info> sortList(List<Info> infoList, Comparator <Info> c)//对infoList集合排序并返回。
  (5)InfoUtilTest类:InfoUtil的测试类,对读取的数据进行预处理。
  public void testPreString()//添加预处理数据测试。
  public void testStringToInfo()//添加特定格式数据测试。
  public void testSortList()//集合数据添加测试。
  2.4  项目编码
  (1)读取数据,将数据存储到缓冲区,以备后续处理。
  public String readFile() {
  BufferedReader bufferedReader = null;
  StringBuffer stringBuffer = new StringBuffer("");
  char [] c = new char[16];
  bufferedReader = new BufferedReader(new FileReader (fileUrl));
  int len = 0;
  while ((len = bufferedReader.read(c)) != -1) {
  stringBuffer.append(new String(c, 0, len)); } //追加字符串
  return stringBuffer.toString();}
  (2)字符串预处理,对字符串进行拆解,提取出地区码、地区名、新增确诊人数、确诊总人数、治愈人数、死亡人数等,然后赋值给疫情数据对象,将对象存储进List集合。
  public String preString(String s, String oldString, String newString) {    return s.replaceAll(oldString, newString); } //字符串替换
  public List<Info> stringToInfo(String s) {
   List<Info> infoList = new ArrayList<Info>();//创建新集合
   String[] infoStrings = s.split(";");//按照";"拆分字符串,转换为数组
   for (String infoString : infoStrings) { String[] props = infoString.split(",");
   Info info = new Info();//开始组装info对象的属性
  info.setInfoId(Integer.parseInt(props[0]));
  info.setInfoLocation(props[1]);
  info.setInfoAdd(Integer.parseInt(props[2]));
  info.setInfoTotal(Integer.parseInt(props[3]));
   info.setInfoCure(Integer.parseInt(props[4]));
   info.setInfoDie(Integer.parseInt(props[5]));
   infoList.add(info); } //将当前info对象添加到集合中
   return infoList; } //返回集合
  public List<Info> sortList(List<Info> infoList, Comparator <Info> c) { //排序
   Collections.sort(infoList, c);    return infoList;  }
  (3)添加數据测试,为检验项目代码是否成功实现其功能,编写此类,通过多种数据来源测试程序功能是否实现。
  public void testPreString() {
  assertEquals(new InfoUtil().preString("AB-C-D", "-", "0"), "AB0C0D");    }
  public void testStringToInfo() {
  assertEquals(new InfoUtil().stringToInfo("6,孝南,0,29,10, 0;7,孝昌区,0,19,1,0;").size(),2);}
  public void testSortList() {
  List<Info> infoList = new ArrayList<>();
  infoList.add(new Info(1, "L1", 3, 40, 0, 0));
  infoList.add(new Info(2, "L2", 1, 40, 0, 0));
  infoList.add(new Info(3, "L3", 2, 40, 0, 0));
  infoList = new InfoUtil().sortList(infoList, new Info Comparator());
  assertTrue(infoList.get(0).getInfoId() == 2&&infoList.get(2).getInfoId() == 1);}
  3  结  论
  结合程序员岗位需求、人才培养方案、课程教学大纲,将知识目标、能力目标,内化为项目技能点。近几年来,笔者将21点扑克牌游戏,双色球彩票,英雄联盟游戏,发红包游戏等多个学生感兴趣的案例引入程序设计类课程教学。
  总体来讲,情景化、项目教学,实现了学生专业和个性共同发展,对提升学生对知识的运用能力、激发学生的创新能力都有很大的帮助。以任务为驱动、案例为载体,结合时代热点需求,通过合作探究,主动建构知识,解决生活中的实际问题,切实激发学生内在的学习兴趣,提升编程能力,实现工学结合、知行合一。
  参考文献:
  [1] 彭梦,谢雅.兴趣驱动的Java程序设计课程教学改革研究 [J].计算机教育,2019(11):116-120.
  [2] 张良杰.应用智慧课堂的《Java程序设计》教改研究 [J].轻工科技,2020,36(6):195-197.
  [3] 贾家新.JAVA框架技术的线上教学实践 [J].集成电路应用,2020,37(6):84-85.
  [4] 笪林梅.“Java程序设计”课程小班化教学模式改革探索 [J].知识经济,2020(16):179-180.
  [5] 邓田.大数据背景下基于OBE的微课教学改革研究与实践——以《Java程序设计》课程为例 [J].农家参谋,2020(15):193.
  [6] 李胜岚,杨裴裴.高校Java课程教学改革研究 [J].计算机产品与流通,2019(10):190+206.
  [7] 纪辉进.用C语言编写英雄联盟游戏 [J].现代信息科技,2020,4(5):69-71.
  [8] 纪辉进.“C语言程序设计”教学案例分析——以发红包程序算法的实现为例 [J].现代信息科技,2020,4(4):95-96+99.
  [9] 纪辉进.用C#语言实现双色球程序 [J].现代信息科技,2020,4(3):92-93+96.
  [10] 纪辉进.C#WINFORM教学案例——五子棋 [J].科技视界,2017(19):138-139.
  作者简介:纪辉进(1977—),男,汉族,湖北黄陂人,教师,讲师,本科,主要研究方向:编程语言教学。
其他文献
摘 要:信号的运算和分解是“信号与系统”课程中的一个重要知识点。在课堂教学中,结合章节的内容要点,设计多个算例,采用MATLAB软件进行编程仿真,将抽象的理论知识与直观的图形演示相结合。由于解题思路和编程逻辑并不唯一,促使学员主动寻找一题多解、举一反三的答案,开阔了学习思路、激发了创新热情,为“信号与系统”课程教学方式改革实践提供了有益参考。  关键词:信号与系统;信号运算和分解;仿真教学  中图
期刊
摘 要:由于疫情防控需要,教育部及学校提出“停课不停学”的教学要求及目标。通过研究钉钉直播、群课堂直播、腾讯会议直播等平台在“文献检索与文献分析”课程的应用,从课程的特点出发,将上述平台应用到课前准备、授课方式与内容、课堂安排、实习课的现场操作、课后作业,最后通过形成性评价的考核方式评价教学方式是否可行。结论发现,“文献检索与文献分析”课程采用网络直播结合数据库实习课的网络在线操作取得了理想的教学
期刊
摘 要:文章以线上线下混合式教学改革为契机,引入课程思政元素,将传统的“满堂灌”课堂形式转变为以学生为中心,注重公共基础课程与专业学科之间的联系,将信息课程教学内容与专业群特色相结合,提出适合不同专业的课程思政元素,做到一模块一课程思政元素,丰富课堂内容,引导学生自主学习,让学生掌握必备的计算机理论基础知识,提高学生计算机操作技能。  关键词:“计算机应用基础”课程;混合模式教学改革;课程思政  
期刊
摘 要:文章基于“金课”建设标准,针对民办高校“数控技术”课程的教学现状,通过引用网上优质教学资源、利用网上优质教学资源,展开线上线下混合式教学研究,主要包括:课程资源凝练、教学团队建设、教学内容梳理及教学方法的改革;同时,基于MOOC和钉钉教学平台构建了线上线下混合式教学模式。在课程建设中,将创新创业、课程思政融入到教学过程中,为专业课建设提供了一定的建设思路。  关键词:数控技术;金课;混合式
期刊
摘 要:教室作为教学活动的重要场所,成为教学改革的前沿。“互联网+”时代构建符合学校需求的智慧教室成为教育工作者关注的焦点。西安财经大学经过调研,结合自身实际,启动了智慧教室建设。文章阐述了构建智慧教室的目标与功能需求,分析了智慧教室的基础构架及其功能设计,以期能为更好地建设智慧学习环境提供具有实际意义的参考。  关键词:智慧教室;互联网+;设计与应用研究  中图分类号:G434 文献标识碼:
期刊
摘 要:在艺术类工业设计CAID教学中,通过明确的课程重点讲解和针对性的课程训练使学生掌握建模思维和自主方法已成为计算机辅助设计教学的重中之重。通过对三亚学院产品设计专业CAID课程教学的跟踪研究,归类出普遍存在于CAID课程学习的三类误区,提出了工业设计CAID课程教学应以思维建模为主,以识图建模、比例建模、细节建模和曲率建模为辅的五位一体课程训练建议。  关键词:工业设计;CAID;课程重点 
期刊
摘 要:随着物联网技术的迅猛发展,以物联网技术为基础的数字孪生平台是对智慧校园的进一步扩展与提升,构建智能感知环境和新型教育教学空间,促进教学、教研、教育管理和生活服务的流程再造与智能管理,实现万物互联,提高学校教育教学管理决策水平,形成“可感知、可诊断、可分析、可自愈”的新型校园生态管控系统,突出“集中、智慧、定制、个性化”四大特色,打造高效、智能、幸福的智慧校园。  关键词:物联网技术;智慧校
期刊
摘 要:新工科专业群建设体现了学科交叉、突出技术应用的特点,非常契合应用型本科高校人才培养的途径,文章通过介绍滇西边疆高校的物联网工程专业办学经验,探讨实践教学改革的途径和挑战,提出实践教学体系,文章认为实践教学改革应当实施以学生为中心的改革之路,紧扣物联网和新工科技术发展方向,努力实现校企间人才无缝对接,提高学生就业竞争力。  关键词:新工科;物联网;实践教学  中图分类号:G420 文献标
期刊
摘 要:文章以广州工商学院三水校区商业街区域的建筑和自然景观为研究对象,用3ds Max对建筑和自然景观进行针对性的三维建模和场景渲染制作,采用Photoshop图像处理软件制作模型的贴图,最后将建立好的三维模型根据卫星二维平面地图上的位置和大小,进行优化调整和组合,完成一个具有真实感的虚拟三维校园景观沙盘,通过虚拟三维校园景观沙盘的三维可视化,让观察者在虚拟校园中能体验身临其境的感受。  关键词
期刊
摘 要:随着学生们的信息技术水平的不断提高和计算机知识需求的日趋多样化,传统的课堂授课和实验室上机操作的教学方式已不能满足教学需要。文中探索基于微视频的混合式教学模式,在教学设计中将碎片化知识构建成系统化知识,利用微课将教学内容模块化,同时基于微视频教学改革学生评价方法。经过两个学期的考查,取得了很好的教學效果,学生的学习兴趣和学习成绩都有了较大提升。  关键词:计算思维;微视频教学;混合式教学 
期刊