摘要:隨著java語言的出現,java已經成為編程語言中的驕子,我們可以看出,現在越來越多的大學在教授數據結構、程序設計方法學和算法分析等課程,選擇以java為載體。這說明java語言已經是人們構建軟件系統的常用的編程語言,也足以看出java在編程語言中的地位的攀升。與些同時,所帶來的問題出現了,如何能使學生更輕松的掌握java語言BE?如何能使學生編出健壯、高效的以及靈活的程序呢?是我們java教學人員所面臨的重大的挑戰。本文主要闡述了java教學方法的改革和如何使學生變成優秀的java開發人員。
關鍵詞:編程思維 算法 編程技術
編程主要是一種實踐性的技能,它主要基于一些計算技術,包括一些科學和算法。當然,對工具和編程語言是否熟悉也是非常關鍵的。隨著java的出現,java語言逐漸成為了編程語言的角色。程序的設計比編程更為重要,并且它同樣依賴于經驗和技巧。一個專業開發人員使用專業的方案進行系統開發,他知道如何應用好的設計以及優秀的編程技術。而業余愛好者及黑客僅僅把程序拼湊到一起。而我們教學的目的在于培養學生成為專業的java開發人員,所以我重點想闡述的是如何才能使學生成為優秀的java開發人員,并通過具體的方法來實現這個目的。
人們常說好的程序員需要接受適當的培訓,然而編程技術并不是僅僅通過講授就能掌握的,人們必須通過自己的實踐和學習才能掌握它。幸運的是,學生也可以通過實踐和學習掌握設計和編程的技巧。學習這些技巧的最好的方法是進行程序的設計以及在有專家指導的情況下進行大量的編程的練習。什么是好的編程方法,什么是差的編程方法等,最關鍵的是尋找合適的算法,模式和編程計劃。如何才能使學生掌握這樣的能力呢?
首先,實踐是學習編程的最好的方法,同時也必須研究別人做的一些好的甚至差的編程實例,這樣學生就可以區分好的編程和差的編程。很多人認為編程僅僅意味著學習編程語言的語法和語義然后就付諸于實踐。習慣于這樣做的人總是編寫一些簡單的程序,重復編寫一些質量很差的代碼:而我們提倡在抽象層次上編程,在構建一些復雜的程序時在抽象層次上進行復用,這樣可以避免進行重復性的工作。就如同制造酒,你可以了解制酒的設備,但只有通過嘗試并制造出自己的酒時,你才真正掌握了制酒的技術。而且在專家的指導下來學習如何制酒可以使你更快地學會這些技術,并且避免犯一些常見的錯誤。
編程的技術不僅僅使用了嵌入到類和包的抽象技術,有時也利用編程語言的特色來達到特定的編程目的。編程技術的這些組成部分又稱為編程計劃、編程模式,我們只有通過觀察和研究別人的代碼才能了解到他。一般的程序員沒有花足夠時間來閱讀別人寫的代碼以了解他們是如何處理的、他們的編程做的好的方面以及差方面。大多數開發人員總是利用先前開發的系統,然后進行升級,而很少從頭開始一個新的系統設計,這就要求他們能夠讀懂并理解舊系統的代碼,從而進行升級。一些開發人員參與代碼的審查工作,然而這樣的代碼審查工作并沒有達到使參與者學習別人代碼的目的,他們僅僅關注如何編制他們自己的代碼。很少考慮通過審查代碼來提高編程開發人員的編程水平,并沒有把代碼審查的活動看作系統開發活動中的一部分,這種做法是不足取的,這意味著開發這樣的系統并沒有相應提高開發者的編程水平,開發都只有通過要求他們進行編碼的那部分工作來學習。
其次,示例越簡單、越短小為標準,并且每次講解解問題的一個步驟或操作,以便學生能夠容易真正的理解和吸收每一個知識點。雖然這樣會影響描述和解決真實世界的問題,但是我發現對于學生來講,能夠真正的理解例子中的每個細節,而不是它所能夠解決問題的領域。前者往往能夠為他們帶來興趣,反之,如果給出比較大而復雜的程序,往往會使一部分學生望而止步。所以,我們要思考如何找出這樣的例子,提高學生對學習java的興趣。
再次,做到每章的重點明確,以便縮短教學和練習之間的時間。這樣不但可以使學生可以參與到討論課時思維更為活躍和集中,充分調動學生的積極性和主動性,從而加強學生的成就感,給學生打下堅實的理論和實踐的基礎,使學生能夠充分的理解問題和解決問題的方法。從而,遇到復雜或更難的現實問題,學生們也可以勢如破竹的解決這樣的問題。
最后,在教學中講解一些精典的案例,這些案例是基于事實,使不斷合理化的案例在開發過程中存在一些待解決的困難和問題。通過這種方式把案例開發的整個過程呈現給學生,最終通過一系列的步驟把相關的問題和困難進行解決。最終達到讓學生領悟到最核心的策略以及系統的結構,從而使學生能夠明白開發過程的最關鍵的因素。
結束語
隨著Java語言近年來的興起和社會的需求,好的教學方法對培養學生的軟件編程能力起著非常重要的作用。因此,探索新的Java語言教學方法,提高教學質量和學生動手能力是我們教師必須重視的問題,這樣才能培養出適合社會需求的人才,促進我國軟件行業的進一步發展。通過近幾年的教學經驗得出,采用上述方法可以大大提高學生對java的學習興趣,并能夠全面的提升學生的實戰能力和動手能力,可以使學生更快的投入到軟件開發工作當中。