楊曉燕
摘要:新工程教育要求教育工作者要面向新需求,面向新技術,通過校企合作,充分利用教學新理念、新模式提升學生就業技術水平和社會適應能力,滿足新經濟對高校學生的新要求。本文討論基于虛擬化和云端技術的在線編程技術,通過在線編程,實現編程教學過程的參與、分項、整合和互動,同時充分利用云端資源,增強學生編程興趣和編程能力。
關鍵詞:虛擬化;云端技術;在線編程技術
中圖分類號:G434 文獻標識碼:A 論文編號:1674-2117(2018)08-0079-04
“互聯網+”戰略就是利用互聯網平臺,利用信息通信技術,把互聯網和包括傳統行業在內的各行各業結合起來,在新的領域創造一種新的生態。比如,傳統集市+互聯網有了淘寶,傳統百貨賣場+互聯網有了京東,傳統金融+互聯網有了支付寶,傳統交通+互聯網有了滴滴打車。所以我們相信,傳統的教育模式與理念+互聯網+云平臺,將會為程序開發類實訓教學創新帶來新的機遇和挑戰。
云平臺可以實現實驗環境云端部署,客戶端無需安裝和維護;實驗云端運行,實驗結果客戶端實時顯示,學生和教師基于云端可以實現教學過程一體化互動,特別是在各大OJ、PTA及ACM,在Java在線編程和評判存在很大局限的情況下,研究基于Java的云平臺更為有意義,尤其是為復雜的企業級開發開辟了新的技術路線。
“互聯網+”混合教改新理念
移動網絡現在已經是無處不在,各學校的Wi-Fi建設也成為校園建設的標配。“互聯網+”課堂意即讓互聯網進課堂,鼓勵學生帶手機與筆記本電腦來上課,允許學生在課堂上通過網絡、云平臺和教師實時互動和探索,學會與手機和網絡在課堂上“和平共處、取長補短”。網絡給課堂教學帶來了巨大的沖擊與挑戰,參與式、混合式學習已經滲透到校園與課堂。而如何將基于課堂的系統學習與基于網絡的混合式、分享式、參與式學習有機結合起來,是教師面臨的全新挑戰。王世剛指出,創客教育與新建構主義教學法不謀而合,創客們堅守創新、持續實踐、樂于分享,充分體現了新建構主義的學習理念,他們是在“做出”這個最高層次進行分享式學習的典型代表。
在新建構主義理論基礎上,我們還提出了知識的三級結構理論與知識嫁接學說,對教與學的本質進行了全新的探討。王竹立在論文中對網絡時代的教與學進行了全方位的描述與思考。有學者稱新建構主義為“21世紀以來中國遠程教育理論創新花圃中的‘一枝紅杏”。這代表了未來課程改革的一個重要方向,即未來學校課程改革的總體思路應是:突破教材大綱,連通課堂網絡,消弭學科邊界,實現個性目標,培養創新人才。
國內外在線編程研究現狀
1.技術原理研究
在線編程的原理比較復雜,因為其涉及Web前端以及后端編譯系統。Web前端需要提供用戶代碼錄入,行號、高亮語法、自動補全功能。并需要使用異步更新(Ajax)的方法來實現上述功能。后端編譯系統接收到用戶的代碼,并調用正確的編譯器進行編譯,再將結果返回前端進行顯示。
2.技術需求
方便:無論何時何地,打開網址,就可以進行代碼編寫。更可以將現有代碼拷貝過去運行驗證結果,是驗證代碼,學習語言、算法的快捷工具。而且再也不用像以前那樣,為了編寫一點程序,就必須在自己電腦上安裝很大的軟件,配置非常復雜的環境。
跨平臺:無論是使用Windows、Mac、Linux還是使用安卓平板、iPad,都可以進行在線編程,而且編程語言可以是任何語言,在iPad上編寫Java代碼是件很輕松的事。
集成性:所有的在線編程的編程語言網站都支持多種語言的編譯或解釋,具有較強的集成性,是傳統IDE無法比擬的。
3.國外技術實現
Codecademy:支持JavaScript、HTML和CSS這三種語言,自2012年7月31日起,用戶還能夠在網站上找到新添的Python語言課程。網站支持五種語言的版本,五種語言包括中文、俄語、日語、西班牙語和德語。
Anycodes:該網站智能支持中英韓三種語言,并且支持九種編程語言,如C/C++/Java/PHP等,支持多文件、標準輸入、命令行參數、語法高亮、代碼可折疊,支持全屏模式及代碼下載,其中MATLAB語言支持圖像化輸出,該平臺還有對應的手機客戶端(在線編程),可以用手機寫代碼,同時還擁有對應的微信平臺等功能。該網站比較簡潔,使用起來也很方便,響應速度較快。

