戴華 楊志和
【摘要】針對軟件設計模式課程的特點,為了更好地使學生理解并掌握好該門課程內容,提高學習興趣和主動性,本文針對課程在教材及參考書籍選擇、課堂教學方式方法等方面展開探討和研究,從而實現改進課堂教學效果的目的。
【關鍵詞】設計模式 課堂討論 翻轉課堂 慕課學習
【Abstract】In order to have a better understanding and grasp to course content and improve study interest and initiative of students, in this paper, we discussed the textbook and reference book selection, mode of classroom teaching method and so on according to the curriculum characteristic of software design pattern. By this means, make the goal of improving teaching effectiveness to be achieved.
【Keywords】Design Pattern; classroom discussion; Flipped Classroom; Mooc Study
【基金項目】湖南省高校教學規劃課題(XJK014BXX004),校級教改項目(2015C02)。
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2017)31-0247-02
1.引言
軟件設計模式課程是許多高校軟件工程專業面向高年級開設的一門專業課程,該門課程需要掌握一定面向對象程序設計思想以及熟悉一門面向對象開發語言。軟件設計模式的主要是由Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides等四人在其出版的著作《軟件設計模式——可復用面向對象軟件的基礎》首次系統化地被提了出來。軟件設計模式是面向對象程序設計的核心思想的深化和經驗總結,各種不同類型的設計模式中精煉地給出了面向對象程序設計中解決反復出現的一類問題的固定經驗方案和解決框架。
在軟件設計模式課程中,一般需要給學生系統地闡述面向對象的軟件設計思想,其中包括基本的軟件設計原則,如開-閉原則、單一職責原則、依賴倒置原則、迪米特法則等,以及三大類型23種不同的軟件設計模式。學生往往是剛剛結束相關的面向對象課程就會開設這門課,用于提高其編程技巧和思想,但是上述這些軟件設計模式課程所涉及的內容要都是十分抽象和思想性很強的軟件開發經驗積累,學生也沒有多少實踐開發的經驗,因此單純依靠在課堂上簡單講授很難使學生深入理解其中的內涵和作用,因此,如何能夠更好地利用課堂講授時間,探索在課堂教學方式方法上的改革,并有效地激發學生的學習興趣和課堂后的自主學習動力,成為了上好這門課程的關鍵。
2.課程教材和參考資料的選擇
軟件設計模式最早系統化地提出是在Erich Gamma等四人的著作《軟件設計模式——可復用面向對象軟件的基礎》中,本書從模式名稱(Pattern Name)、問題(Problem)、解決方案(Solution)、效果(Consequences)四個方面系統地闡述了三大類(即創建型模式、結構型模式和行為模式)23種不同的設計模式種類。此書篇幅不長且內容經典,模式講解語言以C++為主,后續的諸多有關設計模式的教材和著作都是以該書提出的23種模式為基礎進行軟件模式設計內容的講解。因此,這本書可以作為很好的教材使用。但是,由于該書內容較為精煉,同時C++語言由于不是真正意義上完全的面向對語言,沒有一定的編程技術和經驗積累對書中的內容無法較好地理解。因此,還需要相關的基本參考資料,配合起來閱讀才能幫助學生更好地理解書中的內容,這其中反響較好的參考書籍,比如國內由程杰編著的《大話設計模式》和國外翻譯教材《Head First 設計模式(中文版)》等。上述這些書籍在設計模式的講述上更為深入淺出,書中大量使用了貼近生活且容易理解的示例來闡述設計模式中各類模式的內涵,同時,此類書籍講解所使用的語言均是完全面向對象的軟件開發語言,更方便內容的講解。
3.課堂內外結合教學模式
大學階段的課程學習,不同于初高中的課程學習,不可能完全通過課堂上的講解理解和掌握好所學習的知識,這是由培養方式和性質決定的。因此,大學課堂的學習需要課內和課外學習相結合的方式才能更好更有效地掌握相關知識,總體基本教學模式可以采取如圖1所示的方式進行。
3.1 利用翻轉課堂形式強化課內和課外兩個學習場所
在以往課程講授中,課堂內的講授是主體,而其他課外方式都是輔助手段。其實,大學階段的課程學習課堂內外是同等重要的,特別是對于軟件設計模式這門課程,該課程需要熟悉一門面向對象開發語言,如Java、C++或C#等,以及面向對象解決問題的方法和思想,課程特性決定了學生需要在課外自學和理解大量相關的課程知識,而課堂則更多的是老師梳理知識體系和師生交流環節,這個方式類似與翻轉課堂的形式。只有當學生在課外充分進行了課堂待講授的相關內容的預習和了解后,才能更容易理解和掌握課堂講授的內容要點,同時也能更加有效地參與到課堂交流和討論中,進一步加深理解程度。
3.2 課堂內強化師生兩個學習交流主體
在課程內容的講授中,對于部分課程內容的講解可以讓課程學習較好的學生來上臺擔任老師的角色,由其為學生進行講解,通過采取這種方式對學生而言,可以達到幾個效果:1)充分調動了部分學習興趣較高、課程理解能力較強的學生的學習積極性; 2)鍛煉的學生對課程內容的理解及其表達能力。對于教師而言,則1)了解掌握學生的學習狀況,并據此適當調整課程相關內容的講解進度和內容等;2)通過先進學生帶后進學生的方式使大部分學生都能積極主動地融入課堂。此外,還針對學習重點和難點內容集中在課堂進行師生討論和交流,結合實驗練習利用學習的模式解決相關問題的編程能力,達到教學的相互促進。
3.3 利用網絡媒介強化課外學習效率
課外的學習由于沒有老師的參與,缺乏了一定的約束,大部分學生由于受初高中教學模式影響較深,因此學生很難在課外保持較好的學習動力和效果。在這種情況下就需要充分利用網絡多媒體手段,如在線教學視頻、PPT課件及相關課程示例等。在這些課程資源的建設上既可以是校內自主建設也可以挖掘使用第三方提供的課程資料或共建資源。對軟件設計模式這門課而言,在網絡上對23種不同模式的講解說明和相關模式的實驗示例都是比較多的,利用這些資源,學生可以結合教師講課內容的要點和要求,在課堂外進一步了解課堂內容講授的知識細節,實現課堂外學習對課堂內學習的互補作用。
4.總結
本文首先分析了軟件設計模式課程的特點,然后重點就教材及參考資料的選擇上進行了分析和建議,在課程教學模式上充分利用當前流行的翻轉課堂和基于網絡的慕課形式,從課堂內外全方面地考慮課程學習,提升學生課程學習興趣與課程學習效果,文中的部分經驗通過在實際課程教授過程中的實踐也取得了較好的效果,本文的經驗和探索可以為相關課程的講授提供一定參考。
參考文獻:
[1]龍春陽. 課程群建設:高校課程教學改革的路徑選擇[J]. 現代教育科學, 2010(3):139-141.
[2]劉繼斌, 趙曉宇, 黃紀軍,等. MOOC對我國大學課程教學改革的啟示[J]. 高等教育研究學報, 2013, 36(4):7-9.
[3]李燕君.翻轉課堂模式下的計算機網絡課程教學[J]. 計算機教育, 2014, No.224(20):18-22.
[4]馬玉潔.地方本科院校計算機基礎課程教學改革探析[J]. 教育探索, 2011(2):58-59.
[5]萬宇文,黃林穎.計算機網絡課程教學改革與實踐[J]. 計算機教育, 2014(13):79-82.
作者簡介:
戴華(1980.10-),男,湖南澧縣人,湖南理工學院計算機學院講師,研究方向:計算機應用技術,系統建模及仿真。endprint