計算機(jī)類學(xué)生軟件系統(tǒng)設(shè)計能力培養(yǎng)
時間:2022-06-04 04:17:00
導(dǎo)語:計算機(jī)類學(xué)生軟件系統(tǒng)設(shè)計能力培養(yǎng)一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著中國經(jīng)濟(jì)的迅猛發(fā)展,經(jīng)濟(jì)規(guī)模和經(jīng)濟(jì)領(lǐng)域不斷擴(kuò)大;信息化程度也在不斷提高,政府對信息化建設(shè)的重視程度日益增強(qiáng)。目前,除了我國自身的信息化建設(shè)需要大量的軟件人才以外,還有大量的軟件外包在我國進(jìn)行,現(xiàn)有的軟件技術(shù)人才遠(yuǎn)遠(yuǎn)不能滿足軟件開發(fā)公司的需要。盡管在爆發(fā)世界金融危機(jī)的2008—2009年,中國企業(yè)對軟件人才的需求也沒有減少,每年需求在60萬人左右。雖然每年有大量的高校計算機(jī)本科專業(yè)畢業(yè)生,但是,軟件人才仍存在較大缺口。在軟件人才供求關(guān)系上,出現(xiàn)了公司、企業(yè)招不到所需要的軟件人才,而計算機(jī)本科專業(yè)畢業(yè)生卻就業(yè)困難的局面。為此,我們對計算機(jī)本科專業(yè)學(xué)生軟件系統(tǒng)設(shè)計能力的培養(yǎng)方法和途徑進(jìn)行研究,在計算機(jī)本科專業(yè)中培養(yǎng)一批適應(yīng)社會需求的軟件系統(tǒng)設(shè)計人才,具有現(xiàn)實(shí)和重要的意義。
1軟件系統(tǒng)設(shè)計能力現(xiàn)狀與分析
多年來,我們從本校計算機(jī)本科專業(yè)學(xué)生的畢業(yè)實(shí)習(xí)、畢業(yè)設(shè)計,就業(yè)應(yīng)聘、用人單位的考核及反饋的意見來看,學(xué)生較好地掌握了計算機(jī)科學(xué)與技術(shù)專業(yè)的基本理論和專業(yè)知識,具備了計算機(jī)的基本操作、程序設(shè)計方法、數(shù)據(jù)庫建立和網(wǎng)站建設(shè)等專業(yè)能力,有少數(shù)學(xué)生還具備了較強(qiáng)的軟件系統(tǒng)設(shè)計能力。從學(xué)生的就業(yè)情況統(tǒng)計分析來看,我校計算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生約有10%左右的學(xué)生受聘于軟件開發(fā)企業(yè),從事軟件系統(tǒng)的設(shè)計與開發(fā)工作。也說明我們現(xiàn)在培養(yǎng)的計算機(jī)本科專業(yè)的學(xué)生中,只有10-15%的學(xué)生軟件系統(tǒng)設(shè)計與開發(fā)能力得到軟件公司的認(rèn)可,他們的軟件系統(tǒng)設(shè)計能力比較強(qiáng)的,能夠達(dá)到軟件公司的要求。但是,大部分學(xué)生的軟件系統(tǒng)設(shè)計能力相對較弱,不能滿足社會的要求。我們通過對本校計算機(jī)本科專業(yè)的課程體系結(jié)構(gòu)、教學(xué)過程的各個環(huán)節(jié)進(jìn)行研究分析,認(rèn)為學(xué)生的軟件設(shè)計能力還存在如下幾點(diǎn)不足:
(1)算法設(shè)計與分析能力不足。算法設(shè)計與分析是計算機(jī)本科專業(yè)學(xué)生編程的基礎(chǔ),是人類借助計算機(jī)解決實(shí)際問題的重要一步。但是,從教師的教學(xué)以及學(xué)生的學(xué)習(xí),都沒有得到很好的重視。主要體現(xiàn)在:教師在程序設(shè)計課程的講授時,對算法分析與設(shè)計講解得不夠,只偏重于程序語句的解讀,忽視算法設(shè)計過程的講解和訓(xùn)練;而學(xué)生也只滿足于課程簡單算法的代碼描述,不重視算法的分析與設(shè)計過程的練習(xí),結(jié)果造成學(xué)生僅僅掌握了一些簡單問題的編程,而對較復(fù)雜的實(shí)際問題的程序設(shè)計則缺乏獨(dú)立的解決能力。
(2)學(xué)生讀程與編程量少,訓(xùn)練不足。目前,學(xué)生閱讀程序量很少,主動找相關(guān)程序來閱讀理解的不多,大部分只是為了應(yīng)對作業(yè)去查找一些相關(guān)的代碼。任課教師對學(xué)生有閱讀程序的要求,但真正對學(xué)生進(jìn)行訓(xùn)練和嚴(yán)格要求的卻不多,結(jié)果有部分學(xué)生看不懂常用算法的代碼或復(fù)雜一些的程序。學(xué)生在校期間,編寫的程序量少,大部分學(xué)生只滿足于完成老師布置的編程作業(yè),沒有再多做練習(xí),有些學(xué)生四年時間編寫的代碼總量都不到5000行。但是,按照最基本的要求,計算機(jī)專業(yè)學(xué)生的編程至少應(yīng)達(dá)到20000行到50000行以上的程序量[2]。因此,學(xué)生的軟件系統(tǒng)設(shè)計能力不足,這是一個主要的原因之一。
(3)軟件綜合設(shè)計能力不足,接觸的案例少。軟件系統(tǒng)設(shè)計是一個綜合設(shè)計過程,要求學(xué)生掌握軟件工程、數(shù)據(jù)庫、面向?qū)ο蟪绦蛟O(shè)計等多方面技術(shù)和具有綜合應(yīng)用能力。但是,學(xué)生掌握的是分散的、各自獨(dú)立的技術(shù),綜合多門技術(shù)的軟件設(shè)計能力明顯不足,有些會做系統(tǒng)的界面,卻不會設(shè)計數(shù)據(jù)庫;有些系統(tǒng)界面和數(shù)據(jù)庫都建立了,卻相互不能連接;有少數(shù)學(xué)生直到畢業(yè)還設(shè)計不出一個能夠正常運(yùn)行的簡單系統(tǒng)。原因是重視了各門課程的教學(xué),而忽視了能夠提高學(xué)生軟件綜合設(shè)計能力的案例分析課程和綜合設(shè)計實(shí)踐課程的設(shè)置與教學(xué)。學(xué)生接觸的軟件系統(tǒng)案例少,沒有得到較為完整和系統(tǒng)的訓(xùn)練。
(4)參與軟件系統(tǒng)開發(fā)的機(jī)會少,缺乏應(yīng)有的鍛煉和實(shí)踐經(jīng)驗(yàn)。很多學(xué)生的軟件系統(tǒng)設(shè)計水平僅停留在模仿教材的例子上,還談不上設(shè)計出能夠解決實(shí)際問題的系統(tǒng)。這與學(xué)生參與軟件公司項(xiàng)目開發(fā)或教師項(xiàng)目開發(fā)的機(jī)會少有很大的關(guān)系。目前,學(xué)生到軟件公司實(shí)習(xí)時間短,公司不愿意將開發(fā)項(xiàng)目這樣重要的任務(wù)交給實(shí)習(xí)生來完成,學(xué)生沒有機(jī)會直接參與公司的項(xiàng)目開發(fā),有些能參與,也只能參與其中的一小部分;教師承擔(dān)的開發(fā)項(xiàng)目能夠接納的學(xué)生數(shù)量有限,不能滿足學(xué)生的實(shí)踐需要。因此,學(xué)生缺乏軟件系統(tǒng)設(shè)計的實(shí)踐經(jīng)驗(yàn)和應(yīng)有的鍛煉。
2培養(yǎng)學(xué)生軟件系統(tǒng)設(shè)計能力的方法與途徑
2.1讀程與編程能力的培養(yǎng)
我們根據(jù)學(xué)生讀程量少,掌握常用算法代碼不多的情況,在編程基礎(chǔ)課程的教學(xué)中,采用“讀程目標(biāo)管理”方法。要求任課教師在一門課程的教學(xué)中,必須為學(xué)生提供500個以上的程序作為閱讀材料,并對學(xué)生的讀程能力進(jìn)行訓(xùn)練。要求學(xué)生必須閱讀并理解500個以上的程序,學(xué)生通過閱讀掌握一些常用的算法。課程結(jié)束時,教師對學(xué)生進(jìn)行單獨(dú)的讀程理解考核,如:給出一個程序,要求學(xué)生在規(guī)定的時間內(nèi)講解出程序?qū)崿F(xiàn)的功能或運(yùn)行的結(jié)果??己撕细?給一定的學(xué)分,不合格,可以重考,直至合格為止。對于軟件系統(tǒng)設(shè)計課程,教師為學(xué)生提供1~2個實(shí)用系統(tǒng)的原代碼,作為案例讓學(xué)生閱讀理解;在此基礎(chǔ)上,要求學(xué)生閱讀不少于5系統(tǒng)的原代碼,以掌握面向?qū)ο筌浖到y(tǒng)的基本架構(gòu)、功能調(diào)用以及常用功能子程序的算法設(shè)計與實(shí)現(xiàn)。在擴(kuò)大程序和系統(tǒng)原代碼閱讀量的同時,不斷提高學(xué)生的編程能力。我們采用“編程目標(biāo)管理、逐門課程分解”的方法,將編程總量按照開設(shè)的語言設(shè)計課程的重要程度逐門分解編程量。如:假設(shè)要求每個學(xué)生四年的編程總量為至少要達(dá)到20000行,最好能達(dá)到50000行以上。則根據(jù)開設(shè)的C、C++或C#、、SQLServer、案例分析與設(shè)計等程序設(shè)計系列課程,要求學(xué)生每門課程的編程量都在5000行以上,最好能達(dá)到10000行以上。此外,還通過組織學(xué)生參加系級的、校級的、省級甚至國家級的程序設(shè)計大賽等形式,促進(jìn)學(xué)生編程能力的提高。
2.2算法分析與設(shè)計能力的培養(yǎng)
在開設(shè)的專業(yè)基礎(chǔ)課程中,C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)等課程對于培養(yǎng)學(xué)生的算法設(shè)計能力至關(guān)重要。我們采用“對算法步驟描述再用標(biāo)準(zhǔn)語言編寫代碼實(shí)現(xiàn),閱讀程序然后歸納出算法的步驟”正反雙向訓(xùn)練的方法,以提高學(xué)生的算法設(shè)計能力。教師在課堂教學(xué)中,必須嚴(yán)格按照程序設(shè)計的過程和方法進(jìn)行講解,對解決的問題首先要做好算法分析與設(shè)計,然后再用標(biāo)準(zhǔn)語言進(jìn)行描述,并在學(xué)生的作業(yè)或編程練習(xí)中嚴(yán)格要求,使學(xué)生逐步養(yǎng)成編寫代碼之前,先作好算法的分析與設(shè)計,逐步培養(yǎng)學(xué)生解決實(shí)際問題的能力和方法。通過讀程訓(xùn)練,反向要求學(xué)生描述程序?qū)崿F(xiàn)的步驟,歸納出程序?qū)崿F(xiàn)的功能。通過這樣正反兩方面對學(xué)生的算法分析與設(shè)計進(jìn)行訓(xùn)練,學(xué)生的算法設(shè)計能力就會得到切實(shí)的提高,從而促進(jìn)學(xué)生編程能力的提高。
2.3軟件系統(tǒng)設(shè)計能力的培養(yǎng)
軟件系統(tǒng)設(shè)計是指在面向?qū)ο蟪绦蛟O(shè)計語言基礎(chǔ)上,根據(jù)軟件工程的設(shè)計原則、設(shè)計模式以及模塊化的設(shè)計方法,設(shè)計出一個比較完整的軟件系統(tǒng)構(gòu)架、前后臺界面、各模塊之間的調(diào)用關(guān)系以及各功能子模塊的詳細(xì)設(shè)計。我們通過以下三種途徑,提高學(xué)生的軟件系統(tǒng)設(shè)計能力。
(1)采用“案例教學(xué)與學(xué)生綜合設(shè)計訓(xùn)練”相結(jié)合的方法,給學(xué)生開設(shè)《案例分析與設(shè)計》課程。通過實(shí)用的系統(tǒng)案例,對C/S和B/S系統(tǒng)的總體構(gòu)架、前臺、后臺設(shè)計、各模塊之間的調(diào)用、各功能子模塊的詳細(xì)設(shè)計進(jìn)行逐項(xiàng)訓(xùn)練。在此基礎(chǔ)上,要求學(xué)生參考系統(tǒng)案例進(jìn)行軟件系統(tǒng)的綜合設(shè)計練習(xí)。根據(jù)實(shí)際的應(yīng)用,設(shè)計出2-3個軟件系統(tǒng),并編程實(shí)現(xiàn)。
(2)采用“導(dǎo)師制和項(xiàng)目驅(qū)動”方法,通過軟件系統(tǒng)開發(fā)實(shí)踐活動,培養(yǎng)學(xué)生的軟件綜合設(shè)計能力。如:我們制訂了“兩個一”工程實(shí)施方案,實(shí)行本科學(xué)生導(dǎo)師制。導(dǎo)師讓學(xué)生參與自己的項(xiàng)目研究與開發(fā),或給出具有解決實(shí)際問題的項(xiàng)目,以項(xiàng)目方式驅(qū)動學(xué)生進(jìn)行軟件系統(tǒng)的設(shè)計并實(shí)現(xiàn)。學(xué)生在導(dǎo)師的指導(dǎo)下,在畢業(yè)實(shí)習(xí)前,利用課余時間設(shè)計出“1個”軟件系統(tǒng)和“1個”網(wǎng)站,并以此作為衡量學(xué)生能否參與畢業(yè)實(shí)習(xí)的條件,以此促進(jìn)學(xué)生軟件系統(tǒng)設(shè)計能力的提高。
(3)采用“學(xué)生參與教師的項(xiàng)目開發(fā)和到軟件公司實(shí)踐”相結(jié)合的方法,增加學(xué)生的實(shí)踐經(jīng)歷,提高學(xué)生的系統(tǒng)設(shè)計實(shí)踐能力。我們鼓勵有項(xiàng)目的老師吸收本科學(xué)生參與項(xiàng)目的設(shè)計與開發(fā),使學(xué)生盡量接觸到真正解決實(shí)際問題的項(xiàng)目開發(fā)過程中。另外,我們還與多個軟件開發(fā)公司簽訂“學(xué)生實(shí)習(xí)實(shí)訓(xùn)示范基地”協(xié)議,建立長期穩(wěn)定的學(xué)生社會實(shí)踐基地。學(xué)生到軟件公司實(shí)踐基地分兩次進(jìn)行,第一次由公司進(jìn)行項(xiàng)目設(shè)計與開發(fā)過程的培訓(xùn),第二次是實(shí)習(xí),學(xué)生根據(jù)公司的安排,參與到項(xiàng)目設(shè)計開發(fā)的各個開發(fā)小組,參與具體的項(xiàng)目開發(fā)工作。我們通過這樣的方法和途徑,不斷提高學(xué)生參與軟件系統(tǒng)開發(fā)的機(jī)會,使學(xué)生獲得更多的鍛煉和實(shí)踐經(jīng)驗(yàn),提高學(xué)生的軟件系統(tǒng)設(shè)計能力。
3實(shí)踐與效果
為了提高計算機(jī)本科專業(yè)學(xué)生的軟件系統(tǒng)設(shè)計能力,從2006年開始,我們在計算機(jī)科學(xué)與技術(shù)專業(yè)的多個年級按照上述方法和途徑開展教學(xué)活動,對學(xué)生的讀程、編程以及綜合設(shè)計能力進(jìn)行訓(xùn)練,取得了較好的成效,學(xué)生的讀程和編程能力得到了進(jìn)一步的提高。在提高學(xué)生的軟件系統(tǒng)設(shè)計能力的實(shí)踐活動中,我們從如下三個方面開展實(shí)踐活動。第一,在學(xué)生中開展“兩個一”工程活動,實(shí)行本科學(xué)生導(dǎo)師制。2006、2007、2008級的計算機(jī)本科專業(yè)學(xué)生共計210多人、教師80多人次參與“兩個一”工程的活動,設(shè)計與開發(fā)出300多個初級的軟件系統(tǒng)或網(wǎng)站。其中,有些學(xué)生設(shè)計開發(fā)的系統(tǒng)或網(wǎng)站具有較高的實(shí)用價值和實(shí)用性。第二,派出8批次共160多名學(xué)生到實(shí)習(xí)實(shí)訓(xùn)示范基地進(jìn)行實(shí)訓(xùn)和實(shí)習(xí),直接參與了軟件開發(fā)公司的軟件項(xiàng)目設(shè)計與開發(fā)。第三,組織部分學(xué)生參加省級、國家級的計算機(jī)應(yīng)用比賽、程序設(shè)計比賽,網(wǎng)頁設(shè)計等比賽,其中,8人次獲得國家級的獎項(xiàng),16人次獲得省級獎項(xiàng)。通過幾年的實(shí)踐,學(xué)生的軟件系統(tǒng)設(shè)計能力普遍提高,學(xué)生的畢業(yè)設(shè)計完成得比以前更好、更完善,設(shè)計的系統(tǒng)功能更強(qiáng)、界面更漂亮、更實(shí)用。學(xué)生的就業(yè)率在不斷提高,能夠應(yīng)聘到軟件開發(fā)公司工作的學(xué)生也在不斷增多。我們提出提高學(xué)生的軟件系統(tǒng)設(shè)計能力的方法與途徑,通過多年的實(shí)施與實(shí)踐,取得了較為理想的效果。
4結(jié)語
筆者對本校計算機(jī)科學(xué)與技術(shù)本科專業(yè)學(xué)生的軟件系統(tǒng)設(shè)計能力進(jìn)行研究與分析,根據(jù)學(xué)生存在軟件系統(tǒng)設(shè)計能力不足的問題,提出了提高學(xué)生軟件系統(tǒng)設(shè)計能力的一些方法與途徑,并在教學(xué)中實(shí)施和落實(shí),取得了較好的效果。我們將對它們作進(jìn)一步的完善和凝煉,向更多的專業(yè)推廣。