林斌武
(四川西南航空職業(yè)學(xué)院,四川 成都 610041)
計(jì)算機(jī)專(zhuān)業(yè)不同于其他工科專(zhuān)業(yè),其具有實(shí)踐性、工程性強(qiáng)等特點(diǎn),且計(jì)算機(jī)課程的理論知識(shí)也更為抽象、復(fù)雜,只依賴(lài)?yán)碚撝R(shí)的學(xué)習(xí)學(xué)生很難準(zhǔn)確掌握計(jì)算機(jī)語(yǔ)言的運(yùn)行機(jī)制和編譯原理,因此計(jì)算機(jī)專(zhuān)業(yè)的實(shí)踐課程也極為重要。然而,據(jù)目前互聯(lián)網(wǎng)企業(yè)的反饋情況,高校計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)生雖然理論知識(shí)掌握的較為全面,但缺乏實(shí)踐技能,對(duì)知識(shí)的理解只流于表面,且普遍反映學(xué)生學(xué)習(xí)能力較差,對(duì)不同語(yǔ)言的適應(yīng)能力較差?;诖耍绾翁嵘咝S?jì)算機(jī)專(zhuān)業(yè)實(shí)踐課程的教學(xué)質(zhì)量和教學(xué)效果,從而使學(xué)生滿(mǎn)足社會(huì)和企業(yè)的需求,是高校教育工作者急需解決的問(wèn)題。文章提出一種軟件工業(yè)迭代開(kāi)發(fā)流程驅(qū)動(dòng)的實(shí)踐課程教學(xué)方法,致力于提升高校計(jì)算機(jī)實(shí)踐課程的教學(xué)效果,從而為高校計(jì)算機(jī)專(zhuān)業(yè)教師提供參考依據(jù)。
以項(xiàng)目迭代開(kāi)發(fā)的實(shí)踐需求為導(dǎo)向,將知識(shí)點(diǎn)融合于項(xiàng)目目標(biāo)中,強(qiáng)化學(xué)生的實(shí)踐行為,通過(guò)這樣的教學(xué)方式,能夠有效地實(shí)現(xiàn)以下目標(biāo):
迭代開(kāi)發(fā)不同于敏捷開(kāi)發(fā),迭代開(kāi)發(fā)的軟件更具穩(wěn)定性和可靠性。其是將大型項(xiàng)目分割為多個(gè)迭代子項(xiàng)目,每次迭代過(guò)程都包含改子過(guò)程的需求分析、概要設(shè)計(jì)、編碼設(shè)計(jì)、實(shí)現(xiàn)、單元測(cè)試、集成測(cè)試以及性能測(cè)試等。這種開(kāi)發(fā)方式對(duì)確保了每個(gè)迭代子項(xiàng)目的穩(wěn)定性和可靠性,各迭代子環(huán)節(jié)的測(cè)試確保了最終迭代環(huán)節(jié)的穩(wěn)定性和健壯性,也因此迭代開(kāi)發(fā)是過(guò)去20年的主流開(kāi)發(fā)方式。然而,目前高校教學(xué)中,迭代式開(kāi)發(fā)也只限于教材內(nèi)容的理論知識(shí),教師并未將其核心思想真正融入學(xué)生的實(shí)踐課程中,也因此學(xué)生無(wú)法深入理解迭代式開(kāi)發(fā)的內(nèi)涵,因此,將迭代開(kāi)發(fā)驅(qū)動(dòng)的模擬項(xiàng)目引入實(shí)踐課程的教學(xué)能彌補(bǔ)以上不足,更好地滿(mǎn)足軟件行業(yè)對(duì)高校學(xué)生的需求。
計(jì)算機(jī)專(zhuān)業(yè)不同于其他工科專(zhuān)業(yè),其對(duì)學(xué)生的實(shí)踐技能有較高的要求,且相關(guān)的學(xué)科教學(xué)中明確指出,高校必須注重對(duì)計(jì)算機(jī)專(zhuān)業(yè)學(xué)生實(shí)際動(dòng)手能力的提升。而迭代式開(kāi)發(fā)過(guò)程可以使學(xué)生在各階段學(xué)習(xí)完成后進(jìn)行子項(xiàng)目的開(kāi)發(fā),且子項(xiàng)目開(kāi)發(fā)中使用了整體的開(kāi)發(fā)流程,學(xué)生可以了解需求分析、設(shè)計(jì)、編碼、測(cè)試等完整的開(kāi)發(fā)過(guò)程,這無(wú)疑可以提高學(xué)生的編碼能力和實(shí)踐技能。
本文以“網(wǎng)絡(luò)程序設(shè)計(jì)(J2EE)”為例,在教學(xué)組織方面進(jìn)行以下嘗試。
項(xiàng)目背景為某公司在不同的規(guī)模程度時(shí)期對(duì)網(wǎng)上平臺(tái)技術(shù)要求的變化過(guò)程,在第一階段,要求網(wǎng)頁(yè)以靜態(tài)頁(yè)面為主,主要展示企業(yè)背景、企業(yè)產(chǎn)品列表及屬性等;第二階段要求網(wǎng)頁(yè)以動(dòng)態(tài)頁(yè)面為主,并涉及簡(jiǎn)單的電子商務(wù),如用戶(hù)可以自行查詢(xún)產(chǎn)品信息以及訂貨等;第三階段要求將其制作為復(fù)雜的B2C電子商務(wù)網(wǎng)站,入隊(duì)用戶(hù)增加產(chǎn)品推薦、優(yōu)化信息等功能;第四階段要求其能支持較大規(guī)模客戶(hù)群的大型B2C網(wǎng)站,并要求網(wǎng)站的穩(wěn)定性、安全性和可靠性等。從以上階段可看出,網(wǎng)上平臺(tái)技術(shù)要求的提升趨勢(shì)與J2EE的教學(xué)內(nèi)容同步,能很好地與教學(xué)進(jìn)度安排相融合。
作為專(zhuān)業(yè)性極強(qiáng)的實(shí)踐類(lèi)課程,上機(jī)學(xué)時(shí)應(yīng)占據(jù)總學(xué)時(shí)的2/3以上。在實(shí)際的軟件開(kāi)發(fā)環(huán)節(jié),往往項(xiàng)目初期是極為重要的,初期涉及需求調(diào)研、需求分析、框架設(shè)計(jì)、概要設(shè)計(jì)以及各類(lèi)文檔編寫(xiě)等,其是對(duì)項(xiàng)目整體的定性過(guò)程,因此其應(yīng)占據(jù)總課時(shí)的1/3。在組織方面,項(xiàng)目的每次迭代之前,教師需要提供場(chǎng)景信息,安排學(xué)生小組討論,進(jìn)行需求分析,設(shè)計(jì)框架,完成詳細(xì)設(shè)計(jì)、實(shí)施和測(cè)試,然后完成用戶(hù)手冊(cè)等文檔工作。最后,小組將公開(kāi)演示結(jié)果,并在通過(guò)全班和老師的評(píng)估后完成迭代。
第一階段主要講述網(wǎng)絡(luò)程序的背景和基礎(chǔ)知識(shí),如語(yǔ)言的學(xué)習(xí)方式、開(kāi)發(fā)環(huán)境以及環(huán)境配置方式,第一階段的開(kāi)發(fā)可由學(xué)生自行完成,學(xué)生可自行安裝開(kāi)發(fā)工具并配置環(huán)境變量,安裝完成后編寫(xiě)簡(jiǎn)單的“hello world”程序進(jìn)行測(cè)試;第二階段的側(cè)重點(diǎn)則是程序是怎么被計(jì)算機(jī)識(shí)別的,以及相關(guān)的網(wǎng)絡(luò)程序技術(shù),如JSP、數(shù)據(jù)庫(kù)等內(nèi)容,該階段教師可以安排學(xué)生自由組隊(duì),學(xué)生以小組合作模式查找技術(shù)點(diǎn)的相關(guān)資料并探討,思維的碰撞可以促使學(xué)生深入了解理論知識(shí);第三階段的教學(xué)重點(diǎn)是成熟的開(kāi)發(fā)范式的應(yīng)用,如MVC框架應(yīng)用,查詢(xún)推薦、優(yōu)化等,該階段教師應(yīng)根據(jù)課本的理論知識(shí)或?qū)嶋H項(xiàng)目設(shè)計(jì)相關(guān)的課程設(shè)計(jì),以供學(xué)生以小組合作方式進(jìn)行時(shí)間開(kāi)發(fā);第四階段教學(xué)重點(diǎn)是企業(yè)級(jí)應(yīng)用的開(kāi)發(fā)技術(shù),如事務(wù)處理、企業(yè)級(jí)平臺(tái)以及EJB應(yīng)用等,在第三階段的開(kāi)發(fā)基礎(chǔ)上,第四階段的開(kāi)發(fā)逐步深入,從實(shí)現(xiàn)簡(jiǎn)單的功能性要求升級(jí)到實(shí)現(xiàn)項(xiàng)目的穩(wěn)定性和運(yùn)行效率。
通過(guò)兩個(gè)學(xué)期的實(shí)踐,“網(wǎng)絡(luò)程序設(shè)計(jì)”這門(mén)課程取得了良好的教學(xué)效果,在該課程中,學(xué)生們完成了約4000~6000行的Java、JSP、Servlet和EJB等程序.期末考試的主觀題部分得分率達(dá)到58%,較以前有較大幅度增長(zhǎng)。有理由相信,通過(guò)一系列實(shí)踐課程的學(xué)習(xí),一個(gè)高校學(xué)生完全有希望達(dá)到成為一個(gè)有基礎(chǔ)的程序員的目標(biāo)。