軟件工程專業課程范例6篇

前言:中文期刊網精心挑選了軟件工程專業課程范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。

軟件工程專業課程范文1

軟件工程專業課程內容豐富,涉及通信工程、計算機技術、計算機教育及文科類經濟管理等學科。除此之外,軟件工程作為全球信息化技術發展的關鍵技術,要求從事軟件工程相關專業的人員具備較全面的知識,要從多方面、多角度進行研究,比如技術方法、管理及工具等。我國軟件工程技術發展較晚,該學科發展相對緩慢,課程授課模式較為傳統,缺乏有效的課堂互動與討論,注重講解理論知識,實踐內容的參與度與規范性與工程教育標準有一定距離,導致學生掌握的軟件開發思想和技術與行業需求有一定差距。隨著軟件工程學科的發展,新概念、新技術和新方法不斷涌現,未來軟件工程專業的教學發展趨勢如下。

(1)開放式授課。隨著行業基礎框架的構成、行業發展和技術融合的國際化,軟件工程的授課將不再局限于某本教材或某個案例。

(2)小組式開發。軟件工程開發要求開發人員具有良好的團隊合作能力和溝通能力,因此應將學生設置在以模塊開發為目標的開發小組,培養學生分析問題、協調問題、解決問題的能力。

(3)模塊化集訓。IT環境復雜度和歷史遺留系統的增加,對軟件工程領域提出新的挑戰。模塊化的思想能夠通過抽象、封裝、分解、層次化等基本的科學方法提高軟件工程靈活性。

(4)真實性案例。軟件工程授課依托于真實案例,可加快學生對軟件工程的感性理解,從而解決學生對軟件產品初始建模、過程開發、測試運行、質量監控、配置與過程的管理有系統性的掌握,鍛煉學生對項目開發過程的整體把握能力。

2基于項目導向的課程體系構建

合格的軟件工程專業學生應具備專業基礎知識、工程技術能力以及良好的職業素養。教師應結合軟件工程專業人才培養標準、軟件工程行業開發規范和技術特征,在不同階段將具體項目融入教學,基于項目導向理論知識,培養工程化特征明顯的學生;在項目案例引入各教學階段時,應夯實學生的基礎理論知識與基本實踐技能;在強化工程技術階段,項目案例應涵蓋前端技術課程,工程實訓階段項目案例需引入企業真實項目。通過3個階段的教學,學生能夠具備軟件工程師的基本編程、綜合設計及工程實訓等能力。我們應分析軟件工程專業知識體系與課程設置,根據普通高等院校軟件工程專業課程規劃、設置學時,構建層次清晰的教學實踐體系及內容,培養應用型軟件工程專業人才;同時,在IEEECC2001SE學科的知識體系基礎上結合國內軟件產業及校內辦學的實際情況,在基礎教學、理論應用、項目實踐3個層次建立軟件工程專業課程體系,基礎教學部分主要講授軟件工程領域的基礎理論知識,以開發過程為主線詳細分析和討論軟件的需求分析、結構設計、程序實現、功能測試、變更與維護、軟件項目管理等內容,讓學生對此有感性認知。理論應用部分主要以面向對象程序設計為基礎,鍛煉學生的建模和實現能力。同時,采用實踐案例,讓學生掌握軟件開發的方法和技術,培養學生的專業能力、管理能力、團隊協作能力和職業精神。項目實踐部分分為基礎技能實訓、專業技能實訓、綜合設計實訓、科技創新實訓等4個模塊,可以基于項目建立多個小組,讓學生以團隊合作的方式在企業開發環境中實現一定規模的軟件項目。為培養“理論知識實、實踐能力強”的應用型人才,需將教學計劃與項目實踐環節緊密結合?;陧椖繉虻慕虒W體系層次實施步驟如下。

(1)基本知識技能階段:將.NET與JAVA開發作為實習內容,讓學生了解面向對象開發的基本知識。

(2)綜合知識實訓階段:讓學生了解并掌握軟件開發方法,熟悉.NET在軟件項目系統開發中的具體作用,設計和實現功能界面,實現數據庫設計與應用,分析和解決軟件開發過程中出現的問題,并進行功能測試。

(3)應用能力提高階段:對之前階段開發完成的軟件項目進行詳細的分析與講解,基于項目開發的實際應用強化軟件工程的理論知識,讓學生感受所學知識與實踐應用的對應性,加強學生實踐動手能力和團隊溝通合作能力。

(4)職業技能與素養提升階段:對軟件項目范圍、功能實現、總體進度、軟件質量、管理配置等方面進行開發訓練,鍛煉學生整體項目的開發能力,逐步培養學生的職業技能,結合項目開發對學生進行測試與評價,培養和提高學生的職業素養。

3基于情景的教學方法實施

情景教學能讓學生對知識有感性認識,提高對課堂內容的理解效率,因此需要在一個通用的軟件開發環境中進行項目開發的學習。構建符合軟件工程專業課程項目開發的開發環境是提升軟件工程教學效果的關鍵。情景模式授課能讓學生在模擬的軟件工程項目中實戰訓練,通過層次提升效率,激發學生的學習興趣,達到最佳教學效果。教師在情景模式的授課過程中擔任項目總監或技術顧問的角色,組織學生進行技術交流、成果驗證、變更審核等活動;學生會依據項目不同階段的情景扮演不同職位,提升自身項目開發技術及管理能力,培養個性化思維和團隊合作思維相結合的思考模式?;谇榫澳J降能浖こ虒I課程教學過程。在具體的教學實施過程中,教師利用項目導出教學內容,圍繞項目案例設計教學情景,依據情景設計安排學生在項目團隊中的不同角色,盡量讓學生體驗真實的項目開發流程。借助項目情景模式增強了課程內容的趣味性,最大限度地調動學生的主觀能動性。項目導向下的情景模式教學需要對項目選定、教學內容設定、項目進程安排、學生角色安排、項目成果鑒定等方面進行管理?;谇榫澳J降慕虒W要求,學生以項目團隊的方式組成項目小組(一般由3人組成),開發具有一定規模且功能較為豐富的軟件系統,側重培養學生在項目開發過程中發現問題、分析問題、解決問題的能力,培養學生的團隊合作精神,使學生體驗軟件開發的全過程。專業課程教學內容應把軟件開發分解為項目前期準備、中期分析與設計、功能測試和軟件交付等三大部分,具體內容為:

