作者:Svan.聲明:未經(jīng)本人允許,不得對(duì)本文中的任何內(nèi)容、數(shù)據(jù)進(jìn)行轉(zhuǎn)載,本人(作者)已經(jīng)對(duì)本文內(nèi)容申請(qǐng)撰寫了論文,隨意轉(zhuǎn)載使用本文任何內(nèi)容的,要追究其法律責(zé)任!??!
成績(jī)分析報(bào)告
一、數(shù)據(jù)來源
過程數(shù)據(jù)來源于兩個(gè)班級(jí)(大約60人)《C語言程序設(shè)計(jì)》課程期間學(xué)習(xí)過程的真實(shí)記錄,主要是對(duì)平時(shí)作業(yè)以及測(cè)驗(yàn)的收集;問卷數(shù)據(jù)來源于整個(gè)年級(jí)選該課程的同學(xué)(大約170人)的匿名回答,包括同學(xué)對(duì)該課程的看法以及學(xué)習(xí)該課程的一些建議。
1.1 問卷數(shù)據(jù)分析
1.1.1數(shù)據(jù)讀取
創(chuàng)建數(shù)據(jù)讀取的功能函數(shù),通過對(duì).csv文件相對(duì)路徑的鎖定讀取對(duì)應(yīng)檢索欄名稱的數(shù)據(jù)列表,并儲(chǔ)存。返回提前創(chuàng)建好的字典里,每個(gè)欄目分別對(duì)應(yīng)所需要的數(shù)據(jù),下圖為.csv文件的示例數(shù)據(jù)集:
1.1.2 matplotlib.pyplot畫圖
讀取存入字典中對(duì)應(yīng)鍵的數(shù)據(jù),創(chuàng)建一個(gè)空的列表,將其存入新建的列表中,設(shè)置字體屬性參數(shù),通過計(jì)算畫出每部分所占餅圖的比例大小,使用label進(jìn)行標(biāo)注。如下圖所示:
通過上圖發(fā)現(xiàn),進(jìn)入大學(xué)前,有超過一半的人很少有機(jī)會(huì)接觸計(jì)算機(jī),只有不到10%的人有過編程的經(jīng)歷。對(duì)學(xué)習(xí)過編程的同學(xué)進(jìn)行調(diào)查,發(fā)現(xiàn)學(xué)習(xí)C語言編程用時(shí)2-10小時(shí)的學(xué)生占主要部分,而學(xué)習(xí)地點(diǎn)主要集中在寢室,且大多借鑒別人的成果,這反映出目前的教育方式仍需改進(jìn),學(xué)生并沒有學(xué)到真正的知識(shí),沒有理解編程原理,導(dǎo)致近一半的同學(xué)集中在考試前幾天去復(fù)習(xí),考的成績(jī)以及整體及格率的下降。
1.2 創(chuàng)建詞云
讀取文本數(shù)據(jù),讀取“9.對(duì)于課程教學(xué),您認(rèn)為哪些地方需要改進(jìn)”這一欄數(shù)據(jù),存入新創(chuàng)建的字符串內(nèi),設(shè)置存入字符串的參數(shù),設(shè)置詞云展示的背景屬性,將生成的詞云圖保存指定的路徑下,最終展示詞云。如下圖所示:
通過詞云圖可以發(fā)現(xiàn),大多數(shù)同學(xué)對(duì)目前的教學(xué)方式并沒有任何建議,表示很認(rèn)同當(dāng)前的教學(xué)方式,有小部分人提出老師需要講習(xí)題,還有人表示編程有難度。可以看出目前的教學(xué)方式仍有改進(jìn)的地方。
二、過程數(shù)據(jù)分析
2.1 數(shù)據(jù)讀取
2.2 數(shù)據(jù)存儲(chǔ)
創(chuàng)建一個(gè)名為stu的學(xué)生類,可以存儲(chǔ)學(xué)生如下數(shù)據(jù):編程題通過率[0]、編程題平均用時(shí)、編程題平均提交次數(shù)[1]、代碼的圈復(fù)雜度[2]、第一次測(cè)驗(yàn)成績(jī)、第二次測(cè)驗(yàn)成績(jī)、期末成績(jī)。讀取存儲(chǔ)數(shù)據(jù)的csv文件,將收集的數(shù)據(jù)分別讀入,以字典類型存儲(chǔ),字典的鍵為學(xué)生的名字,值為一個(gè)學(xué)生類,存儲(chǔ)了該學(xué)生的相關(guān)數(shù)據(jù)。最后把所用到的數(shù)據(jù)存入到DataFrame類型的表格中,方便對(duì)其進(jìn)行處理。
2.3 平均值計(jì)算
平均值的計(jì)算依靠在學(xué)生類中添加一個(gè)迭代次數(shù)的紀(jì)錄,第一次記錄該學(xué)生,則此次輸入的值就為相應(yīng)的值,第n次記錄該學(xué)生(n>1),記第n次記錄的平均值為avg(n),平均值可由如下算式得:
為了節(jié)省存儲(chǔ)空間,不把每次的值都記錄下來,只記錄上一次的平均值和迭代的次數(shù),可對(duì)式子做如下變化:
2.4異常值處理
異常值的來源主要是兩個(gè)方面,第一個(gè)方面就是部分?jǐn)?shù)據(jù)來源于問卷,此類數(shù)據(jù)的可信度不高,可能存在與主觀不符的回答,因此在本次預(yù)測(cè)中,只會(huì)選取部分有意義的數(shù)據(jù)作為參考分析。另一方面是系統(tǒng)所收集的課堂記錄以及平時(shí)作業(yè)的情況,會(huì)出現(xiàn)一些記錄與事實(shí)明顯不符的值,例如學(xué)生的答題時(shí)長(zhǎng),是否在此時(shí)間內(nèi)答題,或是打開答題系統(tǒng)未答題但系統(tǒng)依然在計(jì)時(shí),這樣記錄的時(shí)間并不是實(shí)際答題時(shí)間,通常數(shù)值會(huì)比較大,基于這一特點(diǎn),我們將這類數(shù)據(jù)予以刪除。
2.5 相關(guān)度作圖分析
對(duì)于過程數(shù)據(jù)的各參量,分別研究其與期末成績(jī)的相關(guān)性,相關(guān)度的圖中,橫坐標(biāo)為成績(jī),分為五個(gè)等級(jí)(差[0-30]、不及格[30-60]、及格[60-70]、中等[70-80]、良好[80-90]、優(yōu)秀[90-100])該分析會(huì)結(jié)合相關(guān)實(shí)際,對(duì)于各類因素詳細(xì)說明:
2.5.1 圈復(fù)雜度
圈復(fù)雜度可以用來衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度,其數(shù)量上表現(xiàn)為獨(dú)立路徑的條數(shù),也可理解為覆蓋所有的可能情況最少使用的測(cè)試用例個(gè)數(shù)。一般來講,復(fù)雜度大于10的代碼出錯(cuò)率很高。
圈復(fù)雜度 | 代碼狀況 | 可測(cè)性 | 維護(hù)成本 |
---|---|---|---|
1-10 | 清晰 | 高 | 低 |
10-20 | 復(fù)雜 | 中 | 中 |
20-30 | 非常復(fù)雜 | 低 | 高 |
30 | 不可讀 | 不可測(cè) | 非常高 |
觀察圖2,可以看出圈復(fù)雜度多數(shù)分布在3到5之間,對(duì)于初學(xué)者不會(huì)寫出過于復(fù)雜的代碼也吻合該結(jié)果。通過定義結(jié)合實(shí)際,該參量事實(shí)上是學(xué)生對(duì)題目的各種情況的綜合考慮情況,比如對(duì)于這樣一個(gè)題目:給定三角形的三條邊,求出該三角形的面積(三邊求面積公式:p=(a+b+c)/2 S=sqrt[p(p-a)(p-b)(p-c)](海倫公式))。因?yàn)闇y(cè)試的數(shù)據(jù)輸入的三個(gè)數(shù)據(jù)是滿足三角形的三條邊構(gòu)成定理的,因此不對(duì)輸入做出相關(guān)判斷,直接運(yùn)算得出來的結(jié)果是與答案吻合的,但是對(duì)于部分編程和數(shù)學(xué)思維稍強(qiáng)的學(xué)生,可能就會(huì)加入對(duì)是否滿足三角形構(gòu)成的判斷,或者輸入是否為正的判斷,加的這些判斷就會(huì)使圈復(fù)雜度變大,對(duì)于初學(xué)者而言,更加慎密的思維無疑是好的,因此該參量值偏大的同學(xué)的最終成績(jī)會(huì)偏好一些。看向圖表1中的另一個(gè)極端,代碼復(fù)雜度過低,很多學(xué)生的成績(jī)都是很差的,不是因?yàn)閮?yōu)化好,而是對(duì)于代碼不知如何構(gòu)思,從而寫出的代碼量小,效果未完全達(dá)到。
2.5.2 編程題提交次數(shù)
該參量與成績(jī)的相關(guān)度是比較好的,多次提交可以看出在學(xué)習(xí)過程中花更多時(shí)間,研究問題更為透徹。最終的成績(jī)也與理想接近。
2.5.3 代碼通過率
該參量可理解為編程題的滿分率,數(shù)據(jù)來源是學(xué)生提交代碼之后會(huì)系統(tǒng)自動(dòng)批改的結(jié)果,可以看出多數(shù)成績(jī)較差的同分布在通過率的兩個(gè)極端,出現(xiàn)這種數(shù)據(jù)的原因是作業(yè)會(huì)有拷貝抄襲的情況出現(xiàn),為了證實(shí)這一結(jié)論我會(huì)在下文做出解釋,轉(zhuǎn)過來看通過率在0.8到0.9這段區(qū)間的數(shù)據(jù),就顯得符合正常,通過率高成績(jī)偏好,反之偏差。
接下來說明一下抄襲作業(yè)的情況:
這里選取了提交次數(shù)和通過率的關(guān)系圖,兩個(gè)參數(shù)結(jié)合分析,一般得到完全通過都會(huì)提交多次,除非是題目過于簡(jiǎn)單,排除這一占比較小的可能,對(duì)其分析,可以發(fā)現(xiàn)有一批學(xué)生的通過率很高的同時(shí)提交次數(shù)也只有2次及以下,這種情況極大可能就是代碼拷貝的現(xiàn)象。
2.5.4 編程做題時(shí)長(zhǎng)
這個(gè)參量與提交次數(shù)很類似,但有一點(diǎn)不同的是該參量有不理想的值,因?yàn)樽鲱}時(shí)長(zhǎng)是打開答題界面的時(shí)間,因?yàn)槠綍r(shí)題目不會(huì)有這方面的限制,那么就會(huì)出現(xiàn)打開界面忘記關(guān)閉而且沒有做題的現(xiàn)象,或者是多人共同做題參看一個(gè)人的題目,也會(huì)影響該參量綜合看來大于1500的數(shù)據(jù)可以作廢。500-1500之間的數(shù)據(jù)有參考價(jià)值,小于500的部分,也可以進(jìn)一步分析拷貝代碼的情況,類似上文做出如下分析圖:
可以看到圖中有部分學(xué)生編程用時(shí)較短但卻有較高的通過率,大概率即為拷貝。因此在教學(xué)活動(dòng)的安排中應(yīng)改進(jìn)方案避免此現(xiàn)象。
2.5.5 兩次測(cè)試成績(jī)
兩次測(cè)試放在一塊分析,可以看出兩次測(cè)試與最終成績(jī)的相關(guān)度很相似,而且平時(shí)成績(jī)較好期末成績(jī)也會(huì)不錯(cuò),因?yàn)閮纱纹綍r(shí)測(cè)試與期末考試一樣,都是獨(dú)立完成,作弊與抄襲因素可忽略,擬合效果最佳,可綜合前部分因素預(yù)測(cè)期末成績(jī)。
- [0]:編程題通過率,提交的代碼在系統(tǒng)自動(dòng)批改之后是否全對(duì)會(huì)給出是否通過的記錄,通過為1,沒通過為0,通過對(duì)所有記錄的加和求平均值可以得出系統(tǒng)批改的編程題正確率。
- [1]:編程題平均提交次數(shù),做平時(shí)作業(yè)題過程中,提交之后系統(tǒng)會(huì)立馬給出自動(dòng)批改的結(jié)果,同學(xué)可以通過此結(jié)果評(píng)判后決定是否對(duì)代碼進(jìn)行改進(jìn)而重復(fù)提交新的代碼,每一題都會(huì)有該記錄,把所有題的次數(shù)加起來平均就為該參量。
- [2]:軟件源碼某部分的圈復(fù)雜度就是這部分代碼中線性無關(guān)路徑的數(shù)量。對(duì)于此處分析,考慮到學(xué)生均為初學(xué)者,可將此參量理解為代碼中的判斷分支數(shù)量,這方面看來,此參量不一定是越小越好。
三、結(jié)論
從數(shù)據(jù)分析上來看,主要表現(xiàn)在以下幾點(diǎn):
- 學(xué)生背景差異顯著:
- 報(bào)告指出,超過一半的學(xué)生在進(jìn)入大學(xué)前很少有機(jī)會(huì)接觸計(jì)算機(jī),不到10%的學(xué)生有過編程經(jīng)歷。這表明學(xué)生在入學(xué)時(shí)對(duì)計(jì)算機(jī)和編程的了解存在顯著差異。
- 學(xué)習(xí)習(xí)慣和環(huán)境影響學(xué)習(xí)效果:
- 學(xué)習(xí)C語言編程的學(xué)生中,大多數(shù)用時(shí)在2-10小時(shí)之間,且學(xué)習(xí)地點(diǎn)主要集中在寢室。這可能意味著學(xué)生缺乏有效的學(xué)習(xí)環(huán)境和資源,依賴于他人的成果,這可能影響了他們的學(xué)習(xí)效果和編程原理的理解。
- 學(xué)習(xí)方式需改進(jìn):
- 報(bào)告中通過詞云圖分析發(fā)現(xiàn),大多數(shù)學(xué)生對(duì)當(dāng)前的教學(xué)方式表示認(rèn)同,但也有小部分人提出需要老師講解習(xí)題,以及反映編程難度較大。這表明教學(xué)方式仍有改進(jìn)的空間,以更好地滿足學(xué)生的學(xué)習(xí)需求。
- 學(xué)生學(xué)習(xí)投入與成績(jī)正相關(guān):
- 報(bào)告分析了編程題提交次數(shù)與成績(jī)的關(guān)系,發(fā)現(xiàn)多次提交的學(xué)生在學(xué)習(xí)過程中投入更多時(shí)間,研究問題更為透徹,這與最終成績(jī)的提高正相關(guān)。
- 作業(yè)抄襲現(xiàn)象存在:
- 通過分析提交次數(shù)與通過率的關(guān)系,報(bào)告指出存在一部分學(xué)生通過率很高但提交次數(shù)很少,這可能表明有抄襲作業(yè)的現(xiàn)象。
- 編程做題時(shí)長(zhǎng)與成績(jī)相關(guān):
- 報(bào)告中提到,編程做題時(shí)長(zhǎng)與提交次數(shù)類似,但存在不理想的值,如長(zhǎng)時(shí)間未關(guān)閉答題界面的情況。在合理的時(shí)間范圍內(nèi),編程用時(shí)與成績(jī)存在一定的相關(guān)性。
- 測(cè)試成績(jī)與期末成績(jī)相關(guān):
- 第一次和第二次測(cè)試成績(jī)與期末成績(jī)的相關(guān)度較高,表明平時(shí)成績(jī)較好的學(xué)生期末成績(jī)也傾向于較好,這可能是因?yàn)檫@些測(cè)試都是在獨(dú)立完成的情況下進(jìn)行的,排除了作弊和抄襲的影響。
- 圈復(fù)雜度與學(xué)生思維慎密性相關(guān):
- 報(bào)告分析了圈復(fù)雜度與成績(jī)的關(guān)系,發(fā)現(xiàn)圈復(fù)雜度較高的學(xué)生往往成績(jī)較好,這可能是因?yàn)樗麄儗?duì)題目的各種情況考慮得更為全面。
綜上所述,報(bào)告通過對(duì)學(xué)生的學(xué)習(xí)過程數(shù)據(jù)和問卷數(shù)據(jù)的分析,揭示了學(xué)生的學(xué)習(xí)背景、學(xué)習(xí)習(xí)慣、作業(yè)提交行為和測(cè)試成績(jī)等多個(gè)方面與最終成績(jī)的關(guān)系,為教學(xué)改進(jìn)提供了數(shù)據(jù)支持。
同時(shí),報(bào)告也指出了教學(xué)過程中存在的問題,如學(xué)生學(xué)習(xí)環(huán)境的不足、作業(yè)抄襲現(xiàn)象等,這些問題需要通過教學(xué)改革和支持措施來解決。
希望你喜歡這個(gè)項(xiàng)目,并在構(gòu)建過程中找到樂趣!如果你有任何問題或需要幫助,歡迎在評(píng)論區(qū)交流。
作者:Svan.
注意:本博文為不得在未經(jīng)本人同意進(jìn)行轉(zhuǎn)載或者二次創(chuàng)作,違者必究!??!
博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實(shí)物的友友請(qǐng)關(guān)注、點(diǎn)贊,私信吧!