我讀《計算機科學(xué)概論》第12版 J.Gleen.Brookshear Dennis Brylow

用了很長時間,通讀了一遍《計算機科學(xué)概論》第12版,首先說一下整體印象,在計算機科學(xué)層面,老外的書比國內(nèi)的某些“大教授”編寫的教科書明顯不是一個檔次,老外用通俗易懂的語言教人理解計算機科學(xué),“大教授”用晦澀難懂的語言讓人遠離計算機科學(xué)。

這本書一共分為13章,包含緒論,數(shù)據(jù)存儲,數(shù)據(jù)操控,操作系統(tǒng),組網(wǎng)及因特網(wǎng),算法,程序設(shè)計語言,軟件工程,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫系統(tǒng),計算機圖形學(xué),人工智能,計算方法。鑒于時間原因及從核心出發(fā)的思想,我學(xué)習(xí)了前十章節(jié),后三章留待日后學(xué)習(xí)或者從其他專門書籍中學(xué)習(xí)。

從緒論章節(jié)開始,講述了計算機科學(xué)的歷史來源,涉及的主題及基本方法論,學(xué)習(xí)完緒論章節(jié),能對計算機科學(xué)有一個大概認識,并對算法,抽象,創(chuàng)新,數(shù)據(jù),程序設(shè)計,因特網(wǎng)及社會影響幾大核心主題有一個結(jié)構(gòu)化的理解。

第一章是關(guān)于數(shù)據(jù)存儲的,其核心主題是:計算機世界里,信息是通過0和1這兩個符號表示和傳遞的,通過使用0和1,計算機可以表示文本(ASCII及UNICODE編碼),數(shù)字(整數(shù)用二進制補碼表示,實數(shù)用二進制浮點表示法表示),圖像(通過位圖,矢量圖的形式表示),聲音(通過采集方式或者樂譜形式表示),視頻(圖像集合+聲音數(shù)據(jù));并通過簡單的門電路及觸發(fā)器原理講述了存儲二進制位的實際電路構(gòu)成,并以此介紹了計算機的主存儲器(內(nèi)存),海量存儲器(外存,包括磁盤存儲器,光盤存儲器,閃存存儲器)的基本構(gòu)成特點及性能;最后,介紹了Python語言的數(shù)據(jù)存儲語法及基本的運算符及表達式,數(shù)據(jù)壓縮的通用技術(shù)及通信差錯的處理方法。

第二章是關(guān)于計算機內(nèi)部數(shù)據(jù)操作的,其核心是:計算機的核心體系結(jié)構(gòu)包括CPU(運算單元和控制單元),內(nèi)存,總線;計算機可以通過存儲程序概念保存程序及數(shù)據(jù)到內(nèi)存單元,并通過機器指令形式操控機器部件及數(shù)據(jù);通過總線,計算機(CPU+內(nèi)存)可以與計算機外部設(shè)備(鍵盤,鼠標,打印機,顯示器等)通過控制器進行通信,以存儲映射輸入輸出的兩種方式完成通信過程,并通過狀態(tài)字機制處理通信過程中的不匹配問題;通過對Python中的數(shù)據(jù)操作方法的簡要介紹(包括邏輯運算與移位運算,控制結(jié)構(gòu)語法,輸入和輸出函數(shù)及自定義函數(shù))將本章的主要概念實際演示出來;最后,介紹了計算機的其他體系結(jié)構(gòu)包括流水線結(jié)構(gòu)及多處理器機器的概念。

第三章開始,利用前兩章的概念作為抽象工具,介紹了操作系統(tǒng)的歷史(批處理系統(tǒng),實時處理需要導(dǎo)致的分時及多任務(wù)處理概念,以及因此出現(xiàn)的多道程序設(shè)計方法),軟件分類(系統(tǒng)軟件+應(yīng)用軟件),操作系統(tǒng)的組成(用戶界面+文件管理程序+設(shè)備驅(qū)動程序+內(nèi)存管理程序),進程的概念(程序活動的執(zhí)行),進程管理的方法(調(diào)度程序及分派程序),信號量(為臨界區(qū)代碼或設(shè)備提供標識符用于多進程互斥訪問的方法)與死鎖(多進程設(shè)計不良造成的進程無法前進狀態(tài))的分析表明了操作系統(tǒng)處理多進程并發(fā)的方法;最后,用操作系統(tǒng)安全性(問題與解決辦法)的相關(guān)主題結(jié)束了本章節(jié)。

第四章主要介紹計算機網(wǎng)絡(luò)的相關(guān)知識,包括:組網(wǎng)方法(總線型網(wǎng)絡(luò)中的設(shè)備及帶沖突檢測的載波偵聽多址訪問協(xié)議,無線星型網(wǎng)絡(luò)中的設(shè)備及帶沖突避免的載波偵聽多址訪問協(xié)議),通過進程通信的方式引入了C/S模型及P2P模型,簡要介紹了以網(wǎng)絡(luò)為工具形成的軟件系統(tǒng)形式:分布式網(wǎng)絡(luò);接下來,重點描述了因特網(wǎng)(網(wǎng)絡(luò)的網(wǎng)絡(luò))的架構(gòu)方法,設(shè)備,地址形式(IP地址及域名系統(tǒng)),在因特網(wǎng)環(huán)境中的網(wǎng)絡(luò)應(yīng)用(SMTP協(xié)議下的郵件應(yīng)用,Voip及因特網(wǎng)多媒體流通信);在以上知識的基礎(chǔ)上,構(gòu)建了因特網(wǎng)特殊應(yīng)用:萬維網(wǎng)(WWW),并介紹了萬維網(wǎng)中的標記語言-HTML,XML以及萬維網(wǎng)客戶端和服務(wù)器的活動;網(wǎng)絡(luò)軟件的四層架構(gòu)及相應(yīng)層級上的網(wǎng)絡(luò)協(xié)議,重點介紹了TCP及UDP協(xié)議的區(qū)別與相似點;最后,以網(wǎng)絡(luò)安全性問題及相關(guān)解決方案的介紹結(jié)束。

