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