本書以信息處理的過程為主線, 以信息的處理方法為重點, 從信息的表示、存儲、處理、傳輸?shù)确矫嬷v述了計算機加工信息的主要過程、基本技術(shù)和重要思想方法。本書體系完整, 內(nèi)容全面, 以問題為導(dǎo)向, 通過啟發(fā)、類比引導(dǎo)學(xué)生分析問題、求解問題。本書具有較強的可讀性和實用性, 能夠讓學(xué)生在有限時間內(nèi), 掌握基本原理和方法, 培養(yǎng)創(chuàng)新意識和分析、求解問題的能力。
本書第4版于2011年出版。當時計算思維正在引入教學(xué),編寫第4版的目標是基于計算機信息處理的基本技能,培養(yǎng)計算思維能力,應(yīng)用6年,收到了較好的效果。從對“大學(xué)計算機基礎(chǔ)”課程做的調(diào)查看,學(xué)完本課,95%的同學(xué)認為本課程的收獲很大或較大,90%以上的同學(xué)認為計算機科學(xué)是有趣的,80%的同學(xué)認為本課程對思考問題的能力有較大啟發(fā)和很大啟發(fā),50%以上的同學(xué)認為對綁定、效率、記憶、遞歸、糾錯、學(xué)習(xí)、按時間排序、計算、分解、冗余等計算思維的基本概念理解較好。本書第4版獲2014年西安交通大學(xué)第十三屆優(yōu)秀教材一等獎暨全國高校出版社優(yōu)秀暢銷書獎,也是“國家精品課程”主講教材。當然,本書也有很多不足,比如原來的組織結(jié)構(gòu)不盡合理,內(nèi)容偏多,部分內(nèi)容講得不夠細致,例題、習(xí)題還不夠豐富等。
在多年教學(xué)實踐基礎(chǔ)上,參考教育部高等學(xué)校大學(xué)計算機課程教學(xué)指導(dǎo)委員會編制的《大學(xué)計算機基礎(chǔ)課程教學(xué)基本要求》(2016版),本書主要作了如下修改:
。1)調(diào)整了內(nèi)容的順序。將計算機系統(tǒng)的講解放到了第1章,這樣先讓同學(xué)們了解計算機系統(tǒng)是什么樣的;將數(shù)據(jù)的組織和數(shù)據(jù)管理分開,也調(diào)整了順序,這樣邏輯上更合理些。
。2)增加了部分內(nèi)容。如Python語言編程基礎(chǔ),這樣就容易實現(xiàn)以后的基于Python的編程實驗;增加了加法器的介紹,便于理解龐大的計算機系統(tǒng)是由基本電路組成的。
。3)刪除和精簡了部分內(nèi)容。如信息傳輸部分刪除了同步技術(shù)、復(fù)用技術(shù);信息表示部分刪除了圖像和音視頻的壓縮等。精簡了算法策略和信息傳輸?shù)拇蟛糠謨?nèi)容。
。4)增加了例題和習(xí)題。大部分要求掌握的內(nèi)容,都增補了例題,同時增補了類型豐富的習(xí)題,這使學(xué)生更容易把握教學(xué)的目的和目標,便于練習(xí)掌握。
。5)增加了計算機科學(xué)家的簡介。對本書中出現(xiàn)的計算機科學(xué)家,出于敬仰和敬意,大部分列出了簡短介紹,同時也方便同學(xué)們了解知識、技術(shù)的背景,更好地掌握,學(xué)習(xí)內(nèi)容。
。6)增加了課堂提問。這樣方便學(xué)生進行階段性思考,而不總是低頭學(xué)習(xí)。
本書第5版組織更合理,內(nèi)容更精練,講解更細致,邏輯更緊密,習(xí)題更豐富,目標更明確,教學(xué)內(nèi)容涵蓋《大學(xué)計算機基礎(chǔ)課程教學(xué)基本要求》列出的8類42個計算思維核心概念。
本書第1~3章由趙英良編寫和修訂,第5章由仇國巍編寫和修訂,第1、7章由夏秦編寫和修訂,第4、6章由賈應(yīng)智編寫和修訂,全書由趙英良統(tǒng)稿。本書獲西安交通大學(xué)本科“十三五”規(guī)劃教材建設(shè)項目支持。在修訂過程中衛(wèi)顏俊、喬亞男等老師也提出了許多寶貴意見,在此表示感謝。
由于編者水平有限,書中難免有不足甚至是錯誤,懇請專家、同行和同學(xué)們批評指正,更希望提出意見和建議,謝謝。
第1章 計算機系統(tǒng)概述
1.1 計算和計算工具
1.1.1 計算
1.1.2 早期計算工具
1.1.3 機械式計算機
1.1.4 電子計算機
1.2 計算機系統(tǒng)的組成
1.2.1 硬件系統(tǒng)
1.2.2 軟件系統(tǒng)
1.3 本章小結(jié)
習(xí)題1
第2章 Python語言編程入門
2.1 算法的描述和評價
2.1.1 算法的特征
2.1.2 算法的描述
2.1.3 算法的評價
2.2 計算機語言及其發(fā)展
2.3 Python語言編程入門
2.3.1 Python語言環(huán)境的安裝和使用
2.3.2 Python語法初步
2.3.3 運算符
2.3.4 控制結(jié)構(gòu)
2.3.5 列表和字符串
2.3.6 函數(shù)
2.4 本章小結(jié)
習(xí)題2
第3章 信息的表示與存儲
3.1 信息和信息的表示
3.1.1 計算機中的信息和信息的表示形式
3.1.2 數(shù)的表示
3.1.3 非數(shù)值信息的表示
3.2 信息的存儲
3.2.1 布爾運算
3.2.2 門電路
3.2.3 存儲器的結(jié)構(gòu)
3.2.4 簡單的加法器
3.3 數(shù)據(jù)壓縮
3.3.1 信息量和信息熵
3.3.2 基本壓縮方法
3.4 本章小結(jié)
習(xí)題3
第4章 數(shù)據(jù)的組織
4.1 數(shù)據(jù)結(jié)構(gòu)概述
4.1.1 數(shù)據(jù)、數(shù)據(jù)元素和數(shù)據(jù)項
4.1.2 數(shù)據(jù)元素之間的聯(lián)系
4.1.3 數(shù)據(jù)的邏輯結(jié)構(gòu)
4.1.4 數(shù)據(jù)的存儲結(jié)構(gòu)
4.1.5 數(shù)據(jù)的運算
4.2 線性表
4.2.1 順序表
4.2.2 線性鏈表
4.2.3 棧
4.2.4 隊列
4.3 樹型結(jié)構(gòu)
4.3.1 樹
4.3.2 二叉樹
4.3.3 樹轉(zhuǎn)化為二叉樹
4.4 圖結(jié)構(gòu)
4.4.1 圖的定義和基本術(shù)語
4.4.2 圖的存儲
4.4.3 圖的遍歷
習(xí)題4
第5章 查找、排序和算法策略
5.1 查找算法
5.1.1 查找的基本概念
5.1.2 順序查找
5.1.3 二分查找
5.1.4 哈希表及哈希查找
5.1.5 二叉排序樹查找
5.2 排序算法
5.2.1 直接插入排序
5.2.2 簡單選擇排序
5.2.3 冒泡排序
5.3 算法策略
5.3.1 枚舉法
5.3.2 遞歸法
5.3.3 分治法
5.3.4 回溯法
5.3.5 貪心算法
習(xí)題5
第6章 數(shù)據(jù)庫技術(shù)基礎(chǔ)
6.1 數(shù)據(jù)庫技術(shù)的概念
6.1.1 數(shù)據(jù)管理技術(shù)的發(fā)展
6.1.2 數(shù)據(jù)庫系統(tǒng)
6.2 關(guān)系數(shù)據(jù)庫
6.2.1 數(shù)據(jù)模型
6.2.2 關(guān)系模型
6.3 結(jié)構(gòu)化查詢語言
6.3.1 什么是結(jié)構(gòu)化查詢語言
6.3.2 數(shù)據(jù)表的操作
6.3.3 數(shù)據(jù)更新
6.3.4 數(shù)據(jù)查詢
6.4 在Python中操作SQLite數(shù)據(jù)庫
6.4.1 SQLite和PySQLite簡介
6.4.2 打開和關(guān)閉數(shù)據(jù)庫
6.4.3 執(zhí)行SQL語句
習(xí)題6
第7章 信息的傳輸
7.1 計算機網(wǎng)絡(luò)基礎(chǔ)
7.1.1 計算機網(wǎng)絡(luò)的組成
7.1.2 網(wǎng)絡(luò)拓撲
7.1.3 網(wǎng)絡(luò)體系結(jié)構(gòu)
7.1.4 傳輸介質(zhì)
7.1.5 常見網(wǎng)絡(luò)設(shè)備
7.1.6 編址方法
7.1.7 網(wǎng)絡(luò)服務(wù)
7.2 數(shù)據(jù)通信
7.2.1 基本概念
7.2.2 信號編碼
7.2.3 檢錯和糾錯
7.3 網(wǎng)絡(luò)安全
7.3.1 基本概念
7.3.2 加密解密
7.3.3 用戶認證
7.3.4 數(shù)字簽名
習(xí)題7
附錄 ASCII字符表
參考文獻