趙 媛, 王 杰, 周立軍, 呂海燕
(海軍航空大學 航空基礎學院, 山東 煙臺 264001)
中國科技大學孟寧教授關于慕課(MOOC)的發展曾提出:基于MOOC的混合式課程教學會帶來一場影響深遠的教育革命。因為它提供了一個平臺替代教師的“教”,而教師可以將關注點聚焦到學生的“學”上。MOOC是一種以學員為中心的在線教學模式,而絕不僅是精心制作的在線視頻;教師要轉變為整個教學活動的設計者和掌控者,而不再只是知識的傳授者[1-3]。為加強軍隊院校計算機基礎課程教學,貫徹“建設信息化軍隊,打贏信息化戰爭”的根本方針,建設了以計算思維為導向的C語言程序設計MOOC。
2014年9月,原海軍航空工程學院計算機實驗中心完成了小范圍私有在線課程(small private online course,SPOCs)“大學計算機基礎實驗”信息化導學平臺(PC版和移動終端版)的建設。該平臺的視頻資源、教輔資料、試題資源均由教學經驗豐富的教員錄制和整理,為學員提供了導學、在線測試、通用課程考試和交流的網絡學習平臺。平臺提供了多媒體動畫、音頻、視頻和豐富多樣的測試題等共13 GB的SPOCs教學資源,內容包括Windows操作系統基礎、計算機組裝、Office辦公軟件、多媒體處理、計算機網絡基礎等。
2014、2015 和2016級本科(直通車、合訓)學員共1 550余名學員在線完成該SPOCs的學習,并參加了過程考核與結果考核相結合的多元化考核,學員考核成績優良率大大提高。通過SPOCs的學習,學員的實踐意識、創新實踐能力有了較大提高,在國家級、省級計算機創新實踐設計大賽中取得了較好的成績。
然而,目前SPOCs應用面較窄(受眾群體僅限于在校學員),對于學員的在線學習過程還缺乏有效的跟蹤管理(過程管理)[4]。對于這些問題,筆者從復旦大學蔣玉龍教授在我校所作的報告“借助在線,實現翻轉創新大學教學的實踐”中得到了若干啟發。
在SPOCs和信息化導學平臺建設基礎上,課題組總結了信息化導學平臺的使用經驗、認真聽取學員的反饋意見,將信息化建設延伸到范圍更廣的大規模開放在線課程——慕課(MOOC)的建設。MOOC的建設具有軍事職業教育的特色,學員也不再局限于本校特定的學員群體。
我校開設的MOOC“妙趣橫生C之征程”依托于“計算機程序設計”課程,是海軍院校本科生長指揮軍官、生長技術軍官、飛行學員學歷教育的一門必修基礎課,也是培養學員計算思維和信息素養的課程。該課程所涵蓋的思維訓練對引領學員進入編程世界、完成從傳統學科的思維方式向計算思維方式的轉變有重要的作用。該MOOC的學員(以在校大學生為主,兼顧軍事職業教育)對計算機及網絡比較熟悉,具有一定的動手能力。但是,很多學員是初次學習編程,對于學習方式和思維方式的轉變需要一個適應過程。因此,開展課程的思維訓練既很必要、又很迫切[5]。
C語言是程序設計中一種用途非常廣泛的計算機語言,它既可用來編寫系統軟件,也可用來編寫應用軟件。因為C語言是一種結構化程序設計語言,并且語言結構非常清晰,因此很適合初學程序設計者進行學習。但是C語言中的數據類型非常豐富、用法靈活,對于初學者來說,學習C語言又是一個困難的過程,不僅要學習編寫、調試程序,還要理解程序設計的基本思想和方法,培養良好的編程習慣。
由于該課程受眾面廣、實用性強,并且每個知識點相對簡單和完整,因此它也是最適合采用MOOC進行教學的計算機課程之一。在新模式和新理念的指導下,課程組建設的“妙趣橫生C之征程”MOOC,對MOOC環境下課程的設計進行一些初步探索和嘗試。
信息化建設是我軍改革轉型的一項重要內容。在軍校人才培養過程中開設信息化課程,是培養學員信息素養的必要途徑。
以計算思維為導向進行的C語言程序設計MOOC立足于教“編程”,以計算思維為導向,以實戰化案例問題為牽引,以能力培養為目標,實施傳授知識與思維訓練相結合、編程語言與程序設計相結合、自主學習與平臺引導相結合的教學模式。簡言之,就是技能提升、思維訓練、系統培養、價值塑造[6-7]。
課程的建設目標是使學員通過學習,加深對面向過程的程序設計語言和編程方法的理解,培養學員使用高級語言進行程序設計的技能、較強的計算機實際操作能力、較好的創新思維和較高的綜合素質。
通過深入學員群體進行學情分析,了解到60%以上的學員認為編程比較枯燥、程序設計晦澀難懂。因此,需要增加課程的趣味性,使教學內容和形式多樣化、形象化、生動化,使C語言程序設計課程MOOC的重點、難點教學內容容易為學員所接受[8]。
為使C語言程序設計課程的教學中不再枯燥,在進行MOOC的建設中,課程組著重進行課程內容的重組與優化,使知識單元盡量“趣味性”十足。
C語言功能強大,內容繁多,知識點瑣碎,初學者入門較困難。因此,在MOOC的教學過程中不簡單羅列知識點、不使用過于專業的術語分析問題,而是引用大量趣味性、實戰化的案例,用通俗易懂的語言與學員交流。課程組通過集體研討、總結,在講授過程中還要提供一些關于知識點的小技巧、小口訣等。總之,該MOOC的建設應通俗易懂,使非計算機專業的零基礎初學者也能在輕松的環境中掌握C語言。
在教學案例的選擇上,要重點突出實戰化的需求,以軍事化應用為切入點,進行設計和講解,切割知識單元、錄制短視頻。
(1) 在“循環嵌套”部分,可以選取“艦艇排水量排名”案例,利用循環嵌套解決邏輯判斷問題。要求掌握什么是循環嵌套以及如何實現循環嵌套。最后講解如何利用循環嵌套輕松解決耗時、耗力的邏輯判斷問題,引導學員思考程序設計的軍事應用問題。
(2) 在“遞歸函數”部分,可以選取“打靶訓練”案例,教學依據引入式、案例式教學方法。由學員感興趣的“打靶訓練”的小動畫引出相關案例,導出本次課的主題。通過有趣的“士兵年齡”實例分析遞歸函數設計過程中的關鍵問題,理解遞歸函數的內涵及遞歸過程,最后編寫遞歸函數解決“打靶訓練”的問題。
(3) 在“字符串數組”部分,可以選取“戰爭中的密文破譯”案例,在C語言程序設計中用字符數組處理字符串。主要圍繞密文破譯的第一步——存儲密文,講解了字符數組的定義、初始化以及3個重要的用字符數組處理字符串的相關知識點,并在此基礎上應用字符數組完成密文的破譯。該部分內容教學目標明確、重點突出,能夠使學員有興趣學習,較好地掌握具有廣泛應用性和一定特殊性的字符串處理方法。
(4) 在“經典算法”部分,講解“窮舉算法”時選取“韓信點兵”的案例,帶著問題從古戰場而來,引導學員用C語言去解決古今中外的經典案例問題。
C語言是一個標準化的、具有龐大知識內容的形式語言體系。若以語言知識為學習主線,必然是整體凌亂、抓不住主次,迷失學習編程的方向。
計算機對問題的求解是計算數據的過程,編程就是去解決如何表示數據和如何實現計算[9]。將數據表示和程序實現作為學習程序語言的兩條主線索,抓住語言對此所起的作用,螺旋上升、交叉推進。求解問題的“雙線索”過程如圖1所示。在該課程中,程序語言是服務編程的工具而不是目標。