(1)項目準備階段:教師在課程初始階段,將軟件項目需求告知學生,選定項目開發小組,制定開發范圍和計劃。

(2)分析設計階段:項目開發小組基于需求和開發計劃,編制需求規格說明書。依據項目的總體結構,逐步設計項目所需功能,并編寫相應文檔。

(3)測試與交付階段:開發團隊對完成的功能模塊進行整合,測試功能性和穩定性,調試并完善軟件系統,最終形成達到項目需求的軟件集成系統。

(4)軟件交付:教師運行集成的完整系統,組織學生交叉驗收。驗收管理是各團隊共同檢驗工程是否達到預定目標并進行最終確認的重要一環,每位學生必須高度重視,支持項目驗收工作。在情景式的軟件工程環境中,學生真正體驗到一種有序的、可控的、協作的軟件開發過程,在分析問題、解決問題、協調沖突、消除矛盾的過程中享受軟件開發成功的成就感。項目導向的情景模式教學可以讓學生在團隊中練習,在練習中學習,鍛煉學生獨立開發與合作開發項目的能力。

4結語

軟件工程專業課程范文2

關鍵詞:軟件工程;課程體系;創新實踐

我國于2002年設立軟件工程,近年來發展迅速,目前已有多家高校設置了軟件工程專業,軟件工程專業的學生數量龐大。但是我國軟件工程專業的人才質量與國際上仍有不小的差距,這就對軟件工程專業課程體系提出了更高的要求。根據我國國情、市場的需求和高校的實際情況,對軟件工程專業課程體系進行進一步研究與創新實踐,對于培養出符合軟件工程產業要求的人才有重要的意義。

1軟件工程專業課程體系的內容

參照2004年國際上IEEE-CS/ACM的本科生軟件工程教育計劃SE2004,我國教育工作者研究出了軟件工程專業本科生教育計劃的相關文件。SE2004的主要內容是SEEK,包括計算機科學基礎,軟件建模及分析,軟件設計、驗證及確認,軟件進化、過程及質量,軟件管理,職業基礎,數學與工程基礎等十余個知識領域。由于涉及領域較多,所以一般建議最少課時不少于五百個課時?;谧钌偻扑]課時,SE2004又給出了課程體系,包括初級、中級、高級課程,數學課程以及非技術課程。

初級課程包括計算機科學基礎優先和軟件工程優先兩種方案。計算機科學基礎優先以程序設計基礎為主要課程,包括數據結構、算法等課程。軟件工程優先以軟件工程為主要課程,包括軟件工程與計算、算法、數據結構等課程。高級課程包括自下向上和自上向下兩種課程設計方案。自下向上以由小到大的順序邏輯思路為基礎,包括軟件需求分析、設計、質量保證、測試等課程。自上向下以由大到小的倒序邏輯思路為基礎,包括軟件的系統構造,軟件測試、設計等課程。

2軟件工程專業課程體系建立的必要性

長久以來,我國高校的軟件工程專業的人才培養以研究型人才培養為主,以理論知識和軟件設計為主要內容,目的是培養軟件工程和計算機技術領域的研究型人才。目前,高校中軟件工程專業的學生在理論知識的運用上缺乏鍛煉,將所學知識運用于實際學習與工作中的能力不足。所以,根據我國國情和高校的實際情況,面向產業需求,建立與國際接軌的軟件工程專業課程體系對于人才的培養和輸運都有重要的意義。放眼國外高校,他們都能根據國家與學校的特點,結合學生的個性與全面發展,培養出適應產業需求和社會發展要求的軟件工程專業人才。他們的教育觀念成熟,教學手段先進,實驗條件優異,并且大多與相關產業的企業有聯系。與我國高校相比,他們對于理論知識的理解更深入,與產業的銜接更好,更注重實踐,有效提高學生們分析解決問題的能力。所以,為了盡快在軟件工程上達到國際水平,與世界接軌,建立軟件工程專業課程體系是必經之路。

3軟件工程專業課程體系發展現狀

3.1課時分配不合理

目前的軟件工程專業課程體系中計算機科學基礎所分配的課時過少,壓縮得太厲害,無法清楚明了地講解計算機科學基礎,對教師和程序設計者產生了不小的挑戰。

3.2軟件工程專業課程體系的優化不足

沿用傳統的計算機的相關課程,不利于教育工作者調整優化計算機的相關課程的教學內容,從而實現軟件工程專業課程體系的精益求精。

3.3創新有余,實踐性不足

軟件工程專業課程體系的創新方案創新性足夠了,但是缺乏實踐性。程序設計是軟件工程專業課程體系的重要組成部分,在教學過程中軟件工程與程序設計有機結合,可以取得良好的教學效果。但是軟件工程專業課程體系卻從軟件工程的角度入手,增加了難度,不易于初學者的入門與深入學習。

3.4初級課程與高級課程的銜接性不足

高級課程的兩種課程設計方案,自下向上和自上向下的設計十分巧妙,但是初級課程的軟件課程導論與高級課程的銜接不夠明確和順暢,有待進一步研究。

3.5非技術性課程不能有效的融合進軟件工程

非技術性課程的內容設置過于簡單,不能有效地將多方面的教學內容融合在軟件工程專業課程體系中。

4軟件工程專業課程體系的發展目標

軟件工程專業課程體系的發展目標是根據國內外對于軟件工程人才的需求,培養出理論知識與動手實踐能力并重的專業人才,主要針對于軟件開發、工程領域、現代軟件工程三個領域。軟件開發領域對于人才的要求是精通算法與數據結構,數據庫,多媒體技術,計算機網絡等專業知識。工程領域對于專業人才的具體要求是:精通電子商務、電子政務、企業與城市信息化、信息安全等知識?,F代軟件工程需要專業人才精通軟件需求分析、體系結構、項目管理、測試與評估等方面的專業知識。件工程專業課程體系旨在結合市場需求與社會發展的要求,根據軟件工程產業的需求,在理論知識的傳授下,培養軟件工程專業人才的綜合能力,包括交流能力、團結意識、創新素質、法律基礎、專業技能等。例如,英特爾公司產學合作專業綜合改革項目自2011年在教育部指導下設立,旨在結合英特爾最新技術和解決方案,面向全國高等學校計算機學院、軟件學院以及相關院系,通過支持專業課程體系建設、實驗體系建設、專業課程建設以及實驗案例開發,從而改進課程教學內容,優化課程體系,提升計算機、軟件工程等專業教學質量。同時,英特爾公司將支持學校對以上相關專業進行系統化教學改革,以期課程建設成果能夠在學校實施。2016年項目申請已開放,本年度重點將根據最新技術和教學要求,以培養計算機專業、軟件和相關專業具有系統化能力的人才為目標,升級和開發計算機、軟件和物聯網專業課程專業綜合改革試點。

