武佳佳
(江蘇聯(lián)合職業(yè)技術學院蘇州工業(yè)園區(qū)分院 江蘇省蘇州市 215000)
信息技術的迭代發(fā)展不斷推動著教育的變革創(chuàng)新,隨著計算機、互聯(lián)網(wǎng)等基礎設施建設日趨完善,大數(shù)據(jù)、人工智能、云平臺等技術在教育領域開始崛起,并得到越來越多的應用,這使得個性化學習系統(tǒng)成為了可能。個性化學習系統(tǒng)就是能夠針對學生學習情況為學生推送學習資源,能夠有效的解決學習者的個性化學習需求,引起了教育領域研究者的廣泛關注。
《C 語言程序設計》課程是職業(yè)院校計算機應用、云計算、人工智能、嵌入式開發(fā)、電子技術應用等專業(yè)必修的一門專業(yè)核心課程。C 語言是一種十分強大的語言,但是因為它程序嚴謹,語法較多且零散,運算符、數(shù)據(jù)類型豐富,學生常常容易會將知識點混淆,或存在記不住語法的情況。為改善這種情況,充分發(fā)揮學生的主體地位,促進學生自主學習,可以使用信息化技術,通過大數(shù)據(jù)采集與分析學生的學習情況,為學生推送適合于他們的題目與學習視頻,促使學生在課前、課中、課后進行學習訓練,提升教學效果。在這樣的背景下,提出開發(fā)C 語言個性化學習系統(tǒng)。
學生可利用本系統(tǒng)在教師引導下或自學C 語言程序設計這門課程。系統(tǒng)尋找學生共性和個性錯題,建立共性和個性題庫,對錯題進行分類整理,建立一個數(shù)據(jù)庫,并對錯題進行加工,形成類別題庫集。依據(jù)學生情況和知識特點,分三部分內(nèi)容分別是:順序練習、模擬練習和推送視頻。
1.1.1 順序練習
順序練習是依據(jù)C 語言程序設計教材及計算機C 語言等級考試歷年試題,結合教材章節(jié)順序及知識生長點的規(guī)律逐一排列。學生可以進行共性的練習和同步練習,這里體現(xiàn)了練習的相同性與同步性。順序練習:每次20 道題目,上限時間:20 分鐘。每一章學習完畢后會有單元練習,題目來自于學生的共性錯題,每次20 道題目,上限時間:20 分鐘。
1.1.2 模擬練習
本模塊是系統(tǒng)的核心內(nèi)容,系統(tǒng)依據(jù)學生前幾次試卷錯題相關知識點題目、新學內(nèi)容以及共性錯題為學生生成一套模擬練習題目,讓學生有針對性的進行練習,真正做到因材施練。模擬練習每次30 道題,其中個性錯題10 道;共性錯題10 道;新學內(nèi)容題目10 道。個性錯題優(yōu)先選擇個人錯誤次數(shù)最多的對應知識點題目。因為不是出示錯誤原題,而是同一個知識點的其它題目,需考慮相關度相似度設計。
1.1.3 視頻推送
本系統(tǒng)除了學生錯題跟蹤之外,還會依據(jù)學生錯題錯項分析學生哪個知識點掌握的較為薄弱,并有針對性的為學生推薦視頻。學生通過觀看教學視頻和系統(tǒng)為其量身定制的模擬練習題進行查漏補缺,從而提高學習效果。
如圖1所示,基于需求分析將系統(tǒng)功能分為三個模塊,分別是學生端,教師端和管理員端。學生具有登錄,按順序?qū)W習,模擬練習,查看錯題,觀看系統(tǒng)推薦視頻等功能;教師具有登錄,添加并編輯習題(為題目打標簽),添加并編輯視頻(為視頻打標簽),查看學生共性錯題,查看學生個性錯題等功能;管理員具有查看,添加,修改和刪除學生及教師的功能。
圖1:C 語言個性化學習系統(tǒng)系統(tǒng)架構
本系統(tǒng)使用了MySQL 數(shù)據(jù)庫,根據(jù)需求分析共創(chuàng)建了12 個數(shù)據(jù)表,數(shù)據(jù)庫表ER 圖如圖2所示。
圖2:C 語言個性化學習系統(tǒng)數(shù)據(jù)庫ER 圖
每張表的詳細信息如下:
學生表用于存儲與C 語言程序設計這門課程學習有關的基本信息,因本系統(tǒng)只被校內(nèi)學生使用,所以不需要注冊功能,管理員將學生校內(nèi)學號錄入系統(tǒng),學生使用自己的學號登錄即可。學生表中字段主要有:student_id,用于存儲學生校內(nèi)學號,為該表主鍵;name,用戶存儲學生姓名;password,用于存儲學生登錄密碼,系統(tǒng)使用MD5 編碼,因此密碼長度設置為32;class,用于存儲學生所在班級id 號;phone,用于存儲學生的手機號碼。
教師表用于存儲教師的基本信息,教師的相關數(shù)據(jù)也是通過管理員錄入的。教師表的字段主要有:teacher_id,用于存儲教師校內(nèi)工號,為本表主鍵;name,用于存儲教師姓名;password,用于存儲教師登錄密碼,也使用MD5 編碼,長度設置為32;phone 用于存儲教師電話號碼。
管理員表用于存儲管理信息,共3 個字段,分別為: admin_id,用于存儲管理員賬號;password,用于存儲管理登錄密碼;phone,用于存儲管理員手機號碼。
班級表用于存儲所有上課班級,各字段分別為:class_id,用于存儲班級;id,主鍵,自增;class_name,用于存儲班級名稱。
因一個教師可能會教多個班級,所以特設教師-班級表。字段分別有:id,主鍵,自增;teacher_id,存儲教師校內(nèi)工號;class_id,存儲班級id 號。
本系統(tǒng)順序練習是按照章節(jié)的順序來排序的,章表用于存儲教材中章的內(nèi)容。章表字段為:chapter_id,用于存儲每一章的id,主鍵;chapter,用于存儲每章的名稱。
節(jié)表用于存儲教材中節(jié)的內(nèi)容,字段分別有:id,本表主鍵,自增;section_id,用于存儲每一節(jié)的id;section,用于存儲每節(jié)的名稱。
章節(jié)表用于存儲章節(jié)的對應關系,字段分別為:id,本表主鍵,自增;chapter_id,用于存儲每一章的id;section_id,用于存儲每一節(jié)的id。
題庫表用于存儲系統(tǒng)中所有題目。題目類型為單選題,題庫表主要字段有:subject_id,為題目id 號,主鍵自增;title,用于存儲題干;optionX,用于存儲單選題的四個選項;answer,為答案,如果是答案是option1,answer,中數(shù)據(jù)就為1,以此類推;tag_id,用于存儲該題目所屬知識點,其值為節(jié)表中id; difficulty,表示本題目的難易程度,共3 個值,1 表示容易,2 表示中等,3 表示難。
錯題表用于記錄學生錯題,該表字段有:id,為本表主鍵,自增;student_id,用于存儲學生校內(nèi)學號;subject_id,用于存儲題庫id;class_id,用于存儲班級id;time,用于做題時間。
視頻表用于存儲每個知識點所對應的視頻,視頻占空間比較大,因此本表是通過存儲視頻所對應的路徑來實現(xiàn)的,視頻表主要各字段有:video_id 表示視頻id,主鍵自增;name,用于存儲視頻名稱;path,用于存儲視頻所在路徑;tag_id,用于存儲該題目所屬知識點,其值為節(jié)表中id。
新學習表用于存儲學生最近學習的知識點,字段有:student_id用于存儲學生校內(nèi)學號,主鍵;section_id,用于存儲學生最后一次順序做題的節(jié)id。
順序練習是根據(jù)譚浩強的《C 語言程序設計》教材中章節(jié)順序,對所有練習題進行排序。學生通過選擇章節(jié),可觀看對應章節(jié)的學習視頻,點擊“開始做題”按鈕,系統(tǒng)隨機生成20 道本章節(jié)的題目,其中簡單題目6 道,中等題目10 道,難題4 道。為防止學生記憶選項,每道題的選項順序都是是隨機生成的。生成題目后開始計時,20 分鐘后系統(tǒng)自動交卷,如果是在學生20 分鐘內(nèi)提交的,系統(tǒng)將停止計時。其中,判斷題目屬于哪個章節(jié)是通過為每道題目添加一個tag_id,存儲的數(shù)據(jù)為節(jié)表中id 的值來實現(xiàn)的;判斷題目難度是通過為題目添加difficulty,存儲它的難度值來實現(xiàn)的;倒計時功能是通過JavaScript 來實現(xiàn)。完成順序練習后,系統(tǒng)將學生錯題及做題時間存入錯題表。
單元練習是每一章節(jié)學習完畢后,進行單元復習時使用的。單元練習共設20 道題,主要由本單元的共性錯題組成。共性錯題即為多數(shù)學生都會出錯的題目。實現(xiàn)方法為從錯題表中查詢本章每節(jié)每道錯題出錯次數(shù),進行降序排序,排在前面的就認為是共性錯題,認定共性錯題時若出現(xiàn)一個學生多次做錯同一道題的情況,記為一次。單元練習題目分配方式為,若本章錯題數(shù)目剛好是等于20 題,就將此20 題作為單元練習題目;若錯題數(shù)目大于20 題則將每節(jié)共性錯題中出錯最多的題目抽取出來將剩下的本章所有錯題再次降序排序,抽取前20-n 道題目,其中n 表示本章節(jié)數(shù);若錯題數(shù)目小于20 題,則查看錯題分別為哪一節(jié),若所有節(jié)都涉及到了,就將本章節(jié)剩下的題目按照難度排序,選擇排在前20-x 位的題目,其中x 表示本章錯題表中的題目。
模擬練習是本系統(tǒng)的核心模塊,系統(tǒng)通過分析學生學習軌跡,針對學生學習的薄弱環(huán)節(jié)進行組卷,從而提高學生水平,做到“因材施教”。模擬練習共30 道題目,其中10 道為個性錯題,10 道為共性錯題,還有10 道為新學知識點題目。具體實現(xiàn)方法為:
3.3.1 個性錯題的實現(xiàn)
個性錯題是指學生個體錯誤次數(shù)最多的對應知識點題目。從錯題表中以student_id 為條件篩選出登錄學生的錯題,并查詢所有錯題所屬知識點,以知識點進行錯題數(shù)的統(tǒng)計,計算出每個知識點在所有錯題中所占百分比,再乘以10,從而計算出各個知識點出題個數(shù) ,其中i 表示第i 個知識點,n 表示該知識點的出題個數(shù)。再從各知識點中隨機選取 個題目。
3.3.2 共性錯題的實現(xiàn)
共性錯題是指多數(shù)學生都會出錯的題目。先從錯題表中過濾掉確定好的個性錯題,然后統(tǒng)計每道錯題的出錯次數(shù),同一學生多次做錯同一道題按一次計算,再進行降序排序,選取前10 道作為共性錯題的題目。
3.3.3 新學內(nèi)容的實現(xiàn)
新學知識點即學生近期新學的內(nèi)容。學生每次順序做題結束后,都在新學習表中將做題所屬節(jié)id 進行更新。出這部分題時,先查詢學生近期所學內(nèi)容,再在題庫中篩選出本節(jié)相關題目,將已確定的個性錯題和共性錯題過濾掉后,按照順序練習出題規(guī)則進行出題。
最后把10 道個性錯題,10 道共性錯題,10 道新學內(nèi)容題目合并,將順序打亂,顯示出來。
在分析個性錯題過程中,記錄個體錯題次數(shù)最多的知識點,再到視頻表中查詢該tag_id 所對應的視頻路徑path,將此id 視頻顯示在首頁,推薦學生進行學習。
C 語言個性化學習系統(tǒng)可以分析學生學習情況,有針對性的為學生推送的個性化學習資源,能夠滿足個人的學習需求,學生使用本系統(tǒng)之后對C 語言的學習興趣和學習效果得到了很大提升;教師通過本系統(tǒng)查看學生共性錯題和個性錯題,能夠掌握學生的整體學習情況并及時對教學內(nèi)容做調(diào)整,教學效果有了明顯提升。