時間:2023-07-02 09:21:57
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了七篇軟件開發基礎知識范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
【關鍵詞】 軟件開發 技術
計算機技術的發展是日新月異的,特別是近年來,隨著各行各業經濟建設和社會發展,需要不同的軟件和技術為經濟社會發展服務。近年來,隨著我國的各項技術的不足和發展程度不夠,我們在此技術的基礎上提出了更高的要求。我國的自主創新能力和軟件開發創新能力發展不足是我國目前所面臨的主要困境。這些技術創新阻礙禁錮了我國的社會發展。提高軟件開發能力和投入產出效率是目前亟待解決的。特別是軟件開發技術在我國發展面臨著諸多技術阻礙和科研投入不足的問題,更加需要我們進行技術創新和技術發展。
軟件開發成功與否關鍵在于,主要取決于我們對于其中主要矛盾和關鍵要素的掌控程度。軟件開發過程中的關鍵性要素對于整個過程起著決定性作用,主要的要素有:計算機基礎知識,自主創新能力,團隊合作能力,運用能力。上述這幾條是實現軟件技術進步的關鍵要素。
一、計算機基礎知識
計算機出現于1946年的美國賓夕法尼亞大學,出現之初主要是為了實現軍方的聯系和鞏固國防的目的。隨著計算機技術的發展和進步,他已經不僅僅局限于某個特定的領域,而是廣泛的應用于社會生產和生活的方方面面,計算機技術在如今的發展已經處于中期階段,許多計算機技術和軟件技術已經相當先進,運行效率高,計算速度快的特征使得這些技術已經成為我國技術發展的主要依托。我國的計算機技術起步較晚,發展速度慢,自身的發展基礎和實踐經驗都不夠豐富。因此,我國的軟件開發技術相對落后,需要借鑒發達國家的技術和軟件開發資源作為我國計算機發展的基礎和平臺,實現我國技術的發展和進步。我們只有熟練的掌握了計算機基礎知識,才能夠在運用的基礎上進行軟件開發。計算機基礎知識是經過實踐的檢驗,并且在實際需要中不斷地改進之后才最終形成的理論,包括操作系統,計算機資源開發系統和信息管理系統,信息處理系統等理論知識。這些主要的理論知識都是實現轉變和創新的主要理論依據。
二、主創新能力
軟件開發能力實際上主要取決于團隊和群體的自主創新能力,自主創新能力是實現理論發展和進步的源泉。因此,只有具備了自主創新能力,才會在當前的環境下提出更多的疑問,并且能夠應用全新的思維和方式來解決實踐發展中出現的問題。我們只有通過這樣的方式才會真正的促進技術的發展和進步。目前,我國的CPU技術依然處于落后階段,中國國內自主開發的CPU處理效率低,運行慢。剛剛誕生就意味著即將被淘汰??梢钥闯?,我國的技術創新動力和水平遠遠落后于世界。造成我國計算機技術落后的根本原因在于我國的自主創新能力低下,總是因循守舊,不能夠自主的進行技術創新開發。
因此,加強自主創新能力,創建創新型國家是實現可持續發展的根本途徑,軟件開發領域的自主創新思維和能力將會引領世界范圍內的變革和發展。自主創新能力實際上是一種非常規的視野和思維來解決實際中出現的問題,這樣就為現實問題的解決增加了新的途徑。
三、團隊合作能力
技術共享與成果交流是實現發展和進步的一個重要因素,面對著龐大的計算機系統和復雜的軟件難題,一個人的能力在這樣龐大的任務面前顯得微不足道。只有加強團隊合作和交流,實現發展環節無障礙才會促進團隊內部的成長和進步。面對復雜的軟件開發問題,只有加強任務的分配和團隊內部的交流溝通才會提升發展效率,少走彎路。
四、接受和運用能力
軟件開發的速度越來越快,新產品也一直處于不停的更新換代之中,面對這些復雜的變化,我們作為軟件開發專業工作者,就必須要具備解讀和理解運用不同的外來技術的能力。
本文結合目前信息與計算科學專業的實際情況,對如何提高學生的軟件開發能力進行探索與研究,以求能夠在有限的教學時間內最大程度地提高學生的計算機實際應用水平及提升軟件開發能力,從而培養社會適用型人才,拓寬就業口徑。
關鍵詞:
信息與計算科學專業;軟件開發能力;實踐教學;就業
1研究意義及問題分析
在認真分析就業市場發展的新形勢下,高校數學院系迫切需要采取有效的措施去解決數學本科生的就業問題。切實做到專業設置與社會需求相對接,目前,從已畢業的數學專業的就業方向看,從事軟件開發行業的人居多,而其中約有80%左右的學生是去市場上軟件開發方向培訓班培訓過的,為了節省學生的時間和費用,數學類專業有必要設置具有特色軟件開發方向課程模塊,培養學生的軟件開發能力。根據就業市場所需積極進行數學類專業軟件開發方向人才培養的研究與實踐。提高數學本科生的綜合競爭力切實幫助學生找到合適的就業出路。信息與計算科學專業軟件開發能力培養旨在培養具有軟件開發背景的綜合性數學人才;使得數學與計算機專業的有機結合,形成一套獨具風格和特色的教育培養模式,給用人單位明確地顯示數學類專業學生在從事軟件開發時的優勢。數學系的學生到軟件企業中大多作軟件設計與分析工作,這部分人才在軟件開發行業緊缺,而計算機系的學生做程序員的居多,原因就在于數學系的學生分析推理能力、邏輯推理能力強,數學思想的建立比計算機系學生強,這是數學專業學生從事軟件開發的優勢,也是培養數學專業學生軟件開發能力的意義所在。
2信息與計算科學專業特點與特色課程設置
信息與計算科學專業人才培養應該尊重數學學科教育的發展規律,強化學生數學基礎,著眼于學生的就業,瞄準社會對數學類人才的規格要求,注重應用技能的訓練與培養。在專業定位上,堅持:強化數學基礎,兼顧專業類別,突出因材施教,培養綜合能力的辦學原則。根據就業市場所需積極調整專業設置,把辦學規模和專業設置與市場接軌。2.1設定該專業軟件開發方向人才培養的目標:學生不僅能進行數學理論研究,同時會運用計算機工具,更主要的是他們能將兩者有機地結合起來,將理論與實際緊密結合,進行軟件開發、信息管理與處理等。這是既有別于數學專業又有別于計算機專業的特色。突出數學專業學生的思維優勢。
2.2加強師資隊伍建設。采取“穩定、培養、引進”相結合的方法,培養一批既懂數學又懂計算機的教師隊伍,為專業教育質量提供師資保障。
2.3理論教學培養學生計算思維和算法設計分析能力:通過開設數學分析、離散數學、高等代數、概率論與數理統計、數值分析、數學模型等課程,培養學生的計算思維,使學生具備建立數學模型和解決實際問題所必備的數學知識和抽象邏輯思維能力。數學上功底扎實,在軟件編程上的優勢盡顯,項目的設計模式格外地優化,程序邏輯條理也格外地清晰。因為數學可以培養人的邏輯思維能力,而程序設計需要很強的邏輯思維能力。所以無論從事什么具有扎實的數學基礎是必要的。
2.4構建合理的軟件開發方向的課程群,培養計算機應用軟件的開發能力:通過開設高級語言程序設計(C語言)、數據結構、面向對象程序設計(C++與Java)、算法設計和分析等課程,有針對性地培養學生掌握算法設計與分析的方法,使學生熟練掌握常用算法、掌握算法設計與分析的方法和步驟,通過開設數據庫原理及應用、軟件工程、數據庫編程,加大學生綜合系統設計開發,使學生掌握中小型軟件系統的架構、算法分析和設計能力,掌握軟件系統分析與設計的方式方法,提高學生綜合系統編程能力。
3軟件開發實踐教學體系研究與實踐
改變傳統的教學模式,培養學生的實踐能力。包括:與行業人員合作的教學方法、案例式教學、精講多練、機房授課、項目式考核等。整合實踐教學內容,探索基于學生就業競爭力的實踐教學體系;加強和完善實踐教學條件:包括專業實驗室建設、長期穩定的校外實習基地建設。豐富實踐教學內容。做到把課堂搬到企業去,把理論用在實際。針對目前軟件開發方向應用廣泛的語言,信息與計算科學專業重點開設C語言、C++、Java、軟件工程具有適應市場的競爭力的課程。這些課程能很好的與就業市場對接。我院已經有合作的校外實習基地—達內科技培訓機構大慶分部;哈爾濱承德培訓基地。大一實踐課程設置:19周至22周,實踐課程以Java程序設計為列。校內60學時的Java基礎教學,邊教邊練,隨堂消化。使學生掌握Java語言的基礎知識,熟悉Java類庫中最主要的類,掌握和面向對象程序設計的基本原則和特點?!癑ava技能實習”通過幾個Java小項目的開發,培養學生Java編程能力,加深學生對Java語言的基礎知識和面向對象程序設計的理解;大二已有Java基礎的學生去達內實校外訓基地,由校外指導教師指導項目實戰。做到校內校外的課程安排有機結合,不脫節。同時通過走訪已經畢業的學生的工作單位,了解當下的就業形勢。充分發揮信息與計算科學專業學生的專業能力。大三暑期,學生實訓走出去,去一些公司實習,讓學生體會到學有所用。為大四就業打下經驗基礎。
4結束語
針對信息與計算科學專業的特點,結合辦學思想和培養目標,特設置了該專業的計算機類課程,調整了教學內容,將數學知識和數學思維融入軟件編程,體現專業特色,改革了教學模式與考核方式,并注重培養和考核學生的實踐創新能力。通過兩年的教學實踐表明,對于信息與計算科學專業計算機類課程的改革思路是行之有效的,激發了學生學習計算機類課程的興趣,開發了學生的潛能,提高了學生的編程能力和解決實際問題的能力。擴大了本專業學生就業面,培養出有一定數學基礎和實踐能力的從事軟件行業的人才。實現推動數學類本科專業快速發展。
參考文獻
[1]董立華,劉艷芹,數學專業創新性應用型人才培養的探索與實踐[J].衡水學院學報,2012.
[2]方木云,戴小平,培養學生軟件開發能力的軟件方向課程群建設[J].安徽工業大學學報,2007.
[3]楊韌,基于體系建設的數學類專業實踐教學改革[J].實驗室研究與探索,2013.
[4]孫善輝,蘆偉,以就業為導向的數學本科專業學生創新能力的培養[J].宿州學院學報,2012.
【關鍵詞】項目帶動 軟件藍領
1.前言。我國軟件行業已形成較大的規模,軟件行業的從業機會逐年遞增,而處于軟件人才金字塔結構底部的“軟件藍領”更是需求巨大。面對強大的市場需求,如何才能培養出符合要求的“軟件藍領”以適應市場的需求呢?運用“項目帶動式”教學可更好地培養出“軟件藍領”。
“軟件藍領”是指進行軟件開發工作的初級技術人員,主要從事比較基本的程序代碼編寫、調試、測試等重復性的工作,一般對外語和技術水平要求較低,但需要有一定的實踐經驗。因為軟件行業的發展速度快,新的知識、新的技術、新的工具不斷出現,所以還需要“軟件藍領”有較強的更新知識的能力。
“項目帶動式”教學是指圍繞項目開展學習的一種教學模式,本質上是一種應用(或仿真應用)驅動,是一種軟件教學的互動。項目為中心的學習模式,既讓學生學習到軟件開發知識和技能,使學生對軟件開發具有一定的工作經驗,使之易于適應工作后的軟件開發環境;還將在編寫軟件的過程中,培養學生的自主學習能力和群體協同的能力,培養學生的責任心和完成項目的決心。這種教學方式適合“軟件藍領”的培養,尤其適合在職業技術院校中采用,可以很好地讓學生在完成項目的同時掌握基礎知識,培養其自學新知識、新技術的能力。
2.軟件“項目帶動式”教學的概念與特點。軟件“項目帶動式”教學模式,圍繞“軟件藍領”職業崗位能力的形成、科學設計和選擇項目,根據特定的完整的軟件工程項目所需要的知識、能力和素質結構,進行教學方案設計,按照軟件工程項目的操作流程組織實施教學,使學生在項目開發的過程中,獲取知識和經驗,達到人才培養的目標。項目是指具體的軟件工程項目或軟件生產項目,可以是模擬的項目,也可以是具有實戰性質的項目。項目是人才培養的核心要素,具有完整的流程,貫穿于人才培養的始終。學生在項目實施中學習知識,鍛煉技能,掌握技術,提升職業素養,實現培養目標。
軟件“項目帶動式”人才培養模式的特點是將教學過程與軟件項目工程充分地融為一體,圍繞項目工程的需要構建課程體系,組織實施教學,有利于瞄準崗位設課程、瞄準能力搞教學,提高教學的針對性和實效性;在項目工程的具體實施過程中學生根據自己的興趣和特長,重點選擇不同的職業崗位、扮演不同的角色,學習目的更明確、針對性更強,有利于學生個性的培養,也為學生未來的擇業奠定良好的基礎;以具體工程項目或生產項目帶動教學,使整個教學過程能始終貼近生產第一線,學生可以及時了解行業的發展趨勢,掌握最新的設計理念、管理理念和工程施工技術。學??梢愿鼫蚀_地了解市場對人才的需求狀況,及時主動地調整教學內容。改革教學方法,使培養的人才具有更強的社會適應性和就業競爭力。將專業教育融入行業背景,有利于學校專業教育與市場行業運作的銜接,有利于實現學生與行業、與社會的“零距離接觸”,真正實現職業技術教育以需求為宗旨,以就業為導向,產學研相結合的教育理念。
3.“項目帶動式”教學的實施步驟。
3.1 以項目帶動教學的教學目標。從企業的實際需求出發,中職“軟件藍領”需要掌握的技能主要有兩種:
3.1.1 必備技能。包括:
①基本理論知識技能,包括計算機基礎知識、數據結構和算法、操作系統知識、工具軟件、測試軟件;
②網絡知識技能,包括網絡基礎、綜合布線系統知識;
③計算機程序設計語言知識,至少包括一種計算機編程語言,例如C、C++、JAVA等;
④軟件設計開發工具,包括Visual Studio、Jbuilder等;
3.1.2 附加技能。包括:
①軟件工程與項目管理知識,包括CMM流程、PMP(項目管理)相關知識、軟件開發模型。
②團隊溝通協作能力。
針對這些教學目標去選項目,在完成項目的情況下帶動教學內容的學習。
3.2 以項目帶動教學過程的實施。項目將貫穿整個教學的始終,在完成項目的過程中學習知識,在學習的同時完成項目,理論教學和實踐教學同步進行,相輔相成。
理論教學的進行要結合具體工程項目進行講解,引導學生分析、討論,獲取知識,提高解決實際問題的能力。通過教學,使學生明了所學知識為何種工程項目(或生產項目)的實施服務,對培養何種能力有效。提高教學的針對性,調動學生學習的積極性,實現理論教學與工程實踐的有機融合。
實踐教學的進行需先篩選項目,項目選擇與教學時間和進度相關,通常選擇難度適中、對開發技能要求較低及工作量與教學時間相吻合的項目。這里以使用VC開發一款類似計算器功能的軟件為例詳細說明“項目帶動式”教學的實施步驟。
首先由教師制定和本項目的工作流程和工作計劃。
通常軟件項目的工作流程如下,這些工作流程可參考軟件成熟度模型(CMM)。
①計劃制定;
②需求分析;
③軟件項目開發;
④軟件項目測試;
⑤版本;
⑥版本結束。
接下來按照項目要求進行角色配置。一般軟件工程相關的人員包括項目經理和開發人員。項目經理可以由老師兼任,老師同時負責對項目方案總體的把握。在這個項目中,根據功能可分為界面和計算兩個部分,可以據此將學生分為兩個小組,稱為A組或稱界面組和B組或稱計算組。每個小組確定一位小組長,負責對各組組內的工作內容和工作計劃進行跟蹤和匯總。另外一個重要角色是項目配置管理員(CMO),負責對軟件產品本身涉及的工具,配置物料進行歸檔管理。
接下來按CMM流程開展項目。在“項目帶動式”教學中,教與學的相輔相成主要體現在如何解決項目進行過程中的難題。項目本身是有很強的目的性的,真正的項目要求必須按照規定的進度,符合要求的質量進行交付。學生和老師必須在項目進展過程中想很多辦法,不斷提升個人的技能,才能保證項目成功完成。在項目開展過程中,將暴露出眾多問題,而圓滿地解決這些問題,既可以鍛煉學生的動手能力,獨立解決問題能力,還可以增強學生適應項目環境的能力,更重要的是,可極大的鼓舞學生的信心。
通常項目開發中主要的問題可以分為以下幾類,針對性地解決這些問題,將可以最大限度的發揮“項目帶動式”的優勢。
①學生基礎知識不扎實的問題。學生對項目涉及的基礎知識掌握不夠,無法滿足項目開發的所有知識點需求。此時教師應啟發學生進行相互學習和培訓,或者引導學生主動去尋求這些知識進行自學。即教師應力避直接告知正確方式或結果,而是通過引導,“授之以漁”。對于學生反饋較多的問題,說明這是較普遍而又必須克服的,則教師可以提前將相關材料準備妥當,結合當前項目進行充分說明,以保證項目的進度和質量不受影響。
②項目小組間的團隊合作問題。較中等的項目都可以分為多個項目小組,各自完成項目一部分功能,最后匯總為單一軟件。教師在劃分項目小組時,須充分考慮到人力與工作量的問題。較單獨的項目功能可獨立為小組,各小組間接口盡量要簡單明確,防止因為接口問題產生的內耗。
③項目質量問題。教師在項目的早期應引導學生重視測試問題?!绊椖繋邮健狈椒ㄝ^重視學生動手能力培養,并應兼顧項目開發的質量評估,以確保學生在項目實施中收到良好的訓練。教師可以在項目開發前期指定一到兩位學生參與測試計劃的寫作和測試用例的寫作。他們可以是各小組中開發人員,也可單獨出來,僅做測試。教師參考測試學生的測試結論,對項目進行評估,甚至可以對項目小組直至每位負責開發的學生的工作進行評估。
在克服了上述諸多問題后,“項目帶動式”教學一般會取得成功。由于軟件項目基本不需要場地,又不會造成較多的人員花費,軟件項目本身已經有較成熟的開發管理流程(例如CMM模型),又有較多的知識獲取渠道,如網絡、開源社區、其他知識共享體系,因而將“項目帶動式”教學應用于軟件項目,應用于“軟件藍領”人員的培養中,比較便利,易于規范化,是教學法的一種新的應用,更有利于填補我國軟件人員的缺口。
4.運用項目帶動教學模式培養軟件藍領注意事項。
4.1 適當的項目決定了該教學模式的成敗。項目是“項目帶動式”人才培養的核心要素,必須妥善選擇。軟件開發項目可大可小,需要根據教學環境綜合考慮,包括計算機資源、學生本身已經具有的軟件開發素質、學生人數等。必須準備有一定難度,通過努力可達成質量要求的項目,尤其是具有實戰性質的項目,因為這種項目還可以通過互聯網,獲得認可,更加有利于總結經驗獲取信心。軟件項目的獲取,可來自本校的實際需求,例如排課表,排座位等軟件開發;可以從校企合作中獲??;可在互聯網上獲取一些適當需求,作為仿真開發的輸入。
4.2 科學的設計項目開發流程。項目開發流程設計的恰當與否,直接關系到學生對知識的掌握,關系到專業培養目標的實現。設計項目流程時應注意:
4.2.1 項目流程要覆蓋多角色,保證學生深入了解角色配置。項目開發不能僅包括一到兩個流程,必須涵蓋整個的軟件開發流程,使學生對各個流程中工作任務有較好的理解,加強學生對軟件開發團隊的理解。
4.2.2 項目流程要明確,開發計劃盡量詳細完整。每個項目開發的關鍵步驟(稱為里程碑)需要在項目開發時即制定下來,并到每一位項目參與者。教師的工作環境猶如“作戰室”,跟蹤項目的進展,適當的調整工作計劃等等,都需要及時開展并到各角色。
4.2.3 項目的安排要照顧學生的接受能力,需循序漸進。當學生對項目缺乏了解時,需培訓學生的相關知識;當學生對項目理解出現偏差時,需強調項目的特點,引導學生糾正偏差。項目流程中復雜的部分,需分解到每個開發階段,避免學生不知所措。
省屬高校的軟件工程專業多脫胎于計算機科學與技術學科,在研究生人才培養模式上受限于計算機科學與技術研究生培養模式。部分高校甚至于采用同計算機專業研究生實施無差別培養方式,這一根本性原因帶來諸多問題。
1.人才培養方向目標定位不清晰
軟件工程專業碩士應當僅限于軟件工程師的培養。軟件工程具有極強的工科屬性,其人才培養,除軟件工程科學碩士和計算機科學技術一樣,可培 研究型人才外,專業學位應當清晰定位于培養具有軟件工程必備基礎知識,在軟件工程某一領域具有較強專業知識與技能的工程師。
2.師資比較缺乏,尤其是雙師型師資缺乏
軟件工程正式成為獨立的學科時間相對較短,軟件工程師資大多來源于計算機科學與技術專業。計算機科學與技術專業可以勝任軟件工程基礎課程,但這部分教師往往缺乏工程實際經驗,在教學中往往表現為重理論輕實踐。省屬高校十分缺乏來自軟件企業一線的項目經理以上的技術管理人員充任實踐課程教師。
3.培養模式陳舊,不適應國家教育部要求
由于全日制軟件工程專業學位研究生2009年才在全國開展,很多高校沿用學術型學位研究生培養模式,忽視了國家對專業學位研究生培養要求中的專業實踐能力的培養,未能很好地開展專業實踐教學。
4.課程設置陳舊,不適應軟件企業的人才需求
大多數高校軟件工程研究生課程設置大多套用計算機科學與技術專業的課程設置,未體現軟件工程學科特點。原因主要是因為師資缺乏、招生規模較小,出于節約培養成本的考慮。
二、一種實用的軟件工程全日制工程碩士培養解決方案
四川師范大學作為四川省屬高校中最早開設計算機科學與技術、軟件工程本科生培養的院校之一,在軟件工程工程碩士培養的諸多問題上,做了一些有益探索與研究,針對性地提出了一套適合于省屬高校軟件工程全日制工程碩士培養的解決方案,希望能為同類型高校提供人才培養的借鑒。研究生培養方案的制定,重點需要解決課程體系設置、培養流程規劃與控制。對專業學位研究生而言,還需要解決專業實踐能力的培養與訓練這一關鍵問題。
1.課程體系設置
軟件工程學科正式確立的兩個標志性文件是2004年IEEE推出的軟件工程知識體(SWEBOK)和軟件工程教育知識體(SEEK)。兩個文件內容相近,都包含了軟件工程核心類的知識領域、基礎類或前導類的知識領域,以及其他相關領域的知識。軟件工程研究生的培養從原則上說應遵循上述兩個文件,圍繞上述知識領域進行教學。但由于這兩個文件將軟件工程的知識體系劃分為知識點,各領域之間必然存在重復和交疊。在課程設置上無法照搬上述兩個文件。以SEEK為基礎,我們對軟件工程的課程設置進行規劃。整個課程設置被分為五個層次,分別為工程基礎課程、計算機基礎課程、軟件工程核心課程、擴展課程和實踐課程,如圖1所示。課程開設順序大體按照五個層次由低到高依次開展。其中,工程基礎課程提供軟件工程所需數學理論基礎、外語能力培養、軟件工程文檔寫作、論文寫作基本功訓練。計算機基礎課程提供軟件開發必須的計算機基礎知識,如網絡、算法和數據庫知識。
相對于本科課程而言,此類課程講授內容更深入全面。軟件工程核心課程設置了高級軟件工程、軟件體系結構和軟件測試與質量保證三門課程。高級軟件工程側重于軟件分析與設計、軟件工程過程、軟件開發案例分析。軟件體系結構側重于結構風格、案例研究、共享信息系統、結構描述、結構的分析與評估、特定領域的軟件體系結構和流行的軟件體系結構等。軟件測試與質量保證著重于軟件質量的改進,討論如何提高軟件質量的方法。擴展課程包含系列領域知識課程,研究生可根據研究方向選擇兩門;軟件開發工具講授最新流行的軟件開發、過程管理所需要的軟件工具的使用,以實踐教學為主。軟件開發新技術研討課程以講座形式開展,教師和學生均可作為一個專題的主講。實踐課程包含校內實踐、校外實踐和畢業設計三個環節。
2.培養流程與實施
教育部明文規定,專業學位研究生學制原則上為兩年,同時要求應屆本科生進行專業實踐不少于一年。一般來說,研究生在校課程學習時間應有一年左右,加上專業實踐的一年,如何合理安排學習計劃,在兩年內完成培養環節成了一個現實的重要問題。我校以周為單位制定了四川師范大學軟件工程專業學位研究生培養流程,如表1所示:上表規劃了研究生培養中的幾個關鍵環節,依次為報到入學、課程學習、校內實踐、校外實踐、開題、畢業設計、論文寫作和送審答辯。第一學期研究生主要是課程學習,同時在校內導師指導下開展文獻閱讀和編程能力鍛煉。第二學期前半學期結束理論課程的學習。后半學期和暑期開展校內實踐和畢業設計開題工作。第三學期研究生到實習基地進行校外實踐。從第二學期后半段和整個第三學期,學生在專業實踐的同時,需完成畢業設計。從第二個寒假開始直到第四學期前六周,研究生完成畢業論文的初稿。從第七周開始,進行論文修改、、盲評和答辯工作。
從培養流程表可以看出,這種安排具有兩個顯著特點。一是理論課程學習安排在一個半學期完成,二是實踐課程分為校內實踐和校外實踐。研究生理論課程學習任務并不重,完全可壓縮到一學期半,同時可為實踐提供更多時間。校內實踐非常有必要。由于是省屬高校學生大多能力一般,為保障學生進入企業能融入研發團隊從事技術工作,必須先期培訓其實踐能力。這種安排時間較為緊湊,也比較合理,符合專業學位研究生側重于實踐能力培養的要求,也在兩年的學制內確保了研究生的實踐時間不少于36周。
三、專業實踐能力的培養與訓練
軟件開發能力是軟件工程專業碩士必備的核心能力,其能力培養既是對前端課程學習效果的檢驗,也是后端畢業設計和就業的必然需要。我校將軟件工程專業碩士實踐能力培養融入了眾多環節。從前期的實驗型課程教學,到中期的校內實踐、再到后期的校外實踐和畢業設計。實驗型課程教學解決軟件設計開發的基礎技能,校內實踐解決中小規模軟件設計開發能力,校外實踐和畢業設計解決中大規模軟件設計能力。
1.實驗型課程教學
包含軟件工具的使用訓練、軟件開發環境的搭建、軟件開發案例分析和新技術研討。軟件工具的使用訓練學生單個軟件開發工具的使用,如項目管理軟件Project、開發文檔化軟件Rational、軟件測試工具LOADRUNNER、QTP、TD等。由于這些工具結構分散,還需進行開發環境的搭建訓練。開發環境搭建訓練內容一為搭建基于微軟的VSTS和VisualStudio的開發平臺,適合.net方向;內容二位、為搭建基于IBMRSA和Eclipse的開發平臺,適合J2EE方向。軟件開發案例分析中研究生將自己放在決策者的角度來思考項目所涉及到的具體問題,增強了學生的實際應對能力。新技術研討促進學生或主動或被動地掌握了一些新興技術,拓寬了技術領域。
2.校內軟件開發實踐
采用項目驅動形式開展。要求研究生必須申報各類實際的軟件開發項目,如四川省苗子工程、學校研究生科研創新項目、學院研究生科研創先項目。研究生可組織本科生參與項目實施,但必須任項目組長,在項目中擔任核心角色,完成軟件需求文檔審定、軟件架構設計、軟件詳細設計、大部分編碼工作、測試方案制定等重要工作。
3.校外軟件開發實踐
在上述環節經歷后,研究生已經掌握中小規模軟件開發的基本技能,此時將研究生派到實習基地,實戰參與企業軟件開發項目。其實踐由校內導師和企業導師共同負責。前期技能的培養已保證研究生勝任企業中一般性的軟件開發角色。
4.畢業設計
研究生在校內和校外實踐的36周中,還需要同時進行畢業設計的開題、實施。研究生可結合企業實習工作完成畢業設計。專業實踐的考核分為定期匯報和實踐環節結束匯報兩種形式。研究生應每隔兩個月集中匯報一次實習期工作心得,取得的成績等。實踐結束時在全院公開匯報,其成績作為實踐課程成績。
四、結論
軟件工程專業主要學習的內容有:
1、軟件工程專業以計算機科學與技術學科為基礎,強調軟件開發的工程性,使學生在掌握計算機科學與技術方面知識和技能的基礎上熟練掌握從事軟件需求分析、軟件設計、軟件測試、軟件維護和軟件項目管理等工作所必需的基礎知識、基本方法和基本技能;
2、軟件工程專業是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數據庫,軟件開發工具,系統平臺,標準,設計模式等方面。
3、軟件在現代社會中應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,數據庫,游戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
(來源:文章屋網 )
考核不科學.通常采用規范化、標準化的試卷筆試,以學生成績的高低來評價學生對教學內容掌握程度.同時,考核內容結構不合理,基礎知識所占比重大,程序設計類題型所占比重小,對實踐能力的考評弱化.考核形式單一.多數的考核方式是采用2小時閉卷筆試,這種方式很能考核學生的專業技能及應用能力,而這又是這門課的重中之中.缺乏對學習過程的有效考核.課程是對整個教學內容的全面、總結性的檢查和評定.一次期考不足以涵蓋所有知識點.要提高考核的可信程度,應采用分階段的綜合考核方式,參與到最終成績的評定.
2基于CDIO工程教育理念的課程教學改革措施
2.1CDIO的4個能力與Java語言培訓目標的關系
CDIO培養大綱將工程畢業生的能力分為四個,分別是工程基礎知識、個人能力、人際團隊能力和工程系統能力,大綱要求以綜合的培養方式使學生在這4個層面達到預定目標.按此理論培養的學生深受IT界的歡迎.Java語言的課程教學目標是通過教學,使學生能利用Java進行面向對象程序的分析與設計.此目標又可細分為4個子目標,分別是知識目標、能力目標、專業素質目標、工程師目標.知識目標是學生能掌握Java語言的基礎知識,如面向對象程序的分析與設計、輸入輸出、異常、SWT編程與Swing編程、多線程、常用API等.能力目標是能熟練配置和使用JDK,能使用一些流利的IDE環境如Eclipse,NetBeans等進行簡單的軟件開發;專業素質目標是養成科學規范的編程風格,具備良好的團隊合作精神;工程師目標是具備綜合的工程思維和能力,具有軟件的分析與設計能力.通過Java的4個教學目標與CDIO的4個能力的對比研究發現,二者具有一一對應關系.即Java的知識目標的培養與CDIO的工程基礎知識能力對應,Java的能力目標培養與CDIO的個人能力對應,Java的專業素質目標培養與CDIO的人際團隊能力對應,Java的工程師目標培養與CDIO的工程系統能力對應.
2.2基于CDIO工程教育理念構建新的Java教學模式
Java語言的主要教學環節是理論教學和實驗教學,教學效果的主要評價辦法是課程考核,基于CDIO工程教育理念構建的Java教學模式主要從這3個方面來改革傳統的Java教學模式.
2.2.1Java理論教學的改革
1)明確Java語言課程教學的核心知識點.Java語言的知識包羅萬象,應該找出核心知識點,并作重點的講解和強化,為后續課程學習新的程序設計技術打下技術基礎.經過多年教學和軟件開發實踐,我們認為,Java語言的核心知識點可分為3個模塊:基礎知識模塊、對象與類知識模塊、應用程序接口模塊.其中基礎知識模塊包括:操作符、控制執行流程、初始化與清理、訪問權限控制;對象與類模塊包括:類、對象、繼承、多態、接口、異常、泛型、數組、多線程、網絡編程;應用程序接口模塊包括Object類、System類、容器類、I/O類、AWT類和Swing類、正則表達式(Patter,Matcher).
2)注重案例教學法在Java語言教學中的實踐.調查顯示,70%左右的學生認為當前的“理論課滿堂講”的教學方法不受歡迎,同時,這些學生認為采用案例教學法學生比較喜歡.在教學過程中,采用案例教學法有以下3個原則:
(1)選擇生動有趣的案例.例如在講授類的設計時,可以采用ATM取款機作為典型案例,因為同學們都有ATM的取款經歷,并且在此過程中遇到很多異常,例如存款時鈔票不能識別,取款時卡被吞等;在講解Swing類時進行界面設計、事件觸發時,可采用博物館中的貴重物品裝鎖作為案例,我們考慮,這些鎖還帶有感應功能,如果被敲被砸則發出警報,相當Java中的事件觸發機制.在選取典型案例時,既要考慮對知識面的涵蓋,又要生動有趣.
(2)案例要真實,安全來自生活又要進行一定的改造.例如在講解多線程知識點時,結合當下淘寶的流行,淘寶中的圖片顯示為何能快速呈現?就是使用了多線程技術,其原理是一幅被分解為n個部分,由n個線程分別負責一部分的顯示,n個線程在多處理機系統下可并行執行,速度比單線程提高了n倍.
(3)案例的大小要適度.一般典型安全的代碼在100~250行之間,案例太大學生難以完成,太小又達不到涵蓋主要知識點的目標.
2.2.2Java實驗教學的改革
實驗教學是Java語言課程的重要環節,目前是是培養學生實踐動手能力,以及知識綜合應用能力.主要從以下幾個方面來做好實驗教學:1)在理論教學中引領實驗教學的內容.在理論教學中涉及程序設計方面的內容,主要有有兩種情況及解決辦法,如果涉及的知識點比較綜合,課堂上適合打開開發工具,先給出設計思路,然后對每條思路,一邊編寫代碼一邊講解;對于比較大的程序,適合將編好的代碼導入開發工具講解.2)逐步構建立體化實踐教學體系.實驗分為3個層次:
(1)驗證性實驗,此類實驗是學生按照實驗指導書完成實驗,以驗證實驗結果.例如,學會安裝配置JDK、安裝Eclipse開發環境、編寫簡單的類和對象、輸入輸出等,這些工作能培養學生的實驗基本能力.
(2)設計性實驗,老師給出題目和用戶需求,學生根據已有知識來設計構思、設計、實現,目的是培養學生的知識綜合能力和軟件工程能力,在此過程中,學生可模擬軟件開發團隊,形成小組來完成設計性實驗.另外,為了開拓視野,還要積極參加專業類競賽,如鼓勵學生參加云南省計算機作品賽.
(3)綜合性實驗,老師綜合題目,這些題目來自老師的科研課題,綜合性實驗的目標是培養學生的工程師能力,能獨立進行需求分析、設計、實施、運行和維護.由于綜合性實驗貼近實戰,要求高,較難的部分老師要給學生重點指導.
2.2.3Java課程考核方式的改革
考核方式要科學,需要遵循過程考核與結果考核并重的原則.
1)舉行章節性同步練習和測驗,以了解學生的學習狀態,評價當前的教學效果,同時也為科學地評定學生成績提供依據.
2)采用答辯的方式.學生分組后,由老師公布課題名稱和要求,然后,每組有一組長.在任務實施過程中,由組長講解本組的研究成果,并說明組員的工作和貢獻,為評委打分提供依據.最后由評委對各組的研究內容有疑點的地方以及從完善項目的角度出發進行提問,組員回答,評委根據貢獻和回答情況給組員打分.
3結束語
[關鍵詞]ARM體系 嵌入式方向 課程設置
[中圖分類號]G643 [文獻標識碼]A
引言
隨著嵌入式系統的廣泛應用,許多高等院校計算機、電子、軟件等專業針對市場需求,開設了嵌入式方向相關課程,然而同嵌入式技術的飛速發展和巨大的產業需求相比,我國高等教育體系下的嵌入式方向相關課程設置存在教學知識陳舊,缺乏實踐鍛煉,無法適應企業的實際需要等問題,本文首先結合我校辦學特色和實際教學情況,闡述了基于ARM體系的嵌入式方向課程設置與教學方案,進而探討了農業院校應用型計算機類嵌入式方向教學過程中存在的問題,最后對存在的問題給出了一些建議,對其他地方院校應用型嵌入式系統開發人才培養將起到一定的借鑒作用。
一、計算機專業嵌入式方向培養目標與課程設置
(1)計算機專業嵌入式方向培養目標
我校計算機專業嵌入式系統方向培養整體目標是注重工程能力培養的嵌入式系統人才培養目標,尤其側重嵌入式系統工程應用編程等軟件設計開發。根據學生的接受能力以及我校的辦學特色,具體嵌入式系統的學習體現層次性、漸進性、注重操作性,在教學中注重培養在農業領域中的嵌入式系統應用能力。
(2)嵌入式方向課程設置
我校于2012年購買了30套基于ARM體系的嵌入式開發實驗平臺設備,可實現每人一臺的教學環境,其中嵌入式開發平臺采用ARM11的UP-Magic6410核心開發板,所以嵌入式方向的課程設置都是圍繞ARM體系展開教學內容。
嵌入式方向課程設置遵循四個“1”,即“一種主流嵌入式微處理器、一門開發語言、一種嵌入式操作系統、一套開發工具”,嵌入式微處理器采用S3C6410X(ARM11),嵌入式開發語言主要以C語言為主,其他如匯編語言、C++語言、Java語言等為輔;嵌入式操作系統采用Linux;集成開發工具以ADS為主,輔助Windows CE開發工具,這樣就能達到系統學習嵌入式技術的要求。表1是我校嵌入式方向專業課設置時間和學時整體情況。
表1:專業基礎及專業課設置情況
嵌入式導論課程:介紹嵌入式的主要應用領域、嵌入式軟件開發的基本概念、嵌入式軟件開發的基本流程和基本方法、嵌入式系統的特點。
嵌入式操作系統課程:介紹嵌入式系統基本知識,嵌入式操作系統與通用操作系統的差別。結合典型的嵌入式操作系統對操作系統的基本構成、工作機制、系統移植剪裁和實時任務調度等內容進行介紹。我校根據具體情況選擇、Linux、WinCE等嵌入式操作系統進行教學。
嵌入式程序設計基礎:介紹嵌入式系統體系結構、嵌入式系統設計的基本方法、軟件編程及設備接口和驅動等。通過該課程的學習,學生了解和掌握必要的嵌入式系統設計方法學的概念、方法和工具嵌入式程序設計基礎,掌握嵌入式系統的基本原理與設計開發思想,學生能完成簡單的嵌入式系統的軟硬件設計。
JAVA開發語言:介紹Java語言的體系結構、Java語言的基本概念和程序設計的基礎知識、面向對象的程序設計的思路和方法。培養學生的編程能力,使學生能夠運用Java語言作為完成應用程序設計。
嵌入式接口技術:介紹鍵盤接口、LED顯示器接口、觸摸屏、通信接口、中斷接口、A/D和D/A轉換、ARM的JTAG接口。
嵌入式高級編程:介紹Android嵌入式開發環境搭建的方法,項目結構;Android的體系結構,嵌入式軟件開發流程;嵌入式特性開發,多媒體開發,數據存儲開發,聯網開發等開發方法,學生通過實踐能達到獨立完成開發單機、網絡嵌入式軟件的能力。
嵌入式課程是實操性極強的課程,因此實踐教學在嵌入式培養體系中占有重要的地位,既是理論講解的驗證與升華,又是培養學生創新思維和獨立分析解決問題能力的重要途徑。我校的嵌入式方向實踐教學課程設置時間和學時大致如下表2所示。
表2:嵌入式課程實踐教學設置情況
嵌入式操作系統實驗內容:典型的嵌入式操作系統的基本構成、工作機制、系統移植剪裁和實時任務調度等。我校根據具體情況選擇Linux嵌入式操作系統進行教學。
嵌入式程序設計基礎實驗內容:在現有的嵌入式開發平臺上完成嵌入式系統設計的基本方法、軟件編程及設備接口和驅動等,學生掌握必要的嵌入式系統設計方法學的概念、方法和工具嵌入式程序設計基礎,掌握嵌入式系統的基本原理與設計開發思想,能完成簡單的嵌入式系統的軟硬件設計。
JAVA開發語言實驗內容: Java語言程序設計的基礎知識、面向對象的程序設計的思路和方法,學生能夠運用Java語言作為完成應用程序設計。
嵌入式接口技術實驗內容:包括鍵盤接口、LED顯示器接口、觸摸屏、通信接口、中斷接口、A/D和D/A轉換、ARM的JTAG接口等實驗。
嵌入式高級編程實驗內容:基于Android嵌入式開發環境搭建的方法;Android嵌入式軟件開發流程;嵌入式特性開發,多媒體開發,數據存儲開發,聯網開發等開發方法,學生通過實踐能達到獨立完成開發單機、網絡嵌入式軟件的能力。
二、三位一體的嵌入式課程教學體系建設
我校嵌入式系統方向學習側重嵌入式軟件設計部分,實驗室選用UP-Magic6410嵌入式實驗開發平臺,著重培養學生在該平臺下進行嵌入式Linux程序開發的相關環境搭建與軟件設計方法的能力。針對各模塊以及物聯網的應用背景,按照由淺入深,不同課程層次對應不同實驗項目等原則,循序漸進,逐步提高,以滿足不同階段的教學要求,為學生提高了動手能力,為進一步的實踐開發和畢業設計打下了良好的基礎,因此,我們提出了三位一體的嵌入式方向課程教學體系結構,如圖1所示。
圖1:嵌入式方向教學體系結構
(1)基礎型
基礎性包括基礎知識和基本技能,主要是為了滿足基本的教學要求和教學目標,課程包括ARM體系的基本知識、基本技能以及基礎類實驗的開展。
教師在基礎性課程實施時,可以根據各自的科研項目按照模塊化將案例分解到各個部分,鼓勵學生對實例所采用的技術和方案進行不同角度的評價,變被動知識灌輸為主動探索思考,使教學理論知識與科研實踐有機地結合在一起。
(2)提高型
提高型包括ARM體系基礎型知識的深化和提升,包括理論知識和實踐內容的進一步深化,理論知識包括嵌入式編程的設計思想和設計方法的提高,實踐教學包括設計類實驗,每個實驗課題規定1周或更長的時間讓學生動手設計開發嵌入式應用程序,在強調基礎性知識掌握的同時,鼓勵學生創新的綜合設計。使得學生既掌握了一些具體的通用的嵌入式系統的開發方法,也能發揮主觀能動性,獨立設計并實現較完整的嵌入式系統,激發學習、創造熱情。要求學生課外查找資料進一步地學習,引導學生進行主動性學習,對某些問題進行深入的分析研究,進而提出自己的設計思想,教師全程指導學生答疑指導工作,啟發學生進行嵌入式編程,為學生提供一些解決問題的方法。
(3)綜合型
綜合型主要指的是依托科研項目實踐來鍛煉和提高學生動手能力??蒲许椖靠梢园ń處煹目蒲许椖?、學生的科研項目以及依托科研項目或實踐基地完成的畢業設計項目。
嵌入式方向課程授課教師可以鼓勵學生參與到教師科研項目之中,如筆者主持的嵌入式系統溫室環境監控系統應用項目,學生直接參與到前沿的課題和項目中去,成立了興趣小組,將溫室環境監控系統分解成若干子題目,交由各興趣小組,模擬項目的形式實踐開發,真正做到“在學中做,在做中學”,以務實的項目培養學生的實踐科研能力。
近年來,北京地區大學生課外科技活動開展的力度逐年加大,筆者指導的學生主持的北京市大學生科研計劃,利用嵌入式平臺,對溫室環境等參數檢測,進而對溫室大棚實現智能化控制,學生在該課題中,運用所學理論知識,系統的完成了整個項目,獲得了北京市大學生科研計劃成果二等獎,尤其值得一提的是,畢業的學生在擔任京郊村官期間,將課題成果應用于所服務的村鎮,取得了良好的效果。實踐證明,鼓勵學生參與課外科技活動,將會拓展學生的知識體系,并學以致用,對進一步提高學習興趣以及培養合作精神發揮了至關重要的作用。
學生的畢業設計是所學知識的綜合運用的過程,學生從事的畢業設計已經不僅僅是課程實踐教學,而且還是從事科學研究的過程。為了保證提供充分的畢業設計時間,提高設計論文和專業課的學習質量,做到有的放矢,我們將畢業論文提前到第七學期安排任務,進行設計任務的前期準備及調試工作。
三、建議
(1)采取層次化的知識體系
嵌入式方向的理論知識體系體現專業基礎知識、專業綜合知識、專業系統知識由易到難的漸進性和層次化。
專業基礎知識包括嵌入式導論、嵌入式操作系統、嵌入式程序設計基礎等課程,這些課程的學習包括嵌入式系統基本概念、典型的嵌入式操作系統的基本構成、工作機制、系統移植剪裁和實時任務調度等;嵌入式系統設計的基本方法、軟件編程及設備接口和驅動等內容。學生通過這些課程的學習目標是掌握必要的嵌入式系統設計方法學的概念、方法和工具嵌入式程序設計基礎,掌握嵌入式系統的基本原理與設計開發思想,能完成簡單的嵌入式系統的軟硬件設計。
專業綜合知識包括嵌入式高級編程、通過實踐課程獲得的綜合性知識。這些內容包括智能終端的嵌入式軟件開發方法、編程開發流程;數據存儲開發、聯網開發等開發方法,學生通過學習能達到獨立完成開發單機、網絡嵌入式軟件的能力。
專業系統知識包括基于行業背景的嵌入式軟件開發知識,這一層次是通過專業實習和畢業設計的環節完成的,也就是通過實踐綜合完成的項目后獲得的知識,這不僅涵蓋了符合社會需求的嵌入式方向的新知識、新技術,還包括企業的項目實施機制等無法從學校課本學習到的知識,為學生順利走向社會工作崗位提供了重要的支持。
(2)采取多方位的實踐教學體系
嵌入式系統作為實操性極強的課程,通過強化夯實基礎實驗、豐富實踐綜合教學內容,獲取更多的實踐項目的多方位立體化實踐教學模式對培養高素質嵌入式系統人才至關重要,目前,我院嵌入式實踐教學改革還處在起步階段,今后我們將在智慧農業背景下,立足于農業院校發展特色,將嵌入式系統實驗實踐體系作進一步完善,重點培養學生的創新思維和獨立分析解決問題能力。
針對在校學生缺少行業背景知識這一問題,需要大力開展與企業的相關合作,直接把學生派到企業進行16周的專業實習甚至12周的畢業設計,在工程實踐項目選擇上,應該盡量選擇企業的實際項目,盡可能覆蓋嵌入式領域的內容,比如嵌入式項目一般包括需求分析、硬件平臺設計、軟件平臺設計(包括嵌入式OS的選擇)、應用程序的開發與系統測試等多方面,使學生能夠通過查閱一定的資料,利用所學的知識解決工程實際中的問題。學生在實踐工程項目中完成畢業設計和論文,綜合能力得到極大的提升,同時學生可以掌握企業項目的實施機制,為畢業后快速進入項目開發打下良好和基礎,從而實現人才培養和社會需求的無縫對接。
四、結語
隨著嵌入式技術的高速發展,嵌入式方向課程體系也應不斷改進與之相適應。本文從ARM體系的嵌入式方向培養目標出發,提出了三位一體的課程體系結構,采取層次化理論知識和多方位的實踐教學方式,使學生在學校就具備扎實的專業知識和技能,最后將學生送入實訓基地做企業實際項目,為學生走向工作崗位打下良好的基礎,最終達到計算機專業嵌入式方向的教學和培養目標。
[參考文獻]
[1]徐欣,于紅旗,盧啟中."嵌入式系統設計技術"課程教學研討[J].高等教育研究學報,2004,27(2):59-60
[2]徐遠超,張聰霞,關永.嵌入式系統專業課程教學存在的問題與思考[J].計算機教育,2009(18):85-86.
[3]田澤.嵌入式系統開發與應用教程[M].北京:北京航空航天大學出版社,2005:1-48
[4]李巖,王小玉,孫永春.嵌入式系統教學研究[J].電氣電子教學學報,2006,28(3):45-47,90
[5]李曦,周亦男,周學海."嵌入式系統設計"系列課程建設[J].教育與現代化,2004(4):48-51