5軟件工程專業課程體系的完善與創新實踐

5.1貫徹工程教育理念

按照軟件工程相關產業的需求與實際環境來設計軟件工程專業課程體系,規劃具體的課程安排,組織形成軟件工程專業基礎課程、核心課程體系。

5.2以軟件工程為主線

軟件工程專業課程體系的設置需要以軟件工程為主線來設計基礎與專業課程的具體教學內容?;A課程旨在連接軟件工程和程序設計,專業課程旨在鍛煉學生在特定領域的理論知識的掌握與綜合實踐能力,最終都是為軟件工程服務。

5.3培養學生的綜合素質

改造傳統的軟件工程專業課程體系,強化初學者對于計算機系統理念的建立,對于基本概念的掌握與理解在計算機環境下培養學生利用基礎理論知識解決實際問題的能力。

5.4改變非技術課程的教學方法

非技術課程目前存在的問題是銜接性不足,不能有效地融入軟件工程專業課程體系。所以教師要注意改變教學方法,改革非技術課程的教學內容,基于軟件工程鏈接非技術課程與技術課程為一體,從而更好地發展和完善軟件工程專業課程體系。

5.5注重實踐性教學

在專業課的基礎理論教學階段,在傳授理論基礎知識的同時,教師要注重理論與實踐的結合,強調綜合性實踐教學。同時,在針對專業領域的中期教學階段和畢業設計階段也要給學生們提供實踐的機會,提供綜合實踐教學,培養學生們的綜合實踐素養,利用已學知識解決實際問題的能力。

軟件工程專業課程范文3

關鍵詞:軟件工程;課程體系;理論教學;實踐教學

軟件工程是指導計算機軟件開發和維護的工程學科[1]。為了培養高層次、實用型、復合型、具有國際競爭力的軟件人才,我國于2001年底啟動軟件工程學科的教學。國內很多高校(包括211重點工程、地方高校)都設立了軟件工程專業,為社會培養了大量的人才。然而,目前在IT人才市場卻出現了高校應屆畢業生就業難和企業急需合格的IT人才的矛盾。這反映了高校傳統的人才培養模式與軟件產業對人才規格的要求之間存在較大偏差。因此,改革人才培養模式,優化課程體系結構,培養適應企業需求的實用型軟件人才是當前高等院校的重要任務之一。

借鑒發達國家工程型人才培養的成功經驗,根據“海西”區域經濟發展現狀和我校應用型本科教育的辦學定位,提出我校軟件工程專業人才培養目標是:軟件工程專業本科學生應該既具有可持續發展潛力又適應當前軟件產業崗位需求,具備較強的工程實踐能力、必需的專業技能和職業素養,能夠快速完成從學生到企業員工的角色轉換。圍繞上述目標,筆者從理論教學課程體系和實踐教學課程體系方面,提出本科應用型軟件工程專業課程體系的建構思路,并應用課程群方法對課程體系進行了優化處理。

1“核心穩定、方向靈活”的專業理論課程體系構建

“軟件工程”學科特有的工程性,技術與管理的綜合性,新興學科的快速發展和變化等特點,使得課程體系設計面臨一系列突出問題。通過對軟件行業人才知識結構和綜合素質要求的全面研究,借鑒國際先進的工程教育培養理念和國內其他高校應用型軟件工程人才培養模式,結合“海西”區域經濟發展現狀及我院辦學定位,提出既面向當前軟件產業崗位需要,又兼顧本專業學生發展潛力培養,具有“核心穩定、方向靈活”的課程體系設計思路。

1.1專業必修課程體系設計策略

專業基礎課程、專業核心課程應根據計算機基本知識理論體系設置。該課群主要培養學生具有扎實的計算機理論知識,具備良好的軟件分析和設計能力,能夠利用專業理論知識指導實踐。為了培養學生潛力和可持續發展能力,提高學生未來職業發展的核心競爭力,避免“后勁不足”,在專業課程體系設計中采取了三個優先策略:

1) 基礎課程優先策略。高級語言程序設計、離散數學、算法與數據結構、數據庫系統原理及應用、微機原理及接口技術、面向對象程序設計、計算機組成與結構、數據通信與計算機網絡、軟件工程、操作系統原理及應用、軟件測試技術等重要的專業基礎課程、專業核心課程,必須優先保證其課時安排并配備最好的教學資源。

2) 程序設計優先策略。程序設計是學習后續課程所必需的技能,也是訓練學生軟件開發能力必要的手段。第一學期就安排了高級語言程序設計課程。其后,通過算法與數據結構、結構化程序綜合設計、數據庫系統原理及應用、C/S程序綜合設計等課程,不斷加強學生程序設計能力的訓練。尤其是結構化程序綜合設計、C/S程序綜合設計這兩門課程,被設計成以任務驅動的實踐性實驗課程,通過每周一次的案例設計指導和結果檢查,來提高學生程序設計和項目開發的綜合能力。

3) 專業外語優先策略。社會對國際化人才的需求越來越強烈,為了培養具備一定國際視野的IT專業人才,也為了使學生能更快更好地更新專業知識,增強其職業發展的潛力。將專業外語課提前到第三學期,并在專業基礎課程、專業核心課程和專業選修課程中加入一定比例的雙語課程,將英語融入到專業理論知識學習的過程中,為學生編寫英文程序代碼,查閱英文技術文獻、文檔掃除語言障礙。

1.2專業方向選修課的“逆推”設計法

