摘 要:本文針對用人單位對.NET程序員的崗位職能需求,引入或創設與教學內容相適應的具體場景或氣氛,以引起學生的情感體驗,幫助學生迅速而正確的理解教學內容,按照軟件開發流程和模式,對學生的項目設計和開發能力進行鍛煉,提高學生的職業技能。
關鍵詞:開發流程 職業技能 教學情境
中圖分類號:G421 文獻標識碼:A 文章編號:1672-3791(2013)02(a)-0211-02
目前我國的勞動力市場,求職人數過剩,但滿足企業要求的專業人才又很稀缺。這種結構性的人才市場供求矛盾是我國高等教育亟待解決的問題,更是“以人為本,面向人人”為目標的職業教育不可推卸的責任。縱觀近幾年的就業市場變化,軟件技術專業畢業生經歷了“一夜成名、求之不得”的寵幸,也遭遇了“千呼百應、盡失風流”的冷落。就業情況經調查顯示:軟件技術專業的畢業生有的考教師證,有的去做汽車或房產銷售等,真正從事軟件行業的學生只有極少數,究其原因,主要是我們的學生畢業后不能適應工作崗位,編程能力極差。本文將從.NET程序員的培養來探究《C#高級程序設計》課程的教學設計,其教學方法也將會給相關程序類課程提供指導。
《C#高級程序設計》課程主要培養面向軟件企業的.NET程序員,同時也兼顧培養軟件測試員。
1 課程設計的基本思路
《C#高級程序設計》課程是一門實踐性很強的課程,根據社會發展和企業需求,按照“以職業活動為導向,突出職業能力的培養;以項目為載體,用任務訓練學生的職業崗位能力;以學生為主體,理論、實踐一體化的課程設計”的原則,與企業同行一起進行科學策劃,運用新的教學理念、教學模式與教學方法對課程進行整體設計,主要采用以下措施:調研軟件研發和企事業單位→考察崗位職業能力和工作過程→制定課程目標體系和能力培養目標體系→跟蹤畢業生,聽取學生的反饋意見→確立該課程對應的職業崗位能力→設計教學情境和學習項目。
2 NET程序員的任職要求與崗位技能
根據軟件研發企業、各專業招聘網站和畢業生的市場調研,得到.NET程序員的任職要求是:根據軟件需求說明書和軟件設計文檔實現軟件產品;從事具體的軟件開發,模塊代碼編寫;開發和維護統一的軟件開發架構,發現和解決存在的軟件設計問題;按軟件工程流程編寫和提交設計文件相關文檔;熟練掌握VS.net的使用;熟練掌握C#語言。從而得出對應的崗位技能是:熟悉或精通C#語言;熟練掌握VS.net的使用;熟悉Windows平臺下的程序開發;熟練使用ADO.NET實現數據庫訪問操作;熟悉數據庫后臺管理和SQL編程。
3 教學內容設計
根據.NET程序員的崗位能力需求,從而確定本課程的學習內容,我們以真實的典型項目“WebShop電子商城后臺管理系統”為載體來學習本課程,內容主要有:面向對象編程技術;各種控件的使用;數據庫訪問技術;主界面設計;數據的增刪改查;文件操作;報表制作;系統發布和應用程序安全。根據教學需要,將內容重構為用戶登錄、數據管理、主模塊和系統管理4個大教學情境,大情境又細分為9個子情境(系統分析與設計、登錄界面設計、用戶管理、商品管理、訂單管理、數據備份與恢復和數據導入與導出、主界面設計與系統整合、報表制作、系統發布)。各個學習情境既具有一定的獨立性,又有相關性,環環相扣。按基于真實項目“WebShop電子商城后臺管理系統”開發實踐,學生在完成各情境的開發過程中,掌握基于C#的Windows應用系統開發技術。本課程學習情境設計的特點:系統性、獨立性、完整性、擴展性、通用性。系統性是指學習情境是一個典型的信息管理系統分解而來,任何的信息管理都必須具備這些功能,對學生開發類似的軟件具有借鑒作用。獨立性是指每一個學習情境都是一個完整的小系統,可以將其移植到其他系統中使用。完整性是指在實施學習情境的過程中,我們完整的模擬了軟件開發的全過程,讓學生體會軟件開發的方法和技術。擴展性是指所有的情境都是經過精心設計和安排,讓學生在學習中逐步擴充和完善系統功能,學生還可以在系統的基礎上增加功能模塊。提高學生的創造能力。通用性是指軟件的設計嚴格按照軟件設計的標準,讓每個模塊具有通用性,以保證代碼的可重用,為學生在今后工作中積累經驗和資源。
4 教學環節設計
以一次課堂教學為例,課程教學的環節設計是:課前準備(點名,教學資源和任務單分發)→情境教學(情境描述、情境需求、情境分析、情境實現、課堂點評、情境實施、情境完善、情境擴展)→考核評價→機房清理。主要采用情境教學法并結合角色扮演法、小組學習法、設問解答式教學方法來實施教學。
每個子情境都有一個教學任務單,說明本教學單元要完成的主要工作任務,各任務完成后取得一定的平時成績分,每個任務要說明任務名稱、主要內容、基本要求和評價方案。其中評價項目中一般有需求分析、項目設計與答辯等,通過答辯來了解學生對知識掌握情況,如果項目有創新,經老師核準可加分。項目設計中,測試員發現一個錯誤加1分,程序員扣1分,項目組長根據工作業績及工作表現來評定本小組同學的成績。
5 教學方法
《C#高級程序設計》課程采用“理論實踐一體化”的教學方式,以4個課時為一個教學單元,理論教學和實踐教學都在實訓場所完成,實現“教、學、做”合一。教學中綜合運用多種方法。(1)情境教學法。通過營造真實的軟件企業工作環境,提供真實的客戶需求,按照真實的軟件開發流程和技術規范,以項目制的方式進行針對性的角色化的實戰訓練。將軟件的開發流1i0P8WDZ/jRBqfdQ/hfORCEVf/QkXKXYe8EGeV3568I=程(系統調查、需求分析、系統設計、系統實施、系統評審、系統維護)轉換成情境教學的每一步驟,啟發、引導學生的思維,讓學生學會解決問題的方法和手段,提高了學生的職業能力和素質,實現與企業崗位無縫對接。(2)角色扮演法。在項目開發過程中對開發組中的各個成員,分配不同的角色,如技術總監、研發總監、項目組長、測試組長、美工組長、程序員、測試員和美工員等,一人也可兼多個角色。研發總監崗位職責是:了解本領域行業軟件的發展及趨勢,負責參加項目調研,編寫軟件需求說明,負責整個項目的系統規劃、項目細分,并制定項目任務和項目進度表,制定軟件的開發規范并監督執行,負責對研發組長進行過程考核,完成服務部交待的其他任務。技術總監崗位職責是:組織實施系統架構設計,負責整個項目核心框架的設計,并完成核心代碼的設計,進行各類提升研發人員的整體研發能力的培訓,組織并參與技術攻關,指導成員進行疑難問題的處理,完成服務部交待的其他任務。研發組長崗位職責是:參與項目調研,參與編寫軟件需求說明,參與系統分析、架構設計,負責某個項目模塊的項目細分,并制定項目任務和項目進度表,監督軟件開發規范在本研發組的執行,負責對本組成員進行過程考核,完成研發部交待的其他任務。測試組長崗位職責是:參與項目調研,參與編寫軟件需求說明,負責選派測試員到各研發組,為每個研發組制定測試任務和測試進度表,監督軟件測試規范在本測試組的執行,負責對本組成員進行過程考核,完成研發部交待的其他任務。美工組長崗位職責是:了解目前流行的網頁美工技術,負責選派美工到各研發組,為每個研發組制定美工任務和美工進度表,負責對本組成員進行過程考核,完成研發部交待的其他任務。(3)設問解答式教學法。在實施情境教學中,老師首先給學生呈現各種各樣的主題任務來驅動教學,學生也可自己發現問題,然后由學生分組解決問題,如果問題得到解決可小組加分,學生不能解決的問題,最后由老師引導學生共同解決。這樣可促使學生主動思考,活躍課堂氣氛,使學生在學習過程中能真正成為軟件開發主體。(4)小組學習法。將學習班級看成一個軟件服務項目部,設研發總監1名,技術總監1名。研發部下轄研發組若干,測試組若干,美工組1個。每個研發組3~4名成員,設研發組長1名,程序員2~3名。每個測試組3~4名成員,設測試組長1名,測試員2~3名。美工組為臨時機構,設美工組長1名,不設常駐人員,美工通常由各組程序員、測試員兼任。學生可根據自己的興趣和能力選擇自己的角色,各角色必須認真履行自己的職責,否則會影響項目開發進度,導致全組人員或個人扣分,這樣形成小組競爭,易于形成學習合力。同時利于發揮尖子學生的帶頭作用,以點帶面,帶動全體學生的學習積極性,培養了學生的團隊協作精神。
6 考核設計
學生的課程成績由過程考核(登錄設計、數據管理、系統管理各占10%)、綜合考核(50%)與職業素養(學習態度、課堂工作任務完成質量等,占20%)組成。綜合考核可以先告訴學生題目和考核內容,學生可利用業余時間查資料、小組討論等方式來開發項目,教師主要通過項目答辯形式來考核學生對知識掌握情況。采用這種開放式考核方法更能提升學習的學習興趣,鞏固課堂上所學的知識。
7 結語
在教學各環節中,既注重學生的整體教學,又積極鼓勵學有余力的學生拓寬知識和技能,通過課程網站提供大量的拓展資源、拓展案例、虛擬項目以及選拔學生進虛擬公司和軟件公司承擔真實項目的方法,激勵優秀的學生脫穎而出。
通過本課程的訓練,學生能熟悉軟件開發流程,了解企業開發方式,具備誠實、守信、堅忍不拔的性格,具備表達、溝通、團隊協作能力,具備自我學習、獨立解決問題能力,養成規范編碼、按時交付軟件的工作作風,能夠綜合應用Windows技術、數據庫技術、測試技術、軟件工程方法,獨立開發小型的C/S模式的Windows應用軟件,同時也能勝任軟件開發崗位上的其他基礎性工作。
參考文獻
[1]寧雪靜,沈澤剛.高級語言程序設計課程整合研究[J].計算機教育,2009(2).
[2]溫雅敏.數學專業高級語言程序設計課程教學模式改革探討[J].科技經濟市場,2008(5).
[3]王淑霞,田麗艷.興趣教學在高級語言程序設計中的應用[J].通化師范學院學報,2011(2).
[4]曹蕾,呂慶文,張煜,等.大學計算機基礎課程教學改革的調查與設想[J].計算機教育,2007(12).
[5]趙志敏.高校計算機基礎教育現狀與發展對策研究[D].沆南:山東師范大學,2008.
[6]張道好“.C語言程序設計”課程教學方法的研究與實踐[J].安慶師范學院學報(自然科學版),2008(4).