閆彩霞,賈嵐,冀建平
摘要:隨著信息技術(shù)的發(fā)展,傳統(tǒng)的瀑布開發(fā)模式已經(jīng)逐漸被敏捷開發(fā)模式取代。大數(shù)據(jù)時(shí)代的到來(lái),對(duì)高職教育提出了新的需求。本文以學(xué)生熟悉的電商推送場(chǎng)景為例,提出一種線上線下混合式教學(xué)模式并設(shè)計(jì)教案,模擬企業(yè)敏捷開發(fā)過(guò)程,設(shè)計(jì)用戶故事、任務(wù)看板、技術(shù)點(diǎn)探索、交付項(xiàng)目,在Java語(yǔ)言程序設(shè)計(jì)課程中融入電商大數(shù)據(jù)推送項(xiàng)目,以迭代的形式最終使學(xué)生完成一個(gè)可交付的電商大數(shù)據(jù)推送模擬項(xiàng)目,增加了學(xué)習(xí)的趣味性。學(xué)生在學(xué)習(xí)Java語(yǔ)言的同時(shí),了解企業(yè)生產(chǎn)實(shí)踐中流行的大數(shù)據(jù)和敏捷相關(guān)概念。
關(guān)鍵詞:大數(shù)據(jù)推送;敏捷;教學(xué)模式
中圖分類號(hào):TP311,G711? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào):1009-3044(2021)20-0257-03
1 引言
Java語(yǔ)言是當(dāng)今世界最流行的編程語(yǔ)言之一,TIOBE公布的編程語(yǔ)言排行榜顯示,Java語(yǔ)言多年位居編程語(yǔ)言榜首[1]。無(wú)論是開發(fā)大中小型應(yīng)用系統(tǒng)軟件還是大數(shù)據(jù)服務(wù)、云服務(wù),Java語(yǔ)言都是非常好的選擇,因此各大高校都開設(shè)Java語(yǔ)言程序設(shè)計(jì)課程作為計(jì)算機(jī)專業(yè)課。大數(shù)據(jù)產(chǎn)業(yè)持續(xù)健康發(fā)展,是黨中央、國(guó)務(wù)院做出的重大戰(zhàn)略部署,是實(shí)施大數(shù)據(jù)戰(zhàn)略、實(shí)現(xiàn)我國(guó)從數(shù)據(jù)大國(guó)向數(shù)據(jù)強(qiáng)國(guó)轉(zhuǎn)變的重要舉措。從2015年開始,國(guó)家出臺(tái)了多項(xiàng)大數(shù)據(jù)相關(guān)政策,表1列出了部分政策。大數(shù)據(jù)是與業(yè)務(wù)場(chǎng)景相結(jié)合使用的,如電商業(yè)務(wù)、ERP業(yè)務(wù)、工業(yè)業(yè)務(wù)、醫(yī)療健康業(yè)務(wù)等,通過(guò)業(yè)務(wù)場(chǎng)景數(shù)據(jù)分析結(jié)果,協(xié)助企業(yè)做出正確決策。在程序設(shè)計(jì)語(yǔ)言教學(xué)中融入大數(shù)據(jù)業(yè)務(wù)場(chǎng)景,再聯(lián)系企業(yè)生產(chǎn)實(shí)際,可以提高學(xué)生實(shí)踐能力,培養(yǎng)適應(yīng)社會(huì)發(fā)展需要的應(yīng)用型人才。目前該類課程多以傳統(tǒng)的理論教學(xué)加課內(nèi)實(shí)驗(yàn)的方式進(jìn)行。
2 敏捷開發(fā)
敏捷開發(fā)(Agile Development)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。它是一種軟件開發(fā)的流程,指導(dǎo)我們用規(guī)定的環(huán)節(jié)一步一步完成項(xiàng)目的開發(fā),主要驅(qū)動(dòng)核心是人,采用的是迭代式開發(fā)[7]。每個(gè)迭代都可以交付客戶可使用的產(chǎn)品,注重與客戶的溝通,幾個(gè)迭代過(guò)后,交付最終產(chǎn)品。傳統(tǒng)的瀑布式開發(fā),非常重視最初的計(jì)劃,嚴(yán)格遵循預(yù)先計(jì)劃的需求分析、產(chǎn)品設(shè)計(jì)、編碼、測(cè)試、集成、運(yùn)維的步驟順序進(jìn)行,最終按計(jì)劃交付產(chǎn)品,在計(jì)劃后如有需求調(diào)整,代價(jià)高昂。敏捷開發(fā)相對(duì)于瀑布開發(fā)可以對(duì)客戶提出的變化需求做出快速響應(yīng)。無(wú)論是在傳統(tǒng)行業(yè)還是互聯(lián)網(wǎng)公司,敏捷開發(fā)深受歡迎。
3 電商大數(shù)據(jù)推送項(xiàng)目
基于大數(shù)據(jù)技術(shù)進(jìn)行用戶信息采集、畫像,以及通過(guò)各類線上渠道針對(duì)消費(fèi)者個(gè)性化需求進(jìn)行商品信息廣告推送,因其較高的客戶轉(zhuǎn)換率成為線上營(yíng)銷的主要手段[7]。客戶在淘寶、京東、美團(tuán)等電商平臺(tái)購(gòu)物或者瀏覽商品后,電商會(huì)根據(jù)我們的購(gòu)物歷史或者瀏覽歷史推送相似商品,這個(gè)過(guò)程其實(shí)就是電商大數(shù)據(jù)推送。電商App或者購(gòu)物網(wǎng)站通常使用埋點(diǎn)日志方式搜集用戶購(gòu)買意向,日志的格式通常是固定的,后臺(tái)大數(shù)據(jù)系統(tǒng)根據(jù)埋點(diǎn)日志進(jìn)行大數(shù)據(jù)分析處理,給用戶打上標(biāo)簽,如大學(xué)生、80后、工薪階層、新爸爸媽媽等,系統(tǒng)會(huì)根據(jù)標(biāo)簽推送相關(guān)商品,也可以根據(jù)客戶購(gòu)買商品的價(jià)格為其推送價(jià)格相似的商品,如某客戶定外賣,定的都是海底撈之類高價(jià)位的,就為該客戶推送價(jià)位相對(duì)高些的商品。如圖1所示,各行各業(yè),大數(shù)據(jù)的處理流程通常都分為采集、清洗、存儲(chǔ)、分析四個(gè)階段,真實(shí)的電商大數(shù)據(jù)平臺(tái)推送系統(tǒng)也是一樣。
4 教案設(shè)計(jì)
北京經(jīng)濟(jì)管理職業(yè)學(xué)院信息學(xué)院開設(shè)有《大數(shù)據(jù)技術(shù)與應(yīng)用》專業(yè),本教案根據(jù)自編項(xiàng)目式活頁(yè)教材,將電商大數(shù)據(jù)推送項(xiàng)目貫穿始終,將企業(yè)中流行的敏捷開發(fā)引入教學(xué),采用任務(wù)驅(qū)動(dòng)、技術(shù)探索式教學(xué)模式。模擬電商大數(shù)據(jù)推送的流程,并不使用Spark、HDFS等真正的大數(shù)據(jù)技術(shù),因?yàn)楸窘贪甘莏ava語(yǔ)言程序設(shè)計(jì)教案,不是大數(shù)據(jù)專業(yè)課教案,只是以當(dāng)前非常流行的大數(shù)據(jù)項(xiàng)目為依托,以生活中常見的業(yè)務(wù)場(chǎng)景為背景,使學(xué)生學(xué)習(xí)Java的同時(shí),能了解大數(shù)據(jù)的流程,為將來(lái)從事應(yīng)用軟件開發(fā)、測(cè)試、運(yùn)維、產(chǎn)品設(shè)計(jì)或者大數(shù)據(jù)相關(guān)開發(fā)、運(yùn)維等工作奠定基礎(chǔ)。通過(guò)該課程的學(xué)習(xí),學(xué)生能夠系統(tǒng)全面地掌握 Java 語(yǔ)言面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,熟練使用 Java 語(yǔ)言進(jìn)行程序設(shè)計(jì),具備大數(shù)據(jù)分析及開發(fā)等崗位所需的面向?qū)ο缶幊趟季S及編程技能,并為以后繼續(xù)深入地學(xué)習(xí)大數(shù)據(jù)方向相關(guān)知識(shí)打下良好的基礎(chǔ)。此外,通過(guò)在課程中融入思政元素,在培養(yǎng)學(xué)生掌握面向?qū)ο蟮木幊碳寄艿耐瑫r(shí),將做人做事的基本道理、把社會(huì)主義核心價(jià)值觀的要求、實(shí)現(xiàn)民族復(fù)興的理想和責(zé)任融入課程教學(xué)之中,使學(xué)生領(lǐng)悟做人做事的道理、強(qiáng)調(diào)學(xué)生社會(huì)主義核心價(jià)值觀的樹立和職業(yè)素養(yǎng)、勞動(dòng)精神的價(jià)值塑造,實(shí)現(xiàn)“思政引領(lǐng)、實(shí)踐育人” 的目的。
教案案例中涉及的電商客戶群體,選擇大學(xué)生最熟悉的群體——大學(xué)生作為客戶,購(gòu)買的商品定義為學(xué)生容易理解的書籍。希望大學(xué)生能靜下心來(lái),多讀書,拓展視野,提高專業(yè)知識(shí)。
數(shù)據(jù)的采集,使用最常用的讀取CSV日志文件,按照刪除缺失值的規(guī)則清洗,將日志數(shù)據(jù)存入數(shù)據(jù)庫(kù)(存儲(chǔ)),同時(shí)分析日志數(shù)據(jù),為用戶打標(biāo)簽,當(dāng)用戶再次購(gòu)物時(shí),推送商品(分析、應(yīng)用)。
本教案設(shè)計(jì)使用編程語(yǔ)言排行榜領(lǐng)頭軍Java開發(fā)完成一個(gè)電商大數(shù)據(jù)推送項(xiàng)目,模擬數(shù)據(jù)的采集、清洗、存儲(chǔ)、分析四個(gè)階段。教案設(shè)計(jì)的教學(xué)時(shí)間為兩學(xué)期。采用敏捷的形式完成項(xiàng)目,分為四個(gè)迭代,每個(gè)迭代覆蓋一定的知識(shí)點(diǎn),根據(jù)知識(shí)點(diǎn)為各迭代設(shè)計(jì)多個(gè)子任務(wù)。每個(gè)迭代都是一個(gè)敏捷交付項(xiàng)目。各個(gè)迭代采用相同的教學(xué)模式完成,迭代中設(shè)計(jì)有用戶故事、任務(wù)看板、技術(shù)點(diǎn)探索、交付項(xiàng)目。
迭代一:大數(shù)據(jù)推送框架
通過(guò)引導(dǎo)學(xué)生查看編程語(yǔ)言排行榜,了解Java語(yǔ)言的排名,激發(fā)學(xué)生學(xué)習(xí)Java語(yǔ)言的動(dòng)力。本迭代主要學(xué)習(xí)java語(yǔ)言基礎(chǔ),根據(jù)任務(wù)看板的任務(wù),引導(dǎo)學(xué)生去做技術(shù)點(diǎn)探索,包括Java語(yǔ)言運(yùn)行環(huán)境配置、開發(fā)工具、數(shù)據(jù)類型、運(yùn)算符、數(shù)組、流程控制語(yǔ)句、字符串。由于本階段是學(xué)習(xí)起步階段,這里不涉及日志文件讀取,將數(shù)據(jù)預(yù)先定義好,存儲(chǔ)在數(shù)組,完成一個(gè)簡(jiǎn)單的推送系統(tǒng)。從知識(shí)點(diǎn)角度,打好Java語(yǔ)言編程的基本語(yǔ)法知識(shí);從項(xiàng)目角度,從一個(gè)個(gè)小任務(wù),一點(diǎn)一點(diǎn)編織出項(xiàng)目的基本組成功能模塊。迭代一是整個(gè)項(xiàng)目的基礎(chǔ)部分。