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