宋安玲,任喜偉,姚 斌
1(西安交通大學城市學院,西安 710018)
2(陜西科技大學 電子信息與人工智能學院,西安 710021)
在我國高等教育招生培養模式的不斷改革下,“大類招生,分流培養”培養模式上世紀80年代后期由北京大學首次提出[1,2].此后,在清華大學、復旦大學、北京師范大學等高校相繼試點,并逐步推廣至全國其他高等院校[3,4].“大類招生,分流培養”創新培養模式主要分為3 個階段.第一階段為高考考生填報專業大類志愿階段,考生填寫完畢后,各高校按照專業大類目錄錄取考生;第二階段為高校按專業大類通識培養階段,該培養階段一般為大學前兩年;第三階段為學生專業大類分流階段,本階段按照學生具體專業(非專業大類)志愿,將學生分流至具體專業深入學習專業課[5,6].本文主要探討第三階段中專業大類分流過程的算法設計和信息系統建設問題,為高校“大類招生,分流培養”模式的進一步推廣提供技術支持.
專業大類分流一般在大學二年級結束前進行,專業大類分流過程有3 個步驟.第一步,學生填報所在大類中的具體專業志愿,填報志愿只針對專業大類中的專業進行填報,不能填報專業大類之外的專業.學生可根據自身對專業的喜好,以及學分績點等因素參考填報.第二步,學校(院)根據辦學實際情況,確定具體專業人數,對專業大類進行專業分流.第三步,學校(院)根據大類分流結果,確定專業班人數,對專業進行分班[7,8].
目前,專業大類分流過程很多高校還采用人工分流的方式,其弊端是分流工作量大、投入老師多、花費時間長、且容易出錯.將專業大類分流工作信息化,借助信息系統讓計算機程序幫我們完成繁瑣復雜的專業大類分流過程,可降低工作量、節約成本、節省時間、且不易出錯[9-11].據調查,已有一步部分高校借助計算機技術,進行專業大類分流,并取得了一定效果,但是他們對大類分流過程智能化算法的研究還不夠深入,簡捷性,可操作性不夠[12,13].接下來,本文就如何實現高校專業大類分流信息系統展開研究,設計大類分流算法和專業分班算法,開發信息系統界面,并將系統應用于高校專業大類分流過程,總結系統應用成效.
專業大類分流信息系統按照模塊化設計思想,設計3 個模塊,分別是志愿填報模塊,大類分流模塊,專業分班模塊.
志愿填報模塊是專業大類分流信息系統的基礎模塊,主要完成數據收集功能.系統必須將各專業大類包含的所有專業全部展現在頁面上,供學生選取填報,填報過程中學生不能隨意涂改專業代碼或名稱.學生需要填寫的內容有:專業大類、學生學號、學生班級、學生姓名、第一志愿、第二志愿、第三志愿、第四志愿、第五志愿、提交密碼等信息.學生填報完畢并提交后,學生的志愿填報信息就會保存在數據庫服務器中,為大類分流模塊和專業分班模塊提供數據.
大類分流模塊是專業大類分流信息系統的核心模塊,主要完成學生所填志愿的大類分流任務.大類分流算法主要有兩種,一種是分數優先錄取算法,即最先錄取分數在前的學生志愿,按照學生所填志愿先后依次錄取,稱為學生分數優先錄取算法;另一種志愿優先錄取算法,即最先錄取第一志愿的學生,并參照分數排序先后依次錄取,稱為學生志愿優先錄取算法.本文重點介紹第二種大類分流算法.
學生志愿優先錄取算法描述如下:
Step 1.把學生填報的志愿數據依次按照學生志愿和學分績點兩個維度進行降序排序;
Step 2.首先找到第N個學生第一志愿,并設置預錄取,只記錄在程序控件中,不保存至數據庫,N從1 開始;
Step 3.該志愿人數加1;
Step 4.判斷該志愿預錄取是否已錄完,如果未錄完,則獲取下一個學生記錄;否則獲取某一專業的超額錄取志愿集合;
Step 5.獲取第M個超額志愿學生記錄,M從1 開始,獲取該學生下一志愿;
Step 6.判斷該志愿是否已經錄滿,如果已錄滿,則獲取該學生的下一志愿;否則記錄該學生錄取情況;
Step 7.超額志愿集合減1;
Step 8.判斷超額志愿是否已經分配完畢,如果未分配完畢,則學生記錄加1;否則,進入下一步;
Step 9.在控件中獲取分流結果,并逐一保存至數據庫,結束程序.
志愿優先錄取算法流程圖如圖1所示.
專業分班模塊是專業大類分流信息系統的輔助模塊,主要完成學生大類分流后的輔助分班工作.專業分班錄取算法主要有兩種,一種是按照分數由高到低依次劃段,直線分班錄取,稱為直線樣式專業分班算法;另一種是按照分數由高到低間隔劃段分班,間隔劃分時采用先順后逆曲線分班錄取,稱為曲線樣式專業分班算法,或采用一直順向的折線專業分班錄取算法.本文重點介紹曲線樣式專業分班錄取算法.
曲線樣式專業分班算法描述如下:
Step 1.選某一專業,將本專業所有學生按照學分績點由高到低降序排序,并選擇班數方向正向操作;
Step 2.獲取第N個學生記錄,N從1 開始;
Step 3.判斷班人數是否已經超出,如果已超出,則結束分班;否則進入下一步;
Step 4.判斷班個數是否已經超出,如果已超出,則班數方向反方向操作,班個數清零,班人數加1,學生記錄數減1;否則進入下一步;
Step 5.保存分班結果,班個數加1;
Step 6.判斷分班是否結束,如果未結束,則獲取下一個學生記錄;否則結束程序.
曲線樣式專業分班算法流程圖如圖2所示.

