計算機類學生軟件系統設計能力培養

時間:2022-06-04 04:17:00

導語:計算機類學生軟件系統設計能力培養一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

計算機類學生軟件系統設計能力培養

隨著中國經濟的迅猛發展,經濟規模和經濟領域不斷擴大;信息化程度也在不斷提高,政府對信息化建設的重視程度日益增強。目前,除了我國自身的信息化建設需要大量的軟件人才以外,還有大量的軟件外包在我國進行,現有的軟件技術人才遠遠不能滿足軟件開發公司的需要。盡管在爆發世界金融危機的2008—2009年,中國企業對軟件人才的需求也沒有減少,每年需求在60萬人左右。雖然每年有大量的高校計算機本科專業畢業生,但是,軟件人才仍存在較大缺口。在軟件人才供求關系上,出現了公司、企業招不到所需要的軟件人才,而計算機本科專業畢業生卻就業困難的局面。為此,我們對計算機本科專業學生軟件系統設計能力培養方法和途徑進行研究,在計算機本科專業中培養一批適應社會需求的軟件系統設計人才,具有現實和重要的意義。

1軟件系統設計能力現狀與分析

多年來,我們從本校計算機本科專業學生的畢業實習、畢業設計,就業應聘、用人單位的考核及反饋的意見來看,學生較好地掌握了計算機科學與技術專業的基本理論和專業知識,具備了計算機的基本操作、程序設計方法、數據庫建立和網站建設等專業能力,有少數學生還具備了較強的軟件系統設計能力。從學生的就業情況統計分析來看,我校計算機科學與技術專業學生約有10%左右的學生受聘于軟件開發企業,從事軟件系統的設計與開發工作。也說明我們現在培養的計算機本科專業的學生中,只有10-15%的學生軟件系統設計與開發能力得到軟件公司的認可,他們的軟件系統設計能力比較強的,能夠達到軟件公司的要求。但是,大部分學生的軟件系統設計能力相對較弱,不能滿足社會的要求。我們通過對本校計算機本科專業的課程體系結構、教學過程的各個環節進行研究分析,認為學生的軟件設計能力還存在如下幾點不足:

(1)算法設計與分析能力不足。算法設計與分析是計算機本科專業學生編程的基礎,是人類借助計算機解決實際問題的重要一步。但是,從教師的教學以及學生的學習,都沒有得到很好的重視。主要體現在:教師在程序設計課程的講授時,對算法分析與設計講解得不夠,只偏重于程序語句的解讀,忽視算法設計過程的講解和訓練;而學生也只滿足于課程簡單算法的代碼描述,不重視算法的分析與設計過程的練習,結果造成學生僅僅掌握了一些簡單問題的編程,而對較復雜的實際問題的程序設計則缺乏獨立的解決能力。

(2)學生讀程與編程量少,訓練不足。目前,學生閱讀程序量很少,主動找相關程序來閱讀理解的不多,大部分只是為了應對作業去查找一些相關的代碼。任課教師對學生有閱讀程序的要求,但真正對學生進行訓練和嚴格要求的卻不多,結果有部分學生看不懂常用算法的代碼或復雜一些的程序。學生在校期間,編寫的程序量少,大部分學生只滿足于完成老師布置的編程作業,沒有再多做練習,有些學生四年時間編寫的代碼總量都不到5000行。但是,按照最基本的要求,計算機專業學生的編程至少應達到20000行到50000行以上的程序量[2]。因此,學生的軟件系統設計能力不足,這是一個主要的原因之一。

(3)軟件綜合設計能力不足,接觸的案例少。軟件系統設計是一個綜合設計過程,要求學生掌握軟件工程、數據庫、面向對象程序設計等多方面技術和具有綜合應用能力。但是,學生掌握的是分散的、各自獨立的技術,綜合多門技術的軟件設計能力明顯不足,有些會做系統的界面,卻不會設計數據庫;有些系統界面和數據庫都建立了,卻相互不能連接;有少數學生直到畢業還設計不出一個能夠正常運行的簡單系統。原因是重視了各門課程的教學,而忽視了能夠提高學生軟件綜合設計能力的案例分析課程和綜合設計實踐課程的設置與教學。學生接觸的軟件系統案例少,沒有得到較為完整和系統的訓練。

(4)參與軟件系統開發的機會少,缺乏應有的鍛煉和實踐經驗。很多學生的軟件系統設計水平僅停留在模仿教材的例子上,還談不上設計出能夠解決實際問題的系統。這與學生參與軟件公司項目開發或教師項目開發的機會少有很大的關系。目前,學生到軟件公司實習時間短,公司不愿意將開發項目這樣重要的任務交給實習生來完成,學生沒有機會直接參與公司的項目開發,有些能參與,也只能參與其中的一小部分;教師承擔的開發項目能夠接納的學生數量有限,不能滿足學生的實踐需要。因此,學生缺乏軟件系統設計的實踐經驗和應有的鍛煉。

2培養學生軟件系統設計能力的方法與途徑

2.1讀程與編程能力的培養