圖1 數據表示和程序實現的“雙線索”過程
程序只是人與計算機之間溝通的一種工具。學習程序語言時需要快節奏,而學習編程方法和編程技術則需要慢節奏[10]。不少學生像學習英語一樣學習C語言,花很多時間用來背程序,部分人甚至認為“熟背程序三百篇,焉能還得不會編?”然而實際問題千變萬化,程序的運行也是動態的,因此編程要靠思路和方法,即使是敲代碼也要有節奏,要學會“抓大”(設計方法)“放小”(語言知識),要將編程實踐過程中的靈感、技術、習慣、動機、反思以及暢想逐一轉化為技能,形成編程思維。在這種節奏的引領下,才可以更有效地與計算機對話。
計算科學思維是多維度的,例如基于計算技術的普適思維,特點是抽象和構造;基于算法思想的數學思維,特點是形式化和自動化;基于數據技術的邏輯思維,特點是因果關系和相關關系;基于系統結構的應用思維,特點是整體性和結構性。
程序最重要的基本要素是算法和數據結構,但是編程的難點不是算法或者數據結構本身,而是如何理解和分解問題,并將其映射到最合適的算法或數據結構上。這個映射本身不是程序要解決的問題,而是人腦的思維,是構造性思維、逆向思維、猜想與試驗、設計思維等全腦思維的藝術[11]。
該MOOC的建設步驟包括3步,主要是指制作教學資源、組織教學資源和設計教學活動。
教學資源包括短視頻、交互式練習題以及考試系統題庫3方面。制作教學資源包括以下4個步驟。
步驟1:知識單元碎片化。在C語言中,教學知識單元比較明確,包括變量、常量、表達式、語句、控制結構、數組、函數、指針、結構體、文件等內容。根據知識單元的特點與教學目標,對知識單元進行碎片化,然后有計劃地放在MOOC平臺上。在碎片化的過程中,力求將每個問題盡量分割得具體、短小,以便于在有限時間內講授清楚。
步驟2:視頻制作。根據碎片化的知識單元和教學策略,按照問題導入、問題分析、應用舉例的思路,進行視頻的設計、錄制與后期制作。為有效發揮學員注意力,利用錄屏、手寫以及動畫等手段,每段視頻應控制在10分鐘左右。目前錄制完成的視頻單元已經上傳“軍隊院校夢課平臺”(國防科技大學開發的MOOC平臺),如圖2所示。知識單元涵蓋選擇結構、循環結構、數組、函數和結構體。從課件制作到剪輯,均由課題組成員自主完成,課程設計較為精彩,在線視頻質量較高。其中有5個知識單元的講解參加了軍隊院校計算機課程微課競賽,取得特等獎1項、一等獎3項、二等獎1項的好成績。