基于軟件企業崗位需求劃分專業方向,努力縮小高校培養的軟件人才與企業需求之間的差距。具體做法是:首先依據專業定位和社會需求選擇若干個崗位確定為專業方向,如:企業計算方向、嵌入式系統方向、日語加強班、企業定制培養實訓班(針對崗位到企業實訓、請企業技術人員到學校授課)、考研班等。明確每個專業方向畢業生應具備的能力和應掌握的知識,采用“逆推”的方法[2]設計專業方向選修課群,制定模塊化的專業方向選修課程體系,如圖1所示。專業方向選修課設置要緊緊跟蹤軟件行業人才需求變化和新技術發展,不斷進行動態調整加以完善,保持專業方向選修課設置的可擴展性和靈活性。

2注重職業技能培養,構建工程化實踐教學體系

實踐教學是指有計劃地組織學生通過觀察、試驗、操作,掌握與專業培養目標相關的理論知識和實踐技能的教學活動[3]。盡管實踐教學部分的課時在總課時中所占比例不低,但實際的實踐教學效果卻并不理想。傳統實踐教學的主要弊端是:①忽視了理論課程與實踐課程之間、不同的理論課程之間以及不同的實踐課程之間的聯系;②在課程設計和軟件開發實踐環節中,缺乏對過程的有效指導和控制,工程意識的培養和訓練不夠充分,難以培養學生的軟件工程能力。

2.1以崗位技能培養為目標,構建三級實踐教學體系

針對傳統實踐教學中存在的上述問題,提出以職業崗位能力需求為導向,構建工程化實踐教學體系的思路。具體做法是:根據職業崗位對人才知識和能力的要求,制定工程實踐教學的一級目標,將一級目標分解為二級目標,二級目標進一步分解為三級目標。三級目標、二級目標、一級目標分別對應課程實驗、課程設計、畢業設計實踐教學三級體系,如圖2所示。

一級目標和每個二級目標都是由三個階段組成:知識串講;案例實現;項目完成。整個實踐教學體系圍繞學生專業技能和職業素質的培養分層次、分階段實施,為學生提供了一條從編程到軟件項目開發的漸進式發展之路,形成一個融基礎理論、實驗教學、工程實踐為一體的整體化培訓機制,使學生各方面的能力都得到全面均衡的發展,適應現代軟件產業的需求。

2.2校企合作,加強學生職業素質教育

建立校企合作的企業實訓基地,實施“3+1”教學模式。即大學最后一年,讓學生到軟件企業頂崗實訓。通過真實的生產實訓、任務驅動、項目導向,加深學生對軟件工程實際運用性的理解,全面強化學生的專業實踐技能,培養其工程能力以及工程經驗,了解企業文化,樹立團隊合作精神,縮短學生走上實際工作崗位時的適應期。

3軟件工程專業課程體系及其優化

軟件工程專業課程范文4

關鍵詞:軟件工程;程序設計;課程群;建設;實踐

軟件工程專業的培養目標是面向我國軟件產業培養急需的工程應用型人才。軟件產業的發展要求學生具備較強的系統分析、設計、開發與維護能力[1]。為培養學生軟件系統方面的相關能力,許多高校的軟件工程專業都設置了系列課程模塊,如程序設計課程模塊、網絡技術課程模塊、計算機體系和操作系統課程模塊、軟件工程課程模塊等,這些模塊往往是一些單獨課程的組合,有很多學生學了這門課程,又忘記了那門課程,到畢業時專業能力達不到社會所要求的層次。程序設計課程群是軟件工程專業系列課程的重要組成部分,其承載的技能培養目標是專業培養的子目標[2],處于非常重要的地位。課程群建設是專業建設的一部分[3],有利于打通課程知識脈絡,避免課程內容重復或前后脫節,使前后連貫,內容融合,進而獲得整體優勢[4]。程序設計課程群主要培養計算思維能力、算法設計與分析能力、程序設計與實現能力和系統分析開發能力[5]。學生通過程序設計課程群的學習,可掌握1~2門程序設計語言,更進一步理解程序設計方法,熟練掌握常用的數據結構和算法,形成良好的程序設計風格,可獨立分析、設計和開發中小型軟件系統。所以對程序設計課程群進行研究并積極實踐對專業培養目標的實現具有重要現實意義。

1問題分析

目前,大多數高校信息類相關專業都開設了程序設計系列課程,一般為C語言程序設計、數據結構與算法、java程序設計等。許多高校都將C程序設計作為第一門程序設計課程[6],一般安排在第一學期或者第二學期,學完C語言之后,再學其他程序設計課程,如數據結構等。由于C語言本身比較靈活且語法內容比較多,對于初學者來說并不太好掌握。一些教師在授課過程中,沒有站在軟件設計的高度思考教學內容,往往過多地強調語言成分的語法和語義,而忽視了計算思維能力[7]的培養,使學生從開始就扎進程序設計語言的細枝末節中去,忽略了軟件工程思想的滲透,到最后學生掌握了一些語法,卻不能寫出較為優美的程序或沒有形成較好的程序設計思維和風格。算法是程序的靈魂,數據結構和算法在課程群中具有基礎和核心地位[8]。在實際教學過程中,學生普遍反映數據結構和算法課程抽象難學,在學習和實際應用中出現的問題比較多,很難寫出能正確運行的程序,學習過程中成就感不強,學完之后還是不知道如何應用,很難達到預期的效果。由于在前期的學習中,程序設計基礎沒有打牢,對常用的數據結構和算法沒有真正掌握,模塊化程序設計思維沒有有效建立,良好的程序設計風格沒有形成,導致后續的高級面向對象語言程序設計學習很難深入,最終導致軟件分析與設計能力得不到有效的提升。

2程序設計課程群建設

我校軟件工程專業采取校企合作辦學模式,由吉首大學和中軟國際共同建設,企業參與人才培養的全過程,在具體實施過程中,學校側重于理論教學部分,企業側重于實踐教學部分[9]。程序設計課程群是軟件工程專業課程體系的重要組成部分,企業參與討論與建設,確定該課程群以軟件設計能力培養為主線,以C語言程序設計、數據結構、面向對象技術、算法設計與分析幾門課程為基礎組建課程群,C語言程序設計開設在第一、二學期,數據結構、面向對象技術、算法設計與分析分別開設在第三、四、五學期,第六學期可開設JavaWeb程序設計或Asp.NetWeb程序設計,使課程群在能力構建和開設形式方面形成一個不間斷的體系。

