局部人工干預的半智能化編程語言初學者導引平臺
2019年06月04日 21:57         所屬學院: []          點擊:


附件5

湖南省大學生研究性學習和創(chuàng)新性實驗計劃

項  目  申  報 

 

項目名稱: 

  • 如果您無法在線瀏覽此 PDF 文件,則可以

  • 下載免費小巧的 福昕(Foxit) PDF 閱讀器,安裝后即可在線瀏覽  或

  • 下載免費的 Adobe Reader PDF 閱讀器,安裝后即可在線瀏覽  或

  • 下載此 PDF 文件

學校名稱

長沙理工大學

學生姓名

學  號

專  業(yè)

性 別

入 學 年 份

羅麗美

201516080103

軟件工程

2015

陳澤宇

201516080210

軟件工程

2015

陳武陽

201516080204

軟件工程

2015

李思超

201554080322

通信工程

2015

趙一霖

201515020123

網(wǎng)絡工程

2015

指導教師

葉吉祥

職稱

教授

項目所屬

一級學科

計算機科學技術(shù)

項目科類(理科/文科)

理科

學生曾經(jīng)參與科研的情況

 

多維度定位策略的移動監(jiān)互系統(tǒng)創(chuàng)新項目。

 

指導教師承擔科研課題情況

生理信號融合的中醫(yī)證候研究 ,湖南省自然科學基金,主持。
多生理信號融合的中醫(yī)證候診斷平臺研究,湖南省科技廳科技計劃項目,主持
發(fā)表CSCD及EI檢索科研論文數(shù)十篇

 

 

 

 

 

項目研究和實驗的目的、內(nèi)容和要解決的主要問題

 

項目研究和實驗的目的:

 

隨著互聯(lián)網(wǎng)步步深入人們的生活中,越來越多的人對編程語言產(chǎn)生興趣,希望能將編程語言應用到自己的生活中,這是互聯(lián)網(wǎng)時代進化的趨勢。但他們在學習過程中常常遇到以下問題:

 

(1)  面對龐大知識體系不知如何下手

(3) 具體語言知識點理解難

(4) 知識點知識運用難

(5) 編程問題描述難

(6) 編譯、運行錯誤提示理解難

 

而我們前期在各個編程學習網(wǎng)站上進行調(diào)查,發(fā)現(xiàn)并沒有任何網(wǎng)站完善的解決了上述問題,提供的學習路線和學習方法都幾乎一致,因此,我們將在本項目中進行改進。

 

項目研究和實驗的內(nèi)容:

 

為解決上述研究目的,結(jié)合計算機語言初學者的學習特點,本項目將從下面幾個方面展開研究:

 

總體概括:

1、 通過交互的方式形象地引導初學者了解計算機編程體系,并對一個項目的制作有一個初步的了解。讓初學者能夠先形成計算機編程體系的思想,以便進一步確定并選取自己學習的方向,不再是盲目地學習一些應用性不強的知識。比如網(wǎng)頁分為前臺和后臺,前臺由哪些元素組成顯示出網(wǎng)頁的界面,后臺由哪些邏輯方法構(gòu)成網(wǎng)頁的功能。

2、 進一步交互式引導初學者選擇自己感興趣的方向。針對這個方向再次進行編程語言的介紹,讓初學者先了解語言的應用方式,大致知道一門語言的應用范圍是什么,學了之后能有什么用?讓初學者一開始能對這門語言感興趣以及大概了解它的體系。

3、 創(chuàng)新引導初學者學習編程語言。我們對初學者的主要特色引導在于:以編程語言運用小實例來驅(qū)動學習。小實例包括實現(xiàn)簡單的游戲、完成某一功能的編寫等等。在小實例的學習過程中,初學者能夠進一步鞏固編程語言基礎以及語法語義的掌握。即讓初學者能夠在每一步的學習中都能形象地了解自己學習的知識點的應用層面,化抽象于形象,也可以增加初學者學習編程語言的興趣,讓初學者大致了解自己學習的程度,即可以寫出什么樣的應用。

 

   具體內(nèi)容:

(1) 對初學者進行智能化引導

1)引導初學者了解計算機體系

2)引導初學者了解各個編程語言簡介

(2)新型的編程語言學習方法

          1)通過趣味性的知識表現(xiàn)形式讓初學者理解知識點。

2)實例操作讓初學者熟悉編程語言的具體知識點和語法應用。

3)各個知識點之間的聯(lián)想處理,實例與知識點間的聯(lián)想處理。

(3)模糊查詢

          1)搜索問題的分詞處理以及數(shù)據(jù)庫數(shù)據(jù)的分詞處理。

          2)索引表的建立

          3)依照權(quán)重匹配結(jié)果

(4)建立錯誤庫

          1)常見編譯運行時錯誤的解決方案

          2)常見程序bug解決方案

(5)語音搜索

          1)提供語音搜索功能,實時將語音轉(zhuǎn)化成文本顯示

(6)在線OJ系統(tǒng)

          1)提供在線代碼調(diào)試

 

項目研究和實驗的要解決的主要問題

(1)   初學者學習的新型引導方式

(2)   系統(tǒng)自我學習:自主知識擴充算法

(3)   在線OJ系統(tǒng)的安全問題

(4)   全文檢索技術(shù)

國內(nèi)外研究現(xiàn)狀和發(fā)展動態(tài)

 

主要編程語言學習平臺有:

     計蒜客、慕課網(wǎng)、開課吧、北風網(wǎng)、萌碼網(wǎng)、極客學院、尚硅谷、java1234、               實驗樓、51CTO、百度傳課、菜鳥教程

     Fenby、Codecademy 、 Quara、w3school

 

總體優(yōu)點在于

1、IT在線教育產(chǎn)品有很好的未來,它將資源最大化利用,并省去了時間空間上的限制。

2、資源廣,包括各個學校的講課資源以及各種人員分享的視頻資源。

3、知識涉及面廣,除了計算機編程語言學習之外還包括各種行業(yè)類型的知識介紹視頻。

4、相對于線下教育來說,學習者的成本大大降低。

5、部分網(wǎng)站提供了交互式編程的學習模式:主要是提供了在線OJ系統(tǒng),動態(tài)給出編譯結(jié)果。
6:大多數(shù)網(wǎng)站提供了用戶問答板塊。
7:極少數(shù)網(wǎng)站有特色的學習模式:以一個實驗為一個學習單元,遠程桌面連接云主機,直接提供在線編譯環(huán)境。

8:少數(shù)網(wǎng)站的學習模塊以一個職業(yè)路徑為驅(qū)動,并提供了相關(guān)的學習資料。

 

 

總體缺點:

1、傳統(tǒng)的目錄式學習讓初學者比較迷茫,難以掌握自己的學習程度與進度。

2、枯燥的知識點閱讀學習方式,容易降低初學者對編程語言的學習興趣。

3、在線編譯器提供的錯誤提示對于初學者而言難以理解。

4、網(wǎng)站并不提供語義化搜索功能,不能針對性的由問題出發(fā)引出知識缺陷。

 

 

總結(jié):

我們發(fā)現(xiàn)要做好一個編程語言學習網(wǎng)站,首先得面向初學者有一個簡單生動的初步教學,但進一步,必須得做到教育質(zhì)量的高品質(zhì),且對知識的講解要深入化才能使學習者真正掌握。最重要的一點:學習的精髓在于提出問題與解決問題,而不是一味灌輸知識。即目前的學習網(wǎng)站并沒有從初學者角度出發(fā),初學者仍舊感覺不知從何下手。

 

人工智能被適當?shù)囊氲綄W習平臺的研究中,是當前的研究的最新動態(tài)。具體體現(xiàn)如下:

一、適度干預對初學者進行學習引導,解決問題描述模糊的難題。

 

二、通過自學習能力的實現(xiàn)使學習平臺具有自我提升的能力。

 

三、通過描述知識點之間相互關(guān)聯(lián)關(guān)系,使平臺具有智能化的聯(lián)想能力:編程語言知識點之間進行連接,知識點與易錯點之間進行連接,知識點與應用實例進行連接,建立成橫向縱向相互聯(lián)系的知識體系,這樣做到把碎片知識串聯(lián),形成整體體系。在學生學習的時候?qū)ζ渲鲃右龑?,才能較好掌握。

 

四、我們提供編譯錯誤查詢以及在線OJ系統(tǒng),找到這種錯誤最可能的原因,也給出相應知識點,解決編譯錯誤提示理解難問題。

 

本項目學生有關(guān)的研究積累和已取得的成績

 

羅麗美:獲得三等獎學金,英語過四級,獲得優(yōu)秀學生干部稱號,獲得英語校級競賽獎,熟悉C,C++,C#。熟悉html,css、javascript、bootstrap.

 

陳澤宇:獲得二等獎學金,英語過四級,獲得五四優(yōu)秀個人稱號,熟悉C,C++,C#,MySQL,能熟練應用Java編寫項目。

 

陳武陽:獲得一等獎學金,與三好學生稱號,英語過四、六級,獲英語校級競賽獎,熟悉html,css,javascript語言,能夠?qū)懗鼋换ナ巾撁嬉约案鞣N效果。C,C++掌握完善,熟悉Java,動手能力強。

 

李思超:英語過四級,熟悉Java,動手實踐能力強,編程能力強。了解html,css,熟悉C,MySQL。

 

 

趙一霖:第七屆藍橋杯國家級二等獎、省級一等獎。掌握JavaSE、JavaWeb基本應用,掌握Spring、Spring MVC、Spring Boot等框架的基本應用。了解Redis數(shù)據(jù)庫的原理與實現(xiàn)。了解MySQL等關(guān)系型數(shù)據(jù)庫的基本優(yōu)化。了解Linux系統(tǒng)的相關(guān)操作以及服務器基礎運維。

 

 

 

 

項目的創(chuàng)新點和特色

1、人工局部干預的智能學習引導方式,可以通過語音搜索相關(guān)內(nèi)容,讓初學者從不明白、不清晰、無法描述自己所面對的問題逐步過渡到能清晰的描述并解決問題。

2、OJ(Online Judge)系統(tǒng)的在線編譯以及智能的錯誤提示,用戶在編程時可以獲得智能的知識點提示,以及口語化的錯誤提示。

3系統(tǒng)具有自我學習的能力,若用戶提出的問題在問題庫未找到,則系統(tǒng)將利用搜索引擎對互聯(lián)網(wǎng)進行搜索,搜索內(nèi)容將通過人工優(yōu)化后擴充至知識庫。用戶使用過程產(chǎn)生的提問、解答、程序代碼等都會被系統(tǒng)記錄并用于擴充知識庫,隨著用戶的使用,系統(tǒng)知識庫將越來越豐富。

 

 

 

 

 

 

項目的技術(shù)路線及預期成果

 

 

 

技術(shù)路線:
    整體項目采用微服務理念,根據(jù)業(yè)務縱向分割,獨立成服務。服務之間互相獨立,降低局部故障對整體系統(tǒng)的影響,提高系統(tǒng)的容災性以及穩(wěn)定性。每個服務采用Spring、Spring MVC、Spring Boot、MyBatis結(jié)構(gòu)構(gòu)建。

 

 

 

 

 

 

 

 

 

系統(tǒng)架構(gòu)圖如下:

 

 

 

 

負載均衡:

    采用Nginx作為負載均衡模塊,輕量高效,可以和后端的應用服務協(xié)調(diào)的契合。將用戶請求分散給后端服務,降低單機負載。

 