Ideone:該網站支持英文,支持包括C++、Java、Java Script等40多種編程語言,且含有代碼demo,供初學者學習。其缺點是使用不夠簡潔,且響應速度較慢。
4.國內技術實現
ITBegin-在線云教學平臺,集成了課程資源、在線編程、在線運行、師生互動等多項功能。目前已經上線了Java、Spring MVC、C、C++、SQL、HTML、CSS、JS等課程。教學過程云平臺化,教師上課很方便,無需安裝,無需配置,無需升級,只要有網絡打開瀏覽器就可以使用了。
編程技術崗位分析
目前移動互聯網的快速普及,使得計算機類崗位需求缺口非常之大,IT企業迫切需要具有高水平計算機能力的學生。互聯網應用編程領域崗位占比如圖1所示,從圖中可以看出,服務器端、互聯網前端及移動客戶端需求占比非常之大,居于前列。
在互聯網、電子商務、金融等行業軟件開發中,互聯網后端開發占據比重較大,比例分別占到46.4%、40.3%和33.7%。互聯網前端即網頁端所見所得的前端框架和瀏覽器,實現起來相對容易;而本地Web服務器和數據庫開發在實訓過程中涉及復雜的環境搭建及配置,一直以來是學生學習過程中的絆腳石,對有些學生來說就是難以逾越的關口。

互聯網服務器端開發是互聯網和移動互聯網應用的強大支撐(如上頁圖2)。隨著技術的進步,SaaS軟件服務、虛擬化技術及云計算的應用,也為服務器開發在線編程實訓提供技術上的支持。基于虛擬化技術的SaaS云平臺架構如圖3所示。
互聯網+在線編程的目的是將編程操作搬到云端,去除對本機環境的依賴,使得學生能隨時隨地進行編程實踐,同時通過云同步技術,使得教師和學生能在網上進行實時互動,極大地提高教學效率,真正實現面向編程的翻轉課堂教學模式。
在線編程教學實踐探索
1.基于項目課在線編程
項目課在線編程是代碼在線編程的升級版,指在教學平臺上直接開發網站項目并運行。項目課在線編程彌補了高校教學與社會需求之間的缺口,使得高校能針對社會需求設計課程體系,如網站開發、企業級開發、移動H5開發等。
基于項目課在線編程技術,搭建編程類的虛擬仿真實踐教學中心,項目應具有高可用性、高實踐性、案例的真實性,同時具有教學協同性和評判批改的智能性。
技術框架上,項目課在線編程技術通過最前沿的云計算容器框架來進行支撐,相當于每個客戶端擁有一個支持網站運行的云主機。
2.在線編程集群化
將教師和學生在線編碼部署在同一界面中,組建一個集群式的在線編程教室。這是目前國內乃至國外在線編程應用沒有涉及到的。現有的在線編程網站,都是面向自學的,學習起來容易產生孤單和枯燥感。
在教師的界面上可以看到,中間上半部分是教師編碼窗口,課堂內所有學生均可見,教師演示和運行代碼學生端也完成同步,每個學生均獨享編程環境(如圖4)。

3.在線編程IDE支持多種語言
不同語言會自動加載不同的體驗,體現在關鍵字高亮、縮進格式、補齊等細節上。點擊運行會將代碼發送給服務端進行運行,在右邊輸出運行結果。運行結果跟IDE一樣,也自動支持各種語言格式。
4.實時協同
教師點擊右邊學生列表,每次可查看一名學生的編碼窗口,可以運行學生編碼。如果學生有錯誤和問題,點擊求助按鈕,教師可以馬上幫學生修改。同時,教師還可以將典型錯誤拷貝到教師編碼區,演示給全體學生看并進行講解。
IDE支持實時協同,即任何輸入、操作、運行都能實時在另外的終端上展現出來,用在教學中,教師可以拿來做直播教學,也可以監視學生課堂練習,甚至為學生遠程答疑。
小結
在線編程技術提升了計算機開發類課程教學體驗。服務前端企業級開發屬于開發領域的高難內容,但也是學生職業規劃的高端職位。在服務端編程中,學生遭遇的難點在于環境搭建和項目開發過程中種種疑難問題難以解決,聯調和部署困難,同時,項目更新和技術更新比Web前端技術要困難得多。而基于云端的在線編程可以及時獲得新技術、新框架的支持,同時項目企業化、項目化,能提升學生IT企業級開發就業水平。