999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python數據分析的 模塊課選課分班軟件的設計與實現

2021-09-24 04:02:08唐新彩胡燕
中國信息技術教育 2021年18期
關鍵詞:數據處理

唐新彩 胡燕

摘要:為充分培養學生的信息素養,提升高中生的信息意識,多方面地培養學生學習興趣,高中學校普遍會給學生開設校本課或者創新選修模塊課。課程涉及多個科目和全年級的學生,學生按興趣選擇對應課程,但人工處理學生的選課結果耗時耗力,本文給出基于Python的第三方數據分析處理庫pandas的模塊課分班軟件,大大提高了分班效率,幫助教師快速獲取學生的選課結果,充分體現了信息技術的優勢。

關鍵詞:數據處理;python;pandas;DataFrame;選課分班

中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2021)18-0070-04

● 問題描述

筆者所在學校的每位教師都會根據自己的特長及學校規劃、學生學習興趣,針對高二學生開設創新選修模塊課程,課程科目每年都會更新,主要是科學與技術學科類的拓展課程。歷年開設過的課程如下頁表所示。

高二全年級學生根據自己的學習能力和興趣特長從中選擇一門課程拓展學習。技術科組教師需要根據學生的選課志愿、教室情況以及課程硬件設備(如平板電腦數量)情況來分配學生的選課結果。手動人工處理這些數據耗時耗力,給技術科組教師帶來了較大負擔。而Python在數據處理和分析方面有很大的優勢,筆者發現基于Python 的pandas庫編寫的模塊課選課分班軟件,可以幫助教師快速獲取選課結果,在解放教師的同時也體現了信息技術的魅力。

● 準備工作

編寫軟件前需先采集好學生的選課志愿以及搭建好編寫軟件的平臺。

(1)首先確定好開設的課程和對應的授課教師、授課地點、授課人數、可容納學生數等信息,把這些信息放在“課程設置.xlsx”文件中,作為選課分班的一個輸入文件。目前用到的測試文件有兩組,其中一組的“課程設置.xlsx”的內容如下頁圖1所示,列表項“可容納學生數”的值“平均數”是指當同一上課時間內的學生數減去60后剛好能被3整除,那這個平均數就真的是平均數,但若不能整除,若余下1個,就放在課程1中,若余下2個,就放在課程1和課程2中。

(2)采集數據。將以上第一步信息制作成選課單,然后在問卷星上以調查問卷的形式,讓學生填寫,填好后下載結果,并存放在“高二模塊課選課結果.xlsx”文件中。這也作為選課分班的一個輸入文件。部分選課結果展示如下頁圖2所示。

(3)根據學校安排的課表把班級的上課時間制作成Excel文件,文件名為“上課時間.xlsx”。這也作為選課分班的一個輸入文件,如下頁圖3所示。

(4)軟硬件環境如下。

①建議使用安裝了win7或以上操作系統的計算機。

②安裝了pandas庫的Python編輯器:PyCharm、IDLE、Spyder (anaconda3)、海龜編輯器等。筆者使用的是Spyder(anaconda3)。

(5)將“課程設置.xlsx”“高二模塊課選課結果.xlsx”“上課時間.xlsx”三個輸入文件與實現分班的Python軟件包放在同一個目錄下。

● 軟件設計分析

1.選課分班原則

①以學生角度。優先按第一志愿分班,再按第二志愿分班。如果第一志愿和第二志愿的課程人數都已經達到了可容納學生數,再被隨機分配到其他班。

②以課程角度。優先從第一志愿的學生中選擇,再從第二志愿的學生中選擇。如果第一志愿和第二志愿的學生加起來還不夠課程的可容納學生數,則隨機選擇學生。

2.軟件數據結構分析

①最主要的數據結構是DataFrame,不管是讀入三個輸入文件后的信息的保存,還是分班中途數據的存儲和分班后結果的存放都存放在DataFrame中,再把DataFrame數據保存到excel文件中。

