劉洋 李偉
1.天津市大學(xué)軟件學(xué)院信息化部;2.天津市第二新華中學(xué)科信處
隨著義務(wù)教育免試入學(xué)政策在各地的逐步深入推進(jìn),如何公平合理的分配教育資源成為各級(jí)管理部門面對(duì)的重要課題。本文介紹了計(jì)算機(jī)志愿填報(bào)及隨機(jī)派位系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn)過程,并對(duì)系統(tǒng)的安全性、可靠性和隨機(jī)算法的選擇做出闡述。
義務(wù)教育免試就近入學(xué),是全面深化教育綜合改革的一項(xiàng)重大舉措,涉及千家萬戶,關(guān)系教育公平,社會(huì)關(guān)注度很高。2015年天津市率先推進(jìn)“小升初”招生政策調(diào)整工作,并逐步推廣至“幼升小”和幼兒園入學(xué),“就近”“免試”“隨機(jī)派位”成為了這一過程中的關(guān)鍵詞。通過采用計(jì)算機(jī)隨機(jī)派位方式,由計(jì)算機(jī)按照既定算法隨機(jī)從報(bào)名學(xué)生中抽取錄取名單,可以避免人為因素的干擾,達(dá)到“公平、公正、公開”的目的。
本文介紹了適用于不同招生類型和教育階段的招生派位系統(tǒng)分析與設(shè)計(jì)過程,詳細(xì)表述了系統(tǒng)的具體實(shí)現(xiàn)方式及所采用的主要技術(shù)路線。
1.1.1 報(bào)名流程
根據(jù)招生類型的不同,報(bào)名流程可分為家長(zhǎng)基于互聯(lián)網(wǎng)自主填報(bào)和學(xué)校協(xié)助填報(bào)兩種方式。前者適合幼兒園或小學(xué)等無學(xué)籍學(xué)生入學(xué)報(bào)名,后者適合“小升初”等已有學(xué)籍學(xué)生。兩種方式的具體區(qū)別如表1所示:
表1 填報(bào)方式優(yōu)缺點(diǎn)對(duì)比Tab.1 Comparison of advantages and disadvantages of reporting methods
1.1.2 派位流程
(1)數(shù)據(jù)匯總:教育管理部門對(duì)待派位學(xué)生進(jìn)行資格審查,確定待派位學(xué)生數(shù)據(jù)。
(2)數(shù)據(jù)封存:在公證機(jī)關(guān)監(jiān)督下,對(duì)派位數(shù)據(jù)和設(shè)備進(jìn)行封存,確保數(shù)據(jù)不被篡改。
(3)隨機(jī)派位:在公證機(jī)關(guān)和教育管理部門監(jiān)督下,工作人員現(xiàn)場(chǎng)宣讀派位規(guī)則,抽取隨機(jī)種子并輸入派位系統(tǒng),啟動(dòng)派位程序輸出派位結(jié)果。最后打印和導(dǎo)出數(shù)據(jù),經(jīng)公證處確認(rèn)后上網(wǎng)公示。
根據(jù)流程可將系統(tǒng)劃分為報(bào)名和派位兩個(gè)子系統(tǒng)。報(bào)名子系統(tǒng)從網(wǎng)絡(luò)安全角度考慮可采用B/S和C/S 混合架構(gòu)設(shè)計(jì)。派位子系統(tǒng)通常設(shè)計(jì)為單機(jī)版程序。
系統(tǒng)主要功能模塊介紹如下:
(1)學(xué)生管理模塊:完成待派位學(xué)生的基礎(chǔ)信息和志愿信息管理,以及錄取結(jié)果的查詢。根據(jù)招生類型的不同,記錄不同類型的學(xué)生(如幼兒園幼兒、中小學(xué)生等)基礎(chǔ)信息、志愿信息和錄取結(jié)果,并提供數(shù)據(jù)的查詢、增加、修改、刪除操作。如果待派位學(xué)生已存在學(xué)籍信息,支持從學(xué)籍庫中導(dǎo)入學(xué)生基礎(chǔ)信息。
(2)學(xué)校管理模塊:維護(hù)參加派位工作的學(xué)?;A(chǔ)信息,主要包括學(xué)校名稱、代碼、所屬片區(qū)和具體招生計(jì)劃。
(3)統(tǒng)計(jì)分析模塊:對(duì)過程中產(chǎn)生的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。包括志愿填報(bào)情況統(tǒng)計(jì)、學(xué)校錄取結(jié)果統(tǒng)計(jì)、錄取學(xué)生分?jǐn)?shù)段統(tǒng)計(jì)、未錄取學(xué)生分?jǐn)?shù)段統(tǒng)計(jì)等。
(4)用戶注冊(cè)和志愿填報(bào)模塊:支持用戶通過手機(jī)號(hào)或郵箱注冊(cè)賬號(hào),填報(bào)待派位學(xué)生基礎(chǔ)信息和志愿信息并完成必要的人員信息真實(shí)性驗(yàn)證。
(5)系統(tǒng)設(shè)置模塊:設(shè)置系統(tǒng)運(yùn)行的初始化數(shù)據(jù)和約束條件,如系統(tǒng)開放時(shí)間、登錄提示信息和角色權(quán)限管理等。
(6)派位模塊:支持待派位數(shù)據(jù)和招生計(jì)劃導(dǎo)入。完成待派位數(shù)據(jù)導(dǎo)入后,輸入隨機(jī)種子并啟動(dòng)派位過程。結(jié)束后可查詢并打印派位結(jié)果,同時(shí)支持結(jié)果導(dǎo)出。
系統(tǒng)內(nèi)置系統(tǒng)管理員、安全管理員和安全審計(jì)員角色,嚴(yán)格管理存在具有最高權(quán)限的超級(jí)管理員;用戶在系統(tǒng)中的具體權(quán)限由安全管理員授予;對(duì)招生系統(tǒng)的網(wǎng)絡(luò)安全,數(shù)據(jù)庫安全和抗攻擊的健壯性進(jìn)行針對(duì)性設(shè)計(jì);記錄關(guān)鍵操作日志。
此外在運(yùn)維方面確立運(yùn)維單位、教育管理機(jī)構(gòu)和公證處“三方分管”式的人員權(quán)限,明確劃分參與方職責(zé)。將系統(tǒng)管理權(quán)劃分給系統(tǒng)管理維護(hù)團(tuán)隊(duì)、安全管理團(tuán)隊(duì)和安全審計(jì)團(tuán)隊(duì),分別由運(yùn)維單位、教育管理機(jī)構(gòu)和公證處指派專人承擔(dān)。
可用性提倡以用戶為中心進(jìn)行軟件的設(shè)計(jì),是評(píng)估產(chǎn)品實(shí)際使用過程中的可用程度標(biāo)準(zhǔn),包括了產(chǎn)品使用過程中的效率和相應(yīng)的用戶體驗(yàn)[1]。針對(duì)本系統(tǒng)用戶主要是非計(jì)算機(jī)專業(yè)操作人員,需要在設(shè)計(jì)階段考慮終端界面能夠簡(jiǎn)單有效地進(jìn)行操作,在無需培訓(xùn)的情況下確保用戶能在特定的場(chǎng)景內(nèi)準(zhǔn)確高效的完成指定任務(wù)。
根據(jù)招生派位工作的具體流程和各模塊的設(shè)計(jì),系統(tǒng)實(shí)現(xiàn)為報(bào)名和派位兩個(gè)子系統(tǒng)。
子系統(tǒng)建立獨(dú)立的數(shù)據(jù)庫,子系統(tǒng)之間以及與外部系統(tǒng)(如學(xué)籍庫)之間通過離線數(shù)據(jù)進(jìn)行交互。
報(bào)名子系統(tǒng)通常為B/S架構(gòu),數(shù)據(jù)庫選用關(guān)系型數(shù)據(jù)庫,主要用來保存用戶的基礎(chǔ)數(shù)據(jù)和填報(bào)的志愿信息。
派位子系統(tǒng)為單機(jī)版程序,無需聯(lián)網(wǎng)運(yùn)行??紤]到需要存儲(chǔ)的數(shù)據(jù)量一般在10000條以內(nèi),數(shù)據(jù)庫可選用關(guān)系型數(shù)據(jù)庫或更簡(jiǎn)單的桌面版數(shù)據(jù)庫。安裝后數(shù)據(jù)庫無任何數(shù)據(jù),需在現(xiàn)場(chǎng)導(dǎo)入招生計(jì)劃和待派位學(xué)生數(shù)據(jù)。
報(bào)名過程可分為用戶注冊(cè)、填報(bào)志愿和錄取結(jié)果查詢幾個(gè)階段。為方便用戶注冊(cè)及填報(bào)信息,報(bào)名系統(tǒng)一般部署于互聯(lián)網(wǎng),通過公有云提供相應(yīng)服務(wù)。
在實(shí)際運(yùn)行過程中,由于用戶傾向于在首次開放時(shí)登錄,從而導(dǎo)致初始階段服務(wù)器和網(wǎng)絡(luò)的負(fù)載壓力巨大。對(duì)此在實(shí)際部署時(shí)使用基于彈性計(jì)算的云服務(wù)器根據(jù)業(yè)務(wù)需求和策略自動(dòng)調(diào)整計(jì)算資源。啟用負(fù)載均衡機(jī)制通過流量分發(fā)來提升對(duì)外服務(wù)能力,消除單點(diǎn)故障來提升可用性。數(shù)據(jù)庫方面通過使用在線數(shù)據(jù)庫實(shí)現(xiàn)穩(wěn)定可靠和彈性伸縮的服務(wù),并提供自動(dòng)化的容災(zāi)備份能力。
舉例來說,某計(jì)算機(jī)派位報(bào)名階段實(shí)際參與學(xué)生約5000人,系統(tǒng)報(bào)名開啟后,因用戶同時(shí)登錄系統(tǒng)進(jìn)行注冊(cè)填報(bào)并反復(fù)進(jìn)行頁面刷新,導(dǎo)致開始階段系統(tǒng)CPU占用率一直在50%左右,網(wǎng)絡(luò)流入帶寬100Mbps,數(shù)據(jù)包數(shù)超過每秒10000個(gè),新建連接數(shù)最高每秒240個(gè)。在此階段系統(tǒng)云服務(wù)器由預(yù)設(shè)的5臺(tái)自動(dòng)擴(kuò)展至15臺(tái),網(wǎng)絡(luò)帶寬擴(kuò)展至200Mbps,有效的支撐了本次報(bào)名。
派位子系統(tǒng)的核心功能為秉承隨機(jī)性原則,將填報(bào)志愿的學(xué)生隨機(jī)分配到滿足招生條件的學(xué)校中,主要流程可概括為導(dǎo)入待派位數(shù)據(jù)、執(zhí)行派位和導(dǎo)出結(jié)果。
系統(tǒng)啟動(dòng)后先導(dǎo)由報(bào)名子系統(tǒng)加密并導(dǎo)出離線數(shù)據(jù),一般選擇學(xué)生身份證號(hào)碼或?qū)W籍號(hào)為索引。之后執(zhí)行派位,首先讀取待派位學(xué)生數(shù)據(jù),以當(dāng)前系統(tǒng)時(shí)間為隨機(jī)種子,對(duì)讀取出的學(xué)生數(shù)據(jù)進(jìn)行一次隨機(jī)排序,確保每次系統(tǒng)啟動(dòng)后待派位數(shù)據(jù)項(xiàng)順序不同。之后根據(jù)操作人員輸入的隨機(jī)種子對(duì)該庫進(jìn)行隨機(jī)錄取派位。
為確保計(jì)算機(jī)隨機(jī)派位得到正確結(jié)果,需要認(rèn)清總體的實(shí)質(zhì),讓樣本盡量具有隨機(jī)性,減少樣本偏移。
(1)確定目標(biāo)總體:目標(biāo)總體指的是待派位學(xué)生的集合,實(shí)際情況中數(shù)量通常小于一萬條。
(2)確定抽樣單位:要抽取的對(duì)象類型為單個(gè)待派位學(xué)生。這些抽樣單位具有完全獨(dú)立,彼此間無一定的關(guān)聯(lián)性和排斥性[2]。
(3)確定抽樣空間:列出目標(biāo)總體范圍內(nèi)的所有抽樣單位,給每個(gè)抽樣單位編號(hào),這張表就被稱為抽樣空間。這里的抽樣空間即指數(shù)據(jù)庫中以關(guān)鍵字為索引的待派位學(xué)生表。
在計(jì)算機(jī)派位中通常使用的算法是“等距隨機(jī)抽樣算法”,該算法將總體各單位按一定標(biāo)志或次序排列成為一個(gè)列表,然后按相等的距離或間隔抽取樣本單位,具有原理簡(jiǎn)單,易于實(shí)現(xiàn),且結(jié)果也可通過手工驗(yàn)證正確性等特點(diǎn)[3]。但在實(shí)際應(yīng)用中,當(dāng)抽樣空間和抽取樣本數(shù)量固定時(shí),該算法完全依靠隨機(jī)產(chǎn)生的起點(diǎn)和間隔數(shù)來決定錄取人員,在特殊的情況下并不能完全保證所有的學(xué)生都具有相同機(jī)會(huì)。
通過確認(rèn)目標(biāo)總體和抽樣單位的特點(diǎn),對(duì)比“等距隨機(jī)抽樣算法”,本系統(tǒng)選擇“簡(jiǎn)單隨機(jī)抽樣算法”作為計(jì)算機(jī)派位的算法,從總體中不加任何分組、劃類、排隊(duì)等,完全隨機(jī)地抽取調(diào)查單位[2]。該算法在實(shí)際應(yīng)用一般應(yīng)用于樣本數(shù)量較少的情況,其原因是大規(guī)模的樣本編號(hào)存在困難,但在本系統(tǒng)中不存在此問題。此外對(duì)于派位結(jié)果相對(duì)于“等距隨機(jī)抽樣算法”難以回溯的問題,可通過加強(qiáng)線下環(huán)節(jié)監(jiān)督管理來解決。
隨機(jī)性驗(yàn)證通常使用概率統(tǒng)計(jì)的方法考察被檢測(cè)序列是否滿足隨機(jī)序列的某些特征以判定其是否隨機(jī),驗(yàn)證程序可使用P-Value法衡量序列的隨機(jī)性,首先根據(jù)隨機(jī)種子生成多個(gè)隨機(jī)數(shù)序列,每一數(shù)列包含若干個(gè)隨機(jī)生成數(shù),之后依次對(duì)每一個(gè)序列進(jìn)行驗(yàn)證。
對(duì)程序的性能進(jìn)行考察主要是分析算法的時(shí)間復(fù)雜度和空間復(fù)雜度,以考察算法的時(shí)間和空間效率。一般情況下鑒于運(yùn)算空間較為充足,故將算法的時(shí)間復(fù)雜度作為分析的重點(diǎn)[4]。
采用簡(jiǎn)單隨機(jī)抽樣算法作為隨機(jī)數(shù)生成器后,可設(shè)待派位學(xué)生總數(shù)為n(通常情況下小于10000), 志愿數(shù)量為m(通常情況下小于10),參與派位的學(xué)校數(shù)量為s(通常小于100)。
空間復(fù)雜度方面,派位程序在啟動(dòng)時(shí)讀取所有待派位學(xué)生數(shù)據(jù)到內(nèi)存中,該數(shù)據(jù)數(shù)量即為n。之后根據(jù)學(xué)校數(shù)量s和志愿數(shù)量m的組合對(duì)此數(shù)據(jù)表進(jìn)行篩選查詢,過程中產(chǎn)生的臨時(shí)數(shù)據(jù)均是此數(shù)據(jù)集合的子集,因此可以確定算法的空間復(fù)雜度為O(N)。
對(duì)于時(shí)間復(fù)雜度來說,程序進(jìn)行初始化和輸出結(jié)果時(shí)所需的時(shí)間與待派位學(xué)生數(shù)據(jù)量n呈線性關(guān)系,記為O(n)。執(zhí)行派位時(shí),需首先依次循環(huán)志愿數(shù)量,之后在每個(gè)志愿內(nèi)循環(huán)所有學(xué)校,并在每個(gè)學(xué)校的待派位學(xué)生中根據(jù)隨機(jī)算法抽取若干個(gè)隨機(jī)編號(hào)(數(shù)量不大于n),根據(jù)參考文檔該隨機(jī)算法時(shí)間復(fù)雜度為O(1),因此執(zhí)行派位的時(shí)間復(fù)雜度為O(m)*O(s)。綜上可以得到派位程序的總體時(shí)間復(fù)雜度為平方級(jí)別O(N2),但由于實(shí)際過程中m和s的取值都是有限變量,因此總體執(zhí)行時(shí)間是可估算可控制的。
本文實(shí)現(xiàn)的計(jì)算機(jī)派位系統(tǒng)能夠根據(jù)不同類型的招生政策進(jìn)行規(guī)則調(diào)整,在可擴(kuò)展的同時(shí)保障隨機(jī)派位功能的穩(wěn)定性,確保招生派位工作的順利開展。
通過實(shí)行全流程監(jiān)督下的計(jì)算機(jī)網(wǎng)上招生和隨機(jī)派位,能夠體現(xiàn)義務(wù)教育階段的均衡性和公平性原則,實(shí)現(xiàn)不同類型生源的合理分配,將之前對(duì)應(yīng)試成績(jī)的單方面競(jìng)爭(zhēng)轉(zhuǎn)化為對(duì)學(xué)校綜合管理能力和教育質(zhì)量的競(jìng)爭(zhēng),有利于調(diào)動(dòng)各類型學(xué)校辦學(xué)的積極性,提高義務(wù)教育階段不同層次學(xué)校的整體水平,深化教育內(nèi)涵,為全面推進(jìn)素質(zhì)教育創(chuàng)造更加有利的條件。
引用
[1] 陳玲.MOOC平臺(tái)學(xué)習(xí)分析與評(píng)價(jià)的可用性研究[D].杭州:浙江師范大學(xué),2019.
[2]國(guó)家統(tǒng)計(jì)局.簡(jiǎn)單隨機(jī)抽樣[DB/OL].[2003-08-07].http://www.stats.gov.cn/tjzs/tjcd/200308/t20030807_25331.html.
[3] 方群.等距隨機(jī)抽樣算法在招生電腦派位中的應(yīng)用[J].安徽師范大學(xué)學(xué)報(bào)(自然科學(xué)報(bào)),2002(03):224-228.
[4] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2007.