3程序設計課程群實施

3.1精講課程主要內容,提高程序設計能力

課程組教師首先需要站在軟件分析與設計的角度研究各門課程在課程群中的地位和作用,把課程群中的系列課程作為一個有機的整體,研究各門課程的主要教學內容,針對課程重點、難點、疑惑點進行精講,做到理論與實踐課并重,有效提高學生程序設計水平。在課程群系列課程中,由于第一門課程是后續系列課程的基礎,所以學生必須掌握它。在C語言的教學中,要滲透軟件分析與設計的思想,把握程序的主要框架,不糾纏于一些細枝末節的語法。函數是C語言教學中的重點,需要重點突破,從模塊設計的角度來考慮函數設計,對于一個具體的函數,則要掌握函數的返回類型、參數類型以及參數個數。如用函數處理一個數組時,需要傳遞數組的首地址和數組的規模,首地址用指針表示,數組的規模則有兩種表示方法,一是數組的長度,二是數組的起始下標和結束下標,這兩種方式可能會分別應用到不同的地方,如果教師一直不提示第二種方法,則將來學生在寫數組做參數的遞歸程序時可能會遇到困難。從多年的教學實踐來看,如果學生真正掌握了函數設計方法,再加上必要的算法知識,一般情況下,程序設計就會變得得心應手而且十分有趣;對于數據結構課程,采取以數據存儲(內存)為主線的方法,將重點放在數據的存儲和相關算法方面,在算法實現時滲透模塊化的思想,需注意頭文件和實現文件的定義,因為數據結構內容具有很強的連貫性且程序的初始化工作較多,如鏈表的具體應用則先要建立鏈表、樹的遍歷和節點的查找等則先要建立樹、圖的遍歷和最短路徑及關鍵路徑等則先要建立圖,在實驗過程中有意識地把一些基礎工作放入頭文件,則會極大地提高實驗的效率;在面向對象技術教學中,以面向對象程序設計的方法為核心,以語言中的面向對象機制為主要內容,在適當的時候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等優秀書籍中的一些思想和經驗,要注重面向對象程序設計過程中大的程序框架的合理性以及具體處理算法的正確性;在講授算法設計與分析的時候,應集中精力將主要算法講透,直到學生學懂為止,在實現算法時,應充分運用面向對象設計的思想,將算法封裝在類中;在web程序設計教學中,采用案例驅動的方式,精講軟件項目設計中的主要方法和主要問題,培養學生工程化設計思想。精講的目的是讓學生多練,精講之后要布置任務并為學生提供練習環境和相關指導,必須充分發揮教師主導和學生主體作用,教師要認真檢查學生的作業、實驗和練習情況,及時糾正問題,引導學生運用軟件工程的思想設計程序,培養學生良好的程序設計思維和程序設計風格,激發學生自覺學習和實現相關算法,最終提高程序設計能力。

3.2大規模開展程序設計訓練,培養程序設計能力

為培養學生算法設計與分析能力,學院在晚上和周末開放了實驗室,在實驗室搭建了ACM在線測評系統(ACMOnlineJudgeSystem),并接入了校園網,結合C程序設計、數據結構與算法等課程部署了大量習題。學院利用課余時間,有計劃組織學生進入實驗室進行編程訓練,并為每次訓練配備了指導教師。平時,學生也可以在寢室登錄平臺進行訓練。教師在講授C程序設計等課程的時候,要求學生利用課余時間在ACM平臺上完成至少上百道題的訓練,并將完成情況計入課程的平時成績。通過大規模開展在線程序設計訓練,學生的程序設計能力有了明顯的提高。

3.3開展課程設計訓練,培養工程化設計思想

在課程群中除開設理論課程對應的實驗項目之外,還針對整門課程開設了綜合性課程設計項目,如C語言課程設計、面向對象技術課程設計、javaweb課程設計,單個課程設計周期為1-4周。學院課程設計項目主要由企業教師指導完成,該類項目采用分組形式,在組內模擬軟件企業運行模式設置相關崗位角色,學生在仿真企業環境中,利用仿真的軟件開發項目,進行輪崗和角色體驗,培養學生的軟件工程應用能力、軟件項目開發與測試能力、職業素質等,從而使學生熟悉軟件項目開發流程和規范,養成良好的軟件開發習慣。課程設計結束時,要求學生演示并講解自己的項目開況,由學院教師和企業教師組成評定小組進行評分。

3.4改革考核與評價方式,理論與實踐、平時與期末相結合

理論與實踐相結合。程序設計課程群內的課程都是實踐性很強的課程,其目的是運用所學的知識解決實際問題,決定了課程的期末考核要綜合考慮理論和實踐兩部分內容。理論部分主要考查學生對基本概念的理解和對基本知識的掌握情況,實踐部分側重考查學生的綜合應用能力,這兩部分成績都在期末完成,占課程總成績的60%左右。平時與期末相結合。期末考核重在體現學習的結果,平時成績則側重于體現學習過程,在課程總成績中,平時成績占40%左右,即一門課程約有40分來自平時的學習過程。平時成績一般由出勤、作業和平時實驗情況、課程設計情況組成。在學期開始第一堂課的時候將課程評分方式告知每一個學生,必須抓緊平時的學習,若平時分小于20分,則取消課程考試資格或直接將課程總成績記為不及格。

4結語

程序設計課程群對培養學生計算思維能力、算法設計與分析能力、系統分析與設計能力具有重要作用。本文分析了學生在課程群學習中遇到的一些問題,從軟件分析與設計的角度對課程群進行建設與改革,提出了以C語言程序設計、數據結構、面向對象技術、算法設計與分析等幾門課程為基礎組建程序設計課程群,給出了課程群的主要知識與能力體系要求,通過精講課程主要內容、大規模有組織地開展程序設計訓練、企業教師指導課程設計、改革考核與評價方式等方法進行教學改革,學生的程序設計能力得了到較大的提高。

參考文獻

[1]韋迎春,文俊浩,陳蜀宇.以能力培養為核心構建示范性軟件學院實踐教學體系[J].中國高等教育,2011(2):49-50.

[2]喬付,王國權,張鳳武.CDIO理念下計算機程序設計課程群建設探索[J].內蒙古師范大學學報,2011,24(11):39-41.

