摘 要:在我國,針對程序設計的課程在高校教學中占有重要地位,它不僅是計算機專業(yè)中最為關鍵的課程,也是其他專業(yè)的必修課程,因此足見其在高校教育中的重要地位。這類課程的學習效果與實踐有著緊密的聯(lián)系,但是這個目標的實現(xiàn)仍然存在許多困難,因為其在發(fā)展過程中出現(xiàn)很多難題。為了應對這些問題,本文在.NET的基礎上實現(xiàn)了與其在線評測有關的分布式程序設計的教學平臺。介紹了高校程序設計教學現(xiàn)狀,解讀了高校程序設計教學實驗平臺的設計,闡述了高校程序設計教學實驗平臺的應用。
關鍵詞:在線評測;程序設計教學;教學實驗平臺
中圖分類號:TP311.1-4;G652
高校方面的程序設計類課程主要包括數(shù)據(jù)結(jié)構和算法設計等,它們都有一個較為重要的特點:側(cè)重于實踐。學生如果想要很好地掌握程序設計技能,就要在大量設計實踐中實現(xiàn)目的。當前,我國針對這類課程所采用的教學模式通常是課堂與實驗相結(jié)合。如此的課程布局雖然具有流程簡單的特點,但是仍然出現(xiàn)一些需要解決的問題,會影響到教學質(zhì)量的提高。
1 高校程序設計教學現(xiàn)狀
當前,高校針對程序設計的教學都是沿用教學和實驗相結(jié)合的方式,將兩者進行分離教學。如此的做法使得教學流程的操作變得簡便,教師能夠?qū)虒W進度實現(xiàn)較為良好地掌控,但是教學持續(xù)的過程中也會出現(xiàn)一些不可忽視的問題[1]。
在現(xiàn)實教學中,教師的教學側(cè)重點在于理論知識的傳授,對于實驗部分則采取輕視的態(tài)度;如此的教學方式也使得教學的內(nèi)容無法和實踐進行有效的連接,使得學生的學習內(nèi)容無法和實踐的內(nèi)容達到同步;學生在設計出程序之后,針對性的評測出現(xiàn)了空白的狀況。教師在教學的過程中已經(jīng)花費了較多的時間,因此再難抽出多余時間對作業(yè)進行仔細地檢閱,針對學生的作弊行為也很難做出相應的監(jiān)察,這種情況導致教學結(jié)果難以得到客觀的評測結(jié)果[2]。
2 高校程序設計教學實驗平臺設計
2.1 系統(tǒng)架構
(1)客戶端與服務器。這兩個部分的程序的主要作用是用來輔助用戶之間的交互,并針對這個過程中產(chǎn)生的交互信息進行整理。這個部分在架構方面通常是B/S和C/S兩種架構,其中的C/S的使用需要在客戶安裝具有特殊功能的程序之后才能夠?qū)崿F(xiàn),而B/S則是較為普及的,因為當前的操作終端幾乎都有自備的瀏覽器,可以輕松地實現(xiàn)瀏覽功能,使得用戶的使用效率得到提高,節(jié)省了學習用時[3]。
就目前而言,許多在線評測系統(tǒng)建立的平臺基礎都是LAMP,常用的PC背景系統(tǒng)是Windows,而Linux需要付出較高時間和安排成本,因此將IIS、Access/SQL Server以及.NET CLR相結(jié)合,設計出相應的平臺[4]。
(2)評測模塊。這個部分的功能是實現(xiàn)對使用者上交的代碼和程序代碼進行解析,在參照預設的數(shù)據(jù)信息和限定因素實現(xiàn)評測的過程。這類模塊和服務器之間的信息往來一般是利用Web Service或者Socket等。其中的Socket在進行信息傳遞的過程中不必打開固定的端口,在某些方面也表現(xiàn)出較為良好的性能,因此信息傳遞方式可以選用Web Service。
在線評系統(tǒng)的開發(fā)是C++輔助之下完成的,使其能夠在Linux的條件下實現(xiàn)運作。但是C++只能夠在既定的平臺中發(fā)揮作用,因此不能夠在Windows環(huán)境中實現(xiàn)處理的目的,為了應對這種狀況,必須將平臺定位為.NET,以確保評測模塊研發(fā)工作的順利進行。
(3)數(shù)據(jù)庫。它的功能是用來保存在線評測系統(tǒng)產(chǎn)生的各種數(shù)據(jù)信息。在進行設計的過程中,需要考慮那些沒有對在線評測系統(tǒng)有過了解的高校的情況,對于它們在數(shù)據(jù)庫上的布局工作就顯得較為復雜。在應用.NET實現(xiàn)系統(tǒng)研發(fā)的過程中,想要實現(xiàn)對數(shù)據(jù)庫的瀏覽只能在服務器的輔助之下完成。針對數(shù)據(jù)庫和服務之間的連接媒介是微軟企業(yè)庫,針對SQL語句的差別進行針對性的應對,讓不同種類的數(shù)據(jù)庫實現(xiàn)緊密連接[5]。
目前,很多個體以及高校的電腦設備并沒有配備數(shù)據(jù)庫,當能夠使用的數(shù)據(jù)只有一個的時候,則各種類型的測試都會變得較為棘手。而Windows自備了JET Database Engine,處于32位的環(huán)境中就可以在無任何外在支持的情況下實現(xiàn)對Access 數(shù)據(jù)庫的進入,加之Access的保養(yǎng)工作較為便捷,所以其具有較強的應用性,如果能夠兼容SQL Server,那么就會為未來系統(tǒng)的升級工作以及平臺的轉(zhuǎn)移預留下伏筆[6]。
2.2 分布式系統(tǒng)設計
當系統(tǒng)需要處理的業(yè)務較少的情況下,可以將程序服務器、評測模塊以及數(shù)據(jù)庫安置到單一的服務器里,如此的安排使得用戶可以登錄程序服務器進入系統(tǒng),程序服務器則會與數(shù)據(jù)庫之間產(chǎn)生聯(lián)通,評測模塊則在程序服務器的輔助下實現(xiàn)對評測表格的獲取,然后通過一系列環(huán)節(jié)將終極結(jié)果回流到程序服務器之中。
在進行評測的過程中,可能會出現(xiàn)多臺服務器同時發(fā)出請求的狀況,為了防止出現(xiàn)擁堵的問題,因此應該將服務項目分布在不同的服務器之中,實現(xiàn)負荷的分擔,在一些特殊的情況還可以增加服務器的數(shù)量。
針對這個部分的模塊,當用戶發(fā)出過多指令的時候,如果評測模塊不能夠?qū)崿F(xiàn)較多的指令處理,就會導致評測延遲的出現(xiàn)。模塊對程序的調(diào)動是通過Web Service實現(xiàn)的,因此模塊的指令只需要能夠通過網(wǎng)絡進行傳送即可發(fā)揮作用。
3 高校程序設計教學實驗平臺應用
實驗平臺最為重要的方面就是其現(xiàn)實應用,使其能夠在教學和實驗中發(fā)揮出應有的效能。因此在賦予其功能的過程中,不但要注意評測方面,還要關注其功能的拓展,實現(xiàn)使用者對于教學題目的修改增刪。
功能模塊的內(nèi)容為評測、聯(lián)系、比試以及使用者面板等四個部分。針對其進行應用,教師可以布置題目,為考試的隨時布置提供便利性,也可以準備與實驗相關的內(nèi)容。從學生角度而言,他僅需要通過一臺PC就可以實現(xiàn)對平臺資源的使用,并且突破了時空的限制。
系統(tǒng)的管理權限的界定較為重要。系統(tǒng)管理員擁有固定的管理頁面,可以實現(xiàn)對系統(tǒng)的全方位管控,比如題目、考試、用戶準入等。而且這個頁面實現(xiàn)了分類管理的功能,能夠?qū)ο到y(tǒng)中的存在差別性的各個課程實施有效的管理,并將試題也按照一定的規(guī)范進行存放。
4 結(jié)束語
當前,我國高校的程序設計類課程呈現(xiàn)出較多的新情況,使得教學工作的發(fā)展受到了阻礙,為了應對這些問題,提高教學效率,開發(fā)新的模式成為十分必要的舉措。在這種情況下,教師如果不能針對各種情況做出相應的調(diào)整,便難以適應教學的現(xiàn)實要求。
參考文獻:
[1]楊春明,杜炯,王磊.分布式程序設計實驗平臺的設計與應用[J].實驗室研究與探索,2012(08):141-145.
[2]尤楓,史晟輝,趙瑞蓮.編譯程序在線評測系統(tǒng)的實現(xiàn)[J].實驗室研究與探索,2010(12):156-158.
[3]何欽銘,顏暉,蘇小紅,葉乃文.“程序設計基礎”課程教學實施方案[J].中國大學教學,2010(05):118-119.
[4]耿國華.程序設計能力培養(yǎng)模式的探索與實踐[J].中國大學教學,2009(03):116-118.
[5]萬臣,謝芳,胡泉.計算機專業(yè)程序設計課程群的建設與研究[J].合肥工業(yè)大學學報(社會科學版),2009(01):112-114.
[6]謝迪,李文新,郭煒.“百練”:一個程序設計技能訓練與水平測試平臺[J].合肥工業(yè)大學學報(社會科學版),2008(04):178-179.
作者簡介:孫偉(1980.12-),男,山東新泰人,系副主任,講師,碩士,研究方向:計算機。
作者單位:盤錦職業(yè)技術學院,遼寧盤錦 124000