第五章介紹了計算機科學(xué)的核心主題:算法。包括:算法的本質(zhì)及概念;算法的表示方法(原語,偽代碼,流程圖,機器語言,匯編語言與高級語言);算法的發(fā)現(xiàn)過程(自頂向下逐步求精及自底向上逐步求解的方法);算法的兩種結(jié)構(gòu)(迭代及遞歸),基本算法(順序搜索算法,二分搜索算法,插入排序算法,選擇排序算法,冒泡排序算法);算法的效率分析(時間復(fù)雜性及空間復(fù)雜性,本書主要介紹了時間復(fù)雜性的計算方法)及軟件正確性驗證(形式化驗證方法)。

第六章涉及程序涉及語言方面的相關(guān)主題,通過本章學(xué)習(xí),我了解到了:程序設(shè)計語言的概念及發(fā)展(機器語言->匯編語言->高級語言),程序設(shè)計的四大范型(命令型范型,函數(shù)式范型,說明性范型及面向?qū)ο蠓缎停?,傳統(tǒng)程序設(shè)計的概念(變量,常量,字面量,數(shù)據(jù)類型,數(shù)據(jù)結(jié)構(gòu),控制語句,表達式及注釋,函數(shù)),語言實現(xiàn)的過程(語法分析,詞法分析,代碼生成),面向?qū)ο蟪绦蛟O(shè)計的基本概念(類和對象,構(gòu)造函數(shù),繼承,封裝,多態(tài)性概念),程序設(shè)計并發(fā)活動(線程的概念及創(chuàng)建線程方法,對數(shù)據(jù)訪問的控制方法由線程控制或者數(shù)據(jù)自身的監(jiān)控程序控制)。

第七章描述了現(xiàn)代軟件工程方面的主題,包括:軟件生命周期(開發(fā)階段,使用階段,維護階段),在開發(fā)階段包括需求分析,設(shè)計及實現(xiàn);軟件模塊化設(shè)計方法(命令型程序中的函數(shù)模塊化,面向?qū)ο蠓缎椭械膶ο竽K化,模塊化的低耦合,高內(nèi)聚以及信息隱藏的原則),在軟件設(shè)計過程中使用的UML即統(tǒng)一建模語言(實際使用用例圖,類圖及序列圖來描述軟件系統(tǒng)),并通過軟件質(zhì)量保證(測試+形式化方法),軟件相關(guān)文檔(用戶文檔+系統(tǒng)文檔+技術(shù)文檔),人機界面及軟件所有權(quán)方面的主題結(jié)束了本章節(jié)。

接下來到了第八章,本章介紹了數(shù)據(jù)結(jié)構(gòu)的概念(通過語言設(shè)計數(shù)據(jù)集合,隱藏技術(shù)細節(jié),使應(yīng)用程序開發(fā)者使用概念結(jié)構(gòu)操控數(shù)據(jù)),典型數(shù)據(jù)結(jié)構(gòu)的概念(列表,鏈表,棧和隊列,樹及二叉樹)及實現(xiàn)方法(使用指針),通過傳統(tǒng)命令型程序中用戶定義的數(shù)據(jù)類型及抽象數(shù)據(jù)類型的介紹引入了類與對象這種特殊的數(shù)據(jù)結(jié)構(gòu),并通過機器語言的指針實現(xiàn)方法引入了立即尋址,直接尋址及間接尋址的概念。

第九章介紹數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)包括(應(yīng)用軟件+數(shù)據(jù)庫管理系統(tǒng)+實際數(shù)據(jù)庫),通過SQL語言,可以借助數(shù)據(jù)庫管理系統(tǒng)提供的訪問數(shù)據(jù)庫的例程訪問實際數(shù)據(jù)庫,可以從概念上訪問數(shù)據(jù)庫而不需要考慮存儲細節(jié),數(shù)據(jù)庫設(shè)計的方法包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫及面向?qū)ο髷?shù)據(jù)庫,面向?qū)ο髷?shù)據(jù)庫從各種方面優(yōu)于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫;簡要介紹了數(shù)據(jù)挖掘及數(shù)據(jù)倉庫的概念以及數(shù)據(jù)庫技術(shù)引發(fā)的社會問題。

一口氣寫完這篇,是為了在輸入信息及知識的同時產(chǎn)生相關(guān)輸出,整理自己的所學(xué),從中發(fā)現(xiàn)問題,以為下一階段學(xué)習(xí)提供參考,不得不說,這樣一套學(xué)習(xí)下來,對計算機科學(xué)有了一個全景式的認知,并對計算機科學(xué)中的模型有了一個較為系統(tǒng)的認知,對常見的經(jīng)典問題及解決方案也有了一個基礎(chǔ)的理解,這本書先學(xué)到這里,接下來需要學(xué)習(xí)產(chǎn)品相關(guān)的理論書籍及實用方法,這本書先入書架,日后還將不斷翻看。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2017年11月24日

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容