国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用Java進(jìn)行疫情大數(shù)據(jù)分析

2020-11-06 04:22:52紀(jì)輝進(jìn)
現(xiàn)代信息科技 2020年13期
關(guān)鍵詞:最近發(fā)展區(qū)任務(wù)驅(qū)動(dòng)建構(gòu)主義

摘 ?要:很多高職院校都開(kāi)設(shè)有“Java面向?qū)ο蟪绦蛟O(shè)計(jì)”和編程類(lèi)課程,通過(guò)問(wèn)卷調(diào)查了解學(xué)生學(xué)習(xí)基礎(chǔ)與習(xí)慣,調(diào)研企業(yè),結(jié)合建構(gòu)主義、最近發(fā)展區(qū)理論,內(nèi)化提煉知識(shí)目標(biāo)、能力目標(biāo)、素質(zhì)目標(biāo),以項(xiàng)目驅(qū)動(dòng)形式,設(shè)計(jì)生活化案例,融入課程知識(shí)點(diǎn),結(jié)合實(shí)事熱點(diǎn)和新技術(shù)應(yīng)用,用Java進(jìn)行疫情大數(shù)據(jù)分析,激發(fā)學(xué)生的學(xué)習(xí)熱情,幫助學(xué)生積累項(xiàng)目經(jīng)驗(yàn)。通過(guò)實(shí)際教學(xué)過(guò)程對(duì)教學(xué)設(shè)計(jì)進(jìn)行檢驗(yàn),通過(guò)反思繼續(xù)提升教學(xué)效果。

關(guān)鍵詞:Java;任務(wù)驅(qū)動(dòng);大數(shù)據(jù);建構(gòu)主義;最近發(fā)展區(qū)

中圖分類(lèi)號(hào):TP312 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)13-0068-03

Abstract:Many higher vocational colleges have set up “Java Object-oriented Programming” and programming courses. Through questionnaire survey,studentslearning 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 studentslearning 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 ?引 ?言

筆者從事計(jì)算機(jī)軟件技術(shù)專(zhuān)業(yè)教學(xué)多年,在程序設(shè)計(jì)類(lèi)課程教學(xué)中,將21點(diǎn)游戲、雙色球彩票、微信發(fā)紅包、英雄聯(lián)盟游戲等項(xiàng)目案例引入,學(xué)生對(duì)這些生活化案例表現(xiàn)出極大的興趣,激發(fā)了學(xué)習(xí)潛力。

基于湖北職業(yè)技術(shù)學(xué)院信息技術(shù)學(xué)院,軟件技術(shù)專(zhuān)業(yè)省級(jí)品牌專(zhuān)業(yè)建設(shè),推動(dòng)教學(xué)內(nèi)涵式發(fā)展,“以綜合素質(zhì)為目標(biāo)、以崗位需求為導(dǎo)向、以工作過(guò)程為主線”的線上線下混合式教學(xué),合理運(yùn)用不同的教學(xué)方法與手段,利用工學(xué)結(jié)合特點(diǎn),教師為項(xiàng)目經(jīng)理,學(xué)生為程序員,向準(zhǔn)職業(yè)人轉(zhuǎn)變,教室和機(jī)房理實(shí)一體,圍繞認(rèn)識(shí)、探索、運(yùn)用、設(shè)計(jì)、評(píng)價(jià)等環(huán)節(jié)開(kāi)展教學(xué)設(shè)計(jì),將“Java面向?qū)ο蟪绦蛟O(shè)計(jì)”課程知識(shí)與能力目標(biāo),有機(jī)融入項(xiàng)目教學(xué),最終提升教學(xué)質(zhì)量,促進(jìn)學(xué)生高質(zhì)量就業(yè)。

1 ?設(shè)計(jì)過(guò)程

1.1 ?數(shù)據(jù)分析

