李佳宏,劉嘉敏,常 燕,曹洪相,郭 濤
(沈陽工業大學 信息科學與工程學院 遼寧 沈陽 110870)
SPOC(Small Private Online Course),即小規模私人在線課程,是指將 MOOC 本地化為供在校學生學習的課程模式[1]。其中MOOC是指通過網絡技術將課堂教學、學習體驗、師生互動等環節完整的在線實現,形成一種更加交互、基于群體行為的學習模式,它功能多地是面相“外行學習”者的,知識含量和嚴謹程度達不到大學水平課程的要求[2]。在這種情況下,相對于MOOC的對外,SPOC的對內更具有促進大學教學改革的作用,能夠帶來的一種新的教學方式。SPOC因其“小”的特點,能夠產生更為靈活而有效的學習效果[3]。
利用SPOC實現混合教學模式,學生可以很方便地在討論組里提問和交流,具有很強的互動性。教師可以更方便地布置課后習題和作業,并且能夠及時得到作業成績信息,從而獲得相對即時的教學效果反饋,打破了傳統教學方式中受到的時間和空間的限制,使教學變得更加靈活[4]。關于SPOC的經典教學案例就是哈佛大學的SPOC實驗、加州大學伯克利分校的SPOC試驗及推廣以及“科羅拉多州立大學—全球校園”的微型SPOC實驗等,另外國內多所高校也陸續采用SPOC的方式來輔助教學。比如浙江大學計算機科學與技術學院、清華MBA SPOC課堂、天津大學等多所高校都在勇于創新,突破保守的傳統教學模式,利用SPOC來參與輔助教學[5]。
為此我們應用Java Web技術開發了一套基于SPOC模式的計算機專業課程學習系統。該系統設計的主要目的在于為學生提供一種更高效便捷的復習途徑,為老師提供一種能夠更加及時了解學生學習情況的工具。同時本系統采用云平臺的技術手段,為此基于SPOC模式的計算機專業課程學習系統實施的高效性、安全性提供了保障。
采用了B/S三層架構技術,B/S結構即瀏覽器和服務器結構,用戶的工作界面主要是通過WWW瀏覽器實現的,只有極少部分的事務邏輯在前端(Browser)實現的,主要事務邏輯都是在服務器端(Server)實現的,從而形成了所謂的三層3-tier結構。這種模式統一了客戶端,用戶機器上只需要安裝一個瀏覽器,大大簡化了客戶端的電腦負荷,減輕了系統維護與升級的成本和工作量,同時這種結構下系統的功能實現主要集中在服務器端,簡化了系統的開發、維護和使用。
在服務器方面采用了阿里云服務器,這樣系統穩定性較高。因為阿里云提供一定流量的DDOS防護,系統安全性較好。而且阿里云提供國內眾多節點區域以及海外服務器,能夠保證用戶瀏覽器訪問速度快。
在業務開發中,系統采用了傳統的Java Web技術,應用了傳統的Java Web開發框架—Spring MVC + MyBatis+MySQL架構。其核心思想采用了MVC的典型軟件設計思想。MVC的具體模式是:頁面(View)會將參數傳遞到控制層(Controller),然后控制層將請求分發到業務層(Service),然后業務層再調用相應的持久層(Dao)來進行數據的持久化操作。在服務器端使用該框架一定程度上降低了系統各部分的耦合性,使項目開發過程更加安全,同時也使項目開發過程更加便捷[6]。采用Spring MVC框架能夠更好地管理代碼,方便開發者后期對系統進行功能修改以及日常維護。采用MySQL關系型數據庫,能夠承受高并發量的數據訪問,支持多線程,能夠充分利用CPU的資源,擴展性好。
該系統主要分為學生端和教師端,其中學生端主要包括在線答題和收藏到錯題本等四個功能模塊,教師端主要包括學生信息管理和題庫管理和查看實時反饋信息三個功能模塊。系統功能結構圖如圖1所示。

圖1 系統功能結構圖
本系統設計的主要目的是通過在線答題來的方式來幫助學生更好的理解課堂講授的知識。因此,在線答題是該系統的主要功能。學生可以根據所學科目選擇相應課程進行在線答題的操作,如圖2所示。

