一、開發(fā)背景
在技工類學校中,學生管理人員在每年的迎新工作過程中會遇到一個難題,即新生班級的編班問題。以筆者任職的學校為例,本校是廣東省省屬的高級技工學校,學生分為中級和高級兩個層次,每個層次的專業(yè)都設(shè)置了十多個。近幾年國家對技工教育尤為重視,學校處于良性發(fā)展階段,招生形勢良好,每年新生人數(shù)在2000人以上,同時每個專業(yè)的人數(shù)大多都超過100人,編班成為迎新工作中一項重要任務(wù)。
本校的學生信息管理系統(tǒng)早已上線,但并沒有編班的功能模塊,因此往年的編班工作都是通過人工來完成。學生管理人員用Excel表格記錄新生注冊報到信息,然后通過手工將同一專業(yè)的新生分為若干個班,再將每個班的學生資料錄入學生管理系統(tǒng)。
人工編班的方式不但工作量大,效率極低,還不可避免地存在一定的人為因素,而這些人為因素極有可能造成一些不公平的情況,增加了學生管理的難度,給學生管理科和班主任的工作都帶來不小的麻煩。
從以上的實際情況出發(fā),筆者考慮開發(fā)一個實用性強的編班程序替代人工方式,幫助學校學生管理科解決新生編班的難題。
二、編班的原則
按照學生管理科新生編班的基本要求,編班遵循下列的原則:
編班總原則為隨機性原則,盡量避免人為因素的干擾;
同一專業(yè)的每班人數(shù)基本均等;
同一專業(yè)的各班男女生比例基本均等;
同一專業(yè)同一生源地的學生平均分配到各班。
三、程序設(shè)計的基本思路和功能的實現(xiàn)
1.程序?qū)崿F(xiàn)目標
為了使得分班更具合理性,根據(jù)前述的分班原則,編班程序應(yīng)實現(xiàn)以下目標:
各班人數(shù)大致均等;
同專業(yè)各班男女生人數(shù)比例相近;
避免同一地區(qū)學生扎堆。
2.前期準備以及數(shù)據(jù)表的使用
由于學校的學生信息管理系統(tǒng)的學生數(shù)據(jù)庫已建成,為了實現(xiàn)新生編班功能,在數(shù)據(jù)庫中新建名為“新生注冊信息表”的基本表,新生注冊時所有的新生信息通過電子表格導入該表中,與此同時,程序還需用到“新生注冊信息表”中的兩個數(shù)據(jù)表:“班級表”和“學籍表”。
3.設(shè)計思路
一是確定數(shù)據(jù)表的關(guān)鍵字段。基于編班原則和通過對“新生注冊信息表”數(shù)據(jù)的分析,確定該表中的“專業(yè)”“性別”“生源地”為三個關(guān)鍵字段。
二是數(shù)據(jù)表排序。用SQL語句將“新生注冊信息表”中同一專業(yè)的所有學生以“性別”和“生源地”排序,可以使記錄集的男、女生記錄分開,同一生源地的記錄聚集。
三是確定班級數(shù)。確定每個專業(yè)的班級數(shù)是編班的首要任務(wù),一般情況下以40~60人編成一個班為宜。假設(shè)某專業(yè)共有新生120人,可考慮編成2個班,如有140人,則應(yīng)編成3個班,但也有些專業(yè)由于自身的特殊性,班級人數(shù)可能少于40人。筆者通過與學生管理科的溝通,確定此項工作由學生管理人員根據(jù)具體情況人工選擇決定,因此考慮在程序中設(shè)置下拉列表進行選擇。
四是提取記錄。根據(jù)確定的班級數(shù),通過程序語句對排序后的記錄集進行跳躍式提取,以2012級新生的高級計算機網(wǎng)絡(luò)專業(yè)為例,假設(shè)分為3個班,將“新生注冊信息表”按照上述的查詢排序方法排序之后的記錄集從首條記錄開始取得序號為1,4,7,10,…的記錄,使這批新生加入2012級計算機網(wǎng)絡(luò)應(yīng)用1班,再取得序號為2,5,8,11,…的記錄,加入2012級計算機網(wǎng)絡(luò)應(yīng)用2班。同理,再取得序號為3,6,9,12,…的記錄,加入2012級計算機網(wǎng)絡(luò)應(yīng)用3班。提取的記錄可以分別寫入臨時數(shù)據(jù)表,也可以直接寫入“學生信息管理系統(tǒng)”的班級表和學籍表,編班完成。
4.開發(fā)工具
學校的學生信息管理系統(tǒng)為B/S架構(gòu),后臺數(shù)據(jù)庫采用SQL Server,該程序采用較為流行且功能強大的PHP作為開發(fā)工具。運行平臺為WindowsServer2003 企業(yè)版。
5.功能實現(xiàn)過程
(1)新生記錄排序。程序需要對“新生注冊信息表”進行查詢,檢索出同一專業(yè)的全部新生記錄作為一個記錄集,假設(shè)當前需要編班的專業(yè)為“計算機網(wǎng)絡(luò)應(yīng)用”,在PHP程序中嵌入以下的SQL語句:
“Select * from新生注冊信息表where專業(yè)like ‘計算機網(wǎng)絡(luò)應(yīng)用’and 級別like‘高級’order by性別,生源地ASC”;
以上的語句執(zhí)行后可以檢索出“新生注冊信息表”中“專業(yè)”為“計算機網(wǎng)絡(luò)應(yīng)用”的所有記錄,并且以性別為第一關(guān)鍵字,生源地為第二關(guān)鍵字排序。
圖1為執(zhí)行此語句后的查詢結(jié)果的記錄集示意圖。
由圖1可以看出同性別并且同生源地的記錄是聚集的。
(2)確定班級數(shù)。此項工作由學生管理人員根據(jù)具體情況人工選擇決定,在程序中設(shè)置下拉列表進行選擇。
(3)提取記錄,寫入數(shù)據(jù)表。通過兩層循環(huán)跳躍式提取記錄,以下為提取記錄的示意程序:
for($i=1; $i<=$k; $i++)
{
for($j=$i-1;$j<$db.length;$j=$j+$k)
{
//此處略去提取記錄集$db的記錄并用Insert語句寫入班級表和學籍表的語句。
}
}
程序段的注釋:
$db:查詢某個專業(yè)并以“性別”和“生源地”排序后的記錄集;
$k:班數(shù),由人工確定,通過網(wǎng)頁傳遞;
$i:外循環(huán)(班數(shù)循環(huán))變量,表示班數(shù),循環(huán)終值為$k;
$j:內(nèi)循環(huán)(新生記錄循環(huán))變量,表示$db記錄集的序號。
6.補充說明
根據(jù)以往的迎新經(jīng)驗,編班工作完成之后,必然會出現(xiàn)遲來的新生到校報到,部分學生由于各種原因需要更改專業(yè)、調(diào)動班級等情況,程序還應(yīng)增加“加入班級”和“調(diào)動班級(包括跨專業(yè)調(diào)班)”等功能,由于設(shè)計思路和功能實現(xiàn)比較簡單,在此就不再贅述。
四、結(jié)論
編班程序完成之后,學生管理人員通過程序可以輕點鼠標快速完成對新生各專業(yè)的分班工作,省去了人工分班的較大工作量,消除了對公平、平均原則不利的人為因素,同時也為學生管理科和班主任的后續(xù)工作提供了極大的便利。
靈活運用知識解決現(xiàn)實問題是技工學校計算機教師的必備素質(zhì)。我們上課時將知識、思維方法及技術(shù)傳授給學生,但不能僅僅把思維停留在課堂上,而是應(yīng)該積極地發(fā)現(xiàn)問題,將知識靈活運用在日常的工作生活中,主動解決問題。不斷創(chuàng)新、開拓、進取,不斷地充實自己,為國家培養(yǎng)更多更優(yōu)秀的技工人才。
(作者單位:廣東省機械高級技工學校)