②字符串、列表、集合:集合用來去重,列表用得非常多,很多信息都是放在列表中的,如由字符串組成的列表、由DataFrame組成的列表等。

● 軟件設計具體操作

第一步,讀入“課程設置.xlsx”“高二模塊課選課結果.xlsx”“上課時間.xlsx”三個文件。

第二步,將同一上課時間的學生信息存儲在一個DataFrame中,如7~10班為周一第六節課,就把這四個班級的學生信息存儲在同一個DataFrame中,并標注上課時間。接著,將整理好的多個DataFrame放在一個列表中,如文件中高二一周一共有5次課,那么列表就由5個DataFrame構成。

第三步,學生分班,即對每個DataFrame中的學生,根據課程數及課程的可容納學生數將學生分班,如有5個課程及每個課程可容納的學生數,就把DataFrame中的學生分成5個小的DataFrame,且對應5個班及5個課程,并滿足每個課程的可容納學生數。分班是整個程序實現最重要的一步,分班的具體算法如下:

①把每個課程第一志愿的學生和第二志愿的學生都選出來(選出來的是一個DataFrame),分別放在不同的列表中。

②根據每個課程第一志愿的學生數和第二志愿的學生數與可容納學生數的關系,把課程序號存放在不同的列表中。

列表dadao1:存放第一志愿就達到可容納學生數的課程序號。

列表weidadao1:存放第一志愿未達到可容納學生數的課程序號。

列表dadao2:存放第一志愿加上第二志愿達到可容納學生數的課程序號。

列表weidadao2:存放第一志愿加上第二志愿仍未達到可容納學生數的課程序號。

③優先為列表dadao1中的課程選擇學生。因為這些課程第一志愿學生數多于可容納學生數,就從這些第一志愿的學生中選出可容納學生數的學生量(優先不選擇第二志愿的課程序號在列表weidadao2中的學生)。

④為列表weidadao1中的課程選擇學生。如果第一志愿加上第二志愿的學生數仍小于可容納學生數,則直接把第二志愿的學生加到第一志愿的學生中就行;如果第一志愿加上第二志愿的學生超過了可容納學生數,則要從第二志愿中隨機選擇(可容納學生數-第一志愿學生數)學生個數出來,完成此課程的學生分配。

⑤為未達到可容納學生數的課程在剩下的未分班的學生中隨機分配需要的學生。剩下的未分班學生可能是未填選課單的學生,也可能是第一志愿或第二志愿的學生數量很多的課程中的學生,還可能是在前面隨機選擇時沒有被第一志愿或第二志愿的課程選中的學生。

⑥在經過前幾步分班后的結果中加入各個學生的選課結果和上課地點,并把同一上課時間的分好班的所有學生放到一個DataFrame中。

⑦把分班結果寫入Excel文件,并分兩個文件存儲:一個是給教師的文件——把學生按上課時間分成多個工作表存放;另一個是給學生的文件——把所有學生放在一個工作表中,按班級和課程排序,便于通知學生。

⑧把編寫好的Python文件打包成可執行文件.exe文件。這樣以后每次需要分班時,只要計算機上有該.exe文件和3個準備好的輸入文件,不管計算機上有沒有安裝Python編輯器,都可以運行,實現分班的功能,脫離了對平臺的依賴。

● 軟件的主要代碼

圖4為選擇出每門課程第一志愿的學生和第二志愿的學生的代碼。

圖5是優先給列表dadao1中的課程分配學生的代碼。

圖6是列表weidadao1中的課程選擇學生的代碼。

圖7是還沒選好學生的課程隨機分配學生的代碼。

● 軟件測試運行

首先,把“課程設置.xlsx”“高二模塊課選課結果.xlsx”“上課時間.xlsx”作為輸入文件輸入,運行.exe可執行文件,得到的結果存放在output文件夾(在運行軟件之前,在軟件的同一目錄下先新建一個output文件夾)中,其中包含以下兩個輸出文件:output.xlsx和zongbiao.xlsx。