根據(jù)學(xué)生問(wèn)卷數(shù)據(jù)分析,93.8%的學(xué)生喜歡編程,不喜歡“一言堂”和“死板”的編程案例;根據(jù)企業(yè)問(wèn)卷數(shù)據(jù)分析,Java程序員崗位需要掌握的知識(shí),分解到“Java面向?qū)ο蟪绦蛟O(shè)計(jì)”這門(mén)課程,要求學(xué)生必須掌握類(lèi)和對(duì)象、方法、重載、重寫(xiě)、封裝、繼承、接口、集合、反射、JDBC、文件流等Java知識(shí),能熟練運(yùn)用這些知識(shí)解決編程中的實(shí)際問(wèn)題;還需要掌握數(shù)據(jù)庫(kù)增、刪、改、查的知識(shí),能熟練編碼解決數(shù)據(jù)訪問(wèn)需求。

1.2 ?知識(shí)與技能目標(biāo)構(gòu)建

依據(jù)教育部高等職業(yè)學(xué)校軟件技術(shù)專(zhuān)業(yè)教學(xué)標(biāo)準(zhǔn),軟件技術(shù)專(zhuān)業(yè)人才培養(yǎng)方案,基于Java程序員崗位工作過(guò)程,結(jié)合大數(shù)據(jù)應(yīng)用開(kāi)發(fā)(Java)職業(yè)技能“1+X”證書(shū),采用以“逆向工程式”為開(kāi)發(fā)過(guò)程的課程內(nèi)容處理思路,按照知識(shí)、能力、素質(zhì)三方面構(gòu)建Java實(shí)踐教學(xué)內(nèi)容。

結(jié)合當(dāng)前新冠疫情,各地衛(wèi)健委每天都在官網(wǎng)及時(shí)公布疫情相關(guān)數(shù)據(jù),我們需要將疫情數(shù)據(jù)網(wǎng)頁(yè)保存成TXT文件;通過(guò)Java文件流操作,讀取文件為字符串;通過(guò)Java提供的API接口,對(duì)字符串進(jìn)行分析、加工處理,重復(fù)分割成一條條疫情信息數(shù)據(jù),然后存儲(chǔ)到數(shù)據(jù)庫(kù)中。

整個(gè)過(guò)程,可以分為信息的獲取、分析、處理與存儲(chǔ)共四個(gè)環(huán)節(jié)。在這些過(guò)程中,需要用到類(lèi)和對(duì)象、方法、重載、重寫(xiě)、封裝、繼承、接口、集合、反射、JDBC、文件流等知識(shí)。

后期可利用數(shù)據(jù)庫(kù)DML語(yǔ)言,按照不同的需求,對(duì)數(shù)據(jù)進(jìn)行分析操作,而這些都是數(shù)據(jù)庫(kù)課程核心知識(shí)與能力目標(biāo)。

1.3 ?實(shí)踐課學(xué)時(shí)安排

整個(gè)項(xiàng)目教學(xué)實(shí)施共計(jì)8學(xué)時(shí),由教師用2學(xué)時(shí)講解項(xiàng)目需求與整體設(shè)計(jì)思路,學(xué)生在課后查閱資料,試著進(jìn)行項(xiàng)目設(shè)計(jì);2學(xué)時(shí)講解疫情數(shù)據(jù)實(shí)體類(lèi)、設(shè)計(jì)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)操作類(lèi);2學(xué)時(shí)講解數(shù)據(jù)的分析與加工處理;2學(xué)時(shí)講解測(cè)試類(lèi),實(shí)現(xiàn)項(xiàng)目主要功能的整合和測(cè)試。

2 ?教學(xué)實(shí)施

2.1 ?需求分析

各大網(wǎng)站都有官方發(fā)布的疫情數(shù)據(jù),用文件流方式將我們所需要的疫情數(shù)據(jù)進(jìn)行爬取,然后對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,之后將這些數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。

2.2 ?項(xiàng)目設(shè)計(jì)

