計算機畢業設計Python+Spark知識圖譜課程推薦系統 課程預測系統 課程大數據 課程數據分析 課程大屏 mooc慕課推薦系統 大數據畢業設計

1 緒 論

1.1 課題研究背景

在線教育學習平臺是學生用來進行校內或校外拓展課程學習的平臺,平臺需要具備在線視頻觀看,作業提交,形成性考核等功能。在學生學習的過程中,學校的管理者或負責教師需要了解學生的學習情況和學習狀態,因此必須要通過學生的學習行為數據進行數據分析,將學生的學習情況直觀的展現給用戶,方便教師進行學生管理和評測。

現階段在線教育學習平臺,一般會提供兩種方向,一種是對普通用戶,社會上的各種人員都可以來學習這個課程,學習完以后拿到一些證書認證,另一種是面向是院校,比如說大學里的學生可以在線選一門課,選完這門課以后,通過這個在線教育學習平臺,讓學生去學習這門課,最終得到他的學習成績,那么通過學習他可以拿到他自己的學分,不需要在線下來去進行課程學習,這是整個在線教育學習平臺這里面提供的功能,那么學生在學習這門課程的過程中,那肯定會產生很多的這種學習的數據,就比如說學生觀看視頻觀看了多長時間,什么時候來的這個平臺這些相關的數據,那么基于這些數據,我們就需要進行數據分析。

通過分析的結果,可以了解學生學習情況,學習狀態,根據這些內容,我們好去了解這門課程設置是不是有問題,學生在學習過程中會有哪些習慣和行為,根據這個反饋過來的數據進行靈活的調整,或者讓老師重新去調整這個課程內容,或者去改變這一部分的學生學習方式,這是我們最終做這個數據分析的目的。

1.2 課題研究意義

本次課題主要通過使用ECharts圖形可視化開發技術,從而在項目中反饋自己的學習成果,提升自己技術水平和能力,讓自己在設計方面也能得到更多鍛煉,思維模式得到擴展。通過在線教育平臺的數據,利用所學知識去分析數據,得出學生在學習過程中學習情況,以及利用課程平臺中的健康度和用戶活躍度來反哺提升課程質量。

2相關技術介紹和分析

2.1 JAVA語言

?JAVA是一種跨平臺的程序設計語言,它屬于面向對象型,有著顯著的優點。

2.2 Idea開發環境

?IDEA 全稱IntelliJ IDEA,是java語言開發的集成環境,idea是目前最好的開發工具之一,尤其在代碼只能助手、自動代碼提示等方面是有突出成就的。

2.3?Hadoop生態圈技術

?HDFS: 一種分布式文件系統,提供對應用程序數據的高吞吐量訪問。

MapReduce: 基于YARN的系統,用于并行處理大型數據集。

HBase: 可擴展的分布式數據庫,支持大型表的結構化數據存儲。

Sqoop:?采集RDBMS(關系型數據庫)。

2.4?ECharts

?ECharts,一個功能強大的交互式圖表和瀏覽器可視化庫。

3系統調研

3.1經濟可行性分析

系統使用大數據組件開源技術,組建單節點Hadoop集群,使用MapReduce數據分析,考慮到市面上大屏可視化系統需要收費,所以用ECharts技術實現數據可視化圖表功能。

3.2技術可行性分析

通過servlet和json進行數據交互,以及CAS做單點登錄和注銷,調整好系統結構,可以很好實現頁面數據傳輸和展示的功能

3.3系統性能可行性分析

?????WEB端產品,性能主要基于服務端的響應,此處通過設置虛擬機內存、優化代碼結構等手段,保證正確運行。

4概要設計

4.1功能設計

根據系統的需要,列出所需要的功能,與解決的方法,并以此為參考,設計數據庫等后臺內容。

4.1.1 登陸注冊功能

用戶通過瀏覽器訪問后可以登錄,沒有注冊的用戶可以進行注冊,然后將用戶信息存入數據庫中,通過Spring Security框架做登錄攔截,并可以獲取已登錄用戶登錄名,點擊注銷可以實現用戶退出登錄。

4.1.2?數據預功能

將數據通過Sqoop導入Hadoop中的HDFS,使用MapReduce進行數據處理,并將處理好的數據,保存到HBase中。

4.1.3?每日登陸人數分析

