公務(wù)員期刊網(wǎng) 論文中心 正文

軟件工程專業(yè)程序設(shè)計課程群創(chuàng)建

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程專業(yè)程序設(shè)計課程群創(chuàng)建范文,希望能給你帶來靈感和參考,敬請閱讀。

軟件工程專業(yè)程序設(shè)計課程群創(chuàng)建

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

關(guān)鍵詞:軟件工程;程序設(shè)計;課程群;建設(shè);實踐

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

1問題分析

目前,大多數(shù)高校信息類相關(guān)專業(yè)都開設(shè)了程序設(shè)計系列課程,一般為C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法、java程序設(shè)計等。許多高校都將C程序設(shè)計作為第一門程序設(shè)計課程[6],一般安排在第一學(xué)期或者第二學(xué)期,學(xué)完C語言之后,再學(xué)其他程序設(shè)計課程,如數(shù)據(jù)結(jié)構(gòu)等。由于C語言本身比較靈活且語法內(nèi)容比較多,對于初學(xué)者來說并不太好掌握。一些教師在授課過程中,沒有站在軟件設(shè)計的高度思考教學(xué)內(nèi)容,往往過多地強調(diào)語言成分的語法和語義,而忽視了計算思維能力[7]的培養(yǎng),使學(xué)生從開始就扎進程序設(shè)計語言的細枝末節(jié)中去,忽略了軟件工程思想的滲透,到最后學(xué)生掌握了一些語法,卻不能寫出較為優(yōu)美的程序或沒有形成較好的程序設(shè)計思維和風(fēng)格。算法是程序的靈魂,數(shù)據(jù)結(jié)構(gòu)和算法在課程群中具有基礎(chǔ)和核心地位[8]。在實際教學(xué)過程中,學(xué)生普遍反映數(shù)據(jù)結(jié)構(gòu)和算法課程抽象難學(xué),在學(xué)習(xí)和實際應(yīng)用中出現(xiàn)的問題比較多,很難寫出能正確運行的程序,學(xué)習(xí)過程中成就感不強,學(xué)完之后還是不知道如何應(yīng)用,很難達到預(yù)期的效果。由于在前期的學(xué)習(xí)中,程序設(shè)計基礎(chǔ)沒有打牢,對常用的數(shù)據(jù)結(jié)構(gòu)和算法沒有真正掌握,模塊化程序設(shè)計思維沒有有效建立,良好的程序設(shè)計風(fēng)格沒有形成,導(dǎo)致后續(xù)的高級面向?qū)ο笳Z言程序設(shè)計學(xué)習(xí)很難深入,最終導(dǎo)致軟件分析與設(shè)計能力得不到有效的提升。

2程序設(shè)計課程群建設(shè)

我校軟件工程專業(yè)采取校企合作辦學(xué)模式,由吉首大學(xué)和中軟國際共同建設(shè),企業(yè)參與人才培養(yǎng)的全過程,在具體實施過程中,學(xué)校側(cè)重于理論教學(xué)部分,企業(yè)側(cè)重于實踐教學(xué)部分[9]。程序設(shè)計課程群是軟件工程專業(yè)課程體系的重要組成部分,企業(yè)參與討論與建設(shè),確定該課程群以軟件設(shè)計能力培養(yǎng)為主線,以C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設(shè)計與分析幾門課程為基礎(chǔ)組建課程群,C語言程序設(shè)計開設(shè)在第一、二學(xué)期,數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設(shè)計與分析分別開設(shè)在第三、四、五學(xué)期,第六學(xué)期可開設(shè)JavaWeb程序設(shè)計或Asp.NetWeb程序設(shè)計,使課程群在能力構(gòu)建和開設(shè)形式方面形成一個不間斷的體系。

3程序設(shè)計課程群實施

3.1精講課程主要內(nèi)容,提高程序設(shè)計能力