內(nèi)容分發(fā)網(wǎng)絡:

    將靜態(tài)內(nèi)容(例如用戶頭像)緩存至CDN服務器,提高用戶訪問速度,降低服務器負載。

 

消息隊列:

    采用ActiveMQ作為消息隊列模塊,將并行請求轉(zhuǎn)化為串行請求,削峰填谷,保證OJ服務器負載平穩(wěn),運行穩(wěn)定。

 

 

 

OJ編譯評測模塊

    OJ編譯評測模塊需要重點處理的問題就是安全問題,由于需要將用戶輸入源碼編譯并運行,這個過程中存在較大的安全隱患。我們將對外部輸入代碼進行白名單驗證,并利用Linux系統(tǒng)下成熟的沙箱技術(shù)Apparmor對運行期的評測程序做細粒度的權(quán)限控制。保證被評測程序的運行不影響服務器的安全穩(wěn)定。

 

語音識別模塊
         語音識別模塊用于解析用戶聲音,轉(zhuǎn)化為文字再對文檔進行搜索。由于語音識別技術(shù)過于復雜,我們將調(diào)用現(xiàn)有的成熟技術(shù)解決方案以實現(xiàn)對音頻的解析。語音識別的基本原理如下:

    1、發(fā)出的語音屬于模擬信號,為了對語音信號進行分析和處理,需要進行模數(shù)轉(zhuǎn)換

    2、數(shù)字化后,提取語音信號的聲學特征:

        1)人耳的生理特性:

生理 感知

強度 響度

基本頻率 基音

頻譜形狀 音色

開合時間 時間

雙耳相位差 位置

        2)根據(jù)人耳的生理特征進行聲學特征提取:把每一幀波形變成一個多維向量,可以理解為這個向量包含了這幀語音的內(nèi)容信息。

    3、得出語音識別結(jié)果

       1)把幀識別成狀態(tài)

      通過“聲學模型”里的參數(shù),獲取幀和某一狀態(tài)對應的概率,若干幀數(shù)對應一個   狀態(tài)。

      2)把狀態(tài)組合成音素。

            每三個狀態(tài)組成一個音素。

      3)把音素組合成單詞。

 

中文全文檢索模塊

1)中文分詞
高效準確的中文分詞算法是搜索引擎實現(xiàn)的第一步,本程序采用基于CRF算法的中文分詞實現(xiàn)。

 

首先對每一個字計算出一個標簽屬性,某個字根據(jù)CRF模型提供的模板生成了一系列特征函數(shù),這些函數(shù)的輸出值乘以該函數(shù)的權(quán)值最后求和得出了一個分數(shù)。該分數(shù)只是“點函數(shù)”的得分,還需加上“邊函數(shù)”的得分。邊函數(shù)在本分詞模型中簡化為f(s',s),其中s'為前一個字的標簽,s為當前字的標簽。于是該邊函數(shù)就可以用一個4*4的矩陣描述,相當于HMM中的轉(zhuǎn)移概率。然后通過BEMS合并,將分詞結(jié)果送入詞性數(shù)據(jù)庫中查詢詞性,去除停詞(Stop word)后進行下一步反向索引。

 

2) 反向索引的建立


將分詞后得到的詞建立一個字典,按自然順序排序,合并相同的詞,成為文檔倒排鏈表。便于搜索引擎根據(jù)關(guān)鍵字快速查詢文章。

 

3) 索引索引
對用戶輸入的查詢語句進行自然語言分析,識別單詞關(guān)鍵字(此處和中文分詞基本相同)形成自然語言語法樹,根據(jù)關(guān)鍵詞在反向索引表中查詢文檔。

 

4) 整合結(jié)果文檔
根據(jù)自然語言語法樹對查詢到的文檔進行合并、差等操作。通過關(guān)鍵詞詞頻等參數(shù)計算文檔相關(guān)度,并排序顯示給用戶。

 

 

 

