?

用MOOC來實現《數據結構》課程CDIO教改的探討

2018-05-15 02:19王翔
軟件工程 2018年3期
關鍵詞:數據結構翻轉課堂

王翔

摘 要:本文分析了應用型高校數據結構課程在CDIO的教改中目前存在的一些問題之后,結合課程本身的特點和應用型高校的培養要求,闡述了MOOC平臺在協助教師實現“翻轉課堂”時的一些注意事項,并指出了MOOC平臺在此過程中尚需改進的一些地方。最后本文以實際例子示范講解了利用“MOOC”來實現應用型高校CDIO教學的過程。

關鍵詞:MOOC;數據結構;翻轉課堂;CDIO

中圖分類號:TP393.0 文獻標識碼:A

Abstract:The paper analyzes some existing problems in the CDIO teaching reform of Data Structure in application-oriented colleges and universities.Based on the characteristics of the course and the talent cultivation requirements in application-oriented colleges and universities,this paper expounds some considerations on the application of the MOOC platform to assist Flipped Classroom teaching.Some effective measures are proposed to improve the MOOC platform.Finally,some practical examples are provided to demonstrate and explain the CDIO teaching process with MOOCs in application-oriented colleges and universities.

Keywords:MOOC;Data Structure;Flipped Classroom;CDIO

1 引言(Introduction)

《數據結構》是高校計算機大學科的一門核心專業必修課,側重于研究在各種復雜的情況下,如何設計和組織數據在計算機中的存儲表示與涉及到的基本算法實現等常用技術。通過對已較為成熟的一些常用結構和算法的學習并掌握其實現的基本原理,這門課程可以使學生在未來復雜情況下數據的組織、結構的設計和創新能力的提高得到一定的訓練和啟發。

CDIO的基本模式是“構思(Conceive)—設計(Design)—實現(Implement)—運行(Operate)”。如何借助MOOC在線教育的技術,來攻克《數據結構》在CDIO教改過程中的一些頑疾,利用“翻轉課堂”來實現CDIO工程教育理念,是本文研究的主要目的。

2 應用型高校在《數據結構》CDIO教改中存在的

問題(Problems in CDIO teaching reform of Data

Structure in application-oriented colleges and

universities)

《數據結構》這門課程理論非常飽滿,內容比較抽象,同時又注重一定程度的實踐。在很多高校的CDIO教改過程中,這門課程一直是一個老大難的問題。同時它也是讓很多學生為之焦頭爛額的一門課程。不少優秀的一線老師已經對其中原因作了很多的分析,筆者在這里大致地整理并加上一些個人看法。

2.1 學生層面

(1)學生對該門課程的先導知識沒有完全掌握,基礎不夠牢靠

數據結構的先導課程主要是《C語言程序設計》。根據筆者多年的課堂調查,已及格通過,但在開課前仍有超過一半的學生對C語言的編程能力存在很多問題,不想寫,不敢寫,不懂怎么寫。數據結構中大量使用到了比如函數框架設計及傳參、一級指針、結構體、typedef、二級指針等。而這些內容,恰好是學生最薄弱的環節,學生普遍不會用或不敢用[1]。

另外,數據結構還需要學生具備面向對象的一些設計理念和思想。而這部分內容,大部分高校尚未在此階段開相應的課。學生對“某個數據結構,以及建立在該結構基礎上的各個方法之間的關系”“結構和相關算法寫好之后如何使用”等相關內容缺乏到位的理解。

(2)教材沒有針對性,大部分教材不夠形象和細致

相當大一部分985院校的教材追求理論完善、邏輯縝密、覆蓋面廣。但應用型普通高校的學生對此似乎并不太買賬[2]。在他們的眼里看來,這種教材難度過深,圖表和真實代碼都太少,對一些算法難點的描述和講解太高估了讀者的抽象思維能力,對一些算法代碼的實現太高估了讀者的實際編碼能力(例如對教材上偽代碼的編程實現)。

學生在使用教材時需要像看英文書籍一樣全神貫注,特別辛苦?;A較差的同學在翻閱前若干個算法或結構時已經非常吃力,這時你告訴他這本教材的數據結構和算法介紹很齊全,后面還有100—120個算法。這并不能激發這類學生的好奇,而只會讓他們合上書本。筆者認為,相比于給學生介紹全面和抽象的算法而言,一本教材,如果能讓學生對數據結構更容易產生學習興趣和一定的自信,則這種教材可能更適合普通應用型高校的學生。教材在此充當的是引路人的角色,而不是字典的角色。

(3)學生的理論和實踐脫節