各大網(wǎng)站都以網(wǎng)頁(yè)形式公布數(shù)據(jù),不同網(wǎng)站源代碼不盡相同,但都是將一條條數(shù)據(jù)通過(guò)同一個(gè)類(lèi)選擇器進(jìn)行修飾與展現(xiàn)。為了簡(jiǎn)化操作過(guò)程,這里先手動(dòng)將一條條重復(fù)數(shù)據(jù)保存到.txt文件。

讀取文件并生成一個(gè)長(zhǎng)的字符串,將字符串按照特定格式進(jìn)行分割,得到一條條疫情數(shù)據(jù)。每條疫情數(shù)據(jù)包含地區(qū)碼、地區(qū)名、新增數(shù)、確診總數(shù)、治愈數(shù)、死亡數(shù)等信息,將每條疫情數(shù)據(jù)通過(guò)疫情對(duì)象承載,添加到泛型對(duì)象集合并排序;最后遍歷泛型集合中的對(duì)象,將數(shù)據(jù)逐條添加進(jìn)數(shù)據(jù)庫(kù),后面就可隨時(shí)對(duì)數(shù)據(jù)進(jìn)行查詢與分析,項(xiàng)目處理流程如圖1所示。

2.3 ?功能模塊劃分

整個(gè)項(xiàng)目文件包、類(lèi)文件結(jié)構(gòu)如圖2所示。

(1)疫情監(jiān)控?cái)?shù)據(jù)Info實(shí)體類(lèi):一條疫情數(shù)據(jù)包含疫情發(fā)生的區(qū)域代碼、區(qū)域名、新增確診人數(shù)、確診總?cè)藬?shù)、治愈人數(shù)、死亡人數(shù)等信息,為增強(qiáng)數(shù)據(jù)安全性,將所有字段訪問(wèn)屬性設(shè)置為privat,然后對(duì)各字段進(jìn)行g(shù)et和set方法封裝。

private int infoId;//地區(qū)ID

private String infoLocation;//地區(qū)名

private int infoAdd;//新增確診人數(shù)

private int infoTotal;//確診總?cè)藬?shù)

private int infoCure;//治愈人數(shù)

private int infoDie;//死亡人數(shù)

(2)InfoDao類(lèi):本類(lèi)主要用來(lái)對(duì)Info實(shí)體類(lèi)數(shù)據(jù)進(jìn)行操作,包含對(duì)info實(shí)體對(duì)象數(shù)據(jù)添加進(jìn)數(shù)據(jù)庫(kù),然后進(jìn)行修改、刪除、查詢等操作。

public int addInfo(Info info)//將Info對(duì)象的信息存入數(shù)據(jù)庫(kù)中。

public int deleteInfo(int infoId)//根據(jù)infoId刪除數(shù)據(jù)。

public int updateInfo(int infoId,Info info)//根據(jù)infoId修改數(shù)據(jù)。

public Info getInfoById(int infoId)//根據(jù)infoId查詢數(shù)據(jù)。

public List getOrderedInfo()//獲取所有區(qū)域的數(shù)據(jù),按確診總數(shù)降序排列。

(3)IoUti類(lèi):本類(lèi)包含一個(gè)字符串類(lèi)型的字段,用于存放數(shù)據(jù)文件路徑,還有一個(gè)數(shù)據(jù)文件讀取的方法。

private final String fileUrl ? ?//txt文件路徑。

public String readFile()//讀取疫情數(shù)據(jù)txt文件。

(4)InfoUtil類(lèi):讀取的數(shù)據(jù)文件中可能會(huì)有一些空格、換行標(biāo)記、制表符等無(wú)效數(shù)據(jù),需要對(duì)這些數(shù)據(jù)進(jìn)行剔除、轉(zhuǎn)換為合適的分隔符等預(yù)處理。

public String preString(String s, String oldString, String newString)//字符串替換。

public List stringToInfo(String s)//將特定規(guī)格字符串轉(zhuǎn)換為Info實(shí)體類(lèi)對(duì)象,添加進(jìn)List集合并返回。

public List sortList(List infoList, Comparator c)//對(duì)infoList集合排序并返回。

