前言許多讀者就本書之前的版本給出了很多反饋。這些評論和建議極大地改進了本書。這一版在表述、組織、示例、練習題以及附錄方面都進行了極大的增強,包括:
用JavaFX取代了Swing。JavaFX是一個用于開發(fā)JavaGUI程序的新框架,它極大地簡化了GUI程序設計,比Swing更易于學習。
在GUI程序設計之前介紹異常處理、抽象類和接口,若教師選擇不教授GUI的內容,可以直接跳過第14~16章。
在第4章便開始介紹對象和字符題串,從而使得學生可以較早地使用對象和字符串來開發(fā)有趣的程序。
包含更多新的有趣示例和練習題,用于激發(fā)學生興趣。在配套網站(www.cs.armstrong.edu/liang/intro10e/或www.pearsonhighered.com/liang)上還為教師提供了100多道編程練習題。
本書采用基礎優(yōu)先的方法,在設計自定義類之前,首先介紹基本的程序設計概念和技術。選擇語句、循環(huán)、方法和數(shù)組這樣的基本概念和技術是程序設計的基礎,它們?yōu)閷W生進一步學習面向對象程序設計和高級Java程序設計做好準備。
本書以問題驅動的方式來教授程序設計,將重點放在問題的解決而不是語法上。我們通過使用在各種應用情景中引發(fā)思考的問題,使得程序設計的介紹也變得更加有趣。前面章節(jié)的主線放在問題的解決上,引入合適的語法和庫以支持編寫解決問題的程序。為了支持以問題驅動的方式來教授程序設計,本書提供了大量不同難度的問題來激發(fā)學生的積極性。為了吸引各個專業(yè)的學生來學習,這些問題涉及很多應用領域,包括數(shù)學、科學、商業(yè)、金融、游戲、動畫以及多媒體等。
本書將程序設計、數(shù)據(jù)結構和算法無縫集成在一起,采用一種實用性的方式來教授數(shù)據(jù)結構。首先介紹如何使用各種數(shù)據(jù)結構來開發(fā)高效的算法,然后演示如何實現(xiàn)這些數(shù)據(jù)結構。通過實現(xiàn),學生獲得關于數(shù)據(jù)結構效率,以及如何和何時使用某種數(shù)據(jù)結構的深入理解。最后,我們設計和實現(xiàn)了針對樹和圖的自定義數(shù)據(jù)結構。
本書廣泛應用于全球各大學的程序設計入門、數(shù)據(jù)結構和算法課程中。完全版包括程序設計基礎、面向對象程序設計、GUI程序設計、數(shù)據(jù)結構、算法、并行、網絡、數(shù)據(jù)庫和Web程序設計。這個版本旨在把學生培養(yǎng)成精通Java的程序員。基礎篇可用于程序設計的第一門課程(通常稱為CS1)。基礎篇包含完全版的前18章內容,前13章適合準備AP計算機科學考試(APComputerScienceExam)的人員使用。
教授編程的最好途徑是通過示例,而學習編程的唯一途徑是通過動手練習。本書通過示例對基本概念進行了解釋,提供了大量不同難度的練習題供學生進行實踐。在我們的程序設計課程中,每次課后都布置了編程練習。
我們的目標是編寫一本可以通過各種應用場景中的有趣示例來教授問題求解和程序設計的教材。如果您有任何關于如何改進本書的評論或建議,請通過以下方式與我聯(lián)系。
Y.DanielLiangy.daniel.liang@gmail.comwww.cs.armstrong.edu/liangwww.pearsonhighered.com/liang本版新增內容本版對各個細節(jié)都進行了全面修訂,以增強其清晰性、表述、內容、例子和練習題。本版主要的改進如下:
更新到Java8版本。
由于Swing被JavaFX所替代,因此所有的GUI示例和練習題都使用JavaFX改寫。
使用lambda表達式來簡化JavaFX和線程中的編程。
在配套網站上為教師提供了100多道編程練習題,并給出了答案。這些練習題沒有出現(xiàn)在教材中。
在第4章就引入了數(shù)學方法,使得學生可以使用數(shù)學函數(shù)編寫代碼。
在第4章就引入了字符串,使得學生可以早點使用對象和字符串開發(fā)有趣的程序。
GUI編程放在抽象類和接口之后介紹,若教師選擇不教授GUI內容的話,可以直接跳過這些章節(jié)。
第4、14、15和16章是全新的章節(jié)。
第28和29章大幅改寫,對最小生成樹和最短路徑使用更加簡化的方法實現(xiàn)。
教學特色本書使用以下要素組織素材:
教學目標在每章開始處列出學生應該掌握的內容,學完這章后,學生能夠判斷自己是否達到這個目標。
引言提出代表性的問題,以便學生對該章內容有一個概括了解。
要點提示突出每節(jié)中涵蓋的重要概念。
復習題按節(jié)組織,幫助學生復習相關內容并評估掌握的程度。
示例學習通過精心挑選示例,以容易理解的方式教授問題求解和程序設計概念。本書使用多個小的、簡單的、激發(fā)興趣的例子來演示重要的概念。
本章小結回顧學生應該理解和記住的重要主題,有助于鞏固該章所學的關鍵概念。
測試題測試題是在線的,讓學生對編程概念和技術進行自我測試。
編程練習題為學生提供獨立應用所學新技能的機會。練習題的難度分為容易(沒有星號)、適中(*)、難(**)和具有挑戰(zhàn)性(***)四個級別。學習程序設計的竅門就是實踐、實踐、再實踐。所以,本書提供了大量的編程練習題。
注意、提示、警告和設計指南貫穿全書,對程序開發(fā)的重要方面提供有價值的建議和見解。
注意提供學習主題的附加信息,鞏固重要概念。
提示教授良好的程序設計風格和實踐經驗。
警告幫助學生避開程序設計錯誤的誤區(qū)。
Y. Daniel Liang:普度大學終身教授,阿姆斯特朗亞特蘭大州立大學計算機科學系教授。他所編寫的Java教程在美國大學Java課程中采用率高,同時他還兼任Prentice Hall Java系列叢書的編輯。梁勇(Y. Daniel Liang),阿姆斯特朗亞特蘭大州立大學計算機科學系Yamacraw教授。之前曾是普渡大學計算機科學系副教授,并曾兩次獲得普渡大學大學杰出研究獎。他所編寫的Java教程在美國大學Java課程中采用率高。