該門課程的理論知識非常飽滿,從而使得編碼實踐的時間常常捉襟見肘。學生學了一學期,期末考試通過了,卻從未寫過一個標準的完整的鏈棧類的代碼,遑論用棧結構來編碼解決實際問題了。不是老師不想教,或者沒能力教,而是在有限的時間內老師實在騰不出精力來指導大部分學生。學生長時間寫不出來一個代碼,慢慢就會喪失信心和興趣。

(4)學生的課堂效率低下

這個問題在普通的應用型高校中非常普遍。老師在課堂上傳授了100%的信息,但是學生因為注意力難以一直集中,所以只聽到了可能80%;其中能當堂聽懂的內容可能就不超過60%了(和知識點難度、悟性、基礎、預習等相關);在聽懂理解后一段時間還記得的內容只剩不到30%了(因為缺乏及時的筆記、課后練習及反饋確認)。老師在課堂上使勁渾身解數,七十二般變化,費時耗力,但實際效果仍不太理想。

2.2 教師層面

(1)教學方法比較傳統單一

這個問題之前已經有很多論文指出過,大致思想就是希望能夠盡量多采用PPT或者動畫。筆者在這里需要補充強調的是,雖然動畫比實際代碼更能形象生動地展示出算法中的數據變化的一些關系,但因為本門課程必須要重視實踐,所以在課堂上不能只演示動畫,必要時,必須要針對一些算法進行代碼運行的現場演示,讓學生直觀地看到最終的成果,給學生一個直接的示范效應,讓學生在課后的獨立編碼之前做到心中有底。

很多老師不太愿意在課堂上展示和運行代碼,甚至提供給學生的課件代碼本身都運行有問題(其中盡管可能只是一些很小的原因造成)。需要指出的是,在計算機大學科的大部分實踐性強的課程中,板書固然已經過時,有時甚至連PPT也略顯不足。教師需要在課堂上適時地在真實代碼環境下演示運行,使得坐在最后一排的學生都能看清楚屏幕上的每一行代碼。從這個思想來看,目前的大學階梯教室的多媒體幕布的尺寸大小,還停留在PPT時代。

(2)對實踐環節的重視不夠,與實踐相關的信息渠道不通暢

本門課程的實踐課時較少,老師難以在為數不多的實踐課中對每個學生遇到的問題予以指導,反饋不夠及時。學生在缺少指導、反饋和監督的情況下,慢慢就會失去親自動手實踐的動力。這個問題同樣出現在作業中。當老師費時費力地把每個學生的作業代碼批閱完,寫下詳細批語,并下發給學生后,往往兩三個星期已經過去了,學生早已沒有了剛完成作業時那種急切想知道評價指導的沖動[3]。

3 借助MOOC來實現“翻轉課堂”(Implementation

of Flipped Classroom with MOOCs)

以往的教改,主要都集中在教學觀念、課堂教學方式和技巧等方面,最終的要求都會落實到一個問題上,那就是要加大老師在課堂前后的投入。而課時有限,績效衡量不便,所以一線老師的積極性難以提升?!胺D課堂”是一種嶄新的教學模式。它指學生在課外提前完成知識的自學,把課堂變成了師生之間互動溝通的場所,包括答疑解惑、知識的運用等。翻轉課堂對傳統的課堂理論知識傳授提出了“壓縮課時”的要求,以便騰出課堂時間來進行師生互動。但是如何在很短的課時內保質保量地完成理論知識的傳授?MOOC平臺很好地解決了這個關鍵問題。

MOOC利用網絡技術使得“學生接收了多少?老師付出了多少”,在很大程度上把老師從基礎知識傳授的繁重任務中解脫出來,將主要精力放到學生的動手實踐指導中去,從而使得“翻轉課堂”這一教學模式成為可能。

MOOC具有“大規?!保∕assive)的特點。老師針對每個知識點,錄制短小精干詳細而生動的視頻,讓學生在課外環境中播放自學。老師只需要錄制一次視頻,無數的學生能夠反復重放。這大大降低了老師重復講解的勞動量,并放大了老師對某個視頻詳細生動講解的貢獻。同時,這種類似于批量化的模具復制,可以預先將學生這塊材料打造成大致成型的“毛坯”,然后在課堂上再根據個體差異情況來“精雕細琢”[3]。這樣做,減少了老師的工作量,同時也在一定程度上確保了良好的教學質量。