課程組教師首先需要站在軟件分析與設(shè)計的角度研究各門課程在課程群中的地位和作用,把課程群中的系列課程作為一個有機的整體,研究各門課程的主要教學(xué)內(nèi)容,針對課程重點、難點、疑惑點進行精講,做到理論與實踐課并重,有效提高學(xué)生程序設(shè)計水平。在課程群系列課程中,由于第一門課程是后續(xù)系列課程的基礎(chǔ),所以學(xué)生必須掌握它。在C語言的教學(xué)中,要滲透軟件分析與設(shè)計的思想,把握程序的主要框架,不糾纏于一些細枝末節(jié)的語法。函數(shù)是C語言教學(xué)中的重點,需要重點突破,從模塊設(shè)計的角度來考慮函數(shù)設(shè)計,對于一個具體的函數(shù),則要掌握函數(shù)的返回類型、參數(shù)類型以及參數(shù)個數(shù)。如用函數(shù)處理一個數(shù)組時,需要傳遞數(shù)組的首地址和數(shù)組的規(guī)模,首地址用指針表示,數(shù)組的規(guī)模則有兩種表示方法,一是數(shù)組的長度,二是數(shù)組的起始下標和結(jié)束下標,這兩種方式可能會分別應(yīng)用到不同的地方,如果教師一直不提示第二種方法,則將來學(xué)生在寫數(shù)組做參數(shù)的遞歸程序時可能會遇到困難。從多年的教學(xué)實踐來看,如果學(xué)生真正掌握了函數(shù)設(shè)計方法,再加上必要的算法知識,一般情況下,程序設(shè)計就會變得得心應(yīng)手而且十分有趣;對于數(shù)據(jù)結(jié)構(gòu)課程,采取以數(shù)據(jù)存儲(內(nèi)存)為主線的方法,將重點放在數(shù)據(jù)的存儲和相關(guān)算法方面,在算法實現(xiàn)時滲透模塊化的思想,需注意頭文件和實現(xiàn)文件的定義,因為數(shù)據(jù)結(jié)構(gòu)內(nèi)容具有很強的連貫性且程序的初始化工作較多,如鏈表的具體應(yīng)用則先要建立鏈表、樹的遍歷和節(jié)點的查找等則先要建立樹、圖的遍歷和最短路徑及關(guān)鍵路徑等則先要建立圖,在實驗過程中有意識地把一些基礎(chǔ)工作放入頭文件,則會極大地提高實驗的效率;在面向?qū)ο蠹夹g(shù)教學(xué)中,以面向?qū)ο蟪绦蛟O(shè)計的方法為核心,以語言中的面向?qū)ο髾C制為主要內(nèi)容,在適當?shù)臅r候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等優(yōu)秀書籍中的一些思想和經(jīng)驗,要注重面向?qū)ο蟪绦蛟O(shè)計過程中大的程序框架的合理性以及具體處理算法的正確性;在講授算法設(shè)計與分析的時候,應(yīng)集中精力將主要算法講透,直到學(xué)生學(xué)懂為止,在實現(xiàn)算法時,應(yīng)充分運用面向?qū)ο笤O(shè)計的思想,將算法封裝在類中;在web程序設(shè)計教學(xué)中,采用案例驅(qū)動的方式,精講軟件項目設(shè)計中的主要方法和主要問題,培養(yǎng)學(xué)生工程化設(shè)計思想。精講的目的是讓學(xué)生多練,精講之后要布置任務(wù)并為學(xué)生提供練習(xí)環(huán)境和相關(guān)指導(dǎo),必須充分發(fā)揮教師主導(dǎo)和學(xué)生主體作用,教師要認真檢查學(xué)生的作業(yè)、實驗和練習(xí)情況,及時糾正問題,引導(dǎo)學(xué)生運用軟件工程的思想設(shè)計程序,培養(yǎng)學(xué)生良好的程序設(shè)計思維和程序設(shè)計風(fēng)格,激發(fā)學(xué)生自覺學(xué)習(xí)和實現(xiàn)相關(guān)算法,最終提高程序設(shè)計能力。

3.2大規(guī)模開展程序設(shè)計訓(xùn)練,培養(yǎng)程序設(shè)計能力

為培養(yǎng)學(xué)生算法設(shè)計與分析能力,學(xué)院在晚上和周末開放了實驗室,在實驗室搭建了ACM在線測評系統(tǒng)(ACMOnlineJudgeSystem),并接入了校園網(wǎng),結(jié)合C程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法等課程部署了大量習(xí)題。學(xué)院利用課余時間,有計劃組織學(xué)生進入實驗室進行編程訓(xùn)練,并為每次訓(xùn)練配備了指導(dǎo)教師。平時,學(xué)生也可以在寢室登錄平臺進行訓(xùn)練。教師在講授C程序設(shè)計等課程的時候,要求學(xué)生利用課余時間在ACM平臺上完成至少上百道題的訓(xùn)練,并將完成情況計入課程的平時成績。通過大規(guī)模開展在線程序設(shè)計訓(xùn)練,學(xué)生的程序設(shè)計能力有了明顯的提高。

3.3開展課程設(shè)計訓(xùn)練,培養(yǎng)工程化設(shè)計思想