讀取HBase中登錄數據,頁面顯示不同月份的登錄人數比,并可以顯示每月登錄人數,可以切換不同的月份。

4.1.4?平均學習時長和學習行為次數分析

讀取HBase中相關數據,頁面顯示不同日期對應的學習時長和學習次數。

4.1.5?每日活躍情況分析

柱狀圖顯示每日活躍學生人數的統計分析,這里設定每日至少進行3次學習行為的用戶為活躍用戶

4.1.6?分時段學習人數分析

熱力圖展示學生在什么時間段愛學習,橫坐標為小時,縱坐標為星期。

柱狀圖展示在不同時間段中用戶登錄人數。

4.2數據庫表結構設計

表與功能相匹,設計時盡量減少冗余數據的存儲,多考慮多表查詢的可能與簡單程度

4.3后臺結構設計

主要使用servlet接受請求,MVC將代碼分層。

4.4前臺UI設計

JS使用AngularJS的雙向數據綁定方便的操作,展示更多有用的信息,UI使用ECharts自帶的圖形效果顯示。

5 系統運行示例與測試

5.1 系統測試概述

項目完成后,測試時保證系統穩定運行的關鍵所在,不同的點擊事件向后臺請求數據,前端接受數據,避免數據傳輸錯誤引起的界面不顯示或報錯問題以及界面的排版問題。

5.2 運行測試

進入到系統界面,依此進行試用

6 結 論

本章主要對本次設計進行總結,總結系統的優點和存在的不足,并且作出相應的改進等。

參考文獻

致 謝

核心算法代碼分享如下:

