前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的軟件工程課程設計總結主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞:軟件工程;課程體系;本科教育
1背景
中國信息產業部的數據顯示,2008年中國軟件產業整體保持快速增長態勢,累計完成軟件業務收入7572.9億元,同比增長29.8%。與此同時,我國軟件出口142億美元,同比增長39%。企業對軟件人才需求量在增大,估計人才缺口達到20萬,而且這個需求將以每年20%左右的速度增長[1]。但另一方面,多數軟件類應屆畢業生在面臨就業時卻難以感受到這些數字所帶來的欣慰,很多畢業生并沒有順利找到對口的工作。雖然這些學生身份上屬于工程技術類的應用型人才,在目前IT產業蓬勃發展的大環境下理應有自己的一席之地,但結果卻是“畢業即失業”表現得愈加突出。
軟件工程專業具有巨大的發展潛力,但如何建設好軟件工程專業?長期以來,國內高校軟件專業主要以培養研究型人才為重點,以軟件基礎理論和系統軟件設計為主干,目標是培養面向計算機與系統軟件領域的研究型人才[2]。因此如何建立保證軟件工程專業本科學生既具有可持續發展潛力又適應當前產業需求的新型知識體系,如何建立與企業應用緊密結合的先進課程體系、教學理念和教學方法,從而提高學生的綜合能力,使畢業生在跨出校門時具備必需的素質,縮短從學生到企業員工的角色轉換所需的時間,實現就業的“零適應期”是軟件工程專業努力的目標。
國外高校在軟件工程教育方面的一個共同點就是:根據各自國家和學校的特點,立足學生長遠發展,培養適應社會需要與變化的人才。從軟件教育的特點來看,西方著名大學有較完善的教育理念、教學手段和實驗條件,有較長時間的實施經驗,與企業有密切的合作關系,有一大批專家在從事計算機與軟件的教育研究。這些大學的課程與我國現行的計算機和軟件課程體系相比,理論更深,與新技術的接軌更快,實驗和職業實踐的比重更大,通過實驗讓學生掌握基本概念、提高分析問題與解決問題能力的力度更大。
國內高校軟件專業主要以培養研究型人才為重點,以軟件基礎理論和系統軟件設計為主干,目標是培養面向計算機與系統軟件領域的研究型人才。軟件專業學生在學生學科知識與實際運用有一定的距離。因此探討如何建立符合國情,既面向當前產業需要又兼顧本專業學生發展潛力的知識體系、課程體系,是我們研究的主要內容。
2模塊化的課程體系
我校軟件工程專業申辦于2004年,并于2008年開始招生。該專業成立的宗旨是培養高層次、實用型、復合型、具有國際競爭力的軟件人才,要求學生在思維創新的基礎上,提高技術創新和工程創新能力,提高軟件工程實踐和軟件工程管理能力。我校在設置軟件工程專業課程體系方面學習全國名牌大學如復旦、浙大等,并結合自己硬件及師資條件的實際,提出了如下幾個設想:
(1) 合理設置課程模塊,突出核心基礎。
在軟件工程領域,最新的、先進的軟件技術文檔、技術文獻、發展研究等都是英文撰寫的資料;合資、外資公司中的軟件工程人員所使用的工作語言也是英語。因此在第一至第四學期我們對學生的英語能力進行強化訓練,通過閱讀、聽力、寫作和口語交流等方式提高其英語運用能力;在第二學期開始的所有專業基礎課程、專業核心課程和專業選修課程中加入一定比例的專業英語訓練,將英語融入到專業理論知識學習的過程中;同時開設幾門專業課采用全英文教材,實行雙語教學,達到鞏固和不斷提高的目的,為學生動手編寫英文程序代碼,查閱英文技術文獻、文檔掃除語言障礙。
(2) 合理設置專業入門基礎課程模塊,以引導為主。
以計算機導論為主,并以設置類型多樣、專業覆蓋面廣的專業基礎知識講座或新生研討課為輔,學生學習了計算機最基本的概念后,通過生動有趣的講座獲得更廣的認識和了解。
(3) 合理設置專業核心課程模塊,以應用為主。
專業核心課程關系到培養出來的軟件工程人才質量。針對計算機學科需要,應設置相應的軟件系統類課程、軟件實現類課程、軟件工程類課程以及相應課程的課程設計、實際項目開發為核心的軟件設計及實現類的實踐類課程。
(4) 設置專業方向選修課程,突出個性化發展。
結合時代需求,結合學生個性化發展需求,設置多個專業方向的模塊化課程。設置跨大類專業選修課程,如計算機組成原理、編譯原理和軟件體系結構等;設置專業方向選修課程,如軟件開發案例分析、軟件開發新技術、軟件文檔寫作等課程。學生可按需選修1~2個專業方向,有利于其發揮專業創新能力和專業個性化發展。
目前,我校軟件工程專業課程體系架構如圖1所示。
3實踐教學體系
我院除設置模塊化的課程體系外,還非常注重實踐教學,并且構建了以項目為支撐的實踐教學體系,具體開設與實踐教學有關的課程如下:
第二個學期開設認識實習;
第三個學期開設面向對象程序設計課程設計;
第四個學期開設數據庫原理課程設計以及.NET程序開發技術課程設計;
第五個學期開設Java語言課程設計以及UML建模工具及應用課程設計;
第六個學期開設J2EE技術課程設計及大型數據庫課程設計;
第七個學期開設軟件開發新技術課程設計;
第八個學期畢業設計。
針對合格的工程化軟件人才所應具備的個人開發能力、團隊開發能力、系統研發能力和設備應用能力,我們設計了以下4類階梯狀的工程實踐課程。
程序設計實踐課程:培養個人級工程項目開發能力,如面向過程程序設計(C語言),面向對象程序設計(C++語言)等課程設計。
軟件工程實踐課程:培養團隊合作級工程項目研發能力,如.NET程序開發技術、J2EE技術、嵌入式軟件開發(J2ME)等課程設計。
信息系統實踐課程:培養系統級工程項目研發能力,如軟件開發案例分析、面向對象系統分析與設計、大型數據庫應用等課程設計。
畢業設計實踐課程:培養開發軟件所必備的設備應用能力,如軟件開發新技術課程設計、畢業設計實踐等。
我們感覺軟件方面的技術五花八門,因此在專業核心課程設置上,注意其側重點。我們將Java網絡程序開發定為主要的教學方向,其中包括Java程序設計語言、網絡軟件開發技術、J2EE技術、以J2ME為主的嵌入式軟件開發技術等。當然,我們兼顧企業實際用人的情況,開設了.NET程序開發技術等核心課程,詳細的專業課程體系請參見圖1。
4探索式學習
軟件工程的理論和方法是從眾多軟件開發實踐中總結出來的,但是對于缺乏軟件開發實際經驗的本科生來說,單純地講授理論知識往往使學生感到枯燥無味且難以理解。因此,我們收集和總結了一些軟件開發案例,將這些案例貫穿于理論知識的講解中,使學生真正理解這些理論知識,建立軟件開發的系統化與工程化觀念和質量意識。
(1) 從分析歷史上的經典案例入手,諸如愛國者導彈、網絡病毒攻擊等。深入剖析導致軟件失敗的根本原因,從而引出軟件開發的工程化發展方向,即以軟件工程的原理和方法為指導,嚴格遵循軟件過程規范和步驟。通過這些實例的分析,學生們逐漸改變軟件開發等于編寫程序代碼的錯誤觀念,開始認識到軟件工程的重要性,有利于培養工程化的意識和觀念。
(2) 軟件過程是軟件工程課程中的一個重要內容,但是對于開發經驗有限的本科生來說,很難在頭腦中將軟件過程的抽象模型與實際開發聯系起來,容易產生枯燥乏味的感覺。在教學過程中,我們從軟件開發的實際案例中總結出5個不同的軟件系統,結合這些系統的特點和開發策略,講解瀑布模型、原型化方法、增量模型、形式化方法和基于組件的開發模型等。學生在思考、分析和討論過程中更好地理解和體會軟件過程的基本概念,有利于在實際開發中運用這些過程模型組織開發過程。
(3) 研究軟件工程的實踐特點,課程實驗結合實際開發因素和參與樂趣。實踐教學是本課程的一個重要的組成部分,它要求學生以開發團隊(一個團隊通常由3~5人組成)的方式開發一個具有一定規模的軟件系統,側重培養學生發現問題、獨立分析問題和解決問題的能力以及團隊合作精神,使學生初步體會到一個軟件開發項目全過程。
(4) 研究和建立適合小組式開發的軟件工程環境。在小組式的軟件工程環境中,使學生真正體驗到一種有序的、可控的、協作的軟件開發過程,在分析問題、解決問題、協調沖突、消除矛盾的過程中享受軟件開發成功的最終結果。軟件工程實驗要求學生采用“項目小組”的形式,結合具體的開發項目進行設計,班級按項目小組進行分組,每組不得超過4人。每個項目小組選出項目負責人或項目經理,由其召集項目組成員討論、選定開發項目。學生分工合作,學習軟件開發小組的組織和管理,將項目開發各階段的任務明確,熟悉軟件開發環境,培養團隊精神,共同完成該項目的設計任務。項目中的每項任務要落實到個人,實驗在規定的時間內,由學生獨立完成。
在整個教學過程中,我們也十分注重鼓勵和引導探索式學習,學生通過文獻查閱以及與軟件企業人員的接觸交流,真正體會當前軟件工程業界的真實案例和最佳實踐。課堂講解避免“一言談”的死板方式,采取課堂互動討論,營造活躍、寬松的課堂氣氛,鼓勵學生結合課程實踐中的問題進行專題報告和軟件演示。
在常規的課堂教學之外,我們輔之以網絡課程和擴展資源,鼓勵學生根據個人興趣和需要進行自主式的學習。同時,充分利用網絡教學平臺,加強師生之間的交流和學生之間的協作,引導學生積極思考和參與討論,教師由知識的灌輸者成為學習的引導者,學生由被動地接受教育變成主動地探索知識。
5改革目標
我校軟件工程專業以培養掌握計算機科學基礎理論、軟件工程的知識和技能,具有軟件開發能力、軟件開發實踐和項目組織的初步經驗,具有競爭和團隊精神,能在計算機公司及相關企事業單位從事軟件開發、適應軟件技術發展和社會需求的軟件工程應用型高級專門人才為目標。我校在人才培養堅持遵循以下原則。
(1) 堅持通識教育與專業教育結合原則,即通識教育課程要著眼于加強學生的基礎知識教育,著眼于培養學生的科學素養和人文精神[3]。
(2) 堅持以人為本,因材施教原則,即在保證人才培養目標和質量規格要求的基礎上,充分考慮因材施教,注重學生個性的發展,擴大學生自主學習、自主發展的時空,面向社會和學生多樣化需求,提供多樣化的課程體系和教育指導,為不同志向、不同能力和不同潛質的學生創造相應的培養環境和條件。通過柔性設置專業方向模塊,讓學生結合自身興趣、就業志向和人才市場需求,靈活地選擇發展方向,以增強專業方向優勢、職業適應性建立完善的、與課程體系配套的實訓、培訓的“雙訓”教學體系,使培養的人才更加適應社會和企業的需求。
(3) 堅持應用為本,學以致用原則,即以學校辦學定位和服務面向為指南,立足于培養應用型高級專門人才的目標,強化理論與實踐的結合,著力培養學生的創新精神和實踐能力。在實踐教學體系的設計上,按照基礎、提高、綜合3個層次和基本實驗、技能訓練、專業實習、科研訓練、綜合實習、社會實踐6大模塊構建創新精神和實踐能力培養體系。
(4) 建立一套以軟件工程為主線的教學、實訓評估標準,以確保人才培養目標的實現。
6結語
我們認為,計算機科學技術的快速發展以及企業對人才的多元化需求要求我們將新的知識單元及時引進課程體系中,使課程體系的設置要有超前和發展的眼光,隨時將一些新興的、成熟的內容吸收進課堂教學,做到對課程體系、教學計劃動態調整,保持課程體系的動態性、前瞻性。
軟件工程專業課程體系必須建立在對軟件工程專業人才的知識結構和綜合素質的全面研究之上。按照軟件工程專業人才培養目標和國內外軟件工程人才的需求,培養出的人才的知識結構域應該包括軟件開發新技術、現代軟件工程、工程領域背景技術3個主要部分[4]。我們還將在課程體系設置、教學方法、教材編寫等諸多方面,充分學習、借鑒和吸收發達國家計算機教育教學的先進經驗。
注:本文受“以社會需求為導向的軟件工程專業課程體系改革的研究”(校級重點教改課題)支持。
參考文獻:
[1] 王晴. 印度軟件業崛起原因及其對我國產業結構升級的啟示[J]. 生產力研究,2007(3):104-106.
[2] 吳愛華. 全國高校軟件工程專業教育年會論文集(2007)[M]// 適應時展 推進高等理工科教育改革. 北京:高等教育出版社,2008.
[3] 楊芙清. 全國高校軟件工程專業教育年會論文集(2007)[M]// 軟件工程教育的思索與實踐. 北京:高等教育出版社,2008.
[4] 李彤. 軟件工程人才培養的實踐與思考[J]. 計算機教育,2004(10):15-17.
Research on Professional Curriculum Reform of Software Engineering
about Social Requirement-oriented
WEN Zhi-cheng1, CAO Chun-li2
(1.College of Computer and Communication, Hunan University of Technology, Zhuzhou 412008, China;
2.College of Commercial, Hunan University of Technology, Zhuzhou 412008, China)
1.實踐教學缺乏系統性和針對性目前許多高校“軟件工程”課程除了理論講解外,也加入了實踐教學部分。往往受學時所限,實踐分為軟件項目若干設計文檔的編寫和軟件工程工具的實驗練習。前者受缺乏相應的開發環境、教師虛擬客戶不能很好地反應現實需求、理工科學生的文字表達能力不足等因素的影響,設計文檔的編寫不能很好提高學生能力;后者在一定程度起到了一定的作用,但對于培養學生分析問題、解決問題、管理和團體協作能力方面仍顯不足。
2.評分模式單一軟件工程采用了傳統的閉卷考試方式,平時成績占總成績的30%,期末考試占70%。平時成績=上課出勤情況(10%)+實驗完成情況(10%)+作業完成情況(10%)。任課教師通過對不同的考核內容賦予不同權重來評價學生對軟件工程課程的掌握情況,主要考核學生對課程基本知識的理解。此方法不足以提高學生實際動手的能力,更不利于激發學生實際軟件設計開發的興趣。
二、現有的教學方法的分析
針對上述問題,從事軟件工程的相關教師從不同角度,對軟件工程課程進行了改革。歸納起來主要有如下幾種教學方法改革:
1.自底向上教學法在“軟件工程”課程中應用授課方式主要是用倒敘的方式貫穿完整案例(包含警戒案例),以啟發、討論、辯論的形式講授軟件工程的原理、方法及過程,使學生不覺生疏,易接受,又符合IT從業人員的工作進程。[2]
2.模塊化教學法在“軟件工程”課程中的應用在尊重教學規律和學生個性發展的原則上,根據課程體系和內容之間的關系,將教學部分劃分為若干獨立的模塊,確定模塊之間的關聯,針對不同的教學計劃要求,采用不同的模塊組合有選擇地進行講授和學習。[3]
3.案例教學法在“軟件工程”課程中的應用軟件工程案例教學是根據“軟件工程”課程的教學目的和學生培養目標要求,教師選用相應的案例作為基本素材,引導學生對案例進行調查、思考、分析、討論、設計、開發和交流等相關活動,在活動中教授學生軟件工程的原理、方法及過程,進而提高學生分析和解決問題的能力,加深學生對基本理論知識的理解和掌握。[4]
4.項目驅動教學法在“軟件工程”課程中的應用項目驅動教學法是案例教學法的基礎上采用“案例導向、項目驅動”的教學方法。首先,教師根據要講授的理論知識預先準備一個或者多個小的軟件開發項目;然后,將學生作為主體,以軟件開發項目的研發過程為引導,采用學生小組團隊合作和學生個人獨立完成相結合的教學形式,組織學生開展集體討論并完成相應的實踐性活動,在研發過程中同學和老師要對每位學生所完成的每個階段任務加以點評、督促改進、分享經驗等;最后,學生將成功的軟件給予演示。
5.三位一體式教學法在“軟件工程”課程中的應用根據學生的認識特點和該課程自身的特點以及對“軟件工程”課程在計算機科學專業的定位、教材的選取、課程培養目標的分析下,采取以綜合能力培養為中心、項目實踐為標準,模板、案例、指導說明為輔助的三位一體式的教學思路。[6]對目前在“軟件工程”課程改革中應用的五種方法針對改革側重點進行匯總發現(見表1),單一的教學方法只是在理論教學、實踐教學和考核方式某一方面發揮了很好的作用,而不能從全面發揮效果,而對于“軟件工程”課程來說三者同樣重要。
三、基于多元教學法的課程改革新模式
某一種教學模式改革已經不能滿足現代“軟件工程”課程教學的要求,只有將多元教學模式組合在一起,充分考慮各自對課程教學的優勢,避其缺點,找到一種既能使學生具有良好的理論基礎,又能充分培養學生實踐能力,還能準確地考核學生的教學模式。本次課程改革就是本著這樣一種思想,從理論教學、實踐教學和考核方式三個方面進行多樣化改革。
1.理論教學內容多樣化
理論知識的學習在學生以后軟件項目開發過程中具有必要性和重要性,軟件工程學習過程中要重視基礎和基本技能的培養。學生要具有開發軟件項目的能力,首先要熟悉掌握軟件工程相關的理論知識,特別是對如何按照工程化的方法系統地設計、實現、測試和維護大型軟件,內容包括:軟件開發的基本理論、方法和技術;其次是了解目前已有系統、工具和技術。(1)授課內容引入案例。教師在教學過程中引入與理論知識相匹配的實際案例,將比較抽象的軟件工程原理、方法和技術轉為具體生動的案例進行詮釋,增強理論教學的藝術性、科學性、趣味性、形象性,使學生能夠在課堂上深刻領會和理解軟件工程的思想和方法,教學效果收到了事半功倍。(2)適時更新教學內容。近幾年,軟件原理、方法和技術發展較快,許多適應時展的軟件不斷涌出,而目前的教材雖不斷改版更新,但其更新的速度遠遠跟不上軟件工程的發展。因此,教師在進行理論講解時,除了要教授學生基本原理、技術和方法外,還要時刻關注新內容的出現。(3)制作豐富多彩的課件。采用多媒體教學手段,在課件中插入圖片、動畫、聲音、視頻等多媒體元素,使教學內容更加充實和生動。(4)課堂小組討論。從小問題到大問題,讓學生參與教學過程,有機會發表自己的看法。課堂討論和分析試驗,使理論有實踐作支撐,抽象的知識變得看得見,用得著,大大激發學生學習的興趣和自信。
2.實踐教學內容多樣化
軟件工程理論的講解是課程學習和技能培養的基礎,而軟件工程中許多理論內容如果只是教師講解不加以實踐,內容本身就會變得空洞和不可理解,例如:軟件復雜性計算、軟件可靠性與安全性的測量標準、結構化的實現方法等都需要學生動手實踐才能更好地理解知識本身的內涵。掌握概念、原理、方法和技術,熟練應用軟件開發實踐中的方法和技術是“軟件工程”課程對學生的培養目標。(1)課程角色扮演。教師預先選擇若干小項目,班內學生根據自己對項目熟悉情況選擇項目名稱,劃分項目小組,每組人數不超過6人,每個項目小組成員根據自身特長選擇不同軟件工程角色,例如項目負責人、需求分析負責人、設計負責人、編碼負責人、測試負責人和用戶代表,進行項目分工。項目組成員按時完成自己負責任務,撰寫相應文檔。教師幫助學生分析和解決所遇到問題。在整個開發過程可以體現“學以致用”的思想,實現理論與實踐相結合。(2)課程設計。課程設計主要是針對高年級學生在學習軟件工程課程時開展的專項訓練。課程設計采取在學校內模擬IT企業環境下完成來自企業案例或開發一些具有應用價值項目或學校教師承擔的開發項目的部分開發工作,也可以是學生自選項目,整個課程設計階段嚴格按照工程實施的基本思想來實施。(3)加強校企合作。一方面經常邀請軟件公司長期從事軟件設計、開發和項目管理的工程師和項目經理,給學生講解自己在軟件設計、開發和管理中的經驗,高質量軟件產品需要經過怎樣的開發過程,軟件生命周期中標準文檔如何撰寫等相關內容;另一方面,利用寒暑假時間,讓學生走出去,到軟件產品的研發單位實地實習。
3.考試方式多樣化
傳統的考核方式已經不能反映學生實際軟件開發的水平,也與多樣化的教學模式不相匹配,為此多樣化的考核方式才符合現實需求,主要包括:筆試、課后角色扮演、課程設計和項目總結。(1)筆試占總成績的35%,主要考查學生理論知識的掌握情況和學習效果。(2)課后角色扮演占總成績的15%。由教師根據每位學生在課后角色扮演中的具體表現進行打分,主要由3部分取平均值組成:1/3*(整個項目的成績+自己負責完成的文檔成績+組內其他成員負責完成的文檔的平均成績)。(3)項目總結或心得體會占總成績的15%。根據學生在軟件開發過程中所撰寫的經驗和教訓總結報告、每個小組成員建立的個人開發記錄或日志的實際情況,相互打分。
四、基于多元教學模式課程改革方案
基于上述改革理念,按照軟件工程開發原理、方法和技術,選用典型項目案例,將學生按照項目分成若干個小組,每組人數不超過6人。每個小組對應著一個具體的項目,每個人對應著一個具體工作過程,按照如下步驟進行多元教學。第一步,教師選用合適的教學內容,制作豐富多彩的課件,對學生進行基本理論和基本技能的講解。在每一個軟件生命周期結束后,教師進行案例場景描述。教師按照理論知識的內容,選擇相應的案例進行描述,學生將所學內容運用到相關案例中。教師通過案例讓學生明白理論知識如何應用,學生通過案例體會到小項目中所學的原理、方法和技術是如何實現的。第二步,課后角色扮演。學生通過分組討論的方式,完成項目分工,明確自己在項目中所扮演的角色。所有的任務通過集體討論的方式,決出所要完成的任務,并由相應的角色人實際操作完成。例如,需求分析一章內容,學生課后進行項目小組討論,決定需求分析的內容,進行相應的需求分析,并由扮演需求分析人員的學生完成需求報告。軟件開發過程需要整個團隊的通力合作,根據學生的性格、表達能力、開發能力、理論基礎掌握情況等方面進行人員分組,將具有不同特點的學生組成一個團隊完成項目開發。這種團隊合作的方式,既能發揮學生各自的特長,又能培養學生的團隊合作精神。第三步,課程設計。當全部內容講解完成,就可以開始長達2周的課程設計內容了。這段時間要求項目小組,徹底完成一個由教師虛擬的項目。此步驟中,主要培養學生良好的科研習慣,在開發過程中及時總結經驗和教訓,建立個人開發記錄或日志,理論聯系實際學著開發軟件。第四步,學生總結,教師點評。學生經過多個教學環節后,每個團隊在一定程度上完成了各自的項目任務,對各自團隊的成果進行總結。教師聽取每個團隊的匯報后,從橫向和縱向兩個方面對項目成果之間進行比較,從而讓每一位學生明白自己在團隊中發揮了什么作用,自己哪些方面不足。第五步,請進來,走出去。通過學校和企業合作的方式,一方面經常邀請軟件公司長期從事軟件設計、開發和項目管理的工程師和項目經理,給學生講解自己在軟件設計、開發和管理中的經驗,高質量軟件產品需要經過怎樣的開發過程,軟件生命周期中標準文檔如何撰寫等相關內容;另一方面,利用寒暑假時間,讓學生走出去,到軟件產品的研發單位,實地實習。
五、結束語
關鍵詞:軟件工程教學改進實踐
中圖分類號:
1、引言
提起軟件,在當今社會人們并不陌生,正是由于軟件的發展,使計算機應用逐步滲透到社會生活的各個角落,使各行各業都發生很大的變化。這同時也促進人們對軟件的品種、數量、功能和質量等提出了越來越高的要求。然而,軟件的規模越大、越復雜,人們的軟件開發能力越顯得力不從心。于是,人們開始重視軟件開發過程、方法、工具和環境的研究,軟件工程應運而生。
“軟件工程”主要介紹軟件工程的基本原理、開發方法和開發工具,通過本課程的學習,使學生了解和初步掌握開發1個軟件項目所使用的方法和工具,以及“軟件工程”的發展過程和發展趨勢,為進行軟件開發打下1個良好的基礎。
2、課程特點
1。課程綜合性強。
軟件工程與其他計算機課程,如程序設計語言、數據結構、編譯原理、數據庫以及操作系統等課程都是相互作用和影響的。在1定程度上說,軟件工程討論的是在實際開發當中綜合運用這些課程中講過的理論和方法,將這些課程的理論和方法放在1個統1的目標下,這個目標就是在有限的時間及預算條件下,開發出高質量的令用戶滿意的軟件。
2。課程內容不斷更新。
軟件工程課程的教學培養目標應該以市場需求為導向,使課程培養的學生真正能夠在軟件行業中發揮作用。因此,在授課時,我們不能拘泥于教材內容的限制。在講解基本原理、基本概念和基本方法的同時,介紹1些新方法、新技術。這樣,有助于開拓學生的視野和培養創新意識與開發能力,使他們走向社會后不至落伍。
3。課程的實踐性強。
軟件工程是1門實踐性很強的課程,它是各種開發經驗的總結與提煉。在學習過程中不但應注重概念、原理、方法和技術的掌握,更應注重方法、技術的實際應用。學習軟件工程必須投身于軟件開發的實踐,才能真正領悟軟件工程的精髓。
實際教學當中,這門課的教學效果往往不是很理想,教師覺得這門課教起來較困難,學生學習中多數也覺得枯燥無味,很難達到較好的教學效果或獲得較強的實踐能力等預期目的。如何改善?結合軟件工程的課程特點,筆者認為可以從以下幾個方面來改進《軟件工程》的教學質量。三、軟件工程教學改進的內容和方法
1。教學過程引入實際案例
軟件工程課程涉及面很廣,如果不結合實際工程項目進行教學,很難把教學內容教授給學生。因此,在教學過程中引入案例,將復雜抽象的概念用具體生動的實例進行詮釋,能夠收到事半功倍的效果。例如,在授課時教師可結合1個“學校教材購銷系統”實例,給學生介紹具體的開發過程和方法。
另外,學校還可邀請領域內有實際經驗的資深程序員,針對軟件工程中具體理論和方法在實際開發中的應用,在課堂上和學生進行面對面講座,深入淺出地作講解。這樣,學生可以更加熟悉、掌握軟件開發的過程。
2。組織課堂討論,形成教學互動
我國有句名言:“授人以魚,不如授人以漁”。學生是教學活動的核心,教師要利用合適的方法調動學生的積極心理和參與意識,改變傳統的教師高高在上的教學方式,讓學生參與教學過程,有機會發表自己的看法。
比如在講授需求分析這章內容時,可結合“學校教材購銷系統”這個案例,要求學生按照軟件工程教學的思想和方法認真做好需求分析。在實施過程中,首先由學生獨立思考,給出解決方案。然后在課堂上,組織學生進行討論,分析各自解決方案的優劣,并進行綜合。最后由老師進行總結和評價,指出該案例所涉及的理論知識及其應用方法,就學生提出的問題進行解答。這樣通過組織學生討論,可使學生進1步理解和掌握課程內容的方法和步驟,使抽象的知識變得看得見,用得著,大大激發了學生學習的興趣和自信。
3。加強實踐環節
從本質上看,軟件工程的實踐性和綜合性是其他相關課程難以比擬的。因此,必須結合設計項目和實際應用加以施教,才能取得良好的教學效果。那么,在把握教學進度的同時,必須及早安排好課程設計,讓學生同步開展課程設計。這樣,理論課講完了,課程設計也基本結束,學生們能從理論和實踐的結合上,加深對軟件工程知識難點、重點的理解,進1步深刻理解軟件過程和系統消化理論知識,訓練項目設計的思路,鍛煉實際開發能力,培養嚴格規范的項目開發方法和步驟,體驗文檔編寫整理、階段性評審總結以及軟件測試等各個方面的工作流程,直接培養了學生從事實際開發的能力。
四、結束語
在教學中,我們還應根據學生的具體情況,因材施教。總之,通過不斷改進教學,使學生能更好地理解、掌握知識,運用所學服務社會。
參考文獻:
[1]史濟民等。軟件工程。北京:高等教育出版社,2002。12
關鍵詞 軟件工程;教學改進;實踐
一、引言
提起軟件,在當今社會人們并不陌生,正是由于軟件的發展,使計算機應用逐步滲透到社會生活的各個角落,使各行各業都發生很大的變化。這同時也促進人們對軟件的品種、數量、功能和質量等提出了越來越高的要求。然而,軟件的規模越大、越復雜,人們的軟件開發能力越顯得力不從心。于是,人們開始重視軟件開發過程、方法、工具和環境的研究,軟件工程應運而生。
軟件工程是計算機軟件專業一門綜合管理課程。它涉及計算機科學、工程學、管理學以及經濟學等多門學科,是一門根據人們的軟件開發經驗總結出來的理論課程。本課程的教學目的和任務是通過學習使學生掌握軟件工程的基本概念、基本原理、實用的開發方法和技術,了解軟件工程各領域的發展動向,掌握如何用工程化的方法開發軟件項目,知道在開發過程中應遵循的流程、準則、標準和規范。作為一門實踐性和綜合性很強的課程,對培養學生的軟件素質,提高學生的軟件開發能力具有重要的意義。
二、課程特點
1.課程綜合性強
軟件工程與其他計算機課程,如程序設計語言、數據結構、編譯原理、數據庫以及操作系統等課程都是相互作用和影響的。在一定程度上說,軟件工程討論的是在實際開發當中綜合運用這些課程中講過的理論和方法,將這些課程的理論和方法放在一個統一的目標下,這個目標就是在有限的時間及預算條件下,開發出高質量的令用戶滿意的軟件。
2.課程內容不斷更新
軟件工程課程的教學培養目標應該以市場需求為導向,使課程培養的學生真正能夠在軟件行業中發揮作用。因此,在授課時,我們不能拘泥于教材內容的限制。在講解基本原理、基本概念和基本方法的同時,介紹一些新方法、新技術。這樣,有助于開拓學生的視野和培養創新意識與開發能力,使他們走向社會后不至落伍。
3.課程的實踐性強
軟件工程是一門實踐性很強的課程,它是各種開發經驗的總結與提煉。在學習過程中不但應注重概念、原理、方法和技術的掌握,更應注重方法、技術的實際應用。學習軟件工程必須投身于軟件開發的實踐,才能真正領悟軟件工程的精髓。
三、軟件工程教學中存在的問題
軟件工程是一門理論性較強的課程,在日常教學過程中存在以下問題:
(1)學生對軟件工程的抽象理論容易感到枯燥乏味軟件工程涉及眾多專業領域,它是一門多學科交叉學科,課程內容具有抽象化、系統化、理論性強等特點。不像程序設計課程能隨時動手設計實現程序,激發學生學習的興趣和熱情。學生在接受抽象理論的時候,容易感到內容空洞、枯燥乏味,學習時就缺少主動性,難對這門課程產生興趣。
(2)實踐環節不理想。目前可供該課程選用的合適的實驗項目少,實驗效果與教學要求差距較大,學生不能把理論知識有效地運用到實踐活動中。
(3)不能較好地因人施教。學生的基礎水平參差不齊,個體差異較大,現行的教學模式很難滿足全體學生的要求。
由于學生沒有真正掌握基礎理論及運用理論的技能和方法,學習過程中又沒有參加實際軟件項目的機會,不能將軟件工程的理論充分運用到設計實踐中去,給畢業設計,以及畢業后參加工作帶來很多麻煩。
實際教學當中,這門課的教學效果往往不是很理想,教師覺得這門課教起來較困難,學生學習中多數也覺得枯燥無味,很難達到較好的教學效果或獲得較強的實踐能力等預期目的。如何改善?結合軟件工程的課程特點,可以從以下幾個方面來改進《軟件工程》的教學質量。
四、軟件工程教學改進的內容和方法
1.教學過程引入實際案例
軟件工程課程涉及面很廣,如果不結合實際工程項目進行教學,很難把教學內容教授給學生。因此,在教學過程中引入案例,將復雜抽象的概念用具體生動的實例進行詮釋,能夠收到事半功倍的效果。例如,在授課時、可結合一個“學生信息管理系統”實例,給學生介紹具體的開發過程和方法。
2.組織課堂討論,形成教學互動
我國有句名言:“授人以魚,不如授人以漁”。學生是教學活動的核心,教師要利用合適的方法調動學生的積極心理和參與意識,改變傳統的教師高高在上的教學方式,讓學生參與教學過程,有機會發表自己的看法。
比如在講授需求分析這章內容時,可結合“學生信息管理系統”這個案例,要求學生按照軟件工程教學的思想和方法認真做好需求分析。在實施過程中,首先由學生獨立思考,給出解決方案。然后在課堂上,組織學生進行討論,分析各自解決方案的優劣,并進行綜合。最后由老師進行總結和評價,指出該案例所涉及的理論知識及其應用方法,就學生提出的問題進行解答。這樣通過組織學生討論,可使學生進一步理解和掌握課程內容的方法和步驟,使抽象的知識變得看得見,用得著,大大激發了學生學習的興趣和自信。
3.加強實踐環節
從本質上看,軟件工程的實踐性和綜合性是其他相關課程難以比擬的。因此,必須結合設計項目和實際應用加以施教,才能取得良好的教學效果。那么,在把握教學進度的同時,必須及早安排好課程設計,讓學生同步開展課程設計。這樣,理論課講完了,課程設計也基本結束,學生們能從理論和實踐的結合上,加深對軟件工程知識難點、重點的理解,進一步深刻理解軟件過程和系統消化理論知識,訓練項目設計的思路,鍛煉實際開發能力,培養嚴格規范的項目開發方法和步驟,體驗文檔編寫整理、階段性評審總結以及軟件測試等各個方面的工作流程,直接培養了學生從事實際開發的能力。
4.以“項目小組”形式完成軟件開發過程管理
為了培養學生的團隊精神和求知欲,我們采用“項目小組”的開發形式,每個小組5-6人自由組合,分工合作,學生們不再是旁觀者,而是分別擔任客戶、項目經理、系統分析員、程序員、測試員和評審人員的角色,要求運用軟件工程中面向對象技術、方法和按照軟件過程規范分階段實施,學生所做課題貫穿整個學期的學習過程,每個課題都來自實際需求,每個小組課題不允許重復,這種方法在提高學生的興趣和和學習主動性,以及發揮學生的專長和創造力等方面,收到了很大的成效。
五、總結
通過一輪的教學改革,軟件工程課程的教學效果有了比較明顯的改善,學生對軟件工程的原理及概念都有了比較深刻的理解。同時學生的實踐動手能力、團隊協作的能力、解決問題的能力以及文檔的編寫的水平都有了比較明顯的提高。目前看來,新的教學模式取得了比較好的效果,但是其實施過程還需要在實際的教學過程中不斷的修正和完善。
參考文獻:
[1]張海藩.軟件工程導論第四版,清華大學出版社.
[2]陳明.軟件工程學教程,科學出版社.
[3]尹鋒.軟件工程課程教學改革初探.長沙大學學報,2004(12):79.
關鍵字:操作系統課程設計;考核體系;考核環節;考核指標
中圖分類號:G642.0文獻標識碼:B
文章編號:1672-5913(2007)08-0045-04
計算機操作系統是與硬件直接相關的系統軟件,計算機中的關鍵性技術,它的設計與實現體現了程序設計與軟件工程的精髓[1]。計算機操作系統原理課程是計算機科學與技術及相關專業的核心課程之一,對理論與實踐要求都很高,歷來為計算機及信息學科所重視。操作系統課程設計正是該課程實踐環節的集中表現,不僅可使學生鞏固理論學習的概念、原理、設計、算法及數據結構,同時培養開發大型軟件所應擁有的系統結構設計和軟件工程素養。對該課程考核體系的構建可以促進學生設計能力、創新能力和科學素養的全面提升。
1 操作系統課程實踐現狀分析
國內外高校對操作系統課程的實踐環節極為重視[1]。北大、清華、西電、國防科大等院校均分兩個學期,設立理論、實踐環節來共同完成該課程的教學工作。實踐內容主要分為模擬仿真型、解剖型或設計型。由于操作系統課程內容的抽象性、復雜性,決定了許多學生在學完理論以后,對實踐環節感到束手無策;同時該課程內容承上啟下,涉及以前學習的許多課程,如C語言、數據結構、計算機組成原理等,要求學生有較強的綜合分析問題和設計的能力。課程的難度阻礙該課程的考核,實踐考核往往成為程序設計考核或算法編程考核,沒能成為有效促進操作系統學習的有力工具。一些院校在此方面進行了有益的改革與嘗試。北京大學根據MIT的開放課程經驗和自己學生的特點,建立操作系統實驗室,提出了一套自己的試驗平臺和實驗體系,包括實習授課、進程控制、實習反饋等環節控制教學質量[2]。考核模式中增加成果演示和期末答辯環節,借助交流開發心得、壓力測試等方法檢查進度控制好壞,達到促進學生學習的目的。南開大學提倡使用系統仿真的實驗環境加強學生理論聯系實際的能力,降低試卷考試的壓力,建立多元化考核體系,使用“彈性考核制度”培養學生的綜合素質和能力[3]。
我校是農業類院校,操作系統課程設計是緊接操作系統原理課程的實驗型必修課,安排在上完理論課的下一學期。過去兩三年里,借鑒其他院校的經驗,根據自己學生的生源特征和課程特點,本著“承上啟下、提高綜合能力”的宗旨,為提高學生的軟件設計能力、動手編程能力,摸索與總結了一些控制實踐課程質量的方法。但也暴露出一些問題。(1)無法將操作系統理論與實踐結合起來。一些同學只為完成表面上的功能進行軟件設計與開發,沒有借鑒前人成果;(2)同學之間依賴性嚴重,加之Internet網提供的便利功能,一些同學出現網上拷貝,不勞而獲、渾水摸魚的現象;(3)缺少考核體系與測試環節。對原理課程的認識不足,缺少軟件工程的思想指導。實踐環節的軟件開發等同于以前的算法設計或編程,沒能突出該課程系統性的特點;(4)缺少分組協作能力、口頭表達能力、進程控制能力等方面的訓練,許多同學會做不會說、不會寫;能單獨開發,不會小組共同協作。
2操作系統課程設計考核體系構建思路
學習評價是課程學習的一部分,能夠有效地促進課程學習。一個完整的課程考核體系應該有過程性學習評價和終結性學習評價兩部分。針對本課程的現狀,考核體系應具體解決如下問題:(1)量化考核指標;(2)量化考核每位同學的協作能力、分析解決問題能力。由于分組協作完成設計任務,給老師有效地分辨出每位同學具體完成的工作量及工作質量帶來困難,需要考核環節中具體的量化措施來保證。(3)體會軟件開發全過程。操作系統是計算機中管理軟硬件資源的系統軟件,其設計與實現的著眼點均是“一切為了用戶”的系統觀點。通過考核環節的設定,使沒出過校門,沒有實踐經驗的學生,在校期間體會到軟件的開發過程。
與理論考核模式相比,實踐考核不僅注重結果,更加注重過程、技術和素質考核。分析操作系統課程設計實踐現狀,結合具體的考核量化問題,本著過程與結果并重的原則,提出如下指導原則:
(1)堅持多樣化考核與多次考核機會相結合的考核方法。建立以考察專業技術和職業素質為基礎的考核體系??己藘热莸倪x擇,既要體現和課程培養目標,又要有利于培養學生運用所學知識和技術分析問題和解決問題的能力。真正做到既考知識,又考能力(技能)和素質。
(2)強調理論與實踐的結合。課程設計從題目的選擇到設計與實現,均應借鑒前人成功的設計理念,采用或擴展已學過的算法和策略,考察將抽象的理論知識滲透到實踐設計的能力。
(3)根據課程設計考核改革模式,設計考核評測體系及考核評價指標。過程考核、技術考核及結果考核相結合,最終得出綜合成績。同時,注重每一考核環節的交流與指導。
(4)將軟件工程的思想融入課程設計,培養學生分工協作能力,進度控制能力。
本研究在總結我校前三屆學生課程設計經驗的基礎上,學習借鑒其他高校的成功經驗,針對農業院校學生的特點,突出內容的系統性、設計性和可操作性的同時,本著綜合能力提高的宗旨,通過協作學習與模擬性學習相結合,設計出一套適合本校學生特點的學習考核模式,采用過程考核、技術考核、結果考核等多種形式建立實踐教學的考核評價體系(圖1),提高實踐環節的質量,調動學生的學習熱情,“以考促學”,培養學生多元能力,為農林類院校操作系統課程實踐考核趟出有益的道路。
3 考核評測體系的構建
操作系統實踐教學的考核目標是在軟件工程思想指導下,提高大型軟件的分析設計能力,小組成員的分工協作能力,設計結果的分析測試能力。因此,考核體系的制定既要考慮理論知識與技能提高,又要加強團隊精神與素質培養。本研究按照該課程實施過程中的五個步驟:明確目標――小組計劃――協作研究――分組測試――最終評價設立考核環節。
3.1 考核評測環節的建立
操作系統課程設計考核體系根據課程考核的指導原則和課程設計流程,本著科學合理,重理論、重技能、重素質的原則,設定為五大考核環節,分別是設計考核、算法考核、測試考核、能力考核和提優考核,最終考核成績是五部分乘權重之和。表1,體現各考試環節的考核內容與方法。其中,設計考核針對課程設計的開始部分,檢查學生整體規劃和協作分工能力;算法考核主要考核每位學生的參與程度,具體實現措施;測試考核屬于對課程設計成果的檢查,是以往實踐考核的薄弱環節。該考核體系中強調測試,通過制訂組內測試、組間測試和教師測試制度完成整體測試。具體測試過程是教師提供測試報告書格式及考核項目,組間成員按照對方提供的操作說明對軟件作品進行相互測試,并填寫測試報告,然后由教師組成的測試小組進行綜合性測試,給出測試評語。能力考核貫穿實踐的每個環節,通過學生制作PPT、口頭匯報并回答問題,考察語言表達能力、進度計劃實施情況及工作匯報能力。提優考核是在課程設計結束后,針對部分優秀的學生主動申請,通過撰寫小論文的形式體現。
3.2 考核評價指標的建設
考核測評環節是指導實踐考核的基礎,考核評價指標具體量化考核環節,是成績評定的依據,它的構建必須有系統和全局的眼光。我校操作系統課程設計是停課一周進行,時間安排在三年級下學期開學第一周。三年級上學期理論課結束后學生分組、選題,利用寒假時間準備資料,開學后完成具體實踐工作。課程設計的好壞很大程度取決于假期準備工作的好壞。為了有效考核學生準備工作和實踐情況,針對考核環節設定具體的匯報考核指標和測試報告考核指標。由教師和四年級優秀學生組成考核小組,按照匯報考核指標打分,存檔源碼程序、可運行程序、測試報告和課程實踐報告,綜合測試報告考核指標給出課程設計的綜合成績。
(1)匯報考核指標
匯報考核如表2,屬于過程性考核,主要考查學生整體計劃,分工協作與進程控制能力,語言表達能力和幻燈匯報能力,有利于提高理工科學生的綜合素養。采用PPT幻燈形式,匯報時間穿插在實踐設計的過程中,是量化設計考核、算法考核和綜合能力的主要手段之一。同時,總結性匯報促進同學之間彼此交流成果與心得。
(2)測試報告考核指標
軟件測試是保證軟件質量的重要環節,測試考核指標的設立有助于建立良好的軟件測試觀,養成良好的測試習慣,為后續軟件工程課程的開設積累實踐經驗。測試考核以測試報告的形式存檔,考核指標既要體現整體構思,又要能夠促進被測試軟件的完善,有助于錯誤的發現與改進;同時,該項工作的開展是同學之間交流與學習的機會。核心測試指標如下:
理論依據是否充分。
功能、結構設計的合理性、是否考慮充分。
算法正確性及容錯程度、算法性能情況,要求評測人用具體的測試數據進行說明。
用戶界面友好性、直觀性、易用性,并要求具體列舉。
總結評價該設計的優缺點,具體描述特色與創新,并提出改進建議。
4 實踐與效果分析
4.1 操作系統課程設計的實踐
2005~2006學年第二學期,在我院院級實踐教學改革項目的資助下,計算機科學與技術系02級共63位同學分成20個小組,按照操作系統課程設計考核體系進行實踐。教師提供20道參考題目供學生選擇,同學也可根據自己的興趣愛好自定與操作系統相關的題目。有模擬內存可變分區的系統,有模擬Linux 2.6內核的進程調度系統,也有圖形化動態模擬磁盤調度各種算法的系統。兩名教師和兩名四年級同學組成考核小組,經過三階段的匯報考核,組間測試考核,實踐報告考核,作品測試等考核,順利通過課程設計課程實踐。每組同學鞏固理論學習的同時,加強軟件設計與編程能力,整體素質得到鍛煉與提高。每個小組提交軟件作品,其中5個小組提交提優論文。圖2和圖3分別是課程設計學生作品樣例。
4.2 實踐效果
經過一周的停課實踐,學生們普遍感覺加強了對操作系統理論的認識,同學之間的協作能力提高,自身的編程能力、系統設計能力及表達能力得到鍛煉和改善。通過課程設計考核體系的實施,使廣大學生在如下幾個方面得到了提升:
(1)協作學習能力普遍提高。每個小組非常重視三個階段的匯報,從查閱資料到幻燈結構、內容和色彩都經過仔細琢磨;小組內討論氣氛熱烈,有些小組甚至在宿舍熄燈后仍在探討問題;還有的小組到處尋找通宵教室,加班加點工作。
(2)真實能力明顯提高。量化課程設計過程和考核指標,完善了過程監督,有效地防止了學生實踐“做弊”現象,使所有學生的能力都得到一定鍛煉。
(3)提升綜合應用知識的能力。操作系統模擬的許多題目,不僅涉及數據結構,同時要求活學活用操作系統理論中的概念與方法。如,模擬內存管理的設計中,為突出并發和共享特征,一些小組使用了多線程實現并發。另外,數據結構中樹、鏈表以及Hash表的知識得到鞏固。
(4)計劃表達與交流能力提高。課程設計三個考核環節,將自己的成果展現給同學和老師,并且解答老師的提問,有助于老師與學生、學生與學生之間交流。老師可以及時發現問題,指導學生改進設計方案;學生也可在匯報過程展現自己,鍛煉語言表達能力,對于不善表達的理工科生來說是很好的鍛煉。此外,該考核方法使學生不敢懈怠,按時完成任務。
(5)學習主動性和創新性得到激發。課程設計的所有考核環節均開放式進行,學生在考核過程中可以相互對比,有效促進了比學趕超的學習熱情;考核壓力促進基礎薄弱的同學在基礎較好的同學帶動下進行主動學習。學生潛力得到很大發揮,不再局限于教學過程中所學知識,自學相關內容,力圖將設計做到最好。
5 結束語
該套考核環節、方法和考核指標的建立,強化了操作系統原理的掌握,激發了學生學習熱情,提高了實際軟件設計、編程能力,培養了組織協作與團隊精神,為抽象理論課的實踐環節的理論提升探索出一條有益的道路。由于該考核體系處于實驗階段,有待于進一步發展和完善。
參考文獻:
[1] 孫微微,劉才興.研究型大學操作系統課程實習項目的設計[J].農業網絡信息. 2005,5.
[2] 陳向群.操作系統實習教學經驗[J].全國第八屆操作系統課程教學研討會. 2005,5.
[3] 史廣順,韓維桓,袁曉潔.南開大學“操作系統”課程建設的思考[J].計算機教育. 2006,7.
[4] 鄒恒明.上海交通大學“操作系統”精品課程的立體化建設[J].計算機教育. 2006,7.
[5] 程金林,吳斌,靳曉枝,黃錚. 高校實驗教學考核模式的改革與實踐[J]. 實驗室研究與探索, 2004,24,(4).
[6] 康麗軍.關于操作系統課程改革的探索與實踐[J].太原大學學報.2004,5,(3).
收稿日期:2006-9-14
資助項目:南京農業大學信息技術學院院級教改項目的資助
作者簡介:姜海燕(1967-),女,浙江臨安人,副教授,研究方向:農業信息技術、軟件工程。
通信地址:南京農業大學信息學院,郵編:210095
對于此類以經濟管理類學科為主的財經院校,屬于工學學科性質的軟件工程專業面臨著更加嚴峻的挑戰,因此,如何結合西部軟件產業的發展現狀,在滿足專業人才培養要求和突出特色之間找到本專業課程體系建設的結合點和平衡點,按照“面向西部,服務基層,培養信得過、用得上、干得好的應用型高級專門人才”的總體人才培養模式對專業課程體系進行分析和研究具有非常重要的意義。
1結合院校特色的課程體系建設
軟件工程專業是在計算機科學與技術等學科的基礎上發展起來的,因此課程體系的建設不僅需要計算機科學的理論知識,同時也需要把工程經濟學領域的知識包括進來,課程設置應始終以軟件開發的整個流程為主線,培養學生良好的軟件編程思想、軟件項目管理和軟件開發的團隊合作精神。財經類院校的課程體系建設應該避免照搬其它工科院校的培養方案,應該以教育部的軟件工程專業建設指導思想的基礎上,根據自身的特點梳理軟件工程系列課程之間與其它相關系列課程之間的關系,合理銜接,避免重復。課程設置要突出軟件工程的重要地位和價值,專業模塊的劃分要突出行業特點及行業市場的需求。建立以能力培養為主線,分層次,多模塊,互相銜接的課程教學體系,通過增加案例教學、添加社會和企業需要的專業技術課程,從而最大限度的發揮課程體系的作用。
1.1課程體系在專業建設中的位置
通過調研、走訪、學習名牌大學、重點大學、國家示范性軟件學院的經驗和做法,總結財經類院校軟件工程專業的建設,根據自身的特點和實際情況,依托財經類院校在經濟、會計、管理等方面的專業優勢,建設具有鮮明財經特色的學科專業體系,總的建設方案指導思想是:“整體設計、分布實施、發揮優勢、突出特色”。建設的內容包括師資配置與建設、實訓環境建設(包括實驗室和實訓基地)和課程體系建設。對于課程體系建設,主要從以下幾個方面進行:梳理課程關系、夯實課程內容、教學方法建設、課程教材建設和實踐體系建設。為保證軟件工程專業建設質量,構建質量保障與反饋體系,總體建設結構如圖1所示。
1.2課程體系主要建設內容
(1)梳理課程關系。通過劃分課程群,梳理以軟件工程為主線的課程之間的關系,重新梳理和制定大綱,確?;A課、專業基礎課和特色專業課知識銜接合理,保障知識體系的連貫性,避免知識點缺乏或知識點重復,以及知識體系不連貫等問題。
(2)夯實課程內容。通過梳理好的課程關系,篩選課程內容,保障課堂內容充實。為增強對課內內容的鞏固,在課外開展“軟件工程設計大賽”、“數學建模大賽”以及認證類課程等作為補充,促進學生的主動學習,提高學生的基本技能和軟件開發素質。
(3)教學方法建設。按課程群劃分,組織同類課程組教學方法和教學手段的研究。改革現有的、傳統的課堂教學方式,精煉教案內容。以培養興趣、激發創新激情為出發點,加強案例教學和實踐環節,通過增加案例教學、添加社會和企業需要的專業技術課程,從而最大限度的發揮實踐實訓課程的作用,真正使學生體會和做到學以致用。
(4)課程教材建設。以軟件工程為主線的課程群體系研究的同時加強教材建設。目前采用“內編外引”的方式,做好教材的自編與挑選工作。在軟件工程類課程中的教材都要求是重點教材,規劃教材或原版外文類教材,選擇質量高、特色鮮明的教材。
(5)實踐體系建設。建立起更加完善的、與課程群體系相適應的實驗、實訓、實踐教學體系。實踐訓練課程劃分五個層次,分別為基本訓練、基礎理論訓練、專業訓練、工程訓練和創新訓練。使實踐類課程涉及到的理論由淺入深,程序規模由小到大,開發隊伍由個體到團隊。實訓環節中還考慮了加強與企業的合作,將企業的資源優勢與學校的理論知識優勢充分結合,共同設計和建設課程群中的實訓項目。
2解決的關鍵問題
(1)把握主線與特色的關系。目前已有多個示范的軟件學院,軟件工程專業根據目標不同,有向高層次培養也有的向國際化目標培養。如何地足于地方,結合財經類發展特色,對課程群內容進行篩選和改革是解決的主要問題之一。目前特色軟件工程專業建設的方針是首先確立以軟件工程為課程群的主線,保障基礎內容的涵蓋和銜接。另一方面,結合財經學院特點,在開發案例、管理項目和課程選擇上體現特色,如面向金融軟件開發實踐,因材施教培養實踐動手能力,開設《軟件項目管理與工程經濟學》等課程內容。
關鍵詞: 軟件工程 微信公眾號 WORKSHOP教學模式
1.背景
微信公眾號是由騰訊公司推出的一款免費的移動即時通訊工具,具有即時性、互動性、多元化、個性化等特點,其信息傳播方式是一種“微傳播”,傳播內容可以是微內容,傳播對象是微受眾。微信公眾號可以容納更多的用戶,有更廣泛的校外訂閱者,這一特點讓公眾號很適合推送信息與知識。在補充知識、擴大視野、教學溝通、師生互動等方面,微信公眾號具有傳統課堂教學、郵件溝通沒有的獨特優勢[1]。
“軟件工程”是計算機科學與技術類專業學科基礎必修課程,也是一門綜合性和實踐性很強的核心課程,其教學效果直接影響學生畢業后從事軟件開發的能力和項目管理能力。軟件工程的教學內容較多且比較抽象,學生很難真正理解其中的精髓。同時若僅僅滿足于書本理論知識的灌輸,必將使教學過程流于形式,學生死記硬背而無實際收獲。因此,如何提高軟件工程的教學水平和質量,是很多國內外學者廣泛探討的課題,更是教學改革的重點[2]-[4]。
本文結合微信的特點和功能,將微信平臺引入軟件工程教學過程中,拓寬學習內容和學習途徑,激發學生的學習興趣,對提升教學質量和增強教學效果有顯著的意義。
2.基于微信公眾號的軟件工程微課建設
微課是指以教學視頻、教學文本等為主要載體,反映教師在課堂教學過程中針對某個知識點或教學環節而開展教與學活動的各種教學資源的有機組合。微課為學生提供知識挖掘的平臺,使學生對自己的學習有更多的主動權,自主地挖掘所需的知識點,有針對性地開展學習,并有效地節約學習時間[5]。
“軟件工程”課程具有理論深、涉及面廣、實踐性強等特點,是一門涉及計算機科學、數學、經濟學、法學、管理學、心理學等多學科的綜合性學科。軟件工程微課建設應注意以下幾點:
1.1總體規劃和任務分解
首先要將軟件工程課程教學計劃進行。然后在每一教學單元中,按照知識要點將課程內容分割成為相對獨立的學習單元。將每個學習單元制作成軟件工程微課系列,并借助軟件工程微信公眾號推送給學生。
1.2微課設計
微課時間長度限制在一分鐘以內,課程設計包括三個部分:概念引入、解釋和實例[5]。例如:針對結構化分析中的數據流圖的概念,我們首先介紹了數據流圖的應用背景,然后提出數據流圖的概念,最后結合學生選課這一學生很熟悉的一個工作場景進行案例分析,講解數據流圖的原理與應用。
1.3微課內容
軟件工程微課內容包括以下兩個方面:
一方面,軟件工程課堂教學中涉及的核心概念,包括:軟件危機、軟件工程、結構化分析、結構化設計、面向對象分析、面向對象設計、軟件測試、黑盒測試、白盒測試、軟件維護等概念。
另一方面,指導學生閱讀或探索的課后任務,如基于結構化方法和面向對象方法的軟件系統分析與設計的案例分析。
我們選取了歷屆學生軟件工程課程設計中的優秀作品作為的案例樣本,通過展示、點評、分析這些作品的方式指導學生如何將所學知識綜合運用并加深對知識的理解。
1.4微信公眾平臺的運用
利用微信公共平臺的自動回復功能,學生可以通過回復關鍵詞觀看微信公共平臺中素材庫里面的微課程。軟件工程微課的建設實現了線上與線下教育相融合,有利于解決有限課時與知識量擴大的矛盾,將軟件工程那些抽象的知識碎片化,以小視頻、小文本的形式呈現在網絡上,便于學生自主學習。
微信公眾平臺數據統計功能實現對學生微課學習情況的數據統計。教師可查看任意時間段內群發圖文消息分析及任意時間段內圖文消息群發效果的統計,包括送達人數、閱讀人數和轉發人數等信息。通過所提供的數據,教師可以了解哪些學生觀看過微課程、觀看的次數,以及閱讀的時間段分布情況。
3.基于微信公眾號的軟件工程WORKSHOP教學模式研究
Workshop 是對當前國際上流行的研究小組的稱呼,是一種由幾個人進行密集討論的集會,是運用群體壓力和有效的指導完成一些復雜而具有挑戰性的工作。以 Workshop 為核心的全能型互動式教學法已流行于國際上許多專業教學模式中[3]。
3.1總體規劃
針對軟件工程課程的學科跨度大、實踐性強的特點,我們對軟件工程課程教學計劃進行總體規劃和任務分解。通過收集整理具有代表性軟件工程實例,創建若干對應課程相關章節內容的相應工程教學項目及工作情境,內容包括任務的名稱、目的、需要解決的問題、項目需求的背景等相關資料。
課堂任務的設計與選取應強調以下幾點:任務的相對獨立性和開放性;任務是某項知識的學習和應用;將各子任務的完成貫穿到教學的各個階段;每個具體任務既要覆蓋一定范圍的相關知識的運用,題目又不應過大,應相對獨立,便于項目學習的實施。
3.2教學組織方法
采用分組的形式,將學生分為 4至6 個人的小組,也就是小團隊。每名學生在團隊中有明確分工,不再是一個旁觀者,而是分別擔任客戶、項目經理、系統分析員、程序員、測試員和評審人員角色等不同角色,完成特定任務。
通過微信公眾號,教師提前給每組學生發放每次課的任務書及相關背景資料,并根據課程進度相關微課供學生學習。在軟件工程課堂教學中,采用學生主動學習方式,主要通過各團隊小組內部交流完成教學任務。教師針對教學中的關鍵知識點和學生疑惑著重講解相關內容。
在Workshop討論后,各團隊選派代表做總結發言,展示各團隊任務完成成果并交流心得體會。教師針對各團隊的匯報情況,對團隊的工作加以點評。教師的點評要強調知識點的運用方式并指出本次工作的優缺點,為下一次完成任務奠定基礎。
在成績評定方面,利用微信公眾號的開發接口設計打分系統,統計同學打分和教師打分,并當場統計各團隊得分情況。微信公眾號能直觀及時地反映學生課業情況,同時便于學生之間互相交流,提升授課水平。
4.結語
微信及微信公眾平臺作為一個便利的工具,由于其實時性、多元性、個人直接相關性等特點,已成為一個實時溝通工具、師生交流平臺、課程知識及補充知識的推送工具。本文研究了微信公眾平臺在輔助軟件工程教學方面的應用,著重討論了微信公眾號在軟件工程微課推送和軟件工程WORKSHOP教學方面所起的積極作用。微信是一種生活方式,也是一種學習方式,在軟件工程教學中應用微信平臺打造新的教學模式,在適當的教學時機應用恰當的微信功能,不僅能促進師生及同學之間的交流,而且能拓展新的學習途徑,提高學習興趣和教學質量。
參考文獻:
[1]鞠明君.微信:社會化媒體營銷的革命[M].北京:清華大學出版社,2013.
[2]郭洪禹,李凈,艾鴻.基于WORKSHOP的“軟件工程”教學模式研究[J].計算機教育,2012,(04):97-99.
[3]郭洪禹.“軟件工程”課程雙語教學研究[J].計算機教育,2008,(10):6-7.
[關鍵詞]應用型本科;軟件工程;實踐教學體系
[中圖分類號] G642 [文獻標識碼] A [文章編號] 2095-3437(2016)04-0019-03
2011年,為了進一步深化本科教育教學改革,提高本科教育教學質量,教育部、財政部決定在“十二五”期間繼續實施“高等學校本科教學質量與教學改革工程”。政策實施多年以來,各級教育行政部門及高校非常重視,一批批國家級、省級“質量工程”項目相繼立項建設,教學改革不斷深化,教學質量顯著提升,取得了豐碩的成果。“質量工程”涉及高校本科人才培養工作的方方面面,其中實踐教學與人才培養模式改革創新是提高高等教育質量的重要內容。[1]2010年廣州大學華軟軟件學院軟件工程專業獲廣州市屬普通高等院校第一批特色專業,同年,又被廣東省教育廳評為2010年本科院校“特色專業建設點”,2012年獲廣東省高等學校“專業綜合改革試點項目”。
一、應用型人才培養目標定位
廣州大學華軟軟件學院作為全國300多家獨立學院中唯一的一所軟件學院,在辦學過程中經過不斷的研究探索,科學、客觀地將人才培養的主體目標定位為“應用型人才”,即以應用為主,核心是“實踐”,目的是“提高實際動手能力”,為地方經濟社會發展培養適應中國軟件產業發展需求的規范化應用型人才。學院構建了一套遵循全程化、層次化、模塊化三個原則的應用能力培養體系。“全程化”即將培養學生的應用能力貫穿到學生在校學習的全過程;“層次化”即將應用能力分解為不同的能力層次分階段進行培養;“模塊化”即根據培養不同能力層次的需要,依托不同的課程模塊和實踐性教學環節模塊進行培養。在應用能力培養體系架構下,結合珠三角地區經濟發展需求,構建軟件工程專業實踐教學體系。
二、以應用能力培養為核心,探索實踐“三合一”實踐教學體系
以軟件工程專業的核心課程為基礎,以應用能力培養為核心,借助廣東省計算機技術與應用實驗教學示范中心、軟件與信息技術服務協同創新發展中心,以及合作企業,構建集層次性的課程實驗教學與實踐、豐富性的課外科技專業實踐、系統性的專業綜合訓練于一體的“三合一”實踐教學體系,體系結構見圖1。
■
圖1 實踐教學體系結構圖
(一)深化教學改革,開展層次性的課程實驗教學與實踐
結合學院實際情況和專業特點,分析了傳統課程實驗教學中存在的問題,探索新的課程實驗和實踐教學模式。軟件工程專業的課程實驗安排強調為學生建立堅實的理論基礎,更要訓練嫻熟的技術技巧,提高學生自我學習、分析問題、解決問題的能力。課堂教學采用工學結合、案例驅動的大小課教學模式,大課注重理論教學,小課則注重實踐操作,大小課相互結合。成立軟件工程實驗教學教研室,專門負責實驗教學的審查和監督。定期召開教研會組織相關任課老師和專家對軟件工程專業核心課程的實驗內容進行精心的設計,把實驗分為五種類型:基礎性實驗、設計性實驗、綜合性實驗、創新性實驗、研究性實驗。對于實踐動手能力要求高的課程增加課程設計綜合實踐環節來進一步鞏固和加深學生對所學相關課程理論知識的理解,對于不同課程進行多課程融合的綜合課程設計,把項目實訓的案例按照相關專業課程的實驗目標進行精心設計和分解,形成實驗大綱融入課堂實驗。與IT巨頭微軟、IBM深度合作進行課程的嵌入,包括實驗的教材、實驗內容等。整體課程的實驗內容設計和安排遵循由易到難、由單元到綜合、由基礎到提高的教學規律,使之具備層次分明、結構清晰、目標明確等特點。
(二)開展豐富性的課外科技專業實踐,促進與實踐教學的融合
課外專業實踐活動是培養學生實踐能力、創新能力和人文精神,提高學生綜合素質的重要途徑,是實踐教學的重要組成部分。[2]以“實踐、求知、創新”為主題,以提高學生的實踐能力、創新能力和綜合素質為目標,大力開展軟件工程專業大學生課外科技實踐活動,積極創建大學生科技創新能力培養平臺,激發學生參與課外科技實踐的熱情,推進學風建設。鼓勵學生申報省級甚至國家級大學生創新創業計劃訓練項目,制定相關政策扶持大學生創業。每年定期舉辦“軟件開發設計大賽”、“網頁設計大賽”、“JAVA程序設計大賽”等專業競賽,開展“IT論壇”、“湖邊論壇”等各種學術講座及“計算機協會”、“創新創業協會”等社團。成立學生課外學科競賽專家庫,鼓勵和支持學生參加“全國計算機軟件資格與水平考試”,參加“挑戰杯大學生課外學術科技作品競賽”、“全國大學生服務外包創新應用競賽”、“藍橋杯軟件設計大賽”等學科競賽、科技創新活動,讓學科競賽成為教學改革實踐的載體,從多方面有力推動實踐教學與提高學生創新能力。此外,積極改革探索將學科競賽與教學活動相結合,把大學生的科技創新活動納入實踐教學體系之中,并不斷加強大學生創新創業實踐基地的建設,為學生進行科技創新、技術交流提供平臺。
(三)階段式項目實訓+畢業實習+畢業設計,開展系統性的專業綜合訓練
項目實訓有助于提高學生的實踐動手能力,是實踐教學體系不可或缺的組成部分,也是軟件工程人才培養的一個重要途徑。跟知名IT企業合作聯合開展項目實訓,并在軟件工程專業的教學計劃中明確規定從大一到大三學生需經歷三個階段的實訓環節,到大四參加畢業實習、畢業設計。系統性的專業綜合訓練貫穿于大學四年的學習。項目實訓以體現“層次化、全程化、系統化”為原則,分為三個階段,分別對應大一、大二、大三的學生。因為年級差異,三個年級的實訓題目大部分來自企業的真實項目并經過仔細斟酌和精心設計:一年級的實訓題目是教師從某一個真實案例的模塊簡化而成,主要培養大一學生的基本編程能力和認知;二年級選擇的實訓案例盡可能體現學生程序分析與設計能力的培養;三年級的實訓題目更側重程序綜合開發能力和創新能力的培養。項目實訓在每學年的第二個學期末采用封閉集中方式進行,作息從早上9點到晚上10點,企業工程技術人員和在校老師一起擔任項目實訓指導教師,進行全程跟蹤指導。整個實訓過程盡可能在時間和空間上最大限度模擬軟件企業的真實工作環境,嚴格按照企業管理模式管理、考核,讓學生體會實際項目開發的工作氛圍和職業要求,提高團隊協作意識和溝通技能。[3]畢業實習則從第六個學期結束之后開始,到第八個學期畢業論文答辯結束,學生從進入企業開始,就按照企業的安排進入相關項目的研發和實施,由企業工程師和學校教師共同指導學生進行畢業設計。 三、不斷完善實踐教學體系,保障實踐教學質量
(一)加強軟件工程專業課程群建設,優化實踐課程體系
課程群建設是近年高校課程改革的一個發展趨勢,是高等院校課程建設實踐中出現的一項新的課程開發思路。我們用課程群方法進行了軟件工程專業課程體系優化的探索,對相關課程進行了深入的分析,堅持課程體系整體優化的原則,構建課程群課程體系,并在人才培養方案中有所體現。優化后的課程體系劃分為四個群:專業基礎能力課程群、專業與服務課程群、綜合實踐能力課程群、新技術探究課程群。[4]四個課程群之間的獨立性、關聯性、整體性和應用性,盡可能體現最新科技技術和方法,課程內容及時更新,做到前后課程銜接好,力爭在實現專業培養目標、改進學生知識能力結構方面有比較大的突破,從而優化整個實踐教學體系。
(二)組建一支專兼職、校內外結合的“三三制”實踐教學師資隊伍
在師資引入我們采取“三三制”原則,即教師隊伍由三部分組成:一部分來自傳統高校具有豐富教學經驗的高職稱教師;一部分來自企業具有豐富工程實踐經驗的工程師;一部分來自留學海外具有教學和工作經驗的人員。同時,在實習、項目實訓環節還邀請校外的工程技術人員和校內教師一起進行實習實訓的指導。
(三)加強實驗室和校內外實訓實習基地建設,促進實踐教學質量提高
為適應實踐教學的需要,按照專業方向、專業基礎構建了軟件工程實訓、程序設計、數據庫、操作系統等6個實驗室。我院“PARASOFT-華軟軟件學院軟件自動化測試實驗室”與中國移動、印度塔塔、深圳覽眾科技等企業合作,形成了完整的校內實驗室和實訓實習基地。
(四)建立支撐實踐教學體系實施的管理、資源、教學信息平臺
自主研發“畢業設計數字化管理平臺”進行畢業設計的管理;自主研發“實驗教學管理平臺”,為實驗指導老師、學生提供了一系列服務,從而提高工作效率,保證課堂實驗教學效果;引入“項目實訓管理平臺”,幫助學生了解企業項目開發管理過程和規范,確保了項目實訓的質量和效果;以FTP服務器、論壇為載體,建設了以課件、講義、參考資料為基本內容的實驗教學資源,為學生提供便利。
(五)建立實踐教學管理、考核和評價制度,確保教學秩序和質量
制定軟件工程專業實驗教學管理辦法、學生實驗考核辦法、軟件工程專業項目實訓實施細則、項目實訓驗收標準、畢業論文(設計)工作管理規程、畢業實習管理辦法等多項規章制度,覆蓋了課堂實驗、項目實訓、畢業實習、畢業設計等各環節的管理,以確保實踐教學秩序和質量。
四、結束語
經過兩年的教改實踐,教學效果良好,各項指標基本達到預期目標,形成了一套較為完整的實踐教學體系,有效促進了應用型人才的培養。實踐教學是培養應用型軟件工程人才的重要環節,而實踐教學體系的構建與完善是一個復雜、艱巨的系統工程,需要在實踐的過程中不斷的探索與總結,從而促進實踐教學的整體優化,真正實現應用型人才的培養目標。
[ 注 釋 ]
[1] 王志安,王旭輝,李燕.計算機科學與技術“3+1”教學模式下的實踐教學[J].計算機教育,2014(7):59-63.
[2] 曾永衛,劉國榮.“卓越計劃”背景下科學構建實踐教學體系探析[J].中國大學教學,2011(7):75-78.
關鍵詞:C++程序設計;教學改革;實踐
面向對象C++程序設計是計算機科學與技術、軟件工程等相關專業的基礎課程之一,其主要特征是抽象、封裝、繼承和多態。由于引入這些特征,面向對象程序比傳統的結構化程序具有更高的可重用性、易擴充性和易維護性。面向對象開發方法已成為開發大中型軟件的主流方法。為培養學生的程序設計能力和面向對象編程思想,許多高校的相關專業都開設了C++程序設計課程。因為C++涉及概念較多,語法相對復雜,且C++編譯器相對于C編譯器在程序運行的背后會做更多的事情,如對象的構造和析構、默認函數的自動創建等,使C++程序設計相對于C程序設計更難學,學生在學習和實際應用中出現的問題比較多,對相關概念理解困難,學習過程中成就感不強,學完之后還是不知道如何應用,很難達到預期的效果。為提高C++程序設計課程的教學質量,許多教學工作者提出了自己的一些教學改革思路,并付諸于實踐,取得了很好的效果。由于每個學校的自身差異和學生層次差異等原因,在借鑒他人教學經驗的同時,也很有必要針對自身的教學對象研究課程教學,以提高教學質量。在實踐中,我們通過設定教學目標,合理選取教學內容,采用靈活的教學方法與手段,加強實驗教學與管理,改革考核與評價方式,進行課程教學的探索與改革,并取得了較好的效果。
1.明確教學改革目標與思路
吉首大學軟件工程專業以軟件企業人才需求為導向,以高素質軟件工程師培養為目標。C++程序設計課程在專業人才培養環節中處于基礎地位,對培養學生的軟件設計思維和程序設計能力具有重要作用。該課程于第二學期開設,其前導課程是c程序設計和計算機基礎,后續課程有數據結構、算法設計與分析等。由專業培養目標及課程體系設置決定本課程的教學目標是通過課程教學及相關改革,使學生掌握面向對象的基本概念,具備面向對象程序設計的基本思想,學會以面向對象的思維分析并解決問題。在課程實施中以CDIO高等工程教育理念為指導,突出工程化教育特點,突顯應用型專業特色。
2.精選教學內容
面向對象軟件開發方法是吸收了軟件工程領域的有益概念和有效方法而發展起來的一種軟件開發方法。它集抽象性、封裝性、繼承性和多態性于一體,可以幫助人們開發出模塊化的,數據抽象程度高的,體現信息隱蔽、可復用、易修改、易擴充等特性的程序。學習程序設計語言的目的是應用語言編寫程序解決實際問題。對于軟件工程專業的學生,在學習C++程序設計時必須滲透面向對象軟件開發相關思想。由于C++本身涉及內容較多,受理論和實踐教學課時數限制,要精選教學內容,不能面面俱到。我們在軟件工程相關思想的指導下,從軟件設計實際需要出發,確定了本課程以面向對象程序設計的方法為核心,以C++語言中的面向對象機制為主要內容,包括封裝、繼承、多態、模板和異常幾個大的部分,舍棄一些細枝末節的語法,在適當的時候引入《Thinking in C++》《Effective C++》等優秀書籍中的一些思想和經驗。在教學中要明確編程語言只是解決問題的工具,解決問題的方法更為重要,講解相關知識點時要明確這些知識點在軟件設計中有何作用,要注重面向對象程序設計過程中大的程序框架的合理性以及具體處理算法的正確性。
3.改革教學方法與手段
1)引入多種教學方法,逐步形成以學生為中心的學習模式。
教學方法是影響教學質量的一個關鍵因素。通過開展教學方法設計活動,引入“啟發式、案例式、項目式”等多種教學方法,逐步形成以學生為中心的學習模式,最終提高教學質量。啟發式教學注重對學生的引導,并強調教學互動性,通過問題激勵學生積極參與整個教學過程,使學生由被動學習轉化為主動學習。啟發式教學方法運用起來有一些難度,但教師應該經常應用這一方法。課程中抽象的或是細節的問題都可以涉及啟發式,對于較大問題的提問,任課教師在備課時應該充分考慮,把握好問題和引導的方向。對于一些小問題的啟發,任課教師可根據實際授課時學生的表現決定,如數據成員的確定、函數返回類型的確定、參數的選取、返回語句的寫法等都可以進行一些啟發。案例教學法打破了以理論知識點為中心的傳統教學模式,將知識點融入到具體實例中,使學生在模仿中掌握對抽象概念的感觀認識。對于本課程中封裝、繼承、多態、模板和異常幾個大的知識模塊,每個模塊至少設計一個教學案例。每個教學案例應包含該模塊主要知識及相關程序設計方法。項目驅動教學法以項目為主線開展教學過程,把相關知識點融入到項目的各個環節中,遵循由簡到難、循序漸進的原則。本課程中的項目式教學主要體現在課程設計環節,比如在課程之初布置一個連連看游戲或是自選其他小游戲或小系統,要求用C++編程實現,并隨著學習的深入不斷完善該程序。實際教學中,一個項目雖然很難包含整門課程的全部要點,但它通常要求學生自學另一些知識,這樣不僅拓寬了知識的廣度和深度,更能培養學生自主學習、分析問題及解決問題的能力。
2)現代與傳統手段相結合,提高教學質量。
應用現代化教學手段有利于提高教學質量,教學中應將現代與傳統手段相結合。本課程課堂教學以多媒體為主,并與板書有機結合。多媒體教學信息量大,圖文直觀生動,可增強學生對程序設計的感性認識。一般可以在多媒體教室開展教學,必要的時候也可以在實驗室利用網絡環境進行屏幕同傳。板書是一種傳統的教學方式,在進行邏輯推導的時候有利于引導學生充分思考。
4.加強實踐教學與管理
1)設計3層實驗教學體系,培養學生實踐能力。
C++程序設計是一門實踐性很強的課程,為突出工程化教育特點、突顯應用型專業特色,需加強實踐教學與管理。按層次遞進的方式,圍繞課程教學目標精選實驗題,構建C++程序設計課程基礎型、綜合設計型和研究創新型3個層次的實驗教學體系,通過教學計劃內規定學時(吉首大學為16學時)和開設第二課堂(30學時)的方式完成3個層次的訓練。其中基礎型和綜合設計型實驗主要使學生掌握C++語言中的面向對象機制,培養學生面向對象程序設計的基本思維。這次實驗要在教學計劃規定的實驗課時之內完成,要求任課教師設計實驗項目并編寫對應的實驗指導書。研究創新型實驗主要提高學生的實踐能力,培養創新精神和團隊精神,在課程設計中按應用項目的方式設置,在第二課堂采取“做中學”的方式口’在教師的引導下由學生自主完成。對于課程設計中的應用項目,任課教師編寫課程設計任務書,給出系統的主要需求,要求學生按軟件工程的方法,從需求分析到系統分析與設計,再到編碼與測試,最后寫出系統設計總結。
2)開設第二課堂,培養學生工程應用能力。
為進一步培養學生的工程應用能力,我們開設了第二課堂,在晚上和周末開放實驗室,并加強對教師和學生的管理,安排任課教師輪流值班。教師作為學生學習的引導者,提供和課程配套的學習材料和相關項目實踐任務。在教師的引導下,學生可獨立或以小組討論的方式完成相關任務。教師定期檢查任務完成情況。在課程教學結束時,要求學生演示并講解自己的項目開況,由任課教師和其他專業教師組成評定小組進行評分。另外,為進一步滿足學生個性化學習的需要,學院另外創建了學生創新實驗室,該實驗室只配置了服務器、網絡、電源、桌椅等設施,學生自己可帶計算機進入,該實驗室由學生自主管理、自主學習,教師布置相關任務,定期指導、檢查并點評。
5.改革考核與評價方式
1)理論與實踐并重的期末考核方式。
學習C++程序設計的目的是應用它指導或解決實際問題。該課程需要突出對實踐能力的考查,這就決定了本課程的期末考核要綜合考慮理論和實踐兩部分內容。理論部分主要考查學生對基本概念的理解和對基本知識的掌握情況,實踐部分側重考查學生的綜合應用能力。在實際操作中,理論考試占60%、實驗考試占40%,這兩部分成績都在期末完成,占課程總成績的70%。理論考試試題一般包括選擇題、填空題、讀程序寫結果、程序設計題等類型。實驗考試題都為程序設計題,采用4選3或5選3的方式,從程序正確性、程序風格、編程思路等方面綜合評價。
2)平時成績與期末考核相結合的評分方式。
期末考核重在體現學習的結果,平時成績則側重于體現學習過程。在課程總成績中,平時成績占30%,即本課程有30分來自平時的學習過程。平時成績一般包括出勤與作業情況、平時實驗情況、課程設計情況,以上3項各占總成績的10%。在學期開始第一堂課的時候將課程評分方式告知每一個學生,這就要求學生必須抓緊平時的學習,若平時成績小于15分,則取消本課程期末考試資格。