摘要:針對“卓越工程師培養(yǎng)計劃”中工程和創(chuàng)新能力培養(yǎng)目標,通過實際對比Java課程不同教學(xué)模式產(chǎn)生的效果,探討理論與實踐并重的教學(xué)方法,總結(jié)項目式Java程序語言課程的關(guān)鍵改進環(huán)節(jié),利用合作企業(yè)的項目資源考核學(xué)生的理論及實踐能力并驗證教學(xué)改進的實際效果。
關(guān)鍵詞:Java課程;理論與實踐并重;工程和創(chuàng)新;教學(xué)模式
文章編號:1672-5913(2013)03-0093-04
中圖分類號:G642
強化培養(yǎng)學(xué)生的工程和創(chuàng)新能力是“卓越工程師培養(yǎng)計劃”的特點之一。工程能力亦稱生產(chǎn)技術(shù)能力,是人們將科學(xué)知識或技術(shù)發(fā)展的研究成果應(yīng)用于生產(chǎn)過程的能力。創(chuàng)新能力則是探索未知領(lǐng)域和對已知領(lǐng)域破舊立新的研發(fā)能力。因此,“卓越型人才”必須兼具應(yīng)用與研發(fā)能力。當前基于“卓越計劃”的課程改革往往過于側(cè)重應(yīng)用型人才培養(yǎng),在課程設(shè)置上也過于案例化、項目化和實踐化,導(dǎo)致學(xué)生在實踐應(yīng)用過程中知其然而不知其所以然。然而,創(chuàng)新的過程是基于客觀規(guī)律和科學(xué)理論的,扎實的理論基礎(chǔ)才是學(xué)生進行創(chuàng)新研究的原動力。如何令實踐應(yīng)用充分圍繞理論知識并權(quán)衡實踐與理論教學(xué)的尺度,是筆者針對Java課程改革所要討論的問題。
1 理論型與實踐型教學(xué)的對比
為了實際了解理論教學(xué)與實踐教學(xué)的授課效果,筆者以上海應(yīng)用技術(shù)學(xué)院軟件工程專業(yè)2個班級的82名學(xué)生為調(diào)查對象,對Java課程同一章節(jié)的2種教學(xué)方法產(chǎn)生的教學(xué)效果進行對比。此章節(jié)為Java程序語言中具有代表性的面向?qū)ο缶幊碳夹g(shù)。教學(xué)方法是教師對其中一個班級(理論班)進行傳統(tǒng)的課堂理論授課,詳盡講述繼承和多態(tài)的概念并布置相關(guān)內(nèi)容的課后作業(yè);對另外一個班級(實踐班)則采用實踐教學(xué)的方法,以銀行賬戶管理系統(tǒng)為項目案例,講述繼承和多態(tài)的概念并讓學(xué)生完成程序的編寫和調(diào)試。教學(xué)效果的對比采用在不提前告知學(xué)生的情況下布置小型項目以測試學(xué)生掌握情況的形式。測試項目為繼承和多態(tài)的典型應(yīng)用案例,如編寫形狀父類并派生出矩形、圓及三角形子類,然后使用多態(tài)的方法計算各形狀的面積,規(guī)定完成的時間為1課時。測試采取閉卷的形式。
根據(jù)測試結(jié)果,學(xué)生掌握的情況大致可分為完全掌握(完整可運行程序)、部分掌握(能寫出父類、子類或多態(tài)的方法,但程序無法正確運行)和沒有掌握(無法正確寫出任何程序)。教學(xué)情況統(tǒng)計如表1所示。
完全掌握的學(xué)生中,實踐班的人數(shù)多于理論班。我們進一步分析這些學(xué)生的答案后發(fā)現(xiàn),實踐班15名學(xué)生基本以課堂案例為模板進行程序功能的修改,因此程序相似度很高;而理論班的5名學(xué)生運用繼承和多態(tài)的概念,從項目要求出發(fā)編寫具有個人特色的程序,因此程序相似度很低。顯然,從教學(xué)效果上來說,理論教學(xué)相較實踐教學(xué)更適合培養(yǎng)具有應(yīng)用創(chuàng)新能力的人才;而從對比的數(shù)據(jù)結(jié)果來看,理論教學(xué)只適合少部分拔尖學(xué)生,實踐教學(xué)則更易于被學(xué)生接受。
部分掌握的學(xué)生中,理論班的人數(shù)多于實踐班。從這部分學(xué)生的答案中發(fā)現(xiàn),理論班中的大部分學(xué)生能夠正確地定義父類、子類或多態(tài),卻無法根據(jù)項目要求寫出完整的程序;而實踐班學(xué)生的錯誤大多是由于死板或錯誤地套用課堂上的案例所造成的,學(xué)生對于案例背后的理論知識一知半解。完全沒有掌握的學(xué)生出現(xiàn)問題的原因與部分掌握學(xué)生出現(xiàn)問題的原因類似,即實踐應(yīng)用缺乏理論支撐,理論運用缺乏實踐指引。
由上述對比結(jié)果可見,2種單一的教學(xué)模式均無法獲得良好的教學(xué)效果。那么,是否結(jié)合2種教學(xué)模式就能取長補短并提升教學(xué)效果?筆者就此問題進行如下探索。
2 理論結(jié)合實踐教學(xué)的探索
理論結(jié)合實踐的教學(xué)模式已被廣泛應(yīng)用于Java課程的教學(xué)。使用較廣泛的模式有以下2種。1)非項目模式。教學(xué)以理論授課作為主要內(nèi)容,結(jié)合幻燈片等多種手段分析小型案例,進行代碼的演示與講解,并在理論課之間穿插實踐上機課程,以幫助學(xué)生鞏固課堂理論知識并進行實際應(yīng)用。2)項目模式。教學(xué)以實際項目作為驅(qū)動,從開始授課就為學(xué)生布置項目任務(wù)并根據(jù)Java課程的各部分理論將項目劃分為模塊,結(jié)合教學(xué)進度讓學(xué)生分階段進行各模塊的開發(fā),逐步完成整個項目。
2.1非項目模式教學(xué)
非項目模式教學(xué)是理論型教學(xué)模式結(jié)合實踐教學(xué)的一種改進,采用的教學(xué)方法依然是以教師為主的講授式教學(xué),輔以實踐課程幫助學(xué)生理解和應(yīng)用理論知識。Java語言課程理論知識眾多,在非項目模式教學(xué)中,理論課與實踐課的課時比例一般為2:1或3:1。充足的理論課時使任課教師能夠詳盡地講解Java的各類基礎(chǔ)理論,可以為學(xué)生應(yīng)用Java程序語言完成各類Java軟件開發(fā)打下扎實的理論基礎(chǔ)。然而Java程序語言中必然存在枯燥且抽象的語法、定義和概念等,一些自制能力較差和對困難準備不足的學(xué)生在面對不斷出現(xiàn)的抽象知識時會產(chǎn)生厭煩和畏縮心理。
此外,由于實踐課時的限制,在實踐項目的安排上,非項目模式教學(xué)一般以課本例題或具有理論針對性的案例為主。雖然此類實踐項目具有理論針對性強以及答案可控性高的優(yōu)點,但由于案例的片面針對性,使實踐項目缺乏實用性。學(xué)生學(xué)會的只是簡單應(yīng)用某特定知識點,對于相對復(fù)雜且綜合性知識要求高的系統(tǒng)開發(fā)依然無從人手,從而產(chǎn)生“學(xué)習這門課程做不出任何有用軟件”的挫敗心理,打擊了學(xué)習積極性并產(chǎn)生應(yīng)付考試的不良學(xué)習態(tài)度。
2.2項目模式教學(xué)
針對上述問題,筆者對上海應(yīng)用技術(shù)學(xué)院卓越工程師試點班的38名學(xué)生采用項目模式的試點教學(xué),期望通過開發(fā)具有實際應(yīng)用價值的小型項目讓學(xué)生了解Java程序語言的實際用途,激發(fā)學(xué)生的興趣并幫助學(xué)生明確學(xué)習目標,從而改善非項目模式存在的問題,探索適合培養(yǎng)“卓越工程師”的教學(xué)模式。
在試點教學(xué)開始前,筆者首先需要確定實踐項目的內(nèi)容。考慮到試點班學(xué)生將在最后1學(xué)年進入合作企業(yè)(塔塔信息技術(shù)股份有限公司)接受培訓(xùn),因此實踐項目小規(guī)模地模擬了該企業(yè)的主要開發(fā)產(chǎn)品——ERP系統(tǒng),名為企業(yè)貨物進銷存管理系統(tǒng)。該項目涵蓋Java程序語言的主要知識點,包括程序流程控制、數(shù)組、類和對象、系統(tǒng)類、輸入輸出系統(tǒng)、GUI圖形界面設(shè)計、數(shù)據(jù)庫操作等。同時,該項目各模塊關(guān)聯(lián)教材各章節(jié)的知識點,也為學(xué)生明確了各階段學(xué)習的目標。
在課時安排上,為了保障項目開發(fā)所需的時間,筆者將理論與實踐課時調(diào)整為各占50%;同時,考慮到學(xué)生已具備C++、數(shù)據(jù)庫等先修課程的基礎(chǔ),因此在理論課中盡量減少純理論知識的講解,著重以項目和程序案例代碼講解為主。目的是讓學(xué)生對案例化的理論知識產(chǎn)生直觀的應(yīng)用感受,進而逐步將代碼中具有特例性的知識內(nèi)容泛化,歸納為教材中的抽象理論,從而使學(xué)生在知識轉(zhuǎn)化的過程中學(xué)到知識,而并非單純地記住知識。
值得注意的是,在試點過程中,筆者發(fā)現(xiàn)項目模式的授課計劃不能依照教材中的目錄順序制訂。以試點項目為例,完整的管理系統(tǒng)開發(fā)一般從數(shù)據(jù)庫操作出發(fā)創(chuàng)建項目,進而設(shè)計系統(tǒng)的模塊類和GUI圖形界面,并在開發(fā)過程中使用流程控制和數(shù)組等一系列Java程序語言內(nèi)容。因此,項目模式的教學(xué)必須根據(jù)項目開發(fā)的流程,安排教材中各章節(jié)內(nèi)容的先后授課次序。實踐證明,這樣的授課計劃有利于實踐課程的順利開展,減少學(xué)生由于學(xué)習枯燥理論而產(chǎn)生的厭煩情緒。根據(jù)試點班學(xué)生的反饋得知,在實際開發(fā)項目的過程中,許多具有創(chuàng)造性的想法是無法通過套用案例實現(xiàn)的。此時,他們會回顧理論課的授課內(nèi)容并通過教材或互聯(lián)網(wǎng)探索適用的理論知識,每當成功運用理論知識實現(xiàn)想法時,都會產(chǎn)生豁然開朗的感受,從而對融會貫通并靈活應(yīng)用理論知識的重要性有了更深刻的認識。
項目開發(fā)需要團隊,更需要積極向上的團隊,不合理的團隊組合會造成學(xué)生的依賴性,甚至有些學(xué)生根本不動手實踐。在試點中,考慮到同寢室學(xué)生交流機會多和生活規(guī)律類似的特點,筆者將團隊以寢室為單位進行劃分,同時根據(jù)個別學(xué)生的要求進行微調(diào)。為了調(diào)動團隊每位學(xué)生的積極性和責任心,筆者采用根據(jù)項目模塊輪換組長的機制。每次輪班的組長負責安排各組員的職責和工作,組織討論模塊需求和設(shè)計方案,統(tǒng)籌書面的工作計劃、設(shè)計方案和模塊代碼。學(xué)生在組長和組員角色的輪換中,紛紛感受到作為組長的壓力和責任、作為組員協(xié)同合作的重要性以及自身努力對于整個團隊的影響。在每一次的模塊開發(fā)中,組員間相互激勵并相互約束,分享成功的喜悅,增進了集體榮譽感以及學(xué)習的主觀能動性。
當然,除了學(xué)生自身的努力以及團隊的協(xié)作外,教師的指導(dǎo)和引領(lǐng)也至關(guān)重要。筆者在試點教學(xué)過程中發(fā)現(xiàn),對于一些知識點涵蓋量大和邏輯性強的模塊,教師需要啟發(fā)學(xué)生思路,指導(dǎo)學(xué)生運用知識,準備相關(guān)的資料并及時與學(xué)生進行交流,從而時刻掌握項目開發(fā)的進度,避免學(xué)生犯不必要的錯誤。此外,在理論授課中,教師應(yīng)根據(jù)項目開發(fā)進度對內(nèi)容作針對性的調(diào)整,著重糾正開發(fā)過程中出現(xiàn)的錯誤,從理論層面分析錯誤的原因,配以相關(guān)案例啟發(fā)學(xué)生找到正確的解決方案。
項目的考核采用教師模擬客戶的形式,從程序的強壯性、功能性以及友好性等方面對軟件的質(zhì)量進行評判。從項目的整體質(zhì)量評判團體分,并參照各模塊中分工和職責的難易度評判個人分,進而得出綜合分。在總評分方面,將項目分納入考核成績中,并將其所占分數(shù)比例提高到50%,真正在成績上反映出實踐和理論的并重。
3 項目式Java程序語言教學(xué)的關(guān)鍵環(huán)節(jié)
通過實踐探索,筆者可以對本文第1節(jié)最后提出的問題作出肯定回答,即實踐結(jié)合理論的教學(xué)方式可以提升教學(xué)效果,但前提是必須把握如下幾個重點環(huán)節(jié)。
1)實踐項目內(nèi)容的選取。Java程序語言的應(yīng)用極為廣泛,案例項目眾多。在項目的選取上必須注重內(nèi)容的實用性和趣味性、知識的涵蓋量以及開發(fā)的周期。選取合理的項目,可以激發(fā)學(xué)生的興趣,加深學(xué)生對理論知識的理解,為學(xué)生運用創(chuàng)新思維創(chuàng)造空間。
2)授課計劃和課時的安排。多數(shù)情況下,項目模式教學(xué)方法需要更長的實踐課時,這就導(dǎo)致理論課時的縮減。因此,在授課計劃的制訂過程中必須精煉理論課的內(nèi)容。教師可以根據(jù)學(xué)生對于C++等類似于Java程序語言的課程掌握情況以及理論與實際項目的關(guān)聯(lián)程度,針對性地篩選授課內(nèi)容,并在理論課中通過案例教學(xué)加深學(xué)生對抽象理論的理解,在實踐課中培養(yǎng)學(xué)生從項目開發(fā)中歸納泛化理論知識的能力。
3)團隊的組織。由于學(xué)生之間存在著學(xué)習習慣、生活習慣、興趣愛好等差異,團隊的組織應(yīng)從學(xué)生的主觀意向出發(fā),讓關(guān)系較親近的學(xué)生組成一個團隊,這樣有利于團隊凝聚力的培養(yǎng)。此外,教師可在項目開發(fā)過程中創(chuàng)造客觀條件,培養(yǎng)團隊中每位組員的主觀能動性,安排每位學(xué)生輪流扮演組長和組員的角色,讓學(xué)生感受組長工作的難度,體會組員協(xié)同組長工作的重要性,在團隊工作中培養(yǎng)集體榮譽感和責任心。
4)教師的作用。Java程序語言是一門應(yīng)用性強和理論多樣的課程。學(xué)生容易對日漸增多的理論產(chǎn)生厭煩情緒,更容易在屢次失敗的實踐中喪失學(xué)習信心。因此,教師需要把控課程的進度,突出每一次授課的重點,避免照本宣科。對于較難的抽象理論,教師需結(jié)合趣味性強且實用性高的案例以幫助學(xué)生理解。同時,教師必須及時對學(xué)生遇到的困難和問題進行指導(dǎo),可用相似例子或相關(guān)理論啟發(fā)學(xué)生思路,鼓勵學(xué)生通過自己的努力解決問題。此外,對于授課的內(nèi)容,教師應(yīng)根據(jù)學(xué)生對于實踐和理論的掌握情況進行調(diào)整,尤其應(yīng)針對學(xué)生對理論理解的偏差以及在實踐中出現(xiàn)的錯誤,及時進行分析和糾正。
5)考核的方式。除了傳統(tǒng)的以試卷形式考核學(xué)生對于理論知識的掌握情況,實踐項目的完成情況同樣應(yīng)作為考核重點。實踐項目的考核應(yīng)合理評估學(xué)生的實踐應(yīng)用能力,讓學(xué)生理解實際應(yīng)用的重要性。教師在考核中需大幅增加實踐成績的比例,在實踐評分中除了需要根據(jù)項目的完成情況給出團隊成績外,還需要根據(jù)每一位學(xué)生階段性的工作量、工作難度、團隊貢獻等,綜合評判學(xué)生的個人成績。
4 企業(yè)參與的合作人才培養(yǎng)
檢驗上述教學(xué)模式好壞的最好方式是讓學(xué)生面向社會,接受企業(yè)對他們能力的檢驗?!白吭焦こ處熍囵B(yǎng)計劃”也重點提出學(xué)校與企業(yè)合作培養(yǎng)的要求。利用企業(yè)資源,將企業(yè)培養(yǎng)納入教學(xué)環(huán)節(jié)是提高Java程序語言課程質(zhì)量的關(guān)鍵。
以上海應(yīng)用技術(shù)學(xué)院的合作企業(yè)(塔塔信息技術(shù)股份有限公司)為例,該企業(yè)以Java作為主要程序開發(fā)語言,具有眾多的項目開發(fā)小組,是學(xué)生檢驗和發(fā)揮所學(xué)知識的理想平臺。合作過程中,企業(yè)培養(yǎng)由專任的培訓(xùn)人員負責,根據(jù)企業(yè)項目的需求,對學(xué)生Java程序語言的應(yīng)用能力進行強化培訓(xùn),采用面試的方式對學(xué)生進行考核。只有符合企業(yè)能力要求的學(xué)生才能直接進入項目小組進行程序開發(fā),而不符合要求的學(xué)生則需要接受進一步的培訓(xùn)。這種“優(yōu)勝劣汰”的模式能夠讓學(xué)生提前感受到社會的競爭壓力,對于實現(xiàn)學(xué)生從畢業(yè)到就業(yè)的“零過渡”具有很大益處。
此外,與學(xué)校的項目開發(fā)方式不同,企業(yè)化的項目管理涉及一系列的需求文檔、規(guī)格說明、測試準則等,具有高度的規(guī)范性和嚴謹性。小組中每一位項目組長均由經(jīng)驗豐富的開發(fā)人員擔任,對于組員的管理、工作職能安排、開發(fā)進度跟蹤均有獨到之處。學(xué)生通過比較自己在校內(nèi)項目中的管理和開發(fā)方式,很容易就能找到自身的不足之處,迅速明確努力的目標和方向。同時,企業(yè)中的學(xué)生也是員工,需要對自己編寫的程序和工作進度負責。對于無法完成工作安排的學(xué)生,企業(yè)除了進行培訓(xùn)指導(dǎo)以外,還必須根據(jù)企業(yè)的相關(guān)條例對其進行相應(yīng)的處罰。嚴格的企業(yè)化管理會給學(xué)生造成壓力,但同時也促進學(xué)生自學(xué)、自律、團隊合作等綜合能力的培養(yǎng)。
筆者從企業(yè)的反饋中得知,相較于傳統(tǒng)教學(xué)模式培養(yǎng)的學(xué)生,新教學(xué)模式培養(yǎng)的學(xué)生能夠迅速理解開發(fā)項目的需求,掌握相關(guān)知識的應(yīng)用,明確自身在團隊中的職責,完成項目開發(fā)的任務(wù)。更可喜的是,多名學(xué)生在完成培訓(xùn)后直接被合作企業(yè)聘用,這是對學(xué)生能力最有力的證明,更是對教學(xué)模式改進效果的肯定。
5 結(jié)語
通過對項目式教學(xué)以及校企合作培養(yǎng)的探索與實踐,筆者總結(jié)出權(quán)衡理論與實踐的教學(xué)模式,有效地提高了學(xué)生的工程與創(chuàng)新能力。上海應(yīng)用技術(shù)學(xué)院將軟件工程專業(yè)列為“卓越工程師培養(yǎng)計劃”的首批試點專業(yè),將積極深化這一新的教學(xué)模式,通過加強與企業(yè)的合作,進一步完善這一教學(xué)模式中的關(guān)鍵環(huán)節(jié),從而更好地培養(yǎng)創(chuàng)新工程能力強和適應(yīng)社會發(fā)展需求的高質(zhì)量人才。
(編輯:宋文婷)