①output.xlsx:按上課時間把學生分放在多個工作表中。

②zongbiao.xlsx:把所有學生都放在一個工作表中,按班級和選課結果排序,以便通知學生。

接著,查看結果,每個課程都是優先選擇了第一志愿的學生,再去選擇第二志愿的學生,如果還不滿足可容納學生數,最后才選擇其他的學生。另外,學生的選課結果也可以做修改,將學生數減少到200多人,還是19個班,學生只有4個課程可以選擇,上課時間還是沒變,運行軟件,讓其實現分班,然后查看分班結果,同樣也達到了理想的效果。

總之,筆者所在學校通過多組數據測試分析軟件的可行性,均達到了滿意的效果,既盡可能地滿足了學生對第一志愿課程學習的需要,又解放了教師。

參考文獻:

王曉華.基于Python的程序評分軟件的設計與實現[J].技術與應用,2021(02):77-79.

猜你喜歡
數據處理
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
ILWT-EEMD數據處理的ELM滾動軸承故障診斷
水泵技術(2021年3期)2021-08-14 02:09:20
MATLAB在化學工程與工藝實驗數據處理中的應用
Matlab在密立根油滴實驗數據處理中的應用
基于POS AV610與PPP的車輛導航數據處理
依托陸態網的GNSS遠程數據處理軟件開發
主站蜘蛛池模板: 国产一线在线| 先锋资源久久| 欧美日韩成人在线观看| 青青青草国产| 中文字幕欧美日韩高清| 视频二区中文无码| 国产三级毛片| 欧美综合中文字幕久久| 中字无码av在线电影| 久久久精品无码一二三区| 日韩欧美中文| 欧美色视频日本| 国产h视频免费观看| 久久这里只有精品23| 亚洲天堂免费| 日韩精品中文字幕一区三区| 亚洲午夜综合网| 免费人成在线观看成人片| 国产欧美专区在线观看| 九色91在线视频| 波多野结衣一区二区三区四区| 一级黄色片网| 日韩欧美网址| av在线人妻熟妇| 国产日本欧美在线观看| 亚洲欧美日韩动漫| 国产成人高清亚洲一区久久| 波多野结衣亚洲一区| 欧美色99| 国产特一级毛片| 九月婷婷亚洲综合在线| 青草视频免费在线观看| 欧美精品一区在线看| 波多野结衣中文字幕一区二区| 亚洲中文字幕日产无码2021| 老司机午夜精品视频你懂的| 国产噜噜噜视频在线观看 | 国产成人精品免费av| 国产免费久久精品99re不卡| 午夜福利无码一区二区| 国产女同自拍视频| 亚洲精品第一页不卡| 国产成人亚洲日韩欧美电影| 在线观看无码av免费不卡网站| 亚洲成人高清无码| 无码有码中文字幕| 国产欧美日韩综合在线第一| 亚洲色图综合在线| 呦视频在线一区二区三区| 欧美中文字幕无线码视频| 人妻丰满熟妇av五码区| 一级高清毛片免费a级高清毛片| 免费在线成人网| 久久精品aⅴ无码中文字幕 | 日韩欧美网址| 日韩第一页在线| 露脸国产精品自产在线播| 国产无人区一区二区三区| 久久精品电影| 五月天久久综合国产一区二区| 久久伊伊香蕉综合精品| 一级毛片在线播放| 久久综合亚洲鲁鲁九月天| 国产精品一区不卡| 福利一区三区| 在线国产欧美| 国产成人成人一区二区| 国产精品亚洲一区二区三区z | 亚洲美女一区二区三区| 欧美日韩导航| 亚洲无码熟妇人妻AV在线| 国产精品美乳| 成人国产免费| 26uuu国产精品视频| 欧美精品一区二区三区中文字幕| 国产屁屁影院| 亚洲色图欧美视频| 国产97视频在线| 99er精品视频| 一区二区三区在线不卡免费| 午夜福利亚洲精品| 青青草原国产精品啪啪视频|