MOOC的“在線”(Online)特點,在于它利用計算機網絡在時空領域中的充分延展,使得學生可以在自己精力最充沛的時間或者其他碎片化的時間里進行學習,從而獲得更好的學習效率。同時,MOOC將預先設定好的題庫和視頻完美結合,杜絕了學生濫竽充數的投機心理。高校中的MOOC可以要求只有對標記為“必做”的習題(這部分習題不必太難,但應覆蓋視頻的基本內容)正確完成,學生才能播放下一個知識點的視頻(基礎較好的同學也必須至少要完成一次每個視頻的“必做”習題后才能定位到自己最感興趣的視頻)。而習題的判定和答案也能在學生做完之后馬上給予公布展示。這種通過練習驅動學習的模式,讓參與者記憶深刻,穩扎穩打,得到更好的學習效果和自信[3]。而且,教師可以在系統后臺了解學生完成習題的各方面情況,為下一次“翻轉課堂”的課堂交流擬定主要的內容。

“翻轉課堂”中一個非常重要的前提,就是要求學生在課前已經通過其他渠道大致上掌握了本堂課的基礎知識點。這一點在實際實施時如果不能確保,則偷懶者在課堂上將難以互動,也會倒逼教師去講解基礎理論,從而使得“翻轉”失敗。但采用MOOC的模式之后,我們可以通過MOOC來收集本班學生在MOOC中的登錄信息、觀看視頻、在線習題等各方面的相關信息,在上課前一天就能基本上了解學生的預習情況。在開始講課后,首先可對預習效果做一個大約10分鐘的確認,比如隨堂抽學生解答一些與新知識相關的非?;A的習題或概念定義。對于學習極度不自覺甚至找人冒名頂替在課前幫自己預習或習題代做的學生,可通過每隔兩三周一次的有監考的過程化考核來及早發現和警示濫竽充數者,徹底杜絕學生的投機懶惰心態。

對于MOOC中的考評模式,除了上述的隨堂抽問和過程化考核之外,最重要的方法就是嵌入到視頻講解過程中或者單元測試中的習題庫了。這部分內容,以最直接的方式裁定了學生自學的即時效果,所以必須要做到覆蓋全面、難度適當。計算機可以比較容易地判斷客觀題和填空題的答案,也能判斷出編程題的輸出是否正確,但是在數據結構課程中,計算機很難判斷學生所采用的算法、函數架構、模塊或接口設置等是否符合老師的指定要求。在這種情況下,采用生生互評是一個比較好的模式。研究表明,超過五人以上的同伴互評成績與教師給出的成績相差無幾[4]。這種模式在MOOC中已經得到了絕大多數教授團隊和學習者的認可。

筆者需要指出的是,在評價時,可適當采取匿名的方式,即評價者不知道眼前這份作業是誰的,在評論完之后,評價者才能看到其他評價者對這份作業的評語。了解其他評語者對問題的思考方式和解決辦法,可以使自己對這部分知識的掌握更加全面。評語成績差異較大時可由系統自動送交教師點評裁定,從而確保作業判分的公正性和維護正確答案的權威性。

MOOC平臺是老師的“影子”和“代言人”,其創建初衷是促進名校教育資源的公平共享,所以沒有必要每個高校都去構建自己的MOOC平臺或錄制全套MOOC視頻[5]。但是不同層次的高校,對學生的要求和培養目標有所差異,而學生的基礎和領悟能力也有所不同,所以不同層次的高校對課程的考核標準也會有所不同。MOOC平臺不僅對學生是“Open”的,對各大高校的任課老師也應該是“Open”的,不能搞“一言堂”。在現有名校MOOC平臺的基礎上,老師以某校課程管理者的身份進入平臺,在一定比例限制內,對碎片化的視頻、習題等內容進行增加、屏蔽、替換等定制化管理。這樣既能充分利用現有的國內MOOC平臺資源,避免重復建設,又能突出本校本課程的特色,降低應用型普通高校的教師參與MOOC建設的成本,提高其參與MOOC建設的積極性。

4 借助MOOC來實現CDIO教改(Implementation of

CDIO teaching reform with MOOCs)

數據結構作為研究數據結構和算法相關的課程,要求學生能夠根據問題需要,分析和設計最恰當的數據結構,并采用最適合需求的算法來實現。這樣的培養要求,需要老師在完成規定理論知識傳授的前提下,還要針對每個學生在編碼時百花齊放的算法思路或框架等分別做出差別化指導。這個工作量是很大的。在教學經費有限和績效難以量化的情況下,目前基本上主要是靠教師個人的職業操守和責任心在支撐。

MOOC的出現,使得“翻轉課堂”成為可能,從而能夠對CDIO的保質量實施提供有力保障。教師可以把大量的基礎知識內容和編程基本技巧的講解,放在MOOC平臺上讓學生自學,并從中監督學生的預習情況。在正式上課的時候,老師對簡單的內容不再細致講述,而是根據學生的預習情況,選其中的重點或實踐過程中的難點來進行統一講解或差別化輔導等,將輔導的重心在一定程度上往實踐方面傾斜。