[3]孫雷,王新.計算機專業程序設計課程群的研究與實踐[J].教育教學論壇,2013(11):222-224.

[4]翁偉,吳克壽,吳蕓,等.程序設計課程群建設探索與實踐[J].計算機教育,2009(23):123-125.

[5]王海舜,蔣巍?。诔绦蛟O計能力培養的軟件設計類課程群架構[J].計算機教育,2012(2):23-26.

[6]萬臣,謝芳,胡泉.計算機專業程序設計課程群的建設與研究[J].合肥工業大學學報:社會科學版,2009,23(1):33-36.

[7]汪紅兵,姚琳,武航星,等.C語言程序設計課程中的計算思維探析[J].中國大學教學,2014(9):59-62.

軟件工程專業課程范文5

《軟件工程》課程是該專業的專業核心課程。軟件工程是指導計算機軟件開發和維護的一門工程學科[2]。學生學習這門課程是要求他們掌握軟件工程的概念、原理、技術和方法,從而經濟、高效地開發出高質量的軟件并有效地維護它。該類課程理論較多,同時其綜合性、實踐性要求較高。如何教授好這門課程是一個值得思考的問題。

1 《軟件工程》課程教學中存在的問題

軟件工程課程內容主要是許多概念和原理,教材上涉及的方法與技術并沒有多難理解,但教學過程中仍發現有如下問題:

1.1 學生對軟件工程類課程感覺概念、原理太多,難以記憶

軟件工程課程主要講解軟件開發中的原理、方法、技術,很少涉及軟件算法和程序設計。學生在學習時有個誤區,覺得這門課既然是介紹各種概念和原理的,死記硬背就好了。而大量的概念和原理光靠死記硬背反而容易混淆,學習效果并不好。

1.2 教學模式單一,缺少有專業特色的固定的教學案例

目前軟件工程課程仍以教師課堂授課為主,學生聽課為輔,教學內容側重于理論。實驗學時較少,學生的實踐多在課后完成,較難落到實處。課堂使用案例也多為教材上給出的小案例,實用性不強,缺少專業特色,學生很難接觸真正的醫學信息系統開發項目的實例。

1.3 學生缺少對相關課程間關系的理解

目前的教學模式是各門課獨立講授,對于軟件工程課程而言其綜合性很強,其理論與應用與許多課程相關,但學生在學習時是單獨學習的,在頭腦中沒有形成完整的課程體系,不能把已學過的知識融會貫通的使用。

1.4 學生實踐能力較差,難以滿足專業需要

軟件工程課程實踐性要求高,而學生在學習的過程中,僅僅抽象的學習軟件開發的過程,很少有機會參與軟件開發的整個過程,從而實踐能力較差。

2 解決辦法

2.1 注重教學方法和教師的課堂感染力,結合學生實際教學

當課程內容不夠吸引學生時,授課的效果就更依賴于教學方法和教師的個人魅力。教師要教授好一門課程,僅僅對課程內容的深入理解是不夠的,有時要向一位演員一樣的表演。聲音抑揚頓挫的變化可以使本想打瞌睡的學生清醒。在教學中適度的加入一些包袱,博得滿堂一笑,同樣可以使渙散的注意力重新集中。學習軟件工程課程的目的是為了讓學生了解和掌握開發一個高質量軟件的過程、方法及使用的工具。那么對于高質量軟件要給學生一個定義,如果僅從理論上來解釋將枯燥無趣。筆者在上課時以學生所熟悉的MS office、QQ等軟件作例子,讓學生從用戶的角度討論高質量軟件的特性,將軟件工程設計和實現階段的一些基本原理、概念和啟發規則引入進去,引起學生的共鳴,加深學生對這些原理、概念、啟發規則的理解,在不用死記硬背的情況下輕松記住教學內容。

2.2 結合其他課程內容,使學生對所學內容融會貫通

軟件工程課程的綜合性和實踐性都比較高。在教學中結合其他課程內容,并與其他課程教師交流共同教學,學生能將所學知識融會貫通,靈活應用,效果會非常好。例如在講述軟件工程需求分析階段建立數據模式時引入數據庫原理中的知識,解釋數據對象、屬性及數據對象間相互聯系,以及它們對應到應用中的實現形式;在講述設計與實現階段內容時,可引入算法設計與分析課程中的知識對設計思想、代碼的構造進行說明;講述實現效率時,引入算法設計與分析中的時間復雜度和空間復雜度的概念來討論效率問題,討論存儲效率時還可引入操作系統中存儲調度的原理加深學生的印象。

在我校醫學信息工程專業課程計劃中,軟件工程是在大三上學期開設,大三下學期還有《J2EE架構設計與開發》和《綜合課程設計》兩門課,結合這兩門課,讓學生分組以軟件工程方法開發一個軟件,并交付相應文檔,從而再次鞏固學生在軟件工程課程中學習的知識并加以應用。

2.3 采用項目驅動模式,結合項目實例,使學生學以致用

采用項目驅動模式教學時應注意以下幾個問題:

(1)盡量使用實際案例,虛擬的案例因為沒有需求方,學生在需求分析和需求定義時很容易流于形式,體會不到獲取需求有多么的困難,反而會覺得獲得需求很容易,難在編程。在我校的教學中,軟件工程前期有《醫學信息系統》課程,為學生介紹醫院的一些管理流程,并指導學生開發相應的軟件;同時學院經常組織學生去醫院實地參觀;學院教師也經常與醫院或企業有一些軟件開發的項目。這些都為軟件工程課程提供了很好的實際案例。

(2)指導學生分組,學生分組時最好不要任由學生自由分組。學生自由分組時,往往編程能力好的同學抱成一組,其他的同學以關系疏密來確定分組。導致一個項目組中只有個別學生起到作用。使整個教學過程流于形式。可以先讓學生自由報名擔當項目負責人,然后以公開競聘的方式確定項目負責人,這個過程中,需要老師對學生有一定了解,對競聘方式和過程加以引導,確定有組織能力和負責任的同學擔任。然后再由個人向項目負責人申請職位(如軟件設計人員、軟件架構人員、程序員、軟件測試人員等),一般一個項目組5-6人,由項目負責人決定小組人員,項目負責人負責項目的整體管理和協調工作。因為職位都是自己申請的,所以最后在項目實施時,各人職責明確,不會出現人浮于事的狀況。