數(shù)據(jù)庫服務器:

    關(guān)系型數(shù)據(jù)庫服務器將采用MySQL Server,NoSQL服務器將采用Redis。我們將用戶狀態(tài)信息(例如session)儲存在Redis中,保證應用服務器無狀態(tài)性,易于平滑擴展。

 

 

 

 

 

 

 

 

 

應用結(jié)構(gòu)層次如下:

 

 

 

我們將應用進行橫向拆分,形成Controller,Service,DAO結(jié)構(gòu)。

Controller層負責與用戶交互收發(fā)信息,驗證輸入數(shù)據(jù)合法性,按照一定規(guī)則將請求分發(fā)給Service。Service層拆分處理請求。DAO層負責與數(shù)據(jù)庫交互。我們采用微服務理念,將復雜而邏輯依賴少的模塊(例如搜索引擎、語音識別、OJ測評)獨立出來,以微服務的形式存在,服務與服務之間采用RPC協(xié)議通訊,每個服務專人負責,保證系統(tǒng)穩(wěn)定性,降低單服務復雜度。

 

 

 

 

 

 

 

 

 

 

 

 

預期成果:

     1、完成《基于java web 完成智能化編程語言初學者導引平臺系統(tǒng)》軟件設計。

     2、對整個項目過程進行總結(jié),做一份項目報告。

     3、申請軟件著作權(quán)。

年度目標和工作內(nèi)容(分年度寫)

一:2017年第一季度

1、 對當前現(xiàn)有的編程語言學習平臺進行深入的調(diào)查。分析各個平臺優(yōu)缺點。尋求合適的解決方案。

2、 根據(jù)市場調(diào)研的結(jié)果對系統(tǒng)需求進行完善。

3、 查閱相關(guān)材料,分析技術(shù)可行性,擬定技術(shù)實現(xiàn)方案。

二:2017年第二季度

1、 規(guī)劃系統(tǒng)結(jié)構(gòu),按需求設計服務接口。

2、 設計數(shù)據(jù)庫。

3、 前后端同步開發(fā),搭建開發(fā)框架。

三:2017年第三季度

1、解決語音識別、全文搜索等技術(shù)問題,實現(xiàn)其基本功能。

2、設計并實現(xiàn)一個安全可靠的OJ評測系統(tǒng)

四:2018年第一季度

1、 完成業(yè)務邏輯的基本開發(fā),實現(xiàn)用戶、問答社區(qū)、學習引導等模塊。

2、 完成前后端接口對接。

3、 將語音識別、全文搜索OJ評測等服務接入系統(tǒng)。

五:2018年第二季度

1、 對系統(tǒng)進行集成調(diào)試,前后端聯(lián)調(diào),初步完善系統(tǒng)功能。

2、 完善系統(tǒng)內(nèi)容。

六:2018年第三季度

1、對系統(tǒng)進行內(nèi)部測試,邀請一部分用戶體驗系統(tǒng),進一步完善系統(tǒng)功能。

注:每個年度的第四季度為項目進度調(diào)整期

 

 

 

 

指導教師意見

 

該項目緊跟語言學習平臺研發(fā)的熱點,適當?shù)膶⑷斯ぶ悄芤氲接嬎銠C編程語言學習平臺的研發(fā)中,試圖解決語言學習者在學習過程中長期存在的難題:知識點學習應用編程難、程序編譯錯誤提示理解、程序糾錯難、對需查詢的問題描敘難,瞄準學習平臺的難點問題,值得鼓勵提倡。項目的研發(fā)成功會具有很好的應用價值。

同意申報

 

 

 

簽字:    葉吉祥     日期:2017年4月17日

注:本表欄空不夠可另附紙張

黄色在线网站wwwwww,亚洲一区免费观看,疯狂丑小鸭2,特黄毛片官网免费看