圖1 學生志愿優先大類分流算法流程圖
本文以陜西科技大學電氣與信息工程學院16 級專業大類分流為例,按照專業大類分流工作實際需求和上述算法設計,開發專業大類分流信息系統界面,并結合本學院2018年專業分流具體工作,說明專業大類分流信息系統應用過程.

圖2 曲線樣式專業分班算法流程圖
2016年該校按照3 個專業大類招生,3 個專業大類分別為計算機類、電子信息類和電氣類.計算機類包含3 個專業,分別是網絡工程、計算機科學與技術、物聯網工程;電子信息類包含4 個專業,分別是電子科學與技術、光電信息科學與工程、電子信息工程、電子信息科學與技術;電氣類包含3 個專業,分別是電氣工程及其自動化、測控技術與儀器、自動化.學生經過“大類招生,分流培養”培養模式第二階段,即大一和大二兩年的專業大類通識教育后,學院共有758 名學生參與專業大類分流.
基于.NET 框架,編寫C#程序設計代碼,訪問MS SQL Server 數據庫,開發專業大類分流信息系統[14-16].該系統采用學生志愿優先錄取大類分流算法和曲線樣式專業分班算法,系統使用操作流程分3 個步驟.
(1)學生根據自身學習情況和未來規劃,選擇填報志愿.填報志愿界面如圖3所示.

圖3 信息系統填報志愿界面
(2)按照學生志愿優先錄取算法,對每一個專業大類的填報志愿進行分流.大類分流界面如圖4所示.

圖4 信息系統大類分流界面
(3)按照曲線樣式分班錄取算法,對每一個分流后的專業進行分班.專業分班界面如圖5所示.

圖5 信息系統專業分班界面
按照上述系統應用過程,操作專業大類分流信息系統軟件,最終獲得該學院2018年專業大類分流結果.具體的大類分流和專業分班結果如表1所示.
陜西科技大學電氣與信息工程學院2017年和2018年專業大類分流工作均借助專業大類分流信息系統,降低了工作量、節約了時間、減少了失誤.系統應用主要成效體現在:

表1 專業大類分流結果統計表
(1)參與專業大類分流工作老師人數減少,由原來的5、6 位老師降低到1、2 位,不再需要填寫大量的表格,記錄學生填寫志愿的情況,分析大類分流的結果,統計專業分班的結果.
(2)節約了的大量時間,原來需要2 至3 周才能完成的工作,現在最多需要3 天就可以完成,工作時間大大縮短,提高了工作效率.
(3)減少了工作失誤,原來人工操作,任務量大,還容易出錯,現在只需輕輕一點,計算機程序會自動完成,做到零失誤.
專業大類分流工作是我國高校教學管理過程中一項重要的工作.本文分析了我國高校專業大類分流過程,設計志愿填報模塊、大類分流模塊和專業分班模塊,并主要設計了學生志愿優先錄取大類分流算法和曲線樣式專業分班算法.最后,將開發的專業大類分流信息系統應用于陜西科技大學電氣與信息工程學院專業大類分流過程,應用效果表明該信息系統大大提高了實際工作效率,為高校專業大類分流過程提供了技術支持,為推動全國大類分流過程信息化發揮了作用.