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