袁梟翎



摘 要:本文針對Java教學中學生難以把握面向對象思想的難題提出了有效的解決方法。介紹了突破該難點的對象優先教學策略以及實行該策略所依托的Alice3編程環境。最后以Java中的循環結構為例,詳細闡述了相關教學環節的設計。
關鍵詞:Java; 程序設計; 對象優先; 教學策略
中圖分類號:G642 ? ? ? ? ? ?文獻標識碼:A ? ? 文章編號:1006-3315(2020)4-112-002
一、前言
Java是一門面向對象的程序設計語言,對面向對象思想的理解、掌握和應用是學好Java的關鍵。但在實際教學中,教師普遍注重學生對于程序語法細節的學習,而忽略了學生對面向對象思維和程序結構的理解。為了幫助學生更好的理解面向對象思想和相關概念,我們引入了對象優先教學策略,借助Alice3編程環境,輔助學生對Java面向對象概念的學習。
二、對象優先教學策略
對象優先教學策略是從一開始就強調面向對象的編程和設計原則,直接從對象和繼承開始,然后再介紹程序的結構和語法規則,且這些知識的學習總是在面向對象設計的環境中進行的[1]。在這種教學策略下,Java程序設計的學習更關注從整體結構和架構出發而進行編程。且學生的學習從對象出發,所有知識體系的講授也都是環繞對象進行,讓學生更容易接受面向對象的思想,更能學會運用面向對象的思維去解決問題。
采用對象優先教學策略,要借助面向對象的輔助學習軟件:如BlueJ、Greenfoot、Alice等。本文依托Alice3將對象優先教學策略應用于實際教學中。
三、Alice3概述
Alice3編程環境中提供不同類別的三維模型,使用者可以用這些模型在虛擬世界中構建不同的三維動畫場景。場景中每一個可視單元都是一個對象,針對不同的對象,Alice會提供基本的屬性和方法,通過偽代碼程序塊的拖拽就可以創作簡單的動畫或小游戲[2],如圖1:
Alice3同時支持偽代碼和Java代碼,且兩者可互相轉化。在netbean中,也提供了Alice3的plugin(插件)[3],學生可以針對每個對象在netbean編譯環境中編寫新的方法,實現更復雜、多功能的動畫設計。
四、以循環結構為例的教學實施過程
下面以Java程序設計中的循環結構為例,簡述對象優先策略和Alice3相結合的具體教學實施。
(一)激趣導入——入境激情
課前教師布置作業,要求學生觀察生活中周而復始循環往復現象。課上首先讓學生觀看《大話西游》中至尊寶利用月光寶盒不斷返回過去解救白晶晶的片段,結合課前作業,引出循環結構的教學內容。
(二)感知循環——探究動情
布置任務,借助Alice3結合netbean編程完成大魚吃小魚的三維場景的制作。學生利用舊知識順序結構完成任務,但同時也會提出問題:怎樣優化多次重復調用方法的代碼結構。此環節創建學習動機,經歷嘗試完成任務、遇到問題這兩個階段,學生迫切想要知道解決方法,為后續探索新知提供了動力。
接下來,教師引導學生觀察探究動畫中對象(大魚和小魚)一直重復的動作,直觀地讓學生體驗循環的過程,并在感性認識的基礎上引導學生抽象出循環相關概念。
了解了循環的相關概念后,教師組織學生在Alice中,拖動偽代碼程序模塊,用近似人類語言的偽代碼完成任務要求的內容,逐步形成循環思維,如圖2。在程序語言設計中,思維的培養更為重要,只有編程思維才真正具有遷移性。
(三)實現循環——解疑移情
學生利用Alice平臺,將上一環節中拖動的循環思維的偽代碼程序模塊轉換成Java代碼,將循環思想與Java中while循環語句相對照,嘗試總結出while語句的語法規則,如圖3。此環節的代碼轉換,為學生在循環思維和Java循環語句間搭建橋梁,讓學生自主探究有所依據,輔助學生建構新的理論知識;同時布置進階任務,讓學生通過知識的遷移,逐漸掌握循環語法規則;
(四)應用循環——實踐縱情
教師再給出幾個不同情景,學生在三維虛擬平臺中搭建虛擬場景,在Java編譯環境中編寫代碼,實現虛擬場景構建與編程的完美融合。在此環節通過動畫設計培養學生創造創新能力,又利用所學知識解決不同情景問題,鍛煉學生的聚合思維。
(五)展示評價——評述析情
最后小組代表展示組內優秀作品,教師依次對作品簡單點評。學生登錄教學平臺展開自主評價,并進行組間投票,選出最佳作品。本環節學生展示作品盡顯風采,也將過程性評價和總結性評價貫徹課堂始終。
五、結束語
在對象優先教學策略的運用和Alice3的輔助下,學生在課堂上表現出了濃厚的興趣,學習效率和積極性得到很大的提高,創新能力和自主學習能力也有所體現。課程設計中知識難度循序漸進,符合學生認知規律,降低了學習坡度,使得學生接受起來更加容易。但若想在課程中使用Alice3作為輔助軟件,需要提前花一定時間教授學生如何正確的使用。且如何能自然的從Alice過渡到Java內容的講解也需要教師更巧妙的思考和設計。
參考文獻:
[1]王秀平.試論計算機科學入門課程中的對象優先教學法[J]現代計算機,2008,(2):50-51
[2]陳蕓.利用Alice三維虛擬世界進行程序設計入門教學[J]計算機教育,2007,(9):160-162
[3]Dann W,Cosgrove D,Slater D,et al. Mediated transfer:Alice3 to java[C].technicalsymposium on computer science education, 2012: 141-146