車戰(zhàn)斌
摘要:本文分析軟件類專業(yè)與傳統(tǒng)專業(yè)能力提高規(guī)律的區(qū)別,指出軟件類專業(yè)傳統(tǒng)教學體系的不當之處,認為軟件類專業(yè)的專業(yè)基礎課實際上是提高專業(yè)技術水平的專業(yè)理論課,與傳統(tǒng)專業(yè)的專業(yè)基礎課有本質的區(qū)別?;谶@一認識,提出編制培養(yǎng)計劃的指導性原則。
關鍵詞 :軟件人才培養(yǎng);教學規(guī)律;培養(yǎng)模式;培養(yǎng)計劃
中圖分類號:G642 文獻標識碼:B
軟件技術類專業(yè)是指在計算機類專業(yè)教學中以軟件開發(fā)、軟件維護、軟件工程管理等為主要專業(yè)定位,或是在此基礎上的專業(yè)領域軟件開發(fā)專業(yè)(例如游戲軟件開發(fā)方向等)。近年來,在計算機教育方面,軟件開發(fā)類專業(yè)得到了長足的發(fā)展,特別是在規(guī)模上,隨著全國35所示范性軟件學院的建立,全國各地也辦了類似的旨在培養(yǎng)應用型軟件高級人才的軟件學院。然而,目前不容樂觀的是,軟件人才的培養(yǎng)從數(shù)量上說似乎已經滿足了軟件行業(yè)的需要,甚至已經有些過剩,但是從軟件企業(yè)傳來的信息確是軟件企業(yè)“不招應屆畢業(yè)生”、大量軟件企業(yè)找不到合適的人才。這個一個側面反映了軟件類人才培養(yǎng),還沒有從根本上適應市場的需求,培養(yǎng)的人才的合格率還太低。
目前,軟件類專業(yè)的教學改革可以說是個熱點,特別是教育部批準舉辦的35所軟件學院都在教學改革上做出了很大成績。然而,大多教學研究都停留在實踐教學改革,課程體系改革等具體操作的層面上。對于軟件教育的規(guī)律是什么?軟件類專業(yè)與其他傳統(tǒng)學科有什么區(qū)別?研究者大都沒有給出系統(tǒng)的結論。
目前,軟件人才培養(yǎng)方面的研究和實踐,歸納起來有以下幾個方面的改革趨勢:
(1) 機制創(chuàng)新。國家示范性軟件學院和各地方的軟件學院都對軟件學院教學計劃的制定給予了較大的自由度。辦學收費標準也較高,使得軟件學院的硬件設施普遍較之普通院系優(yōu)越,這樣一定程度上提高了培養(yǎng)質量。文獻[1-2]都對此進行了有益的探討。
(2) 實踐環(huán)節(jié)改革。普遍把到企業(yè)實習看作是提高人才能力的好辦法。實際上一些重點院校的學生本身素質和能力就較高,直接到企業(yè)實習效果較好,而大量普通院校的學生直接到企業(yè)實習實際效果并不太好。文獻[3-4]分別研究了這方面的改革情況。
(3) 本科教育職業(yè)化。把本科教育完全改造成技術培訓,完全扔掉本科教育基本培養(yǎng)規(guī)格。應該說把軟件人才培養(yǎng)向職業(yè)培訓轉化是對原來普通本科教育的一個極端化改革,但是如果沒有正確的軟件人才培養(yǎng)規(guī)律作指導,這種改革勢必會造成軟件人才理論不扎實、后勁不足,所以,需要在對軟件人才培養(yǎng)規(guī)律的清晰認識基礎上進行改革。
本文分析了軟件專業(yè)與傳統(tǒng)專業(yè)的區(qū)別,指出了軟件專業(yè)與傳統(tǒng)學科,教學規(guī)律和認識規(guī)律的不同之處,在此基礎上提出了軟件類專業(yè)教學計劃和課程體系編制的指導性原則。希望通過本文能夠為同行提供一個新的視角。
1軟件專業(yè)知識體系、能力提高模式與傳統(tǒng)學科的比較
專業(yè)教育對學生的作用可以歸納為兩個方面,一是專業(yè)、學科知識體系的逐步完善,二是解決學科問題能力的提高。圖1表示了學生培養(yǎng)過程中專業(yè)能力提高和知識能力提高示意圖。
圖1中虛線表示傳統(tǒng)學科的知識水平能力水平提高在大學教育過程中的變化,實線是軟件技術類專業(yè)的情況。
在學科領域中,傳統(tǒng)學科知識體系已經比較完整,工程化設計、計算方法已經相對成熟。學生知識提高的過程與能力提高的過程并不是完全同步的。大學教育單從學科能力提高方面說,可以說是一個比較封閉的過程,也就是沒有學專業(yè)課之前,幾乎無法使用專業(yè)的知識體系解決問題,就是說,解決專業(yè)問題能力的提高很大程度上是從學習專業(yè)課開始的。但是,由于傳統(tǒng)學科的設計、計算等都已經比較成熟,對于同一個問題的解決方法基本差別不大,所以在學科基礎課學好的前提下,學生可以在很短時間內,就能使專業(yè)技術能力有比較大的提升。
軟件類專業(yè)則不同。一方面,即使沒有雄厚的專業(yè)理論基礎,也可以學會基本的開發(fā)技術(專業(yè)技術),但是其開發(fā)能力、水平的提高,必須在繼續(xù)學習專業(yè)理論且不斷實踐中得到提高,其提高是緩慢的。可以說是一個漸進的過程。學生入學一年級就可以直接接觸專業(yè)方法(即編程),具有初步的能力,然后隨著專業(yè)理論課程的學習,在掌握知識的同時,逐步提高解決問題的能力,和解決問題的質量。也即知識的積累和能力的提高是同步進行、相互促進的。
2對軟件學科教學體系的新認識
傳統(tǒng)專業(yè)知識體系一般可由三部分組成:即自然科學基礎、學科基礎理論、專業(yè)知識和方法。例如針對自動化專業(yè),其自然科學基礎包括數(shù)學、工程數(shù)學、物理等;學科基礎知識包括電路理論、電機與拖動、電子技術、控制理論等;專業(yè)課主要包括兩個方面,一是工程化的控制系統(tǒng)設計方法,二是具體的控制電路及設備的選擇或實現(xiàn)技術。這個體系的特點是,專業(yè)技術課的學習依賴于自然學科基礎(如數(shù)學)。專業(yè)課的學習依賴于專業(yè)基礎課的知識體系。也就是說,傳統(tǒng)學科的知識體系可以說成是金字塔形。
而軟件類專業(yè)從大的方面雖然也可以分成自然科學基礎、專業(yè)理論、專業(yè)技術,但是三者之間的關系卻和傳統(tǒng)專業(yè)有本質的不同。專業(yè)理論知識依賴于自然科學基礎,專業(yè)技術能力一定程度也依賴于自然科學基礎;專業(yè)技術知識的學習對于專業(yè)理論的依賴并不明顯,而專業(yè)技術能力的提高卻依賴于專業(yè)理論的學習。也就是說,學會專業(yè)技術知識并不依賴于太多的專業(yè)理論,但是學好專業(yè)技術,提高解決問題的能力,專業(yè)理論必不可少,并且起到不可替代的作用。
所以,要改革傳統(tǒng)軟件類專業(yè)的教學體系必須先從認識軟件類專業(yè)和傳統(tǒng)學科的差異著手,將自然科學基礎、專業(yè)基礎理論、專業(yè)技術課程的傳統(tǒng)教學體系,改為自然科學基礎、專業(yè)技術先行,專業(yè)理論適當延后的教學體系。
圖2粗略地表示出了兩種教學體系的區(qū)別。圖中橫坐標是每個學期的學時數(shù),縱坐標是學生在校的時間。在新的教學規(guī)律指導下的新的教學體系應該適當?shù)匮雍髮W習自然科學基礎的時間。專業(yè)技術包括利用開發(fā)語言開發(fā)平臺,后期是專業(yè)開發(fā)的實踐。專業(yè)理論逐漸展開,用專業(yè)理論課的學習促進學生專業(yè)能力的提高。最終,學生的知識體系并沒有殘缺,但是在學習期間能力的提高更符合軟件學科的教學目標。
不難看出,軟件技術類專業(yè)人才培養(yǎng)與傳統(tǒng)學科有著很大的區(qū)別。只有理解和遵循這些規(guī)律,才能更好地高效率地培養(yǎng)軟件人才。這些規(guī)律必須反映到人才培養(yǎng)方案的制訂中,否則,就不可能培養(yǎng)出符合市場需要的人才。雖然軟件類專業(yè)目前已經多樣化,建立在軟件技術基礎上的專業(yè)和專業(yè)方向很多,但是作為軟件技術的核心能力和知識體系還是基本相同的。所以,軟件類專業(yè)的培養(yǎng)計劃制訂,必須遵守以下原則:
(1) 自然科學基礎課程寬厚原則。如數(shù)學是軟件技術類專業(yè)提高邏輯思維能力的重要課程,并且線性代數(shù)、離散數(shù)學、概率與數(shù)理統(tǒng)計等課程都會對程序員解決問題提供靈感。所以,在本科教學計劃中,應該把自然科學基礎作為軟件類專業(yè)的最主要課程,同時在開設時機上,要改變過去必須在前兩年開設完畢的思維,可以分布在學習的各個學期。
(2) 以核心能力培養(yǎng)為主線,兼顧不同專業(yè)方向。軟件技術類專業(yè)無論專業(yè)方向如何,其核心能力都是相同的。概括來說就是兩個能力,即程序及軟件設計能力和軟件工程能力。這兩個能力,一方面是軟件技術能力,一方面是軟件工程能力,軟件工程能力也是以軟件技術能力為基礎的。所以,在進行培養(yǎng)計劃制訂的工程中,必須把核心能力的培養(yǎng)放在首位,然后通過適當?shù)挠嬎銠C科學、通訊原理、電子信息等了解性課程拓寬學生的專業(yè)領域。