西南石油大學(xué)肖斌廖浩德陳汶濱
基于軟件工程專業(yè)的JAVA程序設(shè)計教學(xué)改革
西南石油大學(xué)肖斌廖浩德陳汶濱
Java程序設(shè)計語言是高校計算機相關(guān)專業(yè)的核心基礎(chǔ)課程,傳統(tǒng)的教學(xué)方法不重視專業(yè)的特點,往往只關(guān)注語法和算法,導(dǎo)致各專業(yè)學(xué)生專業(yè)方向不明確,和后續(xù)課程脫節(jié),學(xué)習(xí)效果不理想。筆者根據(jù)軟件工程專業(yè)的培養(yǎng)目標(biāo),在教學(xué)中結(jié)合java的面向?qū)ο蟮奶攸c,融合工程化的思想,采用項目驅(qū)動的方式進行教學(xué),強調(diào)對問題的分析和設(shè)計能力,以及解決實際問題的能力,提高了學(xué)生的動手能力和工程運用能力。并為后續(xù)的面向?qū)ο蠓治雠c設(shè)計、軟件設(shè)計模式以及軟件工程等核心課程做好了鋪墊,達到了該門課程為該專業(yè)培養(yǎng)目標(biāo)服務(wù)的目的。
軟件工程專業(yè)針對企業(yè)選拔人才的標(biāo)準(zhǔn),都把操作能力強、創(chuàng)新能力強的人才作為培養(yǎng)目標(biāo),然而畢業(yè)生往往無法達到用人單位的要求,課程教學(xué)內(nèi)容和教學(xué)方法存在的問題是造成這一現(xiàn)象的重要原因。JAVA語言課程是計算機專業(yè)必修的一門專業(yè)課,由于JAVA語言具有面向?qū)ο蟆⒖梢浦残?、簡單性、動態(tài)性、健壯性、分布性等優(yōu)點,已廣泛應(yīng)用于游戲控制臺、互聯(lián)網(wǎng)、手機智能卡、手持式電子消費類產(chǎn)品和企業(yè)應(yīng)用等多個領(lǐng)域。因此,許多軟件工程專業(yè)以JAVA語言為必修課程,并構(gòu)建JAVA體系課程群以達到其培養(yǎng)目標(biāo)。課程群分層次逐步推進。以C為編程入門語言,以JAVA SE為JAVA基礎(chǔ),以Servlet、JSP為WEB開發(fā)基礎(chǔ),以Struts,Spring和Hibernate等框架整合應(yīng)用為提高,構(gòu)建JAVA語言四階段培養(yǎng)模式。
在JAVA語言的教學(xué)過程中,該門課程往往給學(xué)生留下了該語言內(nèi)容枯燥乏味,理論與實際脫節(jié)的印象,使得學(xué)生缺乏積極學(xué)習(xí)的興趣和主動獨立分析問題的能力。其具體分析如下:
面向?qū)ο笏枷氩煌怀?在JAVA語言四階段培養(yǎng)模式下,C語言作為程序入門語言有其獨到的優(yōu)點,其程序結(jié)構(gòu)簡單,便于學(xué)生理解語言基礎(chǔ)知識。其重在培養(yǎng)學(xué)生面向過程的編程思想。而JAVA是完全面向?qū)ο蟮恼Z言,應(yīng)側(cè)重于面向?qū)ο蟮木幊趟枷?,但是,在JAVA當(dāng)前的教學(xué)內(nèi)容中,針對JAVA特有語法和算法設(shè)計的案例多,JAVA和C之間的教學(xué)內(nèi)容重疊。在JAVA培養(yǎng)四階段模式背景下,不能突出JAVA SE教學(xué)的重點,沖淡了面向?qū)ο笏枷肱囵B(yǎng)的主題。
灌輸式的教學(xué)方式,目前,JAVA課程教學(xué)主要采用灌輸式的教學(xué)方法,此方法主要是以教師講課為主,學(xué)生聽課為輔的一種教學(xué)形式。
教學(xué)和實驗脫節(jié),現(xiàn)在的JAVA語言課程的教學(xué)模式大部分采用多媒體講課和上機交替進行,且理論課時多,實驗課時少,這種先理論后實驗的模式阻礙了學(xué)生的知識的連貫性。
結(jié)合軟件工程的工程認證評估的需求,以及本校軟件工程專業(yè)的實際情況,在教學(xué)班實施以下教學(xué)改革。
從設(shè)計模式理解面向?qū)ο缶幊?從JAVA教學(xué)四階段培養(yǎng)模式的整體考慮,JAVA SE的教學(xué)應(yīng)該重視面向?qū)ο笏枷氲呐囵B(yǎng),這需要重新組織和安排JAVA SE的教學(xué)內(nèi)容,減少JAVA基本語法知識的內(nèi)容,突出JAVA語言特性,并引入與基礎(chǔ)知識密切相關(guān)的常用設(shè)計模式,例如簡單工廠模式,工廠方法模式,裝飾模式,觀察者模式等。結(jié)合JAVA API,JAVA WEB開發(fā)框架中用到的設(shè)計模式進行重點分析,開闊學(xué)生的設(shè)計視野,提高其分析設(shè)計能力。教學(xué)內(nèi)容的變化引起教學(xué)方法的相應(yīng)調(diào)整,對于設(shè)計模式的講解要擅于結(jié)合日常生活的例子進行案例設(shè)計,并在教學(xué)時采用對比法,在不使用設(shè)計模式的情況下實現(xiàn)案例代碼,然后分析代碼存在的弊病。應(yīng)用設(shè)計模式改進設(shè)計??偨Y(jié)使用模式的優(yōu)點。
選擇有利于培養(yǎng)學(xué)生創(chuàng)新能力的教學(xué)形式,教師的教學(xué)目標(biāo)不是讓學(xué)生背語法,默寫程序,而是培養(yǎng)學(xué)生的軟件開發(fā)能力,使學(xué)生能夠自己獨立設(shè)計程序,采用理論與實踐相結(jié)合的教學(xué)方式,采取項目驅(qū)動式教學(xué),使學(xué)生在項目中學(xué)習(xí)語法,語句和知識點。教師將學(xué)生分為項目小組的形式,模擬公司中軟件項目中的各種職員角色(編寫代碼人員,系統(tǒng)架構(gòu)人員,項目經(jīng)理,程序測試員等),選擇學(xué)生感興趣的具有代表性的實際項目,使學(xué)生適應(yīng)就業(yè)需求,強化學(xué)生的項目合作意識,鍛煉學(xué)生的動手創(chuàng)新能力。
以教師為主導(dǎo),學(xué)生為主體,教學(xué)過程中要讓學(xué)生參與到教學(xué)過程中,充分體現(xiàn)學(xué)生的主體地位,避免滿堂灌的現(xiàn)象,否則學(xué)生上課時積極性不高,課堂氣氛不活躍,教學(xué)效果不理想,針對程序設(shè)計課程,教師可以采取讓學(xué)生展示講述自己的代碼,老師帶領(lǐng)大家一起分析,評價學(xué)生的程序,指出其程序的優(yōu)點和不足,這種互問互答的討論式和啟發(fā)式的教學(xué)方式,不僅可以調(diào)動學(xué)生學(xué)習(xí)的主動性和積極性,而且有利于學(xué)生在整個教學(xué)過程中集中精力,培養(yǎng)學(xué)生的創(chuàng)造性思維能力。而且更容易鍛煉學(xué)生的設(shè)計分析能力和實踐能力。
通過一學(xué)期的教學(xué),教學(xué)效果明顯。首先學(xué)生明白了學(xué)習(xí)java程序設(shè)計不是學(xué)語法,而是學(xué)習(xí)用這個工具如何來解決實際問題;學(xué)生也清楚了該門課程與后續(xù)課程的關(guān)系;也懂得了一些軟件工程項目開發(fā)的過程。在最后的結(jié)業(yè)考試中全班同學(xué)順利通過考試。同時積極引導(dǎo)學(xué)生進行各類項目的申報,成功申報Google創(chuàng)新項目和創(chuàng)業(yè)項目2項。完成校內(nèi)創(chuàng)新創(chuàng)業(yè)項目申報6項。參加南橋杯、軟件杯、java甲骨文程序設(shè)計大賽均獲得不錯的成績。
軟件工程專業(yè)在Java語言教學(xué)中實施項目案例教學(xué),通過改革課堂及實驗教學(xué)內(nèi)容和模式,能夠理論與實踐兼顧,能夠提高學(xué)生的分析與設(shè)計能力,提供學(xué)生的實踐能力。從而適應(yīng)當(dāng)今社會對軟件人才的需要。項目教學(xué)法可以充分調(diào)動學(xué)生學(xué)習(xí)的積極性,激發(fā)學(xué)生的學(xué)習(xí)熱情,引導(dǎo)學(xué)生學(xué)習(xí)新的知識和技能,提高學(xué)生分析問題和解決問題的能力。增強學(xué)生的實際動手能力。項目教學(xué)法充分體現(xiàn)了學(xué)生的主體地位和教師的主導(dǎo)作用。