游新冬
摘 要:Java程序設(shè)計語言是實(shí)踐性極強(qiáng)的課程之一?!胺窒怼笔且环N教育方法,也是一種全新的教學(xué)理念,它旨在將自己的認(rèn)知與他人分享,在互動的過程中獲得雙贏。本文著重研究如何在Java程序設(shè)計語言的教學(xué)過程中引導(dǎo)學(xué)生在實(shí)踐,體驗(yàn)了Java程序設(shè)計之后,將自己的心得體會進(jìn)行分享,在互動和分享的過程中使自己對知識點(diǎn)有深刻理解的同時促進(jìn)了其他同學(xué)對該知識點(diǎn)的把握。
關(guān)鍵詞:Java語言;程序設(shè)計;體驗(yàn);分享;教學(xué)方法
1 引言
Java語言是Sun公司1995年推出的一種純面向?qū)ο蟮某绦蛟O(shè)計語言,是目前高等院校首選的一門程序設(shè)計語言課程。作為一門實(shí)踐性極強(qiáng)并具有直接應(yīng)用價值的一門課程,如何設(shè)計教學(xué)目標(biāo),教學(xué)任務(wù),教學(xué)過程以取得良好的教學(xué)效果教師追求的目標(biāo)。針對Java語言程序設(shè)計課程具有極強(qiáng)的實(shí)踐性的特點(diǎn),設(shè)計在程序設(shè)計過程中的體驗(yàn)場景,創(chuàng)造出“分享”的氛圍和環(huán)境。讓學(xué)生通過個人、小組或班級的形式將體驗(yàn):碰到的問題,解決問題的方式進(jìn)行分享。通過體驗(yàn)之后的分享必將帶來雙贏:將自己的所思所想所得分享給同學(xué)的同時能夠更深刻地理解問題的本質(zhì),并有可能在分享的同時進(jìn)一步擴(kuò)充問題的解決方式,擴(kuò)大視野,尋求更多的解決方案。
2 體驗(yàn)-分享模式的教學(xué)設(shè)計
為了取得良好的教學(xué)效果,需要對體驗(yàn)-分享模式的教學(xué)過程進(jìn)行精心的設(shè)計,同時體驗(yàn)-分享模式的實(shí)施對教師的教學(xué)水平以及現(xiàn)場的控制能力提出的更高的要求。據(jù)此,我們對Java語言程序設(shè)計的教學(xué)過程中的教學(xué)目標(biāo),教學(xué)任務(wù),教學(xué)主體,教學(xué)手段進(jìn)行了重新的設(shè)計。
2.1 教學(xué)目標(biāo)
Java教學(xué)中的體驗(yàn)-分享模式的教學(xué)目標(biāo)不僅僅局限于將高校的學(xué)生培養(yǎng)成為熟練掌握一定知識和技能的知識精英,而是關(guān)注學(xué)生通過知識的掌握鍛煉了如何發(fā)現(xiàn)問題,分析問題和解決問題的能力,同時鍛煉學(xué)生的表達(dá)和分享的能力。當(dāng)今社會,特別是IT行業(yè)技術(shù)更新?lián)Q代的速度極快,瞬息萬變,同樣的我們還面臨中知識爆炸和信息技術(shù)革命,這導(dǎo)致教師不再是知識的壟斷者,教師講授也不再是學(xué)生獲得知識的唯一途徑;學(xué)生面臨的生存環(huán)境更為復(fù)雜,社會對學(xué)生的認(rèn)可更為多元化。因此我們的體驗(yàn)-分享模式的教學(xué)目標(biāo)為:在學(xué)生體驗(yàn)-分享Java程序設(shè)計實(shí)踐中的所思所想多得的過程中,提高其發(fā)現(xiàn)問題、分析問題和解決問題的能力,這更為適合當(dāng)今社會對高等技術(shù)應(yīng)用性人才培養(yǎng)的需要。
2.2 教學(xué)方法
傳統(tǒng)的“輸入式”的教學(xué)模式是以“講授-接收”的單向過程進(jìn)行知識的傳授,具有極大的局限性,很容易導(dǎo)致照本宣科,很難引起學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)動力,對學(xué)生的思考和探索缺乏啟迪作用,很難完成我們體驗(yàn)-分享教學(xué)模式的教學(xué)目標(biāo):提高發(fā)現(xiàn)問題,分析問題和解決問題的能力以及表達(dá)和分享的能力。而體驗(yàn)-分享模式的教學(xué)方法是開放性的,靈活多樣的,是多種教學(xué)方法的綜合運(yùn)用。通過情景創(chuàng)設(shè),問題設(shè)計,學(xué)生分享,教師點(diǎn)評等多個環(huán)節(jié),對學(xué)生的個人能力和團(tuán)隊協(xié)作能力進(jìn)行全方位的培養(yǎng)。
2.3 教學(xué)主體
在體驗(yàn)-分享的Java教學(xué)模式中,教學(xué)的主體是學(xué)生,教師只起到引導(dǎo)的作用,教師引導(dǎo)學(xué)生進(jìn)行Java程序設(shè)計的實(shí)踐,積極參與分享。學(xué)生是該教學(xué)模式中的真正主體:全程完成程序設(shè)計的實(shí)踐,體驗(yàn)在該過程中碰到的問題,體驗(yàn)在思考或團(tuán)隊討論或求助老師之后如何去解決問題。并將該體驗(yàn)在小組或班級范圍內(nèi)部進(jìn)行分享。整個過程學(xué)生具有比較完整的主導(dǎo)性,增強(qiáng)了參與學(xué)習(xí)的愿望和熱情,通過漸進(jìn)的探索,使學(xué)生的自主性和獨(dú)特性得到充分的發(fā)揮,真正體現(xiàn)了學(xué)生的主體地位。
2.4 教學(xué)手段
體驗(yàn)-分享模式的教學(xué)手段應(yīng)該更加多樣化,需將傳統(tǒng)和現(xiàn)代化的教學(xué)手段進(jìn)行交叉融合,既需要有教師的傳統(tǒng)口授和板書,還需要借助多媒體、網(wǎng)絡(luò)平臺和一些計算機(jī)模擬技術(shù)來實(shí)現(xiàn)教學(xué)的情景化,使得學(xué)生可以在充分體驗(yàn)Java程序設(shè)計的過程之后,能夠更為方便,更為直接地將自己的所思所得分享給同學(xué),并在分享的過程中達(dá)到共贏。
3 體驗(yàn)-分享模式的實(shí)戰(zhàn)
為了在Java教學(xué)過程中實(shí)施體驗(yàn)-分享的教學(xué)模式,針對筆者所授專業(yè)和年級的(大一非計算機(jī)相關(guān)專業(yè))特點(diǎn),特選Java語言程序設(shè)計中相對簡單并具有普遍性的冒泡排序問題作為實(shí)戰(zhàn)實(shí)例。
3.1 情景創(chuàng)設(shè)
具體講解冒泡排序之前,筆者先拋出情景假設(shè)及其相應(yīng)的問題:“排序問題是現(xiàn)實(shí)生活中經(jīng)常會碰到并需要處理的問題,比如大學(xué)之前的每學(xué)期開學(xué)之初,為了編排座位,老師需要針對全班學(xué)生的身高進(jìn)行排序。進(jìn)入大學(xué)之后,每學(xué)期評定獎學(xué)金的時候,需要對各位的學(xué)習(xí)成績進(jìn)行排序;另外,也許各位關(guān)注的老師的工資,也需根據(jù)教師年底考核時的績效進(jìn)行排序。還有諸如搜索的時候網(wǎng)頁的排名、用戶優(yōu)先級的設(shè)置等,都會涉及到排序的問題。那么如何將這些現(xiàn)實(shí)生活中碰到的需要處理的排序通過程序的方式交由計算機(jī)出來,就是我們今天課程所涉及的排序問題,而其中冒泡排序是最常見的排序之一?!蔽覀儗⒆痪幣艜r所涉及到的排序問題作為一種情景,讓學(xué)生們在體驗(yàn)過后進(jìn)行分享。
3.2 體驗(yàn)
體驗(yàn)之一:選取10個的學(xué)生,在教室里面模擬編排座位時利用冒泡的方式進(jìn)行排序的過程:倆倆比較,逆序(高的在前,矮的在后)則交換位置,第一輪比較交換結(jié)束之后最高的學(xué)生像氣泡升起一樣落在最后一個位置,緊接著按照同樣的操作方式對前面9個同學(xué)實(shí)施:倆倆比較逆序則交換的方式,依次選出第二高,第三高,第四高的學(xué)生……。
體驗(yàn)之二:在學(xué)生親身體會之后,利用之前的程序設(shè)計基礎(chǔ)知識:循環(huán)的設(shè)計,將體驗(yàn)之一過程中的自然語言轉(zhuǎn)換成程序設(shè)計語言。
將冒泡排序的核心思想和主要的程序片段給學(xué)生講解之后,讓學(xué)生通過Java語言程序設(shè)計課程配套的上機(jī)時間利用Java語言集成開發(fā)環(huán)境進(jìn)行現(xiàn)場的實(shí)踐:對某一數(shù)據(jù)類型的集合,即數(shù)組,利用冒泡排序算法進(jìn)行排序。
3.3 分享
在對冒泡排序進(jìn)行實(shí)際操練之后的課堂上,每個小組選取出一個代表,來分享他們在上機(jī)實(shí)踐過程中碰到的問題,并分享他們解決問題的方式以及最后得到的結(jié)果。具體的實(shí)施過程中,有些同學(xué)會分享:數(shù)組下標(biāo)從0開始起標(biāo)的問題,有些同學(xué)會分享:循環(huán)設(shè)計的半閉半開區(qū)間和都是閉區(qū)間時循環(huán)次數(shù)不一樣,所造成的數(shù)組越界問題,甚至還有同學(xué)會分享:交換過程中,交換次序的錯亂所造成的無法完成交換效果的問題。在實(shí)際的實(shí)施過程中,編程水平比較高的同學(xué)還分享了:如何減少排序次數(shù)的問題。
3.4 點(diǎn)評
點(diǎn)評難點(diǎn):筆者針對同學(xué)們分享的問題以及解決問題的方式進(jìn)行點(diǎn)評,特別是對具有較高難度的問題:減少循環(huán)次數(shù)同樣能夠達(dá)到排序效果進(jìn)行講解:可以通過加設(shè)標(biāo)志變量的方式,在每一輪的比較過程中判斷該輪有無進(jìn)行交換,如果沒有進(jìn)行交換,即表示數(shù)據(jù)已經(jīng)是有序的,無需進(jìn)行下一輪的排序。
知識擴(kuò)充點(diǎn)評:循環(huán)次數(shù)的減少是否意味著時間的減少,可以引導(dǎo)學(xué)生通過擴(kuò)大數(shù)據(jù)集和計時的方式,并構(gòu)造一些極端數(shù)據(jù)進(jìn)行測試。另外在對數(shù)據(jù)進(jìn)行排序時,冒泡只是其中的一種方式,現(xiàn)實(shí)應(yīng)用中還將根據(jù)不同的情況采取其他的排序方式:比如選擇排序,插入法排序,快速排序等。同時還可以引導(dǎo)學(xué)生在排序之前和排序之后對數(shù)據(jù)的查收會有何變化,從此引出順序查找和二分法查找。
4 結(jié)論
體驗(yàn)-分享的教學(xué)模式在Java教學(xué)過程中的運(yùn)用是筆者在實(shí)際的教學(xué)過程中進(jìn)行的一種教改方案,通過對教學(xué)過程中的重新設(shè)計,以及在具體實(shí)施過程中通過情景創(chuàng)設(shè)-體驗(yàn)-分享-點(diǎn)評的模式激發(fā)學(xué)生對Java語言程序設(shè)計課程的學(xué)習(xí)興趣和熱情,并在體驗(yàn)和分享過程中獲得雙贏。該模式在實(shí)際的教學(xué)過程中取得良好的教學(xué)效果。