package com.sqlimport org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types._
import org.junit.Testimport java.util.Propertiesclass MoocSpark2024_FixBug {val spark = SparkSession.builder().master("local[6]").appName("在線教育課程數據實時計算V1.0").getOrCreate()//課程數倉CSV 模式val ods_courses_Schema = StructType(List(StructField("kw", StringType),StructField("cid", StringType),StructField("url", StringType),StructField("title",StringType),StructField("img", StringType),StructField("tag", StringType),StructField("school",StringType),StructField("teacher", StringType),StructField("mans", IntegerType),StructField("brief", StringType),StructField("status", StringType),StructField("price", StringType),StructField("chapters", StringType),StructField("comments_score", FloatType),StructField("comments", StringType)))val ods_courses_Df = spark.read.option("header", "false").schema(ods_courses_Schema).csv("hdfs://192.168.227.166:9000/mooc2024/ods_courses/edu_course.csv")//網評數倉CSV 模式val ods_comments_Schema = StructType(List(StructField("kw", StringType),StructField("cid", StringType),StructField("title", StringType),StructField("nickname",StringType),StructField("ctime", StringType),StructField("csv_txt", StringType),StructField("ke",IntegerType),StructField("star", IntegerType),StructField("url2", StringType),StructField("sentiments", FloatType),StructField("province", StringType)))val ods_comments_Df = spark.read.option("header", "false").schema(ods_comments_Schema).csv("hdfs://192.168.227.166:9000/mooc2024/ods_comments/edu_comments.csv")@Testdef init(): Unit = {//school_province_score_Df.show()//ods_courses_Df.show()ods_comments_Df.show()//school_special_score_Df.show()//school_Df.show()//ruanke_rank_Df.show()//qs_world_Df.show()}//  ----剩余使用spark_sql完成
//    ---指標8:課程特色占比@Testdef tables08(): Unit = {ods_courses_Df.createOrReplaceTempView("ods_courses")val df2 = spark.sql("""select tag ,count(1) numfrom ods_coursesgroup by tag""")df2
//      .show(50).coalesce(1).write.mode("overwrite").option("driver", "com.mysql.cj.jdbc.Driver").option("user", "root").option("password", "123456").jdbc("jdbc:mysql://bigdata:3306/hive_mooc2024?useSSL=false","table08",new Properties())}// ---指標9:網絡水軍詞云預警(黑名單)@Testdef tables09(): Unit = {ods_comments_Df.createOrReplaceTempView("ods_comments")val df2 = spark.sql("""select nickname,count(1) numfrom ods_commentswhere sentiments <0.5group by nicknameorder by num desclimit 20""")df2//      .show(50).coalesce(1).write.mode("overwrite").option("driver", "com.mysql.cj.jdbc.Driver").option("user", "root").option("password", "123456").jdbc("jdbc:mysql://bigdata:3306/hive_mooc2024?useSSL=false","table09",new Properties())}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11628.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring STOMP-發送消息

如果你想要從應用程序的任何地方向連接的客戶端發送消息&#xff0c;要怎么做&#xff1f;任何應用程序組件都可以向brokerChannel發送消息。要這樣做&#xff0c;最簡單方法是注入一個SimpMessagingTemplate并使用它來發送消息。通常&#xff0c;你會按類型注入它&#xff0c;…

WWW服務器搭建(2)——Apache服務器配置與管理

一、Apache簡介 1.1 關于Apache Apache HTTP Server&#xff08;簡稱Apache&#xff09;是Apache軟件基金會的一個開放源碼的Web服務器&#xff0c;可以在大多數計算機操作系統中運行&#xff0c;由于其跨平臺和安全性被廣泛使用&#xff0c;是最流行的Web服務器端軟件之一。…

01-02-5

1、單鏈表中按位置查找 a.原理 通過傳遞的位置&#xff0c;返回該位置對應的地址&#xff0c;放到主函數定義的指針變量中。 我們認為位置從&#xff1a;有數據的節點開始計數 即如下結構&#xff1a; 查找位置&#xff0c;就是返回該位置對應的空間地址。 b.代碼說明 Ⅰ…

H5嵌入原生----兼容安卓與ios

主要分UI展示&#xff0c;鍵盤&#xff0c;輸入框等等。解決bug最苦惱的問題不是沒有解決方案&#xff0c;而是你沒有找到真正的原因。再就是現象難以重現&#xff0c;每次都要發布代碼&#xff0c;然后到手機app中去測試&#xff0c;模擬。這些地方會耗費大量的精力。 一、UI…

【軟設】常見易錯題匯總

目錄 計算機系統基礎 程序語言基礎 數據結構 算法設計與分析 計算機網絡與信息安全 軟件工程基礎 開發方法&#xff08;結構化與面向對象&#xff09; 數據庫 操作系統 知識產權相關的法律法規 &#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f9…

《系統架構設計師教程(第2版)》第10章-軟件架構的演化和維護-07-軟件架構維護

文章目錄 1. 軟件架構知識管理1.1 概念1.2 架構知識的獲取1.3 作用1.4 架構知識管理的現狀 2 軟件架構修改管理3 軟件架構版本管理4. 示例4.1 背景4.2 數據獲取4.3 數據計算4.4 結果分析4.4.1 圈復雜度 (CCN)4.4.2 扇入扇出度 (FFC)4.4.3 模塊間耦合度 (CBO)4.4.4 模塊的響應 (…

mysql group by 細節介紹

mysql中group by的用法是配合聚合函數&#xff0c;利用分組信息進行統計&#xff0c;語句如“select name,sum(id) from test group by name,number”。 先來看下表1&#xff0c;表名為test&#xff1a; 執行如下SQL語句&#xff1a; SELECT name FROM test GROUP BY name 你…

OFDM802.11a的FPGA實現(十四)data域的設計優化,擠掉axi協議傳輸中的氣泡

原文鏈接&#xff08;相關文章合集&#xff09;&#xff1a;OFDM 802.11a的xilinx FPGA實現 目錄 1.前言 2.data域的時序要求 3.Debug 1.前言 前面12篇文章詳細講述了&#xff0c;OFDM 802.11a發射部分data域的FPGA實現和驗證&#xff0c;今天對data域的設計做一個總結。在…

electron 多窗口 vuex/pinia 數據狀態同步簡易方案(利用 LocalStorage)

全局 stroe 添加 mutations 狀態同步方法 // 用于其他窗口同步 vuex 中的 DeviceTcpDataasyncDeviceTcpData(state: StateType, data: any) {state.deviceTcpData data},App.vue 里 onMounted(() > {console.log("App mounted");/*** vuex 多窗口 store 同步*//…

springboot306基于Java的民宿管理系統(源碼+包運行+配套LW+技術指導)

項目描述 臨近學期結束&#xff0c;開始畢業設計制作&#xff0c;你還在做java程序網絡編程&#xff0c;期末作業&#xff0c;老師的作業要求覺的困難嗎?不知道畢業設計該怎么辦?網頁功能的數量是否太多?沒有合適的類型或系統?等等。今天給大家介紹一篇基于Java的民宿管理…

python篇-cmd 執行pip命令失敗,但執行pyhon命令正常

當你在CMD中可以正常執行python命令&#xff0c;但執行pip命令失敗時&#xff0c;這通常意味著pip沒有被正確地添加到系統的環境變量中。這里有一些步驟來解決這個問題&#xff1a; 檢查環境變量&#xff1a; 打開系統的環境變量設置&#xff08;右擊“此電腦”>“屬性”>…

CoSeg: Cognitively Inspired Unsupervised Generic Event Segmentation

名詞解釋 1.特征重建 特征重建是一種機器學習中常用的技術&#xff0c;通常用于自監督學習或無監督學習任務。在特征重建中&#xff0c;模型被要求將輸入數據經過編碼器&#xff08;encoder&#xff09;轉換成某種表示&#xff0c;然后再經過解碼器&#xff08;decoder&#x…

c/c++對于char*的理解(聯合string容器)

在C和C中&#xff0c;char*是一個指向字符&#xff08;char&#xff09;的指針。它經常被用來處理C風格的字符串&#xff0c;這種字符串是以空字符&#xff08;\0&#xff09;結尾的字符數組。以下是關于char*的一些關鍵點&#xff1a; C風格的字符串&#xff1a; C風格的字符…

升級Microsoft 365后,SAP GUI中無法打開Excel的解決方案

最近&#xff0c;我們遇到了一個棘手的問題&#xff0c;一位客戶在升級到Microsoft 365后&#xff0c;無法在SAP GUI中打開Excel。這個問題不僅影響了工作效率&#xff0c;也給用戶的日常操作帶來了不便。在本文中&#xff0c;我們將探討問題的成因&#xff0c;并提供一種解決方…

泛微E9開發 添加多個多選框,實現單選框的效果

利用多個多選框實現單選框的效果 1、功能背景2、展示效果3、實現效果 1、功能背景 如下圖所示&#xff0c;在表單中新增四個“選擇框-復選框”類型的字段&#xff0c;并且設置其中的選項&#xff0c;每個多選框都只有一個選項&#xff0c;通過代碼塊實現單選框的效果 1.顯示模…

鄧閑小——生存、生活、生命|真北寫作

人生有三個層次∶生存、生活、生命。 生存就是做必須做的事。生存的模式是鄧&#xff0c;是交易&#xff0c;是買賣。別人需要的東西&#xff0c;你生產出來&#xff0c;賣給他。哪怕這個東西沒啥用&#xff0c;也可以賣&#xff0c;情緒也可以賣。你需要的東西&#xff0c;你花…

分布式與一致性協議之POW算法

POW算法 概述 談起比特幣&#xff0c;你應該并不陌生。比特幣是基于區塊鏈實現的&#xff0c;而區塊鏈運行在因特網上&#xff0c;這就存在有人試圖作惡的情況。有些讀者可能已經發現了&#xff0c;口信消息型拜占庭問題之解、PBFT算法雖然能防止壞人作惡&#xff0c;但只能防…

代碼隨想錄算法訓練營第二十三天 | 530.二叉搜索樹的最小絕對差、501.二叉搜索樹中的眾數、236. 二叉樹的最近公共祖先

目錄 530.二叉搜索樹的最小絕對差 思路 代碼 501.二叉搜索樹中的眾數 思路 代碼 236. 二叉樹的最近公共祖先 思路 代碼 530.二叉搜索樹的最小絕對差 需要領悟一下二叉樹遍歷上雙指針操作&#xff0c;優先掌握遞歸 題目鏈接/文章講解&#xff1a;代碼隨想錄 視頻講解…

Java Spring的定時任務的配置和使用

在Spring框架中&#xff0c;配置和使用定時任務主要涉及Scheduled注解以及Spring的異步任務執行能力。以下是詳細步驟&#xff1a; 1. 引入依賴 對于Spring Boot項目&#xff0c;通常已經包含了Spring框架&#xff0c;因此不需要額外添加定時任務的依賴。如果使用的是Spring框…

AI大模型測評系統opencompass源碼解析

1 注冊器(Registry) 為了管理功能相似的模塊,MMEngine實現了注冊器。注冊器可以被視作這些類或函數的抽象。例如注冊器 MODELS 可以被視作所有模型的抽象。 1.1 什么是注冊器 MMEngine 實現的注冊器可以看作一個映射表和模塊構建方法(build function)的組合。 映射表:…