圖2 課程選擇界面
答題完畢后,系統會將學生的答題情況提交到后臺進行數據處理,通過查詢數據庫中的試卷表對學生給出的答案和試卷的正確答案進行對比從而得出結果,對試卷的每一道題進行審核之后得出學生的成績,并通過前端頁面反饋給學生,能夠當即看到答題的反饋結果,獲得相對實時的反饋。并且每道題目下方都會有查看題目解析的按鈕,學生可以根據自身情況進行更有針對性的學習。
錯題本功能是對學生在線答題提供的一個輔助功能。錯題本功能包括練習錯題和刪除錯題兩部分。它能幫助學生及時發現自己還未正確理解和完全掌握的知識點,及時發現知識點的漏洞,從而能夠更有效,更加具有針對性的進行復習,對相對薄弱的知識點多加練習,使其對知識點的掌握更加全面,避免在學習過程中產生自己難以察覺的知識點漏洞,從而對以后的深入學習產生消極影響。
根據課程不同,每門學科的授課教師對試題也都有著不同的要求,題庫管理模塊能夠方便、快捷和高效地為教師提供自主出題的功能,教師可任意添加新題冊,修改和刪除題冊。此外系統還提供學生、教師、課程等信息管理功能。
頁面是系統對用戶最直接的展現,頁面交互設計的優劣直接影響用戶對系統的使用體驗。頁面設計沿用了當今最流行的扁平化頁面設計風格,圖3所示的登錄界面就很好地展現了扁平化風格頁面的UI效果。在實現過程中主要使用了Bootstrap和JQuery開源的前端庫。Bootstrap是一個開源的前端UI庫,簡單易用,擴展性良好,它對扁平化的頁面風格提供了良好的支持,大大提高了前端頁面的開發效率。同時,Bootstrap能夠很好的解決不同瀏覽器之間的兼容問題。

圖3 登錄界面
在線答題本系統的核心功能,其具體展現形式可分為學生端的在線答題(圖4)和教師端的試題管理(圖5)兩部分。

圖4 在線答題界面

圖5 試題管理界面
系統中使用Ajax瀏覽器端網頁開發技術,通過異步請求方式實現了頁面局部刷新的效果,提高了用戶體驗。主要是通過Ajax模擬傳統意義上的HTTP請求方式,以異步的方式向后端Controller發送HTTP請求,Controller通過調用一系列業務代碼進行數據的查詢和處理,最后將結果再次通過Controller以響應的方式返回給前端頁面。在這一系列操作中,不存在頁面的跳轉,因此能夠更好的提高用戶的使用體驗。
本文中以試題解析部分為例進行具體描述。系統首先獲取試題解析按鈕中對應的試題id信息,然后通過Ajax將其通過異步請求的方式發送給系統后端的Controller控制層,Controller控制層根據拿到的試題id到數據庫中進行查詢,將查詢到的試題解析的數據再次Controller控制層返回給前端并由前端將數據完整、清晰的展示給用戶。
該系統設計的主要目的之一就是加強學生和教師之間的課下交流,因此,本系統也致力于設計出能向教師實時反饋學生學習情況的功能。通過用戶的反饋信息,該系統擬優化學生答題信息實時反饋形式,達到更加直觀地展現學生答題情況。ECharts是一款由百度前端技術部開發的,基于JavaScript的前端數據可視化圖表庫,提供直觀,生動,可交互,可個性化定制的數據可視化圖表組件。為了實現直觀的數據展示,本系統在后期產品迭代過程中擬使用百度開源的ECharts前端數據可視化技術,來實現學生答題信息的數據可視化展示。該前端數據可視化圖表庫,依賴少,功能強大,使用簡單,便于開發和維護,是實現前端數據可視化很好的一種選擇。
本系統的設計主要解決了傳統課堂教學當中受到的時間和空間上的限制。它結合SPOC的在線教學模式,為實現混合教學模式提供了一種可能。
采用在線答題的形式,使學生能夠及時了解自己對所學知識的掌握程度,從而更加有針對性的進行學習,使學習過程高效便捷,一定程度上提高了學生的學習效率。此外,該系統也為教師提供了一種能夠及時了解學生整體學習情況的途徑,根據得到的學生整體學習情況的反饋,及時進行教學內容和教學進度的調整,一定程度上起到了強化課堂教學的作用。
同時,該學習系統具有很強的學科適應性,事實上它并不只是適用于計算機專業課程的學習,對其他專業也都具有良好的適用性,幾乎能夠配合任何學科的教學使用,符合如今多數教學者和學習者的教學以及學習需求,具備較高的實用性以及良好的發展前景。