摘要:針對軟件開發(fā)類專業(yè)在人才培養(yǎng)中存在合格率低、學(xué)生編碼能力弱等狀況,根據(jù)軟件開發(fā)的能力需求特點,在分析現(xiàn)有軟件開發(fā)培養(yǎng)模式的基礎(chǔ)上,提出針對“軟件藍(lán)領(lǐng)”的逆向教學(xué)模式,結(jié)合高職軟件開發(fā)類專業(yè)的教學(xué)實際,在ASP程序設(shè)計課程中應(yīng)用并取得較好的實踐效果。
關(guān)鍵詞:軟件藍(lán)領(lǐng);教學(xué)模式;逆向教學(xué);人才培養(yǎng)
軟件技術(shù)類專業(yè)是指在計算機類專業(yè)教學(xué)中以軟件開發(fā)、軟件維護(hù)、軟件工程管理等為主要專業(yè)定位,或是在此基礎(chǔ)上的專業(yè)領(lǐng)域軟件開發(fā)專業(yè)(例如游戲軟件開發(fā)方向等)[1]。近年來,整個軟件業(yè),出現(xiàn)了令人深思的現(xiàn)象。在計算機教育方面,軟件開發(fā)類專業(yè)得到了長足的發(fā)展,特別是在規(guī)模上,專門的軟件學(xué)院、含有計算機系的高職院校、含有計算機系的本科院校,每年輸出大量的軟件開發(fā)類畢業(yè)生。軟件人才的培養(yǎng)從數(shù)量上似乎已經(jīng)滿足了軟件行業(yè)的需要,甚至已經(jīng)有些過剩,但是,筆者也曾經(jīng)代表軟件企業(yè)進(jìn)行過人才招聘,在對畢業(yè)生進(jìn)行技術(shù)面試時,大多數(shù)畢業(yè)生不僅知識的面不豐富,對目前主流的開發(fā)技術(shù)了解甚少,在知識的深度上更是與實際開發(fā)相去甚遠(yuǎn),這已經(jīng)成為了軟件企業(yè)的掣肘。大量軟件企業(yè)找不到合適的人才,從側(cè)面反映了軟件類人才培養(yǎng)還沒有從根本上適應(yīng)市場的需求,培養(yǎng)的人才合格率還太低[1]。
1現(xiàn)有軟件開發(fā)教育
傳統(tǒng)的教學(xué)方法即上課、練習(xí)、作業(yè)、考試等,此種方式實質(zhì)上還是以課堂講授為主,只適合于教出傳統(tǒng)意義上的“好學(xué)生”,而且也只適合于傳授理論知識,并不適合實踐教學(xué)。然而目前軟件職業(yè)教育的現(xiàn)狀是:1)教育部要求的培養(yǎng)目標(biāo)為畢業(yè)生要具備較強的實踐動手能力,最好能與企業(yè)實現(xiàn)人才培養(yǎng)的“無縫對接”,即學(xué)校培養(yǎng)的學(xué)生就是企業(yè)需要的人才。2)我國目前的國情決定了報考高職學(xué)院的學(xué)生錄取分?jǐn)?shù)不會很高,即絕大多數(shù)學(xué)生都不是所謂的“優(yōu)等生”。3)教育部要求學(xué)制為三年。以上種種都決定了傳統(tǒng)的教學(xué)方法在本質(zhì)上就不適合二年制軟件技術(shù)人才的培養(yǎng),因此唯一的出路就是探索新的教學(xué)方法[2]。
2 “軟件藍(lán)領(lǐng)”的逆向教學(xué)模式
2.1 “軟件藍(lán)領(lǐng)”的職業(yè)定位
比較軟件業(yè)發(fā)展比較成功的印度,可以考察目前我國軟件教育的改革思路。在印度,軟件從業(yè)人員從初級到高級人才結(jié)構(gòu)呈“金字塔”形,占大部分的是初級軟件人才,也就是“軟件藍(lán)領(lǐng)”;而目前我國軟件業(yè)人才結(jié)構(gòu)卻呈“橄欖”形,缺乏大量從事基礎(chǔ)軟件編程工作的“軟件藍(lán)領(lǐng)”。因此,很多學(xué)校、培訓(xùn)機構(gòu)都正著手培養(yǎng)“軟件藍(lán)領(lǐng)”[2]。如何培養(yǎng)“軟件藍(lán)領(lǐng)”是目前軟件學(xué)院、含有計算機系的高職院校應(yīng)該探索的問題。
2.2 “軟件藍(lán)領(lǐng)”的職業(yè)素質(zhì)
2006級的一名學(xué)生,在面試一家專門制作收費軟件的公司時,公司的軟件項目經(jīng)理在得知他在學(xué)校使用的是SQL Server數(shù)據(jù)庫,而不是Oracle時,并沒有放棄他,而是演示了Oracle的使用方法。到了第3天,項目經(jīng)理對他進(jìn)行了Oracle的考核,發(fā)現(xiàn)他可以在Oracle的平臺上實現(xiàn)比較復(fù)雜的SQL查詢。接下來,項目經(jīng)理提供給他一個網(wǎng)站的源程序,讓他看懂其中的一個部分,并按要求進(jìn)行修改。在第3天的考核中,該學(xué)生也達(dá)到了要求。最后順利地進(jìn)入該公司。
從這個例子中,我們認(rèn)識到,“軟件藍(lán)領(lǐng)”的培養(yǎng),目標(biāo)就是達(dá)到對某幾個基本技能的熟悉,可以舉一反三就行。
2.3 “軟件藍(lán)領(lǐng)”的職業(yè)教育
軟件的開發(fā)過程常常是非常辛苦的,培養(yǎng)一個軟件藍(lán)領(lǐng),除了要求他可以熟練掌握某項編程工具以及編程方法之外,更重要的還有耐心細(xì)致以及遇到苦難不屈不撓的職業(yè)道德素質(zhì)。因此,正如文獻(xiàn)[3-5]中作者總結(jié)的那樣,職業(yè)教育主要分為兩個方面:職業(yè)技術(shù)教育和職業(yè)道德素質(zhì)教育。軟件高職教育也是如此。目前,像高職類學(xué)校的??粕蠖疾荒芙邮荛L篇大論的講解,而且由于他們多年沒有養(yǎng)成良好的主動學(xué)習(xí)習(xí)慣,懶于動腦動手,所以老師們在課堂上的講解和練習(xí)效果并不理想;在職業(yè)道德素質(zhì)教學(xué)上,傳統(tǒng)的理論講授學(xué)生既不愛聽也不理解,即使老師用實際案例來講,學(xué)生也只是聽熱鬧,沒有任何切身感受,當(dāng)然就更談不上把老師所講的內(nèi)容變?yōu)樽陨淼乃刭|(zhì)修養(yǎng)了。因此筆者認(rèn)為,學(xué)生的實踐動手能力和素質(zhì)養(yǎng)成應(yīng)該在實踐中培養(yǎng),要用環(huán)境來塑造人。
2.4 “軟件藍(lán)領(lǐng)”的逆向教育模式
之所以稱之為“逆向”,是先確定了技能目標(biāo),再由目標(biāo)進(jìn)行規(guī)劃教學(xué),進(jìn)行教學(xué)設(shè)計。這其實跟“基于工作過程”的思想是吻合的。但是,因為軟件開發(fā)技能的培養(yǎng)與其他工科類的人才有些不同,很多看似單項的技能,其實是不能完全像“基于工作過程”中提到的,把典型的任務(wù)和工作場景定下來,單項訓(xùn)練。比如做一個“用戶管理經(jīng)典頁面”,這從軟件的需求來說是很典型的,很單項的,可以成為一個組件,單獨包含。但是學(xué)生在做的時候,其實就涉及很多復(fù)雜的知識點,如果強行地讓學(xué)生囫圇下去,是不能掌握這一單項技能的。
因此,我們的“逆向”,是先從實際應(yīng)用中分割好技能目標(biāo)。在教學(xué)的具體實施中,分成兩大階段。在講授必備知識時,還是采用“子任務(wù)驅(qū)動”;在模擬或真實項目實施中,采用“項目驅(qū)動”。
我們針對B/S模式的開發(fā)實際,從實際的企業(yè)出發(fā),“逆向”分析,把單項技能做了細(xì)化,如表1所示。
拿ASP程序設(shè)計這門課的教學(xué)為例,整個教學(xué)分成了兩大階段,4個步驟。第一步驟主要完成“熟練掌握SQL Server 2000數(shù)據(jù)庫”,讓學(xué)生可以熟練設(shè)計并實現(xiàn)一個數(shù)據(jù)庫。第二步驟主要完成“熟練腳本語言:Javascript”。第三步驟主要完成“熟練下列程序設(shè)計語言之一:ASP”。這三步驟構(gòu)成了學(xué)習(xí)的第一個階段,目的是訓(xùn)練出學(xué)生的單項技能,達(dá)到表1的要求。
在教學(xué)的第2個大階段,在教師的工作室中,完成模擬或商用項目。最先的模擬項目,大部分是對學(xué)院以及各系的網(wǎng)站進(jìn)行維護(hù)和改版。很多這種網(wǎng)站,均采用了流行的CMS系統(tǒng),學(xué)生可以在大的框架上進(jìn)行高效的開發(fā),讓他們在巨人的肩膀上看到軟件著重的開發(fā)思想和設(shè)計思路,從編碼員中開始成長。
這種針對“軟件藍(lán)領(lǐng)”的逆向教學(xué)模式目前已經(jīng)在我校2008級的學(xué)生中開始實施,效果比較明顯。
3結(jié)語
從根本上說,教學(xué)改革實質(zhì)就是把適應(yīng)計劃經(jīng)濟的教育改革為適應(yīng)市場經(jīng)濟的教育,市場需要什么樣的人,學(xué)校就應(yīng)該培養(yǎng)什么樣的人,學(xué)校一切行為的首要目標(biāo)就是不斷提高教學(xué)質(zhì)量以適應(yīng)市場經(jīng)濟的需要。以上就是一個高職教育工作者對教學(xué)方法改革的一些想法和探索,以及產(chǎn)生這些想法所依據(jù)的思想。
參考文獻(xiàn):
[1] 車戰(zhàn)斌. 軟件學(xué)科人才培養(yǎng)教學(xué)規(guī)律的再認(rèn)識[J]. 計算