(3)定期檢查工作進度。如果沒有定期的工作進度檢查,學生可能會直到課程快結束時才趕緊寫各類文檔交付了事,達不到教學目的,學生無法體會到軟件工程在實際應用中的意義。所以要求各個項目組跟隨課程的進度按時間段完成包括可行性分析報告、需求規格說明書、總體設計規格說明書、詳細設計規格說明書、測試計劃、源代碼等各類文檔。學時允許的話,安排幾節課作為工作匯報會。適度的工作匯報會可加強小組間的交流,讓學生從別人的工作中發現自己工作的優勢和不足。每次匯報會的發言人由每小組成員輪流擔任。筆者認為通過軟件工程課程教學提高學生匯報工作的能力和與人交流的能力也是很重要的。教師對學生的文檔和匯報予以總結和點評,在對學生的工作予以肯定的基礎上提出對學生所給方案的改進意見或建議。畢竟軟件開發的過程中沒有唯一標答,學生的思路與老師的不同是很正常的現象,不要一味否定從而打擊學生獨立思考的能力。以開放的思想與學生討論,更能促進學生更深入的思考。這樣既能加深他們對軟件工程理論的理解,同時也提高對這門課程的興趣。

軟件工程專業課程范文6

關鍵詞:整體項目模式;項目Bus;軟件工程;教學

0 引言

文獻1論述什么是整體項目模式以及整體項目模式的優缺點,文獻2論述整體項目模式下軟件工程專業的教學體系結構,同時也提到軟件工程專業教學方面的要求,主要是針對教師的要求。在實際過程中,整體項目模式下軟件工程專業的課程教學較為復雜。首先,需要理清專業課程之間的相互關系;其次,需要明確專業課程和項目過程之間的關系;第三,需要掌握專業課程教學和實際項目之間的切入點、重點和難點;最后,學生要能切實根據自己所做的項目,從不同的側面或教學內容方面書寫項目文檔,并認識到同一項目可以從不同的角度進行分析、設計和編程。

傳統的專業課程項目教學和整體項目模式下的專業課程教學存在很大區別。傳統的專業課程項目教學主要是沒有從整體項目模式考慮教學問題,割裂了專業課程之間的相互聯系,只從該課程的教學內容方面列舉案例,學生對教學內容的認識具有片面性和局限性,不能建立起對知識體系的整體觀念。在實踐教學過程中,學生曾經提出過很多問題:軟件工程和結構化設計、面向對象設計有什么不同?它們之間有什么聯系?為什么要學習面向對象?不學習可以嗎?作為一個專業課任教師,如何進行解釋?如果學生有足夠的項目經驗,前期是否一定要有詳細的分析和設計文檔?針對最后一個問題,若是不具備豐富項目經驗的教師回答,那答案是一定要有詳細的分析和設計文檔;但是實踐經驗豐富的教師則認為這個問題的答案是不一定的。小型或者微型項目的前期不一定要有詳細的分析和設計文檔,可以直接在編程過程中進行分析和設計,那么這是否違反了軟件工程呢?當然,答案也是否定的。如教師在講授面向對象的軟件開發方法課程時,必須強調某一開發方法的優缺點,可以綜合運用其他開發方法如結構化分析方法、形式化編程,甚至弱化分析過程,強化設計和編碼過程,主要目的是明確整體項目開發過程。

1 軟件開發流程和系列課程之間的關系

1.1整體項目模式下軟件工程專業教學體系結構

任何課程的設置不能脫離教學體系結構。一個好的教學體系結構能夠幫助學生在頭腦中樹立完整的知識結構,讓學生主動獲取相關知識。在教學過程中,教師首先要明確該課程在整個教學體系結構中的位置,建立項目開發過程的全局觀。文獻2中建立的整體項目驅動模式下軟件工程專業教學體系結構如圖1所示。

從圖1中可以看出,項目Bus橫貫整個專業課程,教師和學生各自只使用同一個項目案例貫穿于系列課程中,從而從不同的角度讓教師講授、學生學習同一個項目的相關內容。

1.2軟件開發過程流程

圖2所示是筆者在軟件開發過程中總結出來的一套軟件工程專業軟件開發過程流程,包括軟件開發過程、軟件工程文檔、軟件標準規范、實際軟件開發規程等方面的內容。在每一門課程的開始和結束階段,筆者都要將該圖展示出來,讓學生明確自己已經學到了哪些內容,還存在哪些欠缺。

1.3軟件開發過程對應的專業課程設置

筆者有幸為中南民族大學軟件工程專業以及本校與美國威斯康星大學合辦的3+2軟件工程國際合作試點班的學生講授部分專業課程,包括軟件工程、軟件測試、用戶界面設計、軟件項目管理、面向對象的軟件開發方法5門課程。對于相關的其他專業課程,我們將不做說明,如CMMI、軟件過程、軟件質量保證等。

這些課程與軟件開發過程流程是一一對應的關系。軟件工程課程是專業核心課程,涉及內容廣泛,是其他專業課程的基礎,也是整個軟件開發過程流程的基礎,主要內容包括軟件需求提取、分析、設計、測試、維護變更管理以及軟件質量控制、軟件項目管理、軟件開發配置變更管理、軟件開發標準以及軟件開發方法。軟件測試貫穿軟件開發過程的始終,包括用戶需求的確認、用戶界面的確認以及單元測試、集成測試、系統測試、Alpha/Bete詛測試、評審、驗收等內容。用戶界面設計主要包括軟件界面設計理論、原則和規范,在實際軟件開發過程中,是圖2中的系統概要設計/用戶界面驅動分析部分,通過與用戶反復溝通確認需求,是測試的基礎,同時也是軟件編碼階段、評審、驗收階段的依據。軟件項目管理主要對軟件的質量、成本和進度進行管理和控制,同時考慮如何在軟件開發過程中避免不必要的風險或者降低風險的影響。面向對象的軟件開發方法著重于軟件開發過程中面向對象的需求分析和設計,包括用戶分析、界面設計、類模型、動態模型、狀態模型等一系列的分析和設計。