下面以數據結構課程中的“馬步問題”為例來闡述過程。

(1)在課前,需要學生觀看相關的MOOC視頻。視頻主要包含針對馬步問題所涉及的“回溯法”的基本思想的講解及細致分析、部分代碼框架、編寫環境和測試環境的展示等(若遇到復雜的環境,甚至可以提供虛擬機鏡像文件,最大程度地讓學生不受其他因素的干擾)。

(2)學生看完之后,完成針對馬步問題的一些最簡單的習題測試,然后就能看到“馬步問題”的項目發布的要求。學生以2人為一個小組,在規定的2—3天內提前完成代碼和報告的編寫并上傳提交[6]。代碼由系統隨機分配,進行生生評價。

(3)老師通過MOOC平臺監督學生自學的情況,并參與作業評價及抽查少許代碼,對學生的預習情況有個大致掌握。

(4)在課堂上,老師針對一些重要原理思想或實踐中的常見問題做出強調和補充講解,對算法的升級展開進一步的課堂討論,比如“在馬步問題中采用鏈?;蛘唔樞驐8饔惺裁刺攸c或問題、如何避開棋盤上的障礙物、如何走出一條更短的路徑、如何找出從A點到B點的所有路徑”等有趣的問題。因為針對馬步問題和回溯法原理的最基本介紹已經在MOOC中講解,所以老師可以騰出更多的時間來在課堂上糾正、確認、強化、升華學生的初步理解。

為了避免某些學生在非監督的情況下抄襲他人編碼來敷衍作業,系統可針對中小規模的代碼引入“抄襲檢測判定”的程序。

5 結論(Conclusion)

MOOC的平臺和課程建設,都需要大量的資金投入[4]。同時,要想讓高校教師放下習慣了多年的教學模式,從根本上脫胎換骨式地采用“MOOC+翻轉課堂”的模式,實非易事。從2013年到現在,MOOC雖然已經出現了多年,但仍有一些問題尚未解決。例如:如何讓MOOC的管理對教師開放,支持定制化?如何降低普通教師錄制MOOC視頻的成本?如何將MOOC平臺的數據進行分析并快速鎖定個性化輔導方向?如何避免教師的敷衍跟風,把枯燥、生硬、“教學生畫馬”式[3]的講解視頻放在MOOC上,讓學生播放3分鐘之后就想關掉窗口?MOOC會不會讓老師在教學上變得懶惰?

在沒有充分解決這些問題之前,MOOC暫時并不具備翻轉課堂的實力,只能是傳統教學的一個有益補充。翻轉課堂和CDIO的實施效果,取決于MOOC平臺、教學視頻、習題等的質量,也取決于老師對課堂交流和重點難點的準確把握。如何確保學生的學習質量和公平性,老師的投入積極性和公平性等,這是未來需要仔細探討分析的一個方向。

參考文獻(References)

[1] 朱顥東,李紅嬋.數據結構教學方法和教學手段現代化研究與實踐[J].信息化教學,2017,2:122-123.

[2] 劉小飛,李杜蕾,李明杰.應用型本科高校數據結構教學改革初探[J].課程教學,2017,19(7):130-131.

[3] 張銘.立足北大,放眼未來——“數據結構與算法”MOOC課程教學實踐與思考[J].工業和信息化教育,2014,9:65-73.

[4] 蔣翀,費洪曉.MOOC與高等教育的融合——基于教師視角[J].長沙民政職業技術學院學報,2015,9(22):127-129.

[5] 蔣翀,費洪曉.MOOC與高等教育的融合——基于學習者視角[J].信息技術與信息化,2015,11:148-150.

[6] 陳軍,李亞娟.融合MOOC和CDIO理念的數據結構與算法新型教學模式[J].科技世界,2016,13:111-112.

作者簡介:

王 翔(1977-),男,碩士,講師.研究領域:信息安全,人工智能.

猜你喜歡
數據結構翻轉課堂
翻轉課堂在小學數學教學中的應用
翻轉模式在“液壓與氣動”教學中的應用研究
翻轉課堂在英語語法教學中的運用研究
翻轉課堂教學模式在《PLC應用技術》課程教學中的應用
“翻轉課堂”教學模式的探討——以《數據結構》課程教學為例
高職高專數據結構教學改革探討
TRIZ理論在“數據結構”多媒體教學中的應用
《數據結構》教學方法創新探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合