鄭 莉 李 莉 余小沛
課程建設,通常包括教學研究、教學模式設計、教材和教學資源建設、師資隊伍建設等。其中,教材建設是核心,也是成果的具體體現形式。
教學是一種長期進行的活動,需要進行持續不斷的研究,要本著嚴謹的科學態度,研究教學的各個環節,研究教育者和學習者的特點。我們對“C++語言程序設計”課程的教學研究主要著眼于以下幾個方面。
一、課程體系和內容研究——體現為教材的內容
我們對課程內容、體系的不斷改革,是基于對計算機科學和技術發展趨勢的研究,對工科其他專業與計算機專業交叉滲透、互相融合的研究,對社會人才需求的研究、對學生認知規律的研究。
例如針對程序設計零起點的學生講授面向對象的程序設計,其可行性的根據是什么呢。首先,從面向對象的思想本身來講,它與面向過程的思想相比,更接近人類自然的思維方式,應該更容易接受。從學習者的認知規律來講,習慣了一種思維方式,要改變的時候,往往其難度大于從零起點開始學習。因此向零起點的學生講授面向對象的C++語言,是可行的、符合科學本身和學生的認知規律的。
我們在課程內容建設上,將先進性與基礎性統一,深入性與廣泛性結合。
①以面向對象的思想方法為起點和主線。面向對象方法的出現,既是程序設計方法的一大飛躍,也是一個返璞歸真的過程,人類幾千年文明所形成的思維方法正是面向對象的方法。本課程以此作為學習程序設計的起點和貫穿整門課程的主線,同時有機地融合面向過程的程序設計基礎知識。課程內容結構科學、邏輯清晰、學習路徑簡捷自然,因而學生歡迎。
②引入UML語言表示類的結構。UML語言是目前應用最為廣泛、功能最為強大的建模語言,采用UML語言表示類的結構,可以讓學生從一開始就熟悉科學、嚴謹的表示方法,為進一步的學習打下良好的基礎。
③介紹常用的數據結構和算法,培養學生分析問題和解決問題的能力。
④介紹泛型程序設計和“C++標準模板庫”。泛型程序設計與面向對象的程序設計是兩種不同的方法,兩者相得益彰。C++的獨到之處在于不僅支持面向對象的方法,也很好地支持泛型程序設計方法。巧妙地將兩者結合,便可以更有效地解決問題。本課程介紹了泛型程序設計和STL的基本概念,為學生以后深入學習打下了良好的基礎。
上述內容都體現在教材《C++語言程序設計》(第3版)中。
二、學生心理和教學模式研究——多種形式的立體化教學資源
當今社會是一個多元化的社會,崇尚個性與創造,學生的心理和學習習慣也是多樣化的。這是教學研究中必須研究的,也是教學模式設計中必須考慮的。
例如對于幾百人的大課,多數學生是習慣的,學習效果是比較好的。但是每學期都有一部分學生,不喜歡大課。這樣的學生主要分三類。
一是學習吃力的學生,跟不上大多數同學的學習速度,成了大課的掉隊者,逐漸地聽課成了聽“天書”,進而失去學習興趣。
二是喜歡動手實踐的學生,不能忍受連續兩個學時聽講而不動手嘗試,在課堂上總顯得躍躍欲試,有些躁動。但是百人以上的大課,讓學生動手嘗試的機會總歸比較少。
三是學習能力較強、理解問題較快的學生,沒有耐心按部就班聽課,愿意自己安排學習進度。
針對上述幾種偏愛個性化學習的學生,我們與面授同步,開設了網絡班,用多媒體視頻課件實現網上授課,這樣學生的學習時間、進度都可以自由控制。沒有看懂的部分可以反復看,已經會的可以迅速瀏覽,還可以在聽講過程中隨時停下來動手實踐。
我們根據學生的學習習慣及認知規律,在教學模式設計中兼顧了以下幾個方面。
(1)課堂教學與實驗教學相結合
通過課堂教學傳授基礎理論和基本概念,實驗課加強對基礎知識的理解并培養基本的實踐能力。
(2)課程作業與項目訓練相結合
以課程作業進行基本編程能力的培養,以項目訓練進行獨立分析問題和解決問題以及應用開發能力的培養。
(3)常規教學與網絡教學相結合
以常規教學滿足大多數學生的學習需求,以網絡課程作為補充,以適合不同的學習習慣,并鼓勵自主學習。
(4)通過網絡平臺讓師生交流、學生協作不受時間和空間的限制
網絡讓師生的交互、學生的協作更為方便,也更利于實施教師指導下的學生自主式學習。教師由知識的灌輸者成為學習的引導者,學生由被動地接受教育變成主動地探索知識。
針對學生的不同學習習慣,我們制作了出版配音網絡課件、視頻網絡課件,供學生上網學習。還將講課錄音制作成MP3文件,將PPT講稿給學生下載,這樣不愿意上網的學習學生,在自習教室也可以邊聽MP3,邊看講稿學習。
對于學生的所有學習模式,我們都提供網上答疑、討論,方便學生隨時得到老師和其他同學的幫助。
三、教材體系研究——整套教材及教學資源的作用與配合
主教材是整套教材和課程的靈魂,體現了主要的教學思想和內容。其他配套教材從多種不同側面給教師、學生以特殊幫助,采用多種媒體形式為師生提供全方位教學環境。學生用書指導學生進行預習、復習和實驗,教師用書和電子教案向教師提供教學要點、教學方法和經驗。多媒體課件可以用于自學和開設網絡課程。教師、學生無論采用何種教學模式,都能從本套教材獲得充分的支持。
(1)主教材
主教材是教學內容和教學思想的主要體現者,是系列教材的核心和靈魂,涵蓋了程序設計基礎知識、面向對象的程序設計思想和技術、常用數據結構和算法、泛型程序設計的基本概念等。
(2)學生用書
要將書本上的知識變為自己所具有的能力,所需要的是實踐、實踐、再實踐。在實踐環節中,起主導作用的是學習者自己,旁人是無法代勞的,也不能期望有什么一蹴而就的捷徑。但是由于學生在實踐過程中不能隨時隨地得到指導,因此花費時間較多,總感覺程序設計課作業負擔太重,有的學生甚至因為花四五個小時調不通一個簡單的程序而失去學習興趣。
學生用書的目的在于為學生提供實踐指導,讓學生在實踐的過程中多些成功的樂趣。學生用書的開始,首先給出一個簡要的“學習指南”,其余章節與主教材《C++語言程序設計》(第3版)相對應,每章內容分為三部分:“要點導讀”、“實驗指導”、“習題解答”。其中的實驗指導包括“實驗目的”、“實驗任務”、“實驗步驟”和“答案與提示”,實驗的完整參考程序可從網上下載。習題解答和實驗內容,不僅可以指導讀者上機練習,也可以由教師選為例題在課上演示,使教學內容更加豐富。如果學生沒有足夠的時間做完全部習題和實驗,將題解作為例題閱讀也不失為一種好的選擇。
(3)案例教程
主教材重點在于系統地講解面向對象的思想、方法,對于許多語法細節、編寫C++程序的技巧等不能詳細講解,由于其入門教材的定位,對于許多問題不宜闡述過深,對于學生的許多疑問、困惑不能一一解答。因此一些學生和自學讀者,感覺缺少深入、細致的案例教材。這本案例教程,就是應這樣的需求而誕生的,可以配合主教材,作為教學參考書,也可以獨立使用,開設案例課程。
(4)教師用書
教材是教學經驗的結晶,也是經驗傳播的載體。我們為《C++語言程序設計》(第3版)教材編寫了教師用書,除提供PowerPoint文稿外,為每一章編寫詳細的“教學要點”及學時建議。為每一張投影片,編寫講解要點。由于教材篇幅的限制,不便在主教材中增加很多例題和習題,所以我們在教師用書中提供了一批補充習題以及考試樣題。這些都是為了將教學思想和經驗進行總結和提高,同時也便于交流與推廣。
(5)多媒體課件
為了方便學生自主學習,與教材配套,還開發了音頻課件、視頻課件,在清華大學課堂實時錄制,讓學生自學時也仿佛親臨課堂,為學生提供最靈活的學習方式、最大的方便,使學習可以不受時間、空間的限制。
(6)教學網站
網站對全球開放,有“在線講堂”、“答疑教室”、“師生討論”等欄目,在線演播配音課件,提供教學資源下載,組織教學活動,有效地支持了教師指導下的學生自主式學習和協作學習。
四、以教材建設帶動教師隊伍建設
通過編寫教材培養和鍛煉了高素質的博士助教隊伍和年輕教師隊伍,以教材建設凝聚教師積極參與教學研究。
總的來說,教材建設促進了教學研究,而教學研究的成果又豐富了教材的內容和媒體形式,教材是教學研究成果和教學經驗的濃縮載體。以教材建設帶動教學研究和課程建設,是一條理論與實踐相結合的成功之路。