姚明 彭志平 李啟銳 項順伯

摘要:針對目前應用型高校計算機專業(yè)學生就業(yè)較難的現(xiàn)象,就教學內(nèi)容的實用性與學生編程技能培養(yǎng)、促進學生就業(yè)的問題,強調(diào)重視課內(nèi)實踐教學,同時改進實驗內(nèi)容和教學方法,并以Java語言課程為例,分析課內(nèi)實踐教學中所存在的問題,闡述課內(nèi)實踐教學的要點以及改革實踐的過程。
關(guān)鍵詞:Java;實踐教學;教學改革
Java在培養(yǎng)學生面向?qū)ο缶幊毯蚃ava EE系統(tǒng)平臺構(gòu)架的學習過程中起到了非常重要的作用。目前眾多應用型高校均將其作為計算機專業(yè)的必修課程,使學生具備一定的面向?qū)ο蟪绦蛟O計能力、掌握使用Java進行軟件開發(fā)技術(shù)的能力,為畢業(yè)后順利就業(yè)奠定基礎。但是實際教學效果不甚理想,學生就業(yè)狀況也并不樂觀。究其原因,教學過程中存在學生實踐能力培養(yǎng)薄弱、教學與實際應用相脫離等問題。計算機科學是一門對理論性和實踐性高要求的學科,必須理論與實際相結(jié)合,重視實踐對于理論學習與技能培養(yǎng)的作用。而實踐能力的培養(yǎng),則首先應重視課內(nèi)實踐教學(也稱課內(nèi)實驗教學)。課內(nèi)實踐是指與理論教學并行實施的實踐教學,即嵌入到專業(yè)基礎課或?qū)I(yè)課內(nèi)的實驗實踐教學,能夠加深學生對理論知識的理解以及培養(yǎng)學生的動手能力,特別是運用所學知識解決實際問題的能力。同時,課內(nèi)實踐也是一項探索性和創(chuàng)造性很強的實踐活動,能培養(yǎng)學生的創(chuàng)新意識和探索精神。
1課內(nèi)實踐教學中存在的問題
長期以來,由于受到重理論、輕實踐思想的影響,課內(nèi)實踐教學沒有得到應有的重視。與此同時存在著較大的問題:學生實際操作能力不足,離開了實驗的教材和教師的幫助便很難獨立完成實驗,更談不上實踐技能得到提高。
1.1驗證性實驗多。綜合性、設計性實驗較少
在大多數(shù)的實驗教學中,教師通過根據(jù)大綱和教材內(nèi)容所編寫的實驗指導書,讓學生上機編寫小程序從而對一些知識點加以驗證、理解和吸收,但這些知識點之間往往沒有建立相關(guān)的綜合串聯(lián)。另外,在大多數(shù)教學中一定程度上忽視了Java具有需要極強實踐性的特征,不利于對學生實踐能力的培養(yǎng),也不易于激發(fā)出學生對于學習的積極性、自主性和創(chuàng)造性。
1.2與軟件企業(yè)的實際需求脫節(jié)
軟件企業(yè)要求Java程序員所具備的編程知識與技能有哪些?如何完成相關(guān)知識、技能的準備和培養(yǎng)?這些問題是教師在教學中較少關(guān)注的,課堂上只是按照課本的內(nèi)容來進行理論教學,對于相關(guān)知識和技能沒有補充和拓展,課內(nèi)實驗也主要是依托課本內(nèi)的實驗,缺乏創(chuàng)造性,沒有將理論知識的學習與解決實際問題能力的培養(yǎng)相結(jié)合。
1.3對教學方法的運用把握不當
近年來,程序設計課內(nèi)實踐教學中提倡較多的方法主要有任務驅(qū)動教學法、案例教學法或案例任務驅(qū)動法等,但是教師常不能準確把握對于這些方法的運用,課堂體現(xiàn)為學生照搬書中實驗指導要求,按部就班地將一些程序代碼輸入計算機中進行驗證。教師很少以啟發(fā)或研討的方式指導實驗進行,而是在課堂中設置難度不當?shù)娜蝿眨峁┤狈δM真實問題的情境,又或者是對要解決的(案例)問題的設置較為隨意,缺少分析討論、解決問題的思路指引。
1.4教學流于形式
一部分學生由于基礎不扎實或缺乏學習興趣,對于實驗作業(yè)采取應付的做法,完成的質(zhì)量不高或者抄襲他人作業(yè);一部分學生偏重理論學習,對上機實踐的重視程度不夠,認為實驗目的只是為了通過作業(yè)檢查并得到不低的實驗分數(shù);一部分學生雖然學習態(tài)度端正,但編程能力不足,獨立完成作業(yè)難度較大;還有一部分學生雖然基礎扎實,但認真完成實驗之余卻缺乏對于實驗過程的思考和總結(jié)。
2把握課內(nèi)實踐教學的幾個要點
成功的課內(nèi)實踐教學是內(nèi)容、設備、手段及師生互動等諸因素共同作用的結(jié)果。對Java課內(nèi)實踐教學而言,以學生為本,使學生通過完成精心安排與設計的實驗,從而實現(xiàn)理論知識與實踐能力的提高,使學生編程技能與素質(zhì)培養(yǎng)獲得實效性進步。
2.1實驗內(nèi)容應有明確的指向
編程實驗教學的最終目標是培養(yǎng)學生的編程技能與素質(zhì)。Java涉及教學內(nèi)容廣泛但課內(nèi)實踐學時畢竟有限,實驗內(nèi)容的選擇須有針對性,即從實驗內(nèi)容的實用性和學生編程技能與素質(zhì)培養(yǎng)的兩個角度考慮。
2.2實驗內(nèi)容應凝練且與教學實際相適應
實驗內(nèi)容要凝練,應該與理論教學內(nèi)容、實際應用以及學生素質(zhì)相適應。實驗內(nèi)容多而雜,會導致學生為了做實驗而做實驗、無瑕進行思考總結(jié),對于提高編程能力與素質(zhì)的幫助并不大。將最能展現(xiàn)Java精髓、有助于學生進行理論學習和提高實踐能力的部分,凝練成幾部分精品實驗內(nèi)容,學生對面向?qū)ο蟮乃枷搿⒎椒ê图夹g(shù)才能夠認真領(lǐng)會、熟練掌握,同時也可以鍛煉學生解決實際問題的能力。
2.3實驗內(nèi)容應模擬相關(guān)實際問題。并以問題的形式提出和解決
“實驗內(nèi)容來源于工程實際,反映工程的實際問題,令實驗更有趣味,更具現(xiàn)實意義”。近年來,教育界大力提倡和推行PBL(problem-based learning,基于問題的學習)教學模式,把學習置于復雜、有意義的問題情景之中,通過學習者間的合作來解決真正的問題,從而學習隱含在問題背后的科學知識,形成解決問題的技能和自主學習的能力。我們可以就其教學思路和教學方式的內(nèi)涵,依托任務驅(qū)動教學法、案例教學法等教學法的運用,有選擇地吸收采用。如將學生分成若干小組研討問題,實驗內(nèi)容以問題的形式進行設計,利用趣味性和應用性激發(fā)學生的學習興趣,調(diào)動其學習的積極性、主動性。在問題的解決過程中,教師盡量處于觀察和引導的位置。
2.4教師應對實驗完成情況予以成績公布,并對實驗作業(yè)進行點評
教師對每次實驗完成情況予以成績公布,可以督促學生認真進行實驗。通過對部分實驗作業(yè)進行點評,有助于對不同程度學生編程能力的提高。激勵和鞭策是一種行之有效的促進學生學習的手段。
3課內(nèi)實踐內(nèi)容改革
Java教學涉及的內(nèi)容多而較雜,而且“面向?qū)ο蟆钡慕虒W本身就有一定的難度。在實驗內(nèi)容的選排上,一方面,我們應注意抓住重點、突破難點,使學生對課程學習有一個整體的把握;另一方面,也應注意滿足軟件企業(yè)對Java程序設計的實際需求,從而體現(xiàn)Java的應用性。Java教學的重點是面向?qū)ο蟮幕靖拍睢⒒驹怼㈥P(guān)鍵技術(shù)和主要方法,難點是多線程設計、I/0操作和網(wǎng)絡通信程序設計;軟件企業(yè)要求Java程序員具備的編程知識與能力有類與對象的概念(如何抽象)、面向?qū)ο蟮娜齻€特征、抽象類與接口(設計)、多線程、I/0操作、Java集合框架、一些簡單常用的設計模式。找出這兩方面內(nèi)容的交集,Java課內(nèi)的實踐教學一共選排了8個實驗(見表1)。
4教學實踐
教學改革需要通過實踐檢驗實施效果、目標。以“實驗2:抽象類與接口的設計和使用”為例,簡要介紹其教學實踐內(nèi)容。
4.1選取與設計實驗內(nèi)容
抽象類作為多個子類的共同父類,體現(xiàn)的是模板式設計;接口適合為不相關(guān)的類別提供通用功能,體現(xiàn)出的是一種規(guī)范。典型的面向?qū)ο笤O計原則“開放一封閉原則”與“依賴倒置原則”是許多設計模式的基礎,兩者的核心思想都是針對抽象類和接口而不是針對具體類和實現(xiàn)編程(這也是軟件工程的基本原則之一)。抽象類和接口是Java語言教學的重點內(nèi)容之一,同時,掌握抽象類和接口技術(shù)也是未來從事軟件開發(fā)工作的學生所必備的專業(yè)基本功。因此,應當選取抽象類與接口相關(guān)內(nèi)容作為實驗內(nèi)容。
問題設計之一:某闖關(guān)游戲中有一闖關(guān)角色,游戲剛開始時只具備人的基本本領(lǐng)如“行走”和“跳躍”等。一次闖關(guān)成功,則根據(jù)闖關(guān)成績可增大本領(lǐng)如“天上飛”、“水下游”或“力如牛”等而逐漸成為強大的“超人”。請分析如何編程模擬游戲主角闖關(guān)成為“超人”并實現(xiàn)之。
問題的解決基于“開放一封閉原則”和“依賴倒置原則”,涉及了抽象類與子類、接口與實現(xiàn)類,以及裝飾模式使用的內(nèi)容,具有趣味性和技術(shù)實用性,能調(diào)動學生的積極性并提高編程技能
4.2進行實驗教學
教學采用課內(nèi)和課外相結(jié)合的方式,以2~3人為一組,提倡學生在實驗課外自主探究和合作解決問題,在實驗課內(nèi)著重問題交流、解決,作業(yè)檢查、督促。
實驗內(nèi)容應于實驗的前一周發(fā)布,給予學生一定時間的思考和準備。實驗課內(nèi),教師隨機點取部分小組檢查實驗完成情況,采用答辯的方式,先由小組匯報實驗內(nèi)容,包括問題的解決(設計)方案、過程和結(jié)果。教師引導學生對此實驗小組的工作提出問題或進行分析討論,并且除在必要時使用啟發(fā)式教學之外應處于旁觀者和促進者的位置,促進和指導問題的分析與討論,而非直接教學。相關(guān)知識與技術(shù)通過問題的解決從而被學生學習和掌握,設計原則在引導學生尋求問題的解決辦法時被自然采用,設計模式在教師進行總結(jié)時結(jié)合問題的解決方案被介紹。
為配合課外教學,我系還安排了兩個開放實驗室,供學生課外學習以及教師檢查作業(yè)和答疑用。
通過以上教學改革,不僅激發(fā)了學生學習的積極性和主動性,并且促進了學生對抽象類與接口語法以及使用的理解和掌握,使學生能從語法定義和編程兩個角度來區(qū)分和選擇接口與抽象類,獲取實踐知識,并進一步加深對抽象類與接口及其應用的認識,鍛煉應用抽象類與接口解決實際問題的能力、提高專業(yè)素養(yǎng),達成實踐能力培養(yǎng)目標及部分達成實踐通識教育目標。學生實驗后的心得體會是“實驗內(nèi)容比較有趣,收獲不小,原來有好多自己不知道的知識。”以及“‘紙上得來終覺淺,絕知此事要躬行,現(xiàn)在對這句詩體會很深。”和“實驗有壓力,但感覺能力提高不少。”
5結(jié)語
Java課內(nèi)實踐教學改革,鍛煉和提升了學生的編程技能。以近兩年我系學生參加Java競賽和畢業(yè)就業(yè)情況為例,在2014年第五屆“藍橋杯”全國軟件和信息技術(shù)專業(yè)人才大賽(Java軟件開發(fā)本科B組)及2014年“凱通杯”廣東省Java程序員競賽中,我系學生共獲一等獎1項,二等獎2項,三等獎4項、優(yōu)勝獎2項;在2015年甲骨文杯全國Java程序設計大賽中,我系學生共獲廣東省賽區(qū)及全國賽區(qū)一等獎1項,二等獎2項,三等獎2項;百分之七十的畢業(yè)生在廣州、深圳等地的IT企業(yè)從事與Java相關(guān)的軟件開發(fā)工作。Java系列課程教學目前已成為我系的教學特色。