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