在課程群中除開設(shè)理論課程對應(yīng)的實驗項目之外,還針對整門課程開設(shè)了綜合性課程設(shè)計項目,如C語言課程設(shè)計、面向?qū)ο蠹夹g(shù)課程設(shè)計、javaweb課程設(shè)計,單個課程設(shè)計周期為1-4周。學(xué)院課程設(shè)計項目主要由企業(yè)教師指導(dǎo)完成,該類項目采用分組形式,在組內(nèi)模擬軟件企業(yè)運行模式設(shè)置相關(guān)崗位角色,學(xué)生在仿真企業(yè)環(huán)境中,利用仿真的軟件開發(fā)項目,進行輪崗和角色體驗,培養(yǎng)學(xué)生的軟件工程應(yīng)用能力、軟件項目開發(fā)與測試能力、職業(yè)素質(zhì)等,從而使學(xué)生熟悉軟件項目開發(fā)流程和規(guī)范,養(yǎng)成良好的軟件開發(fā)習(xí)慣。課程設(shè)計結(jié)束時,要求學(xué)生演示并講解自己的項目開發(fā)情況,由學(xué)院教師和企業(yè)教師組成評定小組進行評分。

3.4改革考核與評價方式,理論與實踐、平時與期末相結(jié)合

理論與實踐相結(jié)合。程序設(shè)計課程群內(nèi)的課程都是實踐性很強的課程,其目的是運用所學(xué)的知識解決實際問題,決定了課程的期末考核要綜合考慮理論和實踐兩部分內(nèi)容。理論部分主要考查學(xué)生對基本概念的理解和對基本知識的掌握情況,實踐部分側(cè)重考查學(xué)生的綜合應(yīng)用能力,這兩部分成績都在期末完成,占課程總成績的60%左右。平時與期末相結(jié)合。期末考核重在體現(xiàn)學(xué)習(xí)的結(jié)果,平時成績則側(cè)重于體現(xiàn)學(xué)習(xí)過程,在課程總成績中,平時成績占40%左右,即一門課程約有40分來自平時的學(xué)習(xí)過程。平時成績一般由出勤、作業(yè)和平時實驗情況、課程設(shè)計情況組成。在學(xué)期開始第一堂課的時候?qū)⒄n程評分方式告知每一個學(xué)生,必須抓緊平時的學(xué)習(xí),若平時分小于20分,則取消課程考試資格或直接將課程總成績記為不及格。

4結(jié)語

程序設(shè)計課程群對培養(yǎng)學(xué)生計算思維能力、算法設(shè)計與分析能力、系統(tǒng)分析與設(shè)計能力具有重要作用。本文分析了學(xué)生在課程群學(xué)習(xí)中遇到的一些問題,從軟件分析與設(shè)計的角度對課程群進行建設(shè)與改革,提出了以C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設(shè)計與分析等幾門課程為基礎(chǔ)組建程序設(shè)計課程群,給出了課程群的主要知識與能力體系要求,通過精講課程主要內(nèi)容、大規(guī)模有組織地開展程序設(shè)計訓(xùn)練、企業(yè)教師指導(dǎo)課程設(shè)計、改革考核與評價方式等方法進行教學(xué)改革,學(xué)生的程序設(shè)計能力得了到較大的提高。

參考文獻

[1]韋迎春,文俊浩,陳蜀宇.以能力培養(yǎng)為核心構(gòu)建示范性軟件學(xué)院實踐教學(xué)體系[J].中國高等教育,2011(2):49-50.

[2]喬付,王國權(quán),張鳳武.CDIO理念下計算機程序設(shè)計課程群建設(shè)探索[J].內(nèi)蒙古師范大學(xué)學(xué)報,2011,24(11):39-41.

[3]孫雷,王新.計算機專業(yè)程序設(shè)計課程群的研究與實踐[J].教育教學(xué)論壇,2013(11):222-224.

[4]翁偉,吳克壽,吳蕓,等.程序設(shè)計課程群建設(shè)探索與實踐[J].計算機教育,2009(23):123-125.

[5]王海舜,蔣巍?。诔绦蛟O(shè)計能力培養(yǎng)的軟件設(shè)計類課程群架構(gòu)[J].計算機教育,2012(2):23-26.

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

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

[8]熊回香.數(shù)據(jù)結(jié)構(gòu)課程與信息化人才培養(yǎng)的關(guān)系研究[J].高等理科教育,2008(5):43-46.

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

作者:徐洪智 蔡國民 單位:吉首大學(xué)軟件服務(wù)外包學(xué)院