圖2 “夢課平臺”的MOOC視頻資源示例
步驟3:制作交互式練習題。交互式練習題題型主要有判斷、選擇、填空等,每段視頻講解后面都配有相關的練習題,用于幫助學員理解本知識單元的知識點。題量雖不多,但每周都配有與本周所授內容相匹配的綜合測試,測試學員掌握知識的情況。
步驟4:添加題庫資源。為了階段性地考查學員的學習效果,利用在線考試系統對學員進行階段性測試。題庫資源以知識單元為單位,分為基本語句、選擇控制結構、循環控制結構、數組、函數等5部分;相應地,階段性測試也分為5個階段。每個階段包括選擇、判斷、填空、程序改錯、程序填空以及程序設計等題型,在題庫中所包括的覆蓋全部知識點的多道題目,需要在教學資源建設過程中積累。為提高學員實踐能力,鼓勵學員利用“程序設計在線評測系統”(ACM)[12]進行編程訓練。
MOOC課程“妙趣橫生C之征程”面向本校學員、
部隊技術干部和士官全面開放,通過線上交流,提高在線學員的學習質量及其與教員的互動。程序設計將改變學員的思維,使學員能更好地利用計算機科學技術解決專業領域的計算和信息處理等問題。目前一期課程注冊人數已到達148人,學員學習積極性高,學習效果好,為本專業其他課程的MOOC建設起到良好的示范作用。通過該課程的建設,充實、完善和改革課堂教學內容和方法,充實教學素材,提高課堂授課質量,最終提高教學團隊的整體教學水平和教學質量。
參考文獻(References)
[1] 李斐,黃明東.“慕課”帶給高校的機遇與挑戰[J].中國高等教育,2014(7):23-26.
[2] 王文禮.MOOC的發展及其對高等教育的影響[J].江蘇高教,2013(2):53-57.
[3] 李錫輝,王櫻.程序設計類課程教學改革的研究與實踐[J].實驗技術與管理,2014,31(10):206-208.
[4] 張冬慧,朱小明.基于SPOC和多媒體網絡教室的計算機軟件類課程實驗教學[J].實驗技術與管理,2017,34(8):195-198,205.
[5] 基于MOOC理念的軍校網絡教學資源整合及共享研究[J].高等教育研究,2013(12):13-16.
[6] 武仁杰,郭喜鳳,郭曉玲,等.計算思維與程序設計[J].河北北方學院學報(自然科學版),2013,29(1):24-26.
[7] 王曉丹,狄博,王堅.軍校學員計算思維能力培養中的問題與分析[J].計算機工程與科學,2014,36(增刊1):18-22.
[8] 李艷坤.以計算思維能力培養為導向的C程序設計教學研究[J].計算機教育,2016(2):130-133.
[9] 姚天昉.在程序設計課程中引入“計算思維”的實踐[J].中國大學教學,2012(2):61-62.
[10] 馬雪英,王桂平.以能力為導向的程序設計類課程教學體系[J].計算機教育,2011(4):74-78.
[11] 丁金鳳,李英梅,徐建山,等.基于計算思維的程序設計類課程教學實踐[J].計算機教育,2012(15):65-68.
[12] 楊松濤,李晶.ACM/ICPC程序設計競賽中的計算思維培養[J].黑龍江高教研究,2014(1):174-176.