顧國(guó)民 葉陽(yáng) 侯向輝 陳琦 王小號(hào) 張旭東
摘要:本文通過(guò)模擬軟件公司的軟件研發(fā)的組織管理方式,構(gòu)建階梯性的研發(fā)團(tuán)隊(duì),并以模塊化的方式分解軟件項(xiàng)目來(lái)設(shè)計(jì)一種適合高校計(jì)算機(jī)本科學(xué)生的實(shí)驗(yàn)教育模式,降低開(kāi)發(fā)難度,激發(fā)學(xué)生的興趣,在實(shí)踐中及時(shí)消化理論知識(shí)。教學(xué)方案在實(shí)踐指導(dǎo)過(guò)程中取得了有效的成果。
關(guān)鍵詞:軟件工程;模塊化;程序設(shè)計(jì);實(shí)驗(yàn)
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2016)04-0262-02
一、前言
對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),具備良好的編程能力是重要的基本功,通過(guò)編程鍛煉學(xué)生的動(dòng)手能力,通過(guò)編程培養(yǎng)學(xué)生的專業(yè)邏輯思維能力。
當(dāng)前學(xué)校的培養(yǎng)方案更重視通過(guò)課堂的理論授課把計(jì)算機(jī)的基本理論知識(shí)系統(tǒng)的教給學(xué)生,而滿足學(xué)生在卷面考試中取得較好的成績(jī)的欲望。實(shí)驗(yàn)教學(xué)只是作為一種補(bǔ)充,其重要性被低估,學(xué)生從實(shí)驗(yàn)課程中更多的是獲得一種初步的感性認(rèn)識(shí)。這種方式遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到社會(huì)對(duì)我們大學(xué)生的要求,造成了學(xué)校培養(yǎng)和社會(huì)需求的脫節(jié)。
為了彌補(bǔ)二者之間造成的鴻溝,出現(xiàn)了社會(huì)上的軟件開(kāi)發(fā)培訓(xùn)公司,雖然培訓(xùn)費(fèi)用昂貴,但還是受到了學(xué)生的追捧。它們承擔(dān)了部分本該由高校完成的培養(yǎng)學(xué)生的責(zé)任。這種顯現(xiàn)值得我們高校的專業(yè)教師反思。
總的來(lái)說(shuō),高校計(jì)算機(jī)專業(yè)應(yīng)該在講授基礎(chǔ)理論知識(shí)的同時(shí),進(jìn)一步加強(qiáng)實(shí)驗(yàn)教學(xué),從而幫助學(xué)生更好的完成從理論到實(shí)際的轉(zhuǎn)化,更能適應(yīng)社會(huì)的選擇。
二、當(dāng)前程序設(shè)計(jì)實(shí)驗(yàn)現(xiàn)狀分析
為了幫助學(xué)生提高程序設(shè)計(jì)的水平,高校設(shè)計(jì)多個(gè)層次的程序設(shè)計(jì)實(shí)驗(yàn)教學(xué),幫助學(xué)生成長(zhǎng)。
按照教學(xué)大綱,每個(gè)程序設(shè)計(jì)課程都安排了一定的實(shí)驗(yàn)課,這些課程在及時(shí)鞏固課程所學(xué)的理論知識(shí)方面起到了積極的作用。課堂的實(shí)驗(yàn)課主要是把實(shí)驗(yàn)書(shū)上的練習(xí)題在計(jì)算機(jī)上實(shí)現(xiàn),通過(guò)簡(jiǎn)單的算法實(shí)現(xiàn)完成一個(gè)題目。但是也因?yàn)橹皇亲鳂I(yè),而大學(xué)的學(xué)生并沒(méi)有中學(xué)的升學(xué)壓力,從心理上來(lái)說(shuō)學(xué)生對(duì)待“作業(yè)”會(huì)打一定的折扣。
一年級(jí)的學(xué)習(xí)之后安排大型實(shí)驗(yàn),讓學(xué)生幾個(gè)人組成一個(gè)小組完成一個(gè)簡(jiǎn)單的較為實(shí)用的項(xiàng)目。一般來(lái)說(shuō)這類項(xiàng)目沒(méi)有實(shí)際的應(yīng)用價(jià)值,如“圖書(shū)管理系統(tǒng)”等,因?yàn)榇笮蛯?shí)驗(yàn)并沒(méi)有實(shí)際的需求,不能引起學(xué)生足夠的重視,往往有一種“交差就好”的心理,而且是教師一對(duì)多的教學(xué)結(jié)構(gòu),很難做到在做項(xiàng)目的過(guò)程中對(duì)每個(gè)人進(jìn)行悉心的指導(dǎo),又會(huì)讓學(xué)生錯(cuò)過(guò)一個(gè)良好進(jìn)步的機(jī)會(huì)。同時(shí),學(xué)校也鼓勵(lì)有興趣的學(xué)生參加程序設(shè)計(jì)的競(jìng)賽培訓(xùn)。當(dāng)前較為流行的有ACM競(jìng)賽,雖然其形式較為簡(jiǎn)單和看似枯燥,就是編程的題海戰(zhàn),卻因?yàn)轭}目本身具有挑戰(zhàn)性和良好的積分機(jī)制,反而激發(fā)起部分學(xué)生的積極性,很好的培養(yǎng)了學(xué)生的邏輯思維能力和編程能力。但是類似的競(jìng)賽培訓(xùn)也存在一定的片面性:其培養(yǎng)的是學(xué)生單打獨(dú)斗的能力,而現(xiàn)在社會(huì)對(duì)程序開(kāi)發(fā)的需求往往是團(tuán)隊(duì)合作,現(xiàn)在任何一個(gè)實(shí)用的軟件項(xiàng)目是靠一兩個(gè)人完成的,而此類的競(jìng)賽卻會(huì)給人一種“算法就是一切”的假象。
從以上的程序設(shè)計(jì)實(shí)驗(yàn)的現(xiàn)狀,我們?cè)囍治隼硐胫行枰某绦蛟O(shè)計(jì)的實(shí)驗(yàn)應(yīng)該具有怎樣的特點(diǎn):(1)能讓學(xué)生在實(shí)驗(yàn)過(guò)程中體會(huì)到成就感。(2)以團(tuán)隊(duì)的形式去完成一個(gè)應(yīng)用項(xiàng)目,體會(huì)合作的樂(lè)趣。(3)真正了解和體會(huì)一個(gè)項(xiàng)目的真實(shí)過(guò)程,更加注重細(xì)節(jié)。
三、模塊化程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)方案設(shè)計(jì)
借鑒公司軟件項(xiàng)目開(kāi)發(fā)的過(guò)程和經(jīng)驗(yàn),為了滿足對(duì)不同層次的學(xué)生的程序設(shè)計(jì)能力的培養(yǎng),模塊化程序設(shè)計(jì)的實(shí)驗(yàn)教學(xué)的方案需要考慮設(shè)計(jì)一個(gè)實(shí)驗(yàn)項(xiàng)目管理平臺(tái),在此基礎(chǔ)上形成一種師生之間的互助機(jī)制,并設(shè)計(jì)實(shí)驗(yàn)教學(xué)用的應(yīng)用項(xiàng)目,營(yíng)造實(shí)際項(xiàng)目研發(fā)的環(huán)境。
(一)項(xiàng)目開(kāi)發(fā)管理平臺(tái)建設(shè)
項(xiàng)目管理平臺(tái)的功能主要是進(jìn)行項(xiàng)目研發(fā)過(guò)程中的管理以及對(duì)學(xué)生成績(jī)的評(píng)估和統(tǒng)計(jì)。
引入軟件工程項(xiàng)目管理的一些成熟工具軟件搭建真實(shí)項(xiàng)目開(kāi)發(fā)環(huán)境。利用SVN工具進(jìn)行項(xiàng)目源碼的管理。SVN是Subversion的簡(jiǎn)稱,是一個(gè)開(kāi)放源代碼的版本控制系統(tǒng),是時(shí)下比較流行的開(kāi)發(fā)版本控制工具。
為每個(gè)參與的學(xué)生開(kāi)設(shè)獨(dú)立的帳號(hào),在開(kāi)發(fā)過(guò)程中將自己的代碼提交到服務(wù)端,實(shí)現(xiàn)版本的控制,同時(shí)教師也可以通過(guò)該工具下載最新的代碼檢查學(xué)生的開(kāi)發(fā)成果。
利用Trac進(jìn)行文檔的管理,Trac是一個(gè)為軟件開(kāi)發(fā)項(xiàng)目需要而集成了Wiki和問(wèn)題跟蹤管理系統(tǒng)的應(yīng)用平臺(tái),Trac以簡(jiǎn)單的方式建立了一個(gè)軟件項(xiàng)目管理的Web應(yīng)用,以幫助開(kāi)發(fā)人員更好地寫(xiě)出高質(zhì)量的軟件。
(二)項(xiàng)目基礎(chǔ)培訓(xùn)
基礎(chǔ)的程序設(shè)計(jì)實(shí)驗(yàn)一般只是在較簡(jiǎn)單的實(shí)驗(yàn)環(huán)境下進(jìn)行的,學(xué)生對(duì)如何參與實(shí)際的軟件研發(fā)項(xiàng)目存在一定的向往卻不知從何下手。需要指導(dǎo)學(xué)生了解團(tuán)隊(duì)合作研發(fā)項(xiàng)目過(guò)程中必須要掌握的知識(shí),包括項(xiàng)目工程的概念、動(dòng)態(tài)鏈接庫(kù)的概念和開(kāi)發(fā)、利用SVN進(jìn)行代碼的管理等知識(shí)。對(duì)于基礎(chǔ)培訓(xùn)最初由教師完成,對(duì)于項(xiàng)目進(jìn)行過(guò)程中新加入的學(xué)生的培訓(xùn)由熟練的學(xué)生負(fù)責(zé),發(fā)揮層級(jí)團(tuán)隊(duì)的傳幫帶作用。
(三)項(xiàng)目設(shè)計(jì)
對(duì)于實(shí)驗(yàn)項(xiàng)目的設(shè)計(jì),注重模塊化。從項(xiàng)目的選型上選擇具有清晰模塊需求的項(xiàng)目。從設(shè)計(jì)的角度將系統(tǒng)設(shè)計(jì)成為模塊松耦合的組織方式。目標(biāo)是將一個(gè)完整的項(xiàng)目分解成相對(duì)獨(dú)立的模塊,每個(gè)模塊配合相對(duì)較完整的接口說(shuō)明書(shū),基礎(chǔ)較好的學(xué)生能夠獨(dú)立完成一個(gè)模塊的開(kāi)發(fā),而集成的學(xué)生則負(fù)責(zé)對(duì)每個(gè)模塊的驗(yàn)收和最終搭建成為一個(gè)系統(tǒng)。
(四)層級(jí)團(tuán)隊(duì)建設(shè)
公司的項(xiàng)目研發(fā)團(tuán)隊(duì)一定是由不同層次的軟件研發(fā)人員組成,如架構(gòu)師、模塊設(shè)計(jì)師、基礎(chǔ)軟件研發(fā)、測(cè)試等。如果學(xué)校的實(shí)驗(yàn)中對(duì)于建立如此完整的團(tuán)隊(duì)結(jié)構(gòu)有一定的難度,可以以此為目標(biāo),由教師在項(xiàng)目提出階段先行完成架構(gòu)師、模塊設(shè)計(jì)師的任務(wù)。學(xué)生最初可以做好模塊的軟件研發(fā)及測(cè)試工作,但對(duì)于有能力的學(xué)生可以在職位上得到晉升。該實(shí)驗(yàn)的項(xiàng)目設(shè)計(jì)需要跨越多個(gè)年級(jí),讓不同能力的學(xué)生在一起參與一個(gè)項(xiàng)目,形成學(xué)生之間的互助合作的機(jī)制。
在項(xiàng)目的開(kāi)展中,逐步有意識(shí)的去培養(yǎng)高年級(jí)有能力的學(xué)生向上發(fā)展,形成梯隊(duì),承擔(dān)起帶領(lǐng)信任的重要任務(wù)。
在整個(gè)項(xiàng)目開(kāi)展的過(guò)程中,指導(dǎo)教師的重要任務(wù)是建立團(tuán)隊(duì)和直接指導(dǎo)有較高層次的學(xué)生,也就是高層次的學(xué)生能夠更多的得到教師的親自指導(dǎo),這也是學(xué)生積極向上發(fā)展的動(dòng)力之一。
(五)項(xiàng)目的開(kāi)展
指導(dǎo)教師根據(jù)不同的項(xiàng)目情況以項(xiàng)目經(jīng)理或者用戶的角色參與項(xiàng)目,指導(dǎo)學(xué)生進(jìn)行項(xiàng)目需求文檔、概要設(shè)計(jì)等的撰寫(xiě),控制項(xiàng)目進(jìn)度和質(zhì)量,等等?;蛘甙缪萦脩襞c學(xué)生代表的項(xiàng)目經(jīng)理進(jìn)行溝通、提需求并驗(yàn)收項(xiàng)目等,積極參與到項(xiàng)目中去。
(六)管理及考核機(jī)制
通過(guò)制度上的保障,讓教師提出建立程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目的申請(qǐng),進(jìn)行項(xiàng)目開(kāi)發(fā)的模塊化設(shè)計(jì),提出項(xiàng)目達(dá)到的目標(biāo),在程序設(shè)計(jì)教研組通過(guò)審核之后,由實(shí)驗(yàn)指導(dǎo)教師具體負(fù)責(zé)實(shí)驗(yàn)的指導(dǎo)。
目前有些學(xué)院為了培養(yǎng)學(xué)生的能力設(shè)立了“創(chuàng)新分”的機(jī)制,要求學(xué)生在大學(xué)階段完成一定的創(chuàng)新分,用于基本要求及能力考核的重要指標(biāo)。可以將本實(shí)驗(yàn)平臺(tái)的學(xué)生成績(jī)與創(chuàng)新分進(jìn)行對(duì)接,同時(shí)將學(xué)生在這個(gè)實(shí)驗(yàn)平臺(tái)中獲得的創(chuàng)新分也與教師的年終考核進(jìn)行掛鉤,讓學(xué)生與教師的成績(jī)都得到認(rèn)可。
四、結(jié)語(yǔ)
本文提出的以模塊化的引導(dǎo)式的程序設(shè)計(jì)的實(shí)驗(yàn)方案,在學(xué)校構(gòu)建一種類似公司項(xiàng)目研發(fā)的實(shí)驗(yàn)指導(dǎo)體系。用類真實(shí)的軟件研發(fā)環(huán)境來(lái)刺激學(xué)生,發(fā)揮學(xué)生的主動(dòng)性。
在近兩年的教學(xué)過(guò)程中,學(xué)生基于該實(shí)驗(yàn)方案進(jìn)行設(shè)計(jì)開(kāi)發(fā),師生普遍反映對(duì)學(xué)生研發(fā)能力的提高有很大的幫助,畢業(yè)后能更容易得到社會(huì)的認(rèn)可。
參考文獻(xiàn):
[1]全成斌,鄭寧漢,楊士強(qiáng),等.計(jì)算機(jī)一體化實(shí)驗(yàn)教學(xué)改革與探索[J].中國(guó)大學(xué)教學(xué),2014,(6).
[2]彭志強(qiáng).基于云計(jì)算的計(jì)算機(jī)與軟件實(shí)驗(yàn)資源管理[J].數(shù)字技術(shù)與應(yīng)用,2014,(7).
[3]許德武.項(xiàng)目分解法在計(jì)算機(jī)實(shí)驗(yàn)和理論教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2013,32(1).
[4]翟艷紅.開(kāi)放式計(jì)算機(jī)實(shí)驗(yàn)實(shí)訓(xùn)教學(xué)分析[J].科技創(chuàng)新導(dǎo)報(bào),2014,(22).
[5]楊晉平.新局勢(shì)下提升計(jì)算機(jī)實(shí)驗(yàn)教學(xué)效率的方法之芻議[J].課程教育研究(新教師教學(xué)),2014,(36).
[6]趙愛(ài)玲,崔朝軍.構(gòu)建計(jì)算機(jī)實(shí)驗(yàn)教學(xué)平臺(tái)的探索與實(shí)踐[J].中國(guó)高??萍迹?012,(5).
[7]逯暉.開(kāi)放式計(jì)算機(jī)實(shí)驗(yàn)實(shí)訓(xùn)教學(xué)淺談[J].重慶科技學(xué)院學(xué)報(bào):社會(huì)科學(xué)版,2012,(14).
Abstract:College Student computer development capabilities is not meeting the current social need,The main reason is the lack of development projects of the students in school learning theory during exercise in the process of learning theory. This paper,design an experimental educational model for college student. By simulating the software developing management of company,and decomposing software project into modules,to reduce the difficulty of developing,and rouse students' interest. The teaching programs achieve effective results in the process of experiment.
Key words:software engineer;software module;experiment