本書由兩位知名的計算機科學教育家編寫,全面而細致地介紹了計算機科學的各個方面。書中,計算系統(tǒng)的每個分層都以剖析,從住處層開始,歷經硬件層、程序設計層、操作系統(tǒng)層、應用程序層的通信層,最后討論了計算的限制。此外,正文中穿插了大量的人物傳記、歷史注釋、道德問題和最新的技術發(fā)展信息,有助于你進一步了解計算機科學。每章后面都附帶有大量的練習,可以幫助你即時重溫并掌握這一章所述的內容。本書是計算和計算機科學引論課程的理想教材,對于想要了解計算機科學概況的非專業(yè)人員,本書也是一個很好的選擇。本書前言為了制定這本CS0教材的論題大綱,我們利用了許多資源,包括課程目錄、教材大綱以及一個email調查問卷。設計這個調查問卷的目的在于了解我們的同事對這門課應該包括哪些內容的想法。我要求他們和自己列出下列三種清單。*如果CS0這門課是學生在大學階段學習的唯一一門計算機科學的課程,請列出四種你認為他們應該掌握的論題。*請列出四種你想要學生在進入CS1這門課之前掌握的論題。*請補充四種你想要學習CS1的學生熟悉的論題。這些資源的交集反應出的大多數(shù)人的意見構成了本書的大綱。在學習CS1之前掌握了本書內容的學生將為繼續(xù)學習計算機科學打下堅實的基礎。盡管我們的意圖是編寫一本CS0教材,但是許多評論家都認為本書的覆蓋面非常廣泛,可以作為一種程序設計語言的計算機科學導論的參考書。結構說明在第1章中,我們介紹了硬件和軟件的歷史,并且用洋蔥的結構來類比計算機系統(tǒng)的結構。計算機和它的機器語言構成了洋蔥的芯,軟件層和更復雜的硬件一層層地裹住了這個芯。首先介紹的是機器語言,然后是高級語言,包括FORTRAN、Lisp、Pascal、C、C++和Java。在介紹這些語言的同時,還介紹了利用它們進行程序設計的過程,包括自頂向下的設計和面向對象的設計。我們對抽象數(shù)據(jù)類型及其實現(xiàn)所扮演的角色的理解已經成熟了。操作系統(tǒng)和它的資源管理技術(包括更大、更快的二級存儲介質上的文件)包圍著這些程序,并對它們進行管理。接下來的一層由更復雜的通用或專用軟件系統(tǒng)構成,它們覆蓋了操作系統(tǒng)。這些功能強大的程序由計算機科學中的并行理論支持。最后一層由網絡和網絡軟件構成,網絡軟件包括計算機之間通信必需的所有工具。Internet和萬維網給這一層畫上了最后一筆。當這些層隨著時間的流逝逐漸增長時,用戶對計算機系統(tǒng)的硬件接觸得越來越少。每個層都是它下面的計算機系統(tǒng)的抽象。隨著每個層的發(fā)展,新層的用戶和內部層的用戶聯(lián)合起來,在經濟領域的高科技部門創(chuàng)造了大量的生產力。本書的目的是提供各個層的概述,介紹基礎的硬件和軟件技術,使學生了解和欣賞計算系統(tǒng)的方方面面。在介紹這種洋蔥式結構時,我們有兩種選擇,一種是從內向外逐層介紹,另一種是從外向內進行介紹。從外向內的方法看來非常吸引人。我們可以從最抽象的層開始介紹,一次剝掉一個層,直到具體的機器層為止。但是,研究表明,比起抽象的例子,學生們更容易理解具體的例子,即使他們本身是抽象思想家。因此,我們選擇從具體的機器層開始,按照層的創(chuàng)建順序進行分析,當學生完全理解了一個層之后,再轉移到下一個層就比較容易。第2版中的變化一本全新的書的第1版就像一艘新船的試航。如果設計足夠好,那么就只有一些小問題需要調整。當這本書成了舊的,它未來的版本可能會要求全面修訂。幸運的是,我們的讀者認為這本書的設計是穩(wěn)定的,在這一版中,只需要進行一些改動。我們更新了一些傳記,把舊的軼聞趣事?lián)Q成了新的,而且還使“道德問題”部分反映的是當前的問題。我們將在下面的摘要中指出內容的變化。除了內容的變化,我們還修改了練習。練習中的問題被分為兩類,即主觀題和客觀題。許多教育者認為客觀練習(包括多項選擇、對錯判斷和填空)是無用的。但是,根據(jù)伊利諾伊大學的測試和評估部的研究,主觀測試和客觀測試可以衡量相似的內容和學習目標。根據(jù)兩項相隔42年的研究,學生對短文和涵蓋相同內容的客觀測試題的反應幾乎完全一樣。因此,我們決定同時采用客觀題和主觀題。每一章都有多項選擇題和判斷題,還有簡答題和需要解決方案的問題。對于大班來說,講師可以利用這些問題快速地設計出小測驗。