王玉峰
摘 要: 針對在線編程學習平臺學習模式相對單一的不足,面向編程語言的初學者,給出了富交互型C語言課程的設計思路、表現形式和實現技術。在分析初學者學習規律和應用需求的基礎上,深入挖掘了課程內容。在線課程在引導、講解、分析、練習、測試、擴展等環節突出交互性,平滑初學者的學習難度曲線,開拓初學者思維,提高初學者編程技能。在線課程部署后得到了實踐的檢驗,可為其他在線課程的改造提供思路。
關鍵詞: C語言; 在線編程; 在線課程; 課程改造
中圖分類號:TP311.52 文獻標志碼:A 文章編號:1006-8228(2017)09-39-03
Abstract: Considering the relative monotonous mode of the existing online programming learning platform, this paper puts forward the design idea, learning mode and implementation technology of the rich interactive online C language course, for programming beginners. On the basis of analyzing the learning regularities and application requirements of beginners, the contents of the course are deeply excavated. The Online course highlights the interaction in aspects of guiding, explaining, analysis, practice, testing, and expansion and so on, to smooth beginners' learning difficulty curve, pioneer thinking, and improve beginners' programming skills. The online course has been tested by practice and can provide ideas for the reform of other online courses.
Key words: C language; online programming; online course; course reform
0 引言
當前,隨著在線教育的興起,在線編程學習平臺也得以蓬勃發展,其形式多樣、內容新穎、體驗良好,解決了班級授課及課內實驗教育模式的一些缺陷,吸引了不少學生參與[1]。
在線編程學習平臺,提供在線知識講解、編輯代碼、即時編譯等功能,國外以codecademy為代表,口號正是“以交互的方式學習編程”,提供了Javascript、PHP、Python、Ruby等腳本編程語言的課程[2]。國內的“計蒜客”課程學習形式與codecademy類似,提供C、C++、Python、數據結構、操作系統、數據庫等互動式的在線課程。國內的“實驗樓”, 基于虛擬化技術提供IT技術實訓平臺,提供在線編程環境來進行“在線實驗”。codecombat創造性地將在線游戲與學習編程(CoffeeScript腳本語言)相結合,驅動用戶在游戲中編碼實現一定功能來渡過關卡,趣味性很強,思路新穎。
總體來講,在線編程學習平臺課程以用戶練習為核心,通常是任務驅動的,而且注重循序漸進。然而,由于需要提供平臺化服務,其練習模式相對單一。另外,課程的引導提示相對單調,編程練習較多而講解偏少。在線編程學習平臺課程的設計思路和表現形式值得借鑒,課程本身的特點和學生的學習需求還要進一步挖掘,以進一步完善在線課程,促進課堂教育和在線教育的互補融合,提高教學效率。
1 富交互型C語言在線課程的設計與實現
相比于現存的在線編程學習平臺課程,富交互型C語言在線課程主要面向初學者,更加突出了交互性,在學習思路、交互形式、學習內容上做了更精細的挖掘和探索。
1.1 挖掘C語言初學者學習需求
對初學者而言,C語言具有抽象程度高,難以入門及精通等特點,傳統的課堂授課、視頻講解、課內實驗等,并沒有很好地平滑理論到實踐之間的銜接,難度曲線陡增,需要一種輔助機制來循序漸進推進知識和技能的掌握。
初學者首先需要掌握繁瑣且精細的語法規定,需要反復驗證來識記并理解。面對具體程序設計任務,重在以程序設計思維來分析問題,這需要大量練習及分析總結來轉變思維方式。在掌握編碼、調試、排錯技能的基礎上,初學者還應當全面把握C語言的特點、規律、運行機制[3],課程的廣度和深度應當作適當擴展。
富交互型在線課程旨在全程“陪伴”初學者進行輔導,加入引導啟迪及總結擴展環節,側重分析案例要點及運行機制,注重培養程序設計思維及提高編程技能[4],通過大量精巧設計的交互及練習,讓初學者由易到難、由點及面、由淺入深來復習、鞏固、提高,學習難度曲線得以平滑。不斷的交互實踐,能帶給學生較強的沉浸感,提高了專注力和學習效率。
1.2 富交互型C語言在線課程的版塊形式
傳統授課很多時候需要初學者被動地接受講解,富交互型C語言在線課程將練習分解為眾多小版塊,讓學生通過交互來主動把握課程進度。在線課程的版塊形式如下:
⑴ 演示示例:可交互圖形展示課程引入案例、數據運算過程、代碼執行過程、數據存儲機制等。將已有知識經驗遷移到課程新內容,或者從C語言的底層軟硬件基礎設施如匯編語言、編譯原理、計算機體系結構等視角剖析C語言,加深對C語言及程序運行的理解。演示示例如圖1所示,單擊右側的流程圖虛線框,可以推進流程圖并選中左側的相應代碼行。endprint
⑵ 在線簡單練習:形式多樣,包括抄寫代碼、運行代碼、調試代碼、改動代碼、模仿編程、引導編程、獨立練習任務等[5],由易到難循序漸進提高初學者編程技能。
⑶ 在線測評:通過在線選擇題、填空題、判斷題等對知識點進行測評,通過對題目進行深入解析,幫助學生區分易混淆知識,避免常見錯誤。
⑷ 在線視頻:關鍵知識點制作短視頻,進行關鍵知識點的精講及總結,或者進行思維開拓。
⑸ 在線綜合練習:提供項目驅動的綜合練習,可對綜合練習的解決方案進行展示,并允許同學們留言討論。另外,提前對項目進行分解[6],進行針對性練習。
設計富交互型在線課程時,知識講解和編程練習居于同樣重要的地位,而且兩者的難度增加曲線非常平緩,充分考慮了初學者的特殊情況。
1.3 富交互頁面的關鍵技術
在線課程的前端基于Bootstrap框架等,服務端基于Node.js,關鍵技術如下。
⑴ 基于Ace Editor的高度定制編輯器:ACE Editor是一款開源的強大的Web端代碼編輯器,提供豐富的編輯特性、配置選項及控制接口。
⑵ 基于SVG(可縮放矢量圖形)的可交互動態圖:圖形化逐步演示動態執行過程(如圖1右側)正是基于SVG的強大繪制功能,用戶交互時可實時繪制。
⑶ 遠程編譯執行:在線運行代碼時將代碼上傳到服務端,服務端提供遠程編譯功能,支持并發編譯,并提供一系列安全檢查控制機制,保證遠程執行安全。
⑷ 用戶訪問數據分析:記錄學生的完成情況并進行統計分析,將評估結果反饋給學生,并基于評估結果推薦練習題目。
2 結束語
目前,富交互型C語言在線課程的設計思路相對成熟,表現形式基本穩定,部分實現技術已經模塊化。在線課程部署到云主機后,經過近幾年的運營,獲得了學生的好評,成為學生課余學習的有力助手。
富交互型在線課程需要深入挖掘課程的知識點,以合適的形式在線呈現給初學者去體驗,這對課程的策劃及制作提出了較高的要求。下一步將進行平臺化建設,擴充課程形成體系,開發Java、Fortran、C#等初學者入門編程語言在線課程,開發數據結構、圖形學、游戲開發等交互特性突出的在線課程,繼續在富交互型在線課程的制作上進行探索。
參考文獻(References):
[1] 周翔,高輝.國內互聯網在線教育的現狀及發展策略研究初
探[J].新疆廣播電視大學學報,2015.2:67-71
[2] 潘雪峰,張宇晴,毛敏,崔鶴.在線教育產業發展現狀及產品設
計研究[J].科技和產業,2013.8:15-16
[3] 程傳鵬.基于大學生心理特點的C語言教學方法[J].計算機
教育,2012.1:68-70
[4] 徐艷艷,陳志泊,徐秋紅.基于“計算思維”的C語言課程教學
改革[J].計算機教育,2015.7:87-89
[5] 吳永芬,陳衛衛,李志剛,李清.面向創新實踐能力培養的C語
言程序設計實踐教學改革[J].計算機教育,2014.3:88-90
[6] 劉芳.項目驅動教學法在C語言課程中的應用研究[J].計算
機時代,2017.6:96-98endprint