林海菁
摘 要 《Java程序設(shè)計》是軟件技術(shù)專業(yè)(Java工程師方向)的重要專業(yè)基礎(chǔ)課程,本文結(jié)合高職學(xué)院學(xué)生的認(rèn)知特點,對該課程的教學(xué)內(nèi)容、教學(xué)設(shè)計及課程考核進(jìn)行了一些探討。
關(guān)鍵詞 Java程序設(shè)計 教學(xué)內(nèi)容 教學(xué)設(shè)計 課程考核
0引言
《Java程序設(shè)計》是軟件技術(shù)專業(yè)(Java工程師方向)的專業(yè)基礎(chǔ)課程,既是程序設(shè)計思想的入門,又是后續(xù)專業(yè)課程的基礎(chǔ),有著舉足輕重的作用。然而這門課程不像VB那樣一開始就接觸到簡單有趣的可視化界面,而是在經(jīng)歷枯燥的控制臺程序設(shè)計之后才見到困難得多的窗口程序設(shè)計。
另一方面,高職學(xué)院的學(xué)生基礎(chǔ)比較薄弱,喜歡用鼠標(biāo)“拖拖拉拉”就可以完成的可視化操作,滿屏的代碼對他們來說就像英文版“天書”,不可避免地會出現(xiàn)排斥抗拒心理。如何達(dá)到較好的教學(xué)效果,是筆者多年來從未停止思考的問題。
1教學(xué)內(nèi)容與安排
《Java程序設(shè)計》大部分教材的內(nèi)容和順序都大同小異,通常先是基礎(chǔ)語法,基本控制結(jié)構(gòu),然后是類和對象,繼承和多態(tài),然后是數(shù)組、字符串、集合和泛型,然后是圖形界面程序設(shè)計,然后是異常處理、多線程,最后是數(shù)據(jù)庫訪問技術(shù)。
這樣的安排對學(xué)生來說有些不太容易理解和接受。例如,在程序設(shè)計基礎(chǔ)課中,繼承和多態(tài)這樣的高級對象特性是很少涉及的,小型程序幾乎不會用到。另一方面,最初講授基礎(chǔ)語法和控制結(jié)構(gòu)部分,教學(xué)思路通常都是面向過程的,然后在講授類和對象時切換到面向?qū)ο?,這種轉(zhuǎn)變的接受本身就有些困難,需要一個較長的時間去慢慢體會、領(lǐng)悟,如果在尚未很好的掌握就深入學(xué)習(xí)面向?qū)ο蟮母呒壧匦裕瑢W(xué)生理解和接受就更為困難,而且這些知識無法在后半學(xué)期的學(xué)習(xí)中得到很好的應(yīng)用,理論聯(lián)系不上實際。如果到學(xué)期最后,經(jīng)過較長時間的熏陶,學(xué)生已經(jīng)有了一定的面向?qū)ο蟪绦蛟O(shè)計思想,并且在學(xué)習(xí)圖形界面程序設(shè)計的過程中體會到繼承猶如站在巨人肩膀上做開發(fā),就能夠比較好地理解面向?qū)ο蟾呒壧匦粤?,但也還只需淺嘗輒止,更深地理解和應(yīng)用可以在以后幾個學(xué)期的學(xué)習(xí)中慢慢體會。
圖形界面程序設(shè)計在Java中不能算一個重點,因為Java是典型的跨平臺開發(fā)語言,Java軟件以Web程序為主,很少做窗口程序。而且Java的圖形界面設(shè)計并不是強(qiáng)項,比起微軟的VB、VC,并不好學(xué)。因此,對于這部分內(nèi)容,以標(biāo)簽、文本框、命令按鈕、選擇按鈕等基本控件為載體,主要讓學(xué)生理解事件和事件驅(qū)動程序設(shè)計的思想,熟悉常用事件和編程,使學(xué)生對圖形界面設(shè)計有基本的認(rèn)識,在課外能憑興趣繼續(xù)深入自學(xué)。并且,在時間安排上盡量靠后,快到學(xué)期末,保證前面的主體內(nèi)容有足夠的時間講完講透。
數(shù)據(jù)庫訪問可以說是系統(tǒng)開發(fā)中不可或缺的技術(shù),因此這部分內(nèi)容在教學(xué)安排上往前移,講完集合和泛型,以及異常處理之后就開始學(xué)習(xí),而且給予了足夠的課時量?!稊?shù)據(jù)庫技術(shù)》課程我們在同一學(xué)期同步開設(shè),學(xué)期過半時基本的“增刪改查”學(xué)生已經(jīng)掌握,融入到《Java程序設(shè)計》課程中應(yīng)用,不但使學(xué)生更好地理解數(shù)據(jù)庫的作用,還能使教學(xué)案例更好地與實際相結(jié)合,以一些簡化的系統(tǒng)為例組織教學(xué),有助于提高學(xué)生的學(xué)習(xí)興趣。
多線程作為難度比較大的知識點,放在學(xué)期最后,講基本概念和簡單應(yīng)用,使學(xué)生對線程有初步的了解,能編寫簡單的多線程程序,學(xué)有余力的學(xué)生能在這個基礎(chǔ)上自己深入學(xué)習(xí)。
2教學(xué)設(shè)計與實施
俗話說,興趣是最好的老師,所以教學(xué)案例的選擇第一考慮要素就是能引起學(xué)生興趣。雖然各教材上都有大量純數(shù)學(xué)計算的例題和作業(yè),但它們幾乎不會出現(xiàn)在本人的課堂中,而是盡量采用一些比較有趣味的案例。例如講到分支結(jié)構(gòu),就做體型分析(根據(jù)身高體重判斷體型);講到循環(huán)結(jié)構(gòu),就做電話號碼價值評估(根據(jù)電話號碼中吉祥數(shù)字個數(shù)評判號碼的受歡迎程度);講到面向?qū)ο缶妥鯭Q寵物(用寵物的等級、智力值等理解對象的屬性,用喂食、洗澡、學(xué)習(xí)來理解對象的方法,用寵物、食物、洗浴用品、課程來理解“萬物皆對象”的思想……);講到一維數(shù)組就做雙色球開彩;講到二維數(shù)組就做五子棋游戲;講到數(shù)據(jù)庫訪問技術(shù)就做自助存取款終端;……總之,什么樣的案例學(xué)生會感興趣,就講什么,盡量使他們愿意聽,愿意做。
除了選擇好的案例,教學(xué)時另一個重點在于程序設(shè)計思路的講解,即算法的理解。對于復(fù)雜的任務(wù),把算法講清楚,讓學(xué)生理解解決問題的思路,比起讓他們理解和記住代碼更重要。因為思路是宏觀上的,也不僅僅局限于解決這一個問題,它對于培養(yǎng)學(xué)生的思考能力解決問題的能力是很重要的。思路好的學(xué)生,將來即使不做軟件開發(fā),在其它領(lǐng)域里一樣如魚得水。而且有了算法,何愁沒有代碼?
3課程考核
對于高職學(xué)生,教學(xué)上不宜灌輸太多理論。一些必要的基礎(chǔ)理論可以盡量地融入案例講解中,比較難的可以考慮放在后幾個學(xué)期的教學(xué)之中慢慢體會,畢竟有些實踐可以暫時在沒有理論支撐的情況下先按一般的套路去做,等學(xué)生會了,再慢慢去理解其中的根源。
因此,相應(yīng)的課程考核,本人沒有側(cè)重考理論,而是把重點放在評判學(xué)生是否具備程序設(shè)計的思想,能否編寫程序解決實際問題。但是操作考試兩個小時,往往只能做一個比較小型的程序。此外,還要擔(dān)心考場上學(xué)生之間的互相影響,大家都做相同的程序可能區(qū)分度不高,做不一樣的在難度控制上又不易把握。交作品的考核形式也不易于識別作品是否真由本人完成。所以,對學(xué)生成績的評定,平時的考量很重要。所幸的是,專業(yè)老師通常會在連續(xù)的兩個甚至多個學(xué)期中擔(dān)任班級專業(yè)課教學(xué),通過努力,本人在第二學(xué)期時基本上認(rèn)識了班上所有的學(xué)生,對他們學(xué)習(xí)狀態(tài)和知識掌握程度都比較了解,在考核時可以根據(jù)學(xué)生水平分組,不同組采取不同難度的試題,并且加大平時成績的比重,從而使得課程考核更易于實施,而且結(jié)果相對來說比較客觀。