(5)InfoUtilTest類(lèi):InfoUtil的測(cè)試類(lèi),對(duì)讀取的數(shù)據(jù)進(jìn)行預(yù)處理。

public void testPreString()//添加預(yù)處理數(shù)據(jù)測(cè)試。

public void testStringToInfo()//添加特定格式數(shù)據(jù)測(cè)試。

public void testSortList()//集合數(shù)據(jù)添加測(cè)試。

2.4 ?項(xiàng)目編碼

(1)讀取數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)到緩沖區(qū),以備后續(xù)處理。

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)字符串預(yù)處理,對(duì)字符串進(jìn)行拆解,提取出地區(qū)碼、地區(qū)名、新增確診人數(shù)、確診總?cè)藬?shù)、治愈人數(shù)、死亡人數(shù)等,然后賦值給疫情數(shù)據(jù)對(duì)象,將對(duì)象存儲(chǔ)進(jìn)List集合。

public String preString(String s, String oldString, String newString) {

return s.replaceAll(oldString, newString); } //字符串替換

public List stringToInfo(String s) {

List infoList = new ArrayList();//創(chuàng)建新集合

String[] infoStrings = s.split(";");//按照";"拆分字符串,轉(zhuǎn)換為數(shù)組

for (String infoString : infoStrings) { String[] props = infoString.split(",");

Info info = new Info();//開(kāi)始組裝info對(duì)象的屬性

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); } //將當(dāng)前info對(duì)象添加到集合中

return infoList; } //返回集合

public List sortList(List infoList, Comparator c) { //排序

Collections.sort(infoList, c); ? ?return infoList; ?}

(3)添加數(shù)據(jù)測(cè)試,為檢驗(yàn)項(xiàng)目代碼是否成功實(shí)現(xiàn)其功能,編寫(xiě)此類(lèi),通過(guò)多種數(shù)據(jù)來(lái)源測(cè)試程序功能是否實(shí)現(xiàn)。

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,孝昌區(qū),0,19,1,0;").size(),2);}