這5門專業課程從不同的側面講解軟件項目的開發過程和方法,各有特點。但是對于為什么要學習這幾門課程,以及它們在軟件開發過程中處于什么樣的位置,起到什么樣的作用,是教師在教學之初就應該明確的。

2 整體項目模式下系列課程的教學

根據整體項目模式原理,實踐項目應貫穿到各專業課程之中,系列課程最好使用同一項目,這樣更能加強學生理解軟件開發過程的不同方面。該項目在專業課程開始之前就必須存在,即已經完成或正在進行中的實踐項目,因此,系列課程必須是相互聯系并且能基于同一項目案例,這和傳統的項目教學方式雖然模式一致,但是效果卻有本質的不同。圖3為系列專業課程的項目案例、課程和學生實踐案例示意圖,5門課程都基于同一實際項目案例,學生根據自己所做的項目,按照不同專業課程要求的格式和內容書寫相關文檔。

2.1先案例后理論的案例驅動教學模式

軟件工程專業的特點是實踐性非常強,軟件工程的很多理論都來源于對實踐的總結和歸納。因此,教師在教學過程中采用先案例后理論的案例驅動教學模式,符合軟件工程專業的授課特點。

首先,教師要講解實際項目案例的文檔,該文檔是一套完整的、從不同側面反映軟件開發過程的實際文檔。對于每一門專業課,教師首先講解需求提取、需求分析過程、功能提取、系統功能結構框圖等,讓學生明確該系統的背景和要解決的問題,以及需要具備什么樣的功能以實現目標。

其次,教師要聯系實際項目案例,講解課本上的理論,將每個理論知識點與實際的項目案例相結合,讓學生充分理解理論。在實際講解過程中,對于新開課,新教師若碰到教學學時偏少的狀況,可以言簡意賅地講解重點知識;實踐經驗豐富的教師,碰到學時偏少的情況可以精簡案例功能,講解1~2個功能即可。

最后,教師必須強調實踐的重要性并給出標準的文檔規范,要求學生按照自己的實際項目書寫標準的文檔。在每一門課程講解完畢后,教師再一次幫助學生回顧該課程在軟件開發過程中的位置。

以軟件項目管理為例,在正式進入課程教學之前,教師需要做大量的工作,首先需要準備的文檔有項目需求、項目需求分析報告、可行性分析報告、項目開發計劃書、項目Demo程序演示、軟件項目投標書、軟件項目開發合同。然后,開始進人軟件開發項目管理過程教學,軟件項目主要內容有成本管理、進度管理、人員管理、風險控制等理論內容。實際的軟件項目管理主要分為4個階段:IT項目的啟動階段、IT項目的計劃階段、IT項目的執行控制階段、IT項目的收尾階段,這在一般的教材中很少提及,但是教師在內容講解中要明確階段任務。IT項目的計劃階段涉及48個文檔;IT項目的執行控制階段涉及45個文檔;IT項目的收尾階段涉及14個文檔。

教師在講解合同的內容時,可以直接參照“軟件項目開發合同”進行講解。對于必不可少的合同內容,教師就必須跟學生講清為什么必須要包含這些內容;講解成本計算的時候,根據文檔“工作包、進度和預算”進行項目的WBS分解以及基本的估算方法。

總之,由于教材先理論后案例的局限性,在聽課之初,學生覺得枯燥乏味。而教師通過先案例的方式能有效調動學生在課堂上的學習積極性,為后面的項目實踐奠定基礎。

2.2學生項目實踐環節

每一門專業課都有上機實踐部分,學生在實踐課上主要是書寫文檔。每門專業課都有各自不同的文檔,軟件工程課程要求學生必須完成標準的13個文檔;軟件測試課程需要軟件測試報告文檔;軟件項目管理課程有127個文檔;面向對象的軟件分析方法課程有包含9大部分內容的軟件項目分析與設計文檔。每一門課程的文檔內容非常多,要求每個學生最好獨立完成,主要訓練每一個學生的文檔書寫和理解能力。

需要強調的是,學生書寫的項目文檔一定要給出標準的、規范的文檔格式,包括目錄、段落、標題、字體等排版之類的要求。項目模板可以采用軟件工程國標文檔或者相關的其他標準文檔,最好和某一軟件公司的案例文檔格式相一致。筆者在軟件公司任職過程中,很多剛參加工作的大學生書寫文檔的水平非常差,主要是文檔格式、結構和內容混亂,往往給人留下非常不好的印象。整體項目驅動模式下的課程教學,首先強調的就是文檔格式和正確的文檔排版,其次才是內容的正確性與完整性。

在學生項目實踐中,任課教師最好跟蹤指導。學生每次在實驗課上必須完成相應的實驗,并把實驗的電子文檔通過教學資源管理系統或以電子郵件的方式提交給教師。電子文檔的批改能快速糾正學生文檔格式不規范以及內容方面的錯誤,但這個工作量往往很大,每一次電子作業批改的工作量往往是學生數量的3~4倍。這是因為學生按照批改意見進行修改后又會返回給教師,最終達到合格標準的電子文檔往往會被修改2~4次。

2.3考核方式

完成每門課程的項目文檔是學生對文檔書寫熟練程度以及課程內容理解的直接反映,也是培養軟件開發過程中需要具備的素養和習慣的有效途徑,克服學生疏于或懶于書寫文檔的缺陷。因此,教師需要對學生書寫的項目文檔進行考核并將其反映在學生成績上。項目文檔的成績占學生總成績比例的30%~50%較為合理。

2.4教學效果

筆者經過近2年的教學實踐,取得了良好教學效果。以中南民族大學軟件工程專業2008級學生為例,首先,學生很順利地完成了各自的軟件項目,包括中南民族大學學生基金項目;其次,學生能很好地書寫申請軟件項目著作權系列文檔以及畢業論文,書寫的文檔格式規范,只需稍加修改就能將文檔立即轉化成學術論文并發表。這表明學生無論是在文檔格式還是在內容編排上都取得了進步,進一步提高了在軟件開發過程中應有的素質。這也是軟件工程專業學生和計算機其他專業學生之間非常明顯的差別。

就前2屆學生的就業情況,筆者回訪了2家用人單位,他們對中南民族大學軟件工程專業畢業的學生刮目相看,稱贊學生書寫的項目文檔很規范。

亚洲精品一二三区-久久