軟件工程專業(yè)程序設計課程群創(chuàng)建
程序設計課程群是軟件工程專業(yè)系列課程的重要組成部分,建設該課程群有利于提高學生程序設計能力,進而提高就業(yè)競爭力。下面是小編搜集整理的相關內(nèi)容的論文,歡迎大家閱讀參考。
摘要:程序設計課程群是軟件工程專業(yè)系列課程的重要組成部分,建設該課程群有利于提高學生程序設計能力,進而提高就業(yè)競爭力。分析了學生在學習程序設計課程中的一些問題,提出了程序設計課程群的主要知識和能力體系要求,通過精講課程主要內(nèi)容、大規(guī)模開展程序設計訓練、課程設計、改革考核與評價方式等方法進行課程群教學改革,取得了較好的教學效果。
關鍵詞:軟件工程;程序設計;課程群;建設;實踐
軟件工程專業(yè)的培養(yǎng)目標是面向我國軟件產(chǎn)業(yè)培養(yǎng)急需的工程應用型人才。軟件產(chǎn)業(yè)的發(fā)展要求學生具備較強的系統(tǒng)分析、設計、開發(fā)與維護能力[1]。為培養(yǎng)學生軟件系統(tǒng)方面的相關能力,許多高校的軟件工程專業(yè)都設置了系列課程模塊,如程序設計課程模塊、網(wǎng)絡技術(shù)課程模塊、計算機體系和操作系統(tǒng)課程模塊、軟件工程課程模塊等,這些模塊往往是一些單獨課程的組合,有很多學生學了這門課程,又忘記了那門課程,到畢業(yè)時專業(yè)能力達不到社會所要求的層次。程序設計課程群是軟件工程專業(yè)系列課程的重要組成部分,其承載的技能培養(yǎng)目標是專業(yè)培養(yǎng)的子目標[2],處于非常重要的地位。課程群建設是專業(yè)建設的一部分[3],有利于打通課程知識脈絡,避免課程內(nèi)容重復或前后脫節(jié),使前后連貫,內(nèi)容融合,進而獲得整體優(yōu)勢[4]。程序設計課程群主要培養(yǎng)計算思維能力、算法設計與分析能力、程序設計與實現(xiàn)能力和系統(tǒng)分析開發(fā)能力[5]。學生通過程序設計課程群的學習,可掌握1~2門程序設計語言,更進一步理解程序設計方法,熟練掌握常用的數(shù)據(jù)結(jié)構(gòu)和算法,形成良好的程序設計風格,可獨立分析、設計和開發(fā)中小型軟件系統(tǒng)。所以對程序設計課程群進行研究并積極實踐對專業(yè)培養(yǎng)目標的實現(xiàn)具有重要現(xiàn)實意義。
一、問題分析
目前,大多數(shù)高校信息類相關專業(yè)都開設了程序設計系列課程,一般為C語言程序設計、數(shù)據(jù)結(jié)構(gòu)與算法、java程序設計等。許多高校都將C程序設計作為第一門程序設計課程[6],一般安排在第一學期或者第二學期,學完C語言之后,再學其他程序設計課程,如數(shù)據(jù)結(jié)構(gòu)等。由于C語言本身比較靈活且語法內(nèi)容比較多,對于初學者來說并不太好掌握。一些教師在授課過程中,沒有站在軟件設計的高度思考教學內(nèi)容,往往過多地強調(diào)語言成分的語法和語義,而忽視了計算思維能力[7]的培養(yǎng),使學生從開始就扎進程序設計語言的細枝末節(jié)中去,忽略了軟件工程思想的滲透,到最后學生掌握了一些語法,卻不能寫出較為優(yōu)美的程序或沒有形成較好的程序設計思維和風格。算法是程序的靈魂,數(shù)據(jù)結(jié)構(gòu)和算法在課程群中具有基礎和核心地位[8]。在實際教學過程中,學生普遍反映數(shù)據(jù)結(jié)構(gòu)和算法課程抽象難學,在學習和實際應用中出現(xiàn)的問題比較多,很難寫出能正確運行的程序,學習過程中成就感不強,學完之后還是不知道如何應用,很難達到預期的效果。由于在前期的學習中,程序設計基礎沒有打牢,對常用的數(shù)據(jù)結(jié)構(gòu)和算法沒有真正掌握,模塊化程序設計思維沒有有效建立,良好的程序設計風格沒有形成,導致后續(xù)的高級面向?qū)ο笳Z言程序設計學習很難深入,最終導致軟件分析與設計能力得不到有效的提升。
二、程序設計課程群建設
我校軟件工程專業(yè)采取校企合作辦學模式,由吉首大學和中軟國際共同建設,企業(yè)參與人才培養(yǎng)的全過程,在具體實施過程中,學校側(cè)重于理論教學部分,企業(yè)側(cè)重于實踐教學部分[9]。程序設計課程群是軟件工程專業(yè)課程體系的重要組成部分,企業(yè)參與討論與建設,確定該課程群以軟件設計能力培養(yǎng)為主線,以C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設計與分析幾門課程為基礎組建課程群,C語言程序設計開設在第一、二學期,數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設計與分析分別開設在第三、四、五學期,第六學期可開設JavaWeb程序設計或Asp.NetWeb程序設計,使課程群在能力構(gòu)建和開設形式方面形成一個不間斷的體系。
三、程序設計課程群實施
3.1精講課程主要內(nèi)容,提高程序設計能力
課程組教師首先需要站在軟件分析與設計的角度研究各門課程在課程群中的地位和作用,把課程群中的系列課程作為一個有機的整體,研究各門課程的主要教學內(nèi)容,針對課程重點、難點、疑惑點進行精講,做到理論與實踐課并重,有效提高學生程序設計水平。在課程群系列課程中,由于第一門課程是后續(xù)系列課程的基礎,所以學生必須掌握它。在C語言的教學中,要滲透軟件分析與設計的思想,把握程序的主要框架,不糾纏于一些細枝末節(jié)的語法。函數(shù)是C語言教學中的重點,需要重點突破,從模塊設計的角度來考慮函數(shù)設計,對于一個具體的函數(shù),則要掌握函數(shù)的返回類型、參數(shù)類型以及參數(shù)個數(shù)。如用函數(shù)處理一個數(shù)組時,需要傳遞數(shù)組的首地址和數(shù)組的規(guī)模,首地址用指針表示,數(shù)組的規(guī)模則有兩種表示方法,一是數(shù)組的長度,二是數(shù)組的起始下標和結(jié)束下標,這兩種方式可能會分別應用到不同的地方,如果教師一直不提示第二種方法,則將來學生在寫數(shù)組做參數(shù)的遞歸程序時可能會遇到困難。從多年的教學實踐來看,如果學生真正掌握了函數(shù)設計方法,再加上必要的算法知識,一般情況下,程序設計就會變得得心應手而且十分有趣;對于數(shù)據(jù)結(jié)構(gòu)課程,采取以數(shù)據(jù)存儲(內(nèi)存)為主線的方法,將重點放在數(shù)據(jù)的存儲和相關算法方面,在算法實現(xiàn)時滲透模塊化的思想,需注意頭文件和實現(xiàn)文件的定義,因為數(shù)據(jù)結(jié)構(gòu)內(nèi)容具有很強的連貫性且程序的'初始化工作較多,如鏈表的具體應用則先要建立鏈表、樹的遍歷和節(jié)點的查找等則先要建立樹、圖的遍歷和最短路徑及關鍵路徑等則先要建立圖,在實驗過程中有意識地把一些基礎工作放入頭文件,則會極大地提高實驗的效率;在面向?qū)ο蠹夹g(shù)教學中,以面向?qū)ο蟪绦蛟O計的方法為核心,以語言中的面向?qū)ο髾C制為主要內(nèi)容,在適當?shù)臅r候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等優(yōu)秀書籍中的一些思想和經(jīng)驗,要注重面向?qū)ο蟪绦蛟O計過程中大的程序框架的合理性以及具體處理算法的正確性;在講授算法設計與分析的時候,應集中精力將主要算法講透,直到學生學懂為止,在實現(xiàn)算法時,應充分運用面向?qū)ο笤O計的思想,將算法封裝在類中;在web程序設計教學中,采用案例驅(qū)動的方式,精講軟件項目設計中的主要方法和主要問題,培養(yǎng)學生工程化設計思想。精講的目的是讓學生多練,精講之后要布置任務并為學生提供練習環(huán)境和相關指導,必須充分發(fā)揮教師主導和學生主體作用,教師要認真檢查學生的作業(yè)、實驗和練習情況,及時糾正問題,引導學生運用軟件工程的思想設計程序,培養(yǎng)學生良好的程序設計思維和程序設計風格,激發(fā)學生自覺學習和實現(xiàn)相關算法,最終提高程序設計能力。
3.2大規(guī)模開展程序設計訓練,培養(yǎng)程序設計能力
為培養(yǎng)學生算法設計與分析能力,學院在晚上和周末開放了實驗室,在實驗室搭建了ACM在線測評系統(tǒng)(ACMOnlineJudgeSystem),并接入了校園網(wǎng),結(jié)合C程序設計、數(shù)據(jù)結(jié)構(gòu)與算法等課程部署了大量習題。學院利用課余時間,有計劃組織學生進入實驗室進行編程訓練,并為每次訓練配備了指導教師。平時,學生也可以在寢室登錄平臺進行訓練。教師在講授C程序設計等課程的時候,要求學生利用課余時間在ACM平臺上完成至少上百道題的訓練,并將完成情況計入課程的平時成績。通過大規(guī)模開展在線程序設計訓練,學生的程序設計能力有了明顯的提高。
3.3開展課程設計訓練,培養(yǎng)工程化設計思想
在課程群中除開設理論課程對應的實驗項目之外,還針對整門課程開設了綜合性課程設計項目,如C語言課程設計、面向?qū)ο蠹夹g(shù)課程設計、javaweb課程設計,單個課程設計周期為1-4周。學院課程設計項目主要由企業(yè)教師指導完成,該類項目采用分組形式,在組內(nèi)模擬軟件企業(yè)運行模式設置相關崗位角色,學生在仿真企業(yè)環(huán)境中,利用仿真的軟件開發(fā)項目,進行輪崗和角色體驗,培養(yǎng)學生的軟件工程應用能力、軟件項目開發(fā)與測試能力、職業(yè)素質(zhì)等,從而使學生熟悉軟件項目開發(fā)流程和規(guī)范,養(yǎng)成良好的軟件開發(fā)習慣。課程設計結(jié)束時,要求學生演示并講解自己的項目開發(fā)情況,由學院教師和企業(yè)教師組成評定小組進行評分。
3.4改革考核與評價方式,理論與實踐、平時與期末相結(jié)合
理論與實踐相結(jié)合。程序設計課程群內(nèi)的課程都是實踐性很強的課程,其目的是運用所學的知識解決實際問題,決定了課程的期末考核要綜合考慮理論和實踐兩部分內(nèi)容。理論部分主要考查學生對基本概念的理解和對基本知識的掌握情況,實踐部分側(cè)重考查學生的綜合應用能力,這兩部分成績都在期末完成,占課程總成績的60%左右。平時與期末相結(jié)合。期末考核重在體現(xiàn)學習的結(jié)果,平時成績則側(cè)重于體現(xiàn)學習過程,在課程總成績中,平時成績占40%左右,即一門課程約有40分來自平時的學習過程。平時成績一般由出勤、作業(yè)和平時實驗情況、課程設計情況組成。在學期開始第一堂課的時候?qū)⒄n程評分方式告知每一個學生,必須抓緊平時的學習,若平時分小于20分,則取消課程考試資格或直接將課程總成績記為不及格。
四、結(jié)語
程序設計課程群對培養(yǎng)學生計算思維能力、算法設計與分析能力、系統(tǒng)分析與設計能力具有重要作用。本文分析了學生在課程群學習中遇到的一些問題,從軟件分析與設計的角度對課程群進行建設與改革,提出了以C語言程序設計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設計與分析等幾門課程為基礎組建程序設計課程群,給出了課程群的主要知識與能力體系要求,通過精講課程主要內(nèi)容、大規(guī)模有組織地開展程序設計訓練、企業(yè)教師指導課程設計、改革考核與評價方式等方法進行教學改革,學生的程序設計能力得了到較大的提高。
參考文獻
[1]韋迎春,文俊浩,陳蜀宇.以能力培養(yǎng)為核心構(gòu)建示范性軟件學院實踐教學體系[J].中國高等教育,2011(2):49-50.
[2]喬付,王國權(quán),張鳳武.CDIO理念下計算機程序設計課程群建設探索[J].內(nèi)蒙古師范大學學報,2011,24(11):39-41.
[3]孫雷,王新.計算機專業(yè)程序設計課程群的研究與實踐[J].教育教學論壇,2013(11):222-224.
[4]翁偉,吳克壽,吳蕓,等.程序設計課程群建設探索與實踐[J].計算機教育,2009(23):123-125.
[5]王海舜,蔣巍巍.基于程序設計能力培養(yǎng)的軟件設計類課程群架構(gòu)[J].計算機教育,2012(2):23-26.
[6]萬臣,謝芳,胡泉.計算機專業(yè)程序設計課程群的建設與研究[J].合肥工業(yè)大學學報:社會科學版,2009,23(1):33-36.
[7]汪紅兵,姚琳,武航星,等.C語言程序設計課程中的計算思維探析[J].中國大學教學,2014(9):59-62.
[8]熊回香.數(shù)據(jù)結(jié)構(gòu)課程與信息化人才培養(yǎng)的關系研究[J].高等理科教育,2008(5):43-46.
[9]周清平,王曉波,徐洪智,等.平臺化思維模式助推高校軟件工程專業(yè)綜合改革[J].中國高等教育,2015(8):58-60.
【軟件工程專業(yè)程序設計課程群創(chuàng)建】相關文章:
遠程開放教育軟件工程專業(yè)創(chuàng)建05-24
計算機課程群和實驗教學體系創(chuàng)建思考的論文06-17