public void testSortList() {

List 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 ?結(jié) ?論

結(jié)合程序員崗位需求、人才培養(yǎng)方案、課程教學(xué)大綱,將知識(shí)目標(biāo)、能力目標(biāo),內(nèi)化為項(xiàng)目技能點(diǎn)。近幾年來(lái),筆者將21點(diǎn)撲克牌游戲,雙色球彩票,英雄聯(lián)盟游戲,發(fā)紅包游戲等多個(gè)學(xué)生感興趣的案例引入程序設(shè)計(jì)類(lèi)課程教學(xué)。

總體來(lái)講,情景化、項(xiàng)目教學(xué),實(shí)現(xiàn)了學(xué)生專(zhuān)業(yè)和個(gè)性共同發(fā)展,對(duì)提升學(xué)生對(duì)知識(shí)的運(yùn)用能力、激發(fā)學(xué)生的創(chuàng)新能力都有很大的幫助。以任務(wù)為驅(qū)動(dòng)、案例為載體,結(jié)合時(shí)代熱點(diǎn)需求,通過(guò)合作探究,主動(dòng)建構(gòu)知識(shí),解決生活中的實(shí)際問(wèn)題,切實(shí)激發(fā)學(xué)生內(nèi)在的學(xué)習(xí)興趣,提升編程能力,實(shí)現(xiàn)工學(xué)結(jié)合、知行合一。

參考文獻(xiàn):

[1] 彭夢(mèng),謝雅.興趣驅(qū)動(dòng)的Java程序設(shè)計(jì)課程教學(xué)改革研究 [J].計(jì)算機(jī)教育,2019(11):116-120.

[2] 張良杰.應(yīng)用智慧課堂的《Java程序設(shè)計(jì)》教改研究 [J].輕工科技,2020,36(6):195-197.

[3] 賈家新.JAVA框架技術(shù)的線上教學(xué)實(shí)踐 [J].集成電路應(yīng)用,2020,37(6):84-85.

[4] 笪林梅.“Java程序設(shè)計(jì)”課程小班化教學(xué)模式改革探索 [J].知識(shí)經(jīng)濟(jì),2020(16):179-180.

[5] 鄧田.大數(shù)據(jù)背景下基于OBE的微課教學(xué)改革研究與實(shí)踐——以《Java程序設(shè)計(jì)》課程為例 [J].農(nóng)家參謀,2020(15):193.

[6] 李勝嵐,楊裴裴.高校Java課程教學(xué)改革研究 [J].計(jì)算機(jī)產(chǎn)品與流通,2019(10):190+206.

[7] 紀(jì)輝進(jìn).用C語(yǔ)言編寫(xiě)英雄聯(lián)盟游戲 [J].現(xiàn)代信息科技,2020,4(5):69-71.

[8] 紀(jì)輝進(jìn).“C語(yǔ)言程序設(shè)計(jì)”教學(xué)案例分析——以發(fā)紅包程序算法的實(shí)現(xiàn)為例 [J].現(xiàn)代信息科技,2020,4(4):95-96+99.

[9] 紀(jì)輝進(jìn).用C#語(yǔ)言實(shí)現(xiàn)雙色球程序 [J].現(xiàn)代信息科技,2020,4(3):92-93+96.

[10] 紀(jì)輝進(jìn).C#WINFORM教學(xué)案例——五子棋 [J].科技視界,2017(19):138-139.

作者簡(jiǎn)介:紀(jì)輝進(jìn)(1977—),男,漢族,湖北黃陂人,教師,講師,本科,主要研究方向:編程語(yǔ)言教學(xué)。

猜你喜歡
最近發(fā)展區(qū)任務(wù)驅(qū)動(dòng)建構(gòu)主義
旁批:建構(gòu)主義視域下的語(yǔ)文助讀抓手——以統(tǒng)編初中教材為例
借鑒建構(gòu)主義思想培養(yǎng)財(cái)會(huì)專(zhuān)業(yè)人才
結(jié)合一堂考核課試論經(jīng)典小說(shuō)的品鑒與賞析
成才之路(2016年35期)2016-12-12 11:55:13
基于“最近發(fā)展區(qū)”的班級(jí)內(nèi)分層教學(xué)研究
考試周刊(2016年91期)2016-12-08 21:55:25
論促進(jìn)幼兒“最近發(fā)展區(qū)”的路徑選擇
任務(wù)驅(qū)動(dòng)式教學(xué)模式在電子技術(shù)課程中的應(yīng)用
職業(yè)(2016年10期)2016-10-20 22:18:22
任務(wù)驅(qū)動(dòng)教學(xué)法在《網(wǎng)絡(luò)應(yīng)用服務(wù)管理》教學(xué)中的應(yīng)用
淺析高中數(shù)學(xué)課堂的提問(wèn)策略
考試周刊(2016年77期)2016-10-09 11:04:31
任務(wù)驅(qū)動(dòng), 啟發(fā)學(xué)生自學(xué)
考試周刊(2016年76期)2016-10-09 09:06:52
任務(wù)驅(qū)動(dòng)教學(xué)法在中職信息技術(shù)教學(xué)中的運(yùn)用
成才之路(2016年25期)2016-10-08 10:23:55
甘洛县| 漾濞| 石城县| 民乐县| 阳朔县| 安阳县| 长丰县| 安徽省| 阿克陶县| 靖远县| 新营市| 改则县| 金溪县| 泾源县| 合江县| 阜平县| 阳谷县| 宾川县| 忻州市| 和顺县| 太谷县| 陈巴尔虎旗| 禹城市| 策勒县| 两当县| 天水市| 望谟县| 龙岩市| 班玛县| 清丰县| 淮安市| 凤庆县| 富锦市| 彰化县| 苍梧县| 嘉善县| 大姚县| 梨树县| 盘锦市| 东台市| 武强县|