當前位置:學問谷 >

個人範例 >職業 >

軟件工程專業程序設計課程羣創建的論文

軟件工程專業程序設計課程羣創建的論文

摘要:程序設計課程羣是軟件工程專業系列課程的重要組成部分,建設該課程羣有利於提高學生程序設計能力,進而提高就業競爭力。分析了學生在學習程序設計課程中的一些問題,提出了程序設計課程羣的主要知識和能力體系要求,通過精講課程主要內容、大規模開展程序設計訓練、課程設計、改革考核與評價方式等方法進行課程羣教學改革,取得了較好的教學效果。

軟件工程專業程序設計課程羣創建的論文

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

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

1問題分析

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

2程序設計課程羣建設

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

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]王海舜,蔣巍巍.基於程序設計能力培養的軟件設計類課程羣架構[J].計算機教育,2012(2):23-26.

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

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

[8]熊回香.數據結構課程與信息化人才培養的關係研究[J].高等理科教育,2008(5):43-46.

[9]周清平,王曉波,徐洪智,等.平台化思維模式助推高校軟件工程專業綜合改革[J].中國高等教育,2015(8):58-60.

  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/flgr/zhiye/pwj9jg.html