我們根據學生讀程量少,掌握常用算法代碼不多的情況,在編程基礎課程的教學中,采用“讀程目標管理”方法。要求任課教師在一門課程的教學中,必須為學生提供500個以上的程序作為閱讀材料,并對學生的讀程能力進行訓練。要求學生必須閱讀并理解500個以上的程序,學生通過閱讀掌握一些常用的算法。課程結束時,教師對學生進行單獨的讀程理解考核,如:給出一個程序,要求學生在規定的時間內講解出程序實現的功能或運行的結果??己撕细?給一定的學分,不合格,可以重考,直至合格為止。對于軟件系統設計課程,教師為學生提供1~2個實用系統的原代碼,作為案例讓學生閱讀理解;在此基礎上,要求學生閱讀不少于5系統的原代碼,以掌握面向對象軟件系統的基本架構、功能調用以及常用功能子程序的算法設計與實現。在擴大程序和系統原代碼閱讀量的同時,不斷提高學生的編程能力。我們采用“編程目標管理、逐門課程分解”的方法,將編程總量按照開設的語言設計課程的重要程度逐門分解編程量。如:假設要求每個學生四年的編程總量為至少要達到20000行,最好能達到50000行以上。則根據開設的C、C++或C#、、SQLServer、案例分析與設計等程序設計系列課程,要求學生每門課程的編程量都在5000行以上,最好能達到10000行以上。此外,還通過組織學生參加系級的、校級的、省級甚至國家級的程序設計大賽等形式,促進學生編程能力的提高。

2.2算法分析與設計能力的培養

在開設的專業基礎課程中,C語言程序設計、數據結構等課程對于培養學生的算法設計能力至關重要。我們采用“對算法步驟描述再用標準語言編寫代碼實現,閱讀程序然后歸納出算法的步驟”正反雙向訓練的方法,以提高學生的算法設計能力。教師在課堂教學中,必須嚴格按照程序設計的過程和方法進行講解,對解決的問題首先要做好算法分析與設計,然后再用標準語言進行描述,并在學生的作業或編程練習中嚴格要求,使學生逐步養成編寫代碼之前,先作好算法的分析與設計,逐步培養學生解決實際問題的能力和方法。通過讀程訓練,反向要求學生描述程序實現的步驟,歸納出程序實現的功能。通過這樣正反兩方面對學生的算法分析與設計進行訓練,學生的算法設計能力就會得到切實的提高,從而促進學生編程能力的提高。

2.3軟件系統設計能力的培養

軟件系統設計是指在面向對象程序設計語言基礎上,根據軟件工程的設計原則、設計模式以及模塊化的設計方法,設計出一個比較完整的軟件系統構架、前后臺界面、各模塊之間的調用關系以及各功能子模塊的詳細設計。我們通過以下三種途徑,提高學生的軟件系統設計能力。

(1)采用“案例教學與學生綜合設計訓練”相結合的方法,給學生開設《案例分析與設計》課程。通過實用的系統案例,對C/S和B/S系統的總體構架、前臺、后臺設計、各模塊之間的調用、各功能子模塊的詳細設計進行逐項訓練。在此基礎上,要求學生參考系統案例進行軟件系統的綜合設計練習。根據實際的應用,設計出2-3個軟件系統,并編程實現。

(2)采用“導師制和項目驅動”方法,通過軟件系統開發實踐活動,培養學生的軟件綜合設計能力。如:我們制訂了“兩個一”工程實施方案,實行本科學生導師制。導師讓學生參與自己的項目研究與開發,或給出具有解決實際問題的項目,以項目方式驅動學生進行軟件系統的設計并實現。學生在導師的指導下,在畢業實習前,利用課余時間設計出“1個”軟件系統和“1個”網站,并以此作為衡量學生能否參與畢業實習的條件,以此促進學生軟件系統設計能力的提高。

(3)采用“學生參與教師的項目開發和到軟件公司實踐”相結合的方法,增加學生的實踐經歷,提高學生的系統設計實踐能力。我們鼓勵有項目的老師吸收本科學生參與項目的設計與開發,使學生盡量接觸到真正解決實際問題的項目開發過程中。另外,我們還與多個軟件開發公司簽訂“學生實習實訓示范基地”協議,建立長期穩定的學生社會實踐基地。學生到軟件公司實踐基地分兩次進行,第一次由公司進行項目設計與開發過程的培訓,第二次是實習,學生根據公司的安排,參與到項目設計開發的各個開發小組,參與具體的項目開發工作。我們通過這樣的方法和途徑,不斷提高學生參與軟件系統開發的機會,使學生獲得更多的鍛煉和實踐經驗,提高學生的軟件系統設計能力。

3實踐與效果

為了提高計算機本科專業學生的軟件系統設計能力,從2006年開始,我們在計算機科學與技術專業的多個年級按照上述方法和途徑開展教學活動,對學生的讀程、編程以及綜合設計能力進行訓練,取得了較好的成效,學生的讀程和編程能力得到了進一步的提高。在提高學生的軟件系統設計能力的實踐活動中,我們從如下三個方面開展實踐活動。第一,在學生中開展“兩個一”工程活動,實行本科學生導師制。2006、2007、2008級的計算機本科專業學生共計210多人、教師80多人次參與“兩個一”工程的活動,設計與開發出300多個初級的軟件系統或網站。其中,有些學生設計開發的系統或網站具有較高的實用價值和實用性。第二,派出8批次共160多名學生到實習實訓示范基地進行實訓和實習,直接參與了軟件開發公司的軟件項目設計與開發。第三,組織部分學生參加省級、國家級的計算機應用比賽、程序設計比賽,網頁設計等比賽,其中,8人次獲得國家級的獎項,16人次獲得省級獎項。通過幾年的實踐,學生的軟件系統設計能力普遍提高,學生的畢業設計完成得比以前更好、更完善,設計的系統功能更強、界面更漂亮、更實用。學生的就業率在不斷提高,能夠應聘到軟件開發公司工作的學生也在不斷增多。我們提出提高學生的軟件系統設計能力的方法與途徑,通過多年的實施與實踐,取得了較為理想的效果。

4結語

筆者對本校計算機科學與技術本科專業學生的軟件系統設計能力進行研究與分析,根據學生存在軟件系統設計能力不足的問題,提出了提高學生軟件系統設計能力的一些方法與途徑,并在教學中實施和落實,取得了較好的效果。我們將對它們作進一步的完善和凝煉,向更多的專業推廣。