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