《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》根據(jù)教育部高等學校計算機科學與技術教學指導委員會、IEEE-CS和ACM對計算機導論課程的要求,在學科思想方法這個較高的層面將學科知識有機地統(tǒng)一起來,避免了學科知識的雜亂堆積,有助于課程的教與學,也有助于學生計算思維能力的提高。 《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》主要內(nèi)容有:計算學科專業(yè)名稱的演變及培養(yǎng)的側重點,學科知識體與核心課程,“計算機導論”課程的構建,計算思維與計算機導論,學科的基本問題,學科中的抽象、理論和設計3個學科形態(tài),學科中的核心概念、數(shù)學方法、系統(tǒng)科學方法,社會與職業(yè)問題,以及學科若干問題的探討與學科未來教育的展望等。為了使讀者更好地理解和掌握書中的內(nèi)容,《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》在第1版的基礎上,增加了大量的實例和習題。 《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》可作為高等學!坝嬎銠C導論”或“計算思維導論”等課程的教材或參考書,還可供有關專業(yè)的學生、教師和科技人員參考。
《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》是長期課程建設及教學研究與實踐的結果。《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》以計算思維能力的培養(yǎng)為核心,用嚴密的方法將學生引入計算學科各個富有挑戰(zhàn)性的領域。經(jīng)過十多年的研究、實踐和建設,以《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》為主要內(nèi)容的計算機導論課程被評為國家精品課程。
《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》抓住課程關鍵,注重內(nèi)容的合理性、系統(tǒng)性,以及在教學上的可操作性!丁笆濉逼胀ǜ叩冉逃究茋壹壱(guī)劃教材·計算機科學導論:思想與方法(第2版)》抓住課程結構設計這個關鍵問題,基于學科認知模型對學科知識進行了系統(tǒng)化的梳理,將學科中一些看似零亂的知識有機地聯(lián)系起來,精選并構造了大量實例,增強了《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》在教學上的可操作性。
《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》追蹤國際計算機教育動態(tài),從學科的思想方法人手講授學科的本質(zhì)和核心概念,可以有效地提高學生的計算思維能力。《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》根據(jù)IEEE-CS和ACM對計算機導論課程嚴密性和挑戰(zhàn)性的要求,從學科的思想方法人手講授學科的本質(zhì)和核心概念,提供了與硬件優(yōu)先、算法優(yōu)先、程序優(yōu)先不同的,從學科認知規(guī)律人手的教學模式,可以有效地提高學生的計算思維能力。
《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》配有豐富的教學資源,極大地方便了教學!丁笆濉逼胀ǜ叩冉逃究茋壹壱(guī)劃教材·計算機科學導論:思想與方法(第2版)》有配套的學習網(wǎng)站,網(wǎng)站上有完整的電子教案、豐富的程序演示動畫、大量的習題,以及與《“十二五”普通高等教育本科國家級規(guī)劃教材·計算機科學導論:思想與方法(第2版)》配套的存儲程序式計算機模擬平臺,方便了計算機導論課程的教與學。
計算機導論課程的構建問題是計算教育面臨的一個重大問題,在計算教育史上具有里程碑意義的美國的《計算作為一門學科》(Computing as a Discipline)報告認為,該課程要用嚴密和富有挑戰(zhàn)性的方式培養(yǎng)學生面向?qū)W科思維的能力,使學生領會學科的力量以及從事本學科工作的價值之所在。
經(jīng)過十幾年的教學實踐,美國這一教學理念已被國內(nèi)相當多的人接受,而從計算思維,或者說從更為具體的學科思想方法這個層面講授計算機科學,更是得到了越來越多人的支持。
中國科學院院士陳國良教授多次指出,近代科學有一個趨勢,就是定量化和精確化。而定量化和精確化正是計算學科的特征。因此可以預測,近代科學的發(fā)展和突破,需要通過計算來實現(xiàn)。
計算推動著人類科技的進步,影響著各門學科的發(fā)展,并產(chǎn)生了一系列的新興學科,如計算生物學、計算物理學、計算化學、計算經(jīng)濟學、計算社會學、計算地質(zhì)學、計算氣象學等。通過對生命系統(tǒng)的建模,可以看到,計算生物學正在改變著生物學家的思考方式。計算機科學對于生物學的貢獻絕不限于能夠在海量時序數(shù)據(jù)中搜索尋找模式規(guī)律,而是最終希望能夠通過數(shù)據(jù)結構和算法——計算的抽象和方法——揭示生命的奧秘。比如可以將DNA序列看作是圖靈機的紙帶,將DNA序列上的基因組數(shù)據(jù)看作是計算機的程序或數(shù)據(jù),通過基因組數(shù)據(jù)的變換來保證細胞生存的需要。當然,也可以將生物病毒看作是一段DNA序列,它嵌入正常細胞中的DNA序列而導致細胞功能異常,這與一個計算機病毒嵌入正常程序而導致程序功能異常是類似的。這預示著未來,人們不僅可以控制疾病,甚至還可以像編寫計算機軟件那樣去合成DNA序列,有目的地創(chuàng)造出生命。類似地,量子計算改變著物理學家的思考方式,納米計算改變著化學家的思考方式,算法博弈理論改變著經(jīng)濟學家的思考方式。另外,計算機科學也在改變天文學家、流行病學家,甚至數(shù)學家的研究方式,“算法”本身的研究不僅為數(shù)學的研究提供了新的機遇,而且還會加深人們對問題的理解。
大學,特別是正處于國家現(xiàn)代化轉(zhuǎn)型期的中國大學,應該在一年級就講授學科中那些富有挑戰(zhàn)性的問題,以及解決問題的思維方式。
第1章 緒論.
1.1 引言
1.2 學科專業(yè)名稱的演變、學科描述及培養(yǎng)側重點
1.3 學科知識體和核心課程
1.3.1 計算機科學知識體及專業(yè)核心課程
1.3.2 計算機工程知識體及專業(yè)核心課程
1.3.3 軟件工程知識體及專業(yè)核心課程
1.3.4 信息技術知識體及專業(yè)核心課程
1.4 如何構建“計算機導論”課程
1.5 計算思維與計算機導論
1.6 本章小結
習題
第2章 學科的基本問題
2.1 引言
2.2 對問題進行抽象的一個典型實例:哥尼斯堡七橋問題
2.3 可計算問題與不可計算問題
2.3.1 梵天塔問題
2.3.2 算法復雜性中的難解性問題、P類問題和NP類問題
2.3.3 證比求易算法
2.3.4 P=?NP
2.3.5 RSA公開密鑰密碼系統(tǒng)
2.3.6 -個不可計算問題:停機問題
2.3.7 旅行商問題與組合爆炸問題
2.3.8 找零問題、背包問題與貪婪算法
2.4 GOTO話句與程序的結構
2.5 哲學家共餐問題與計算機的資源管理
2.6 兩軍問題與計算機網(wǎng)絡
2.6.1 兩軍問題
2.6.2 互聯(lián)網(wǎng)軟件的分層結構
2.7 人工智能中的若干哲學問題
2.7.1 圖靈測試
2.7.2 西爾勒的“中文屋子”
2.7.3 計算機中的博弈問題
2.8 計算機科學各主領域及其基
本問題
2.9 本章小結
習題二
第3章 3個學科形態(tài)
3.1 引言
3.2 一個關于“學生選課”的例子
3.2.1 對“學生選課”例子的感性認識
3.2.2 對“學生選課”例子的理性認識
3.2.3 “學生選課”系統(tǒng)的工程設計
3.3 抽象形態(tài).
3.4 理論形態(tài)
3.5 設計形態(tài).
3.6 3個學科形態(tài)的內(nèi)在聯(lián)系
3.7 計算機語言的發(fā)展及其3個學科形態(tài)的內(nèi)在聯(lián)系
3.7.1 自然語言與形式語言
3.7.2 圖靈機與馮·諾依曼計算機.
3.7.3 機器指令與匯編語言
3.7.4 以虛擬機的觀點來劃分計算機的層次結構
3.7.5 高級語言
3.7.6 應用語言
3.7.7 自然語言
3.7.8 小結
3.8 計算機科學各領域3個學科形態(tài)的主要內(nèi)容
3.9 本章小結
習題三
第4章 學科中的核心概念
4.1 引言
4.2 算法
4.2.1 算法的歷史簡介
4.2.2 算法的定義和特征.
4.2.3 算法實例.
4.2.4 算法的表示方法
4.2.5 算法分析
4.2.6 常用的兩類算法:搜索與排序
4.3 數(shù)據(jù)結構
4.3.1 數(shù)據(jù)結構的基本概念
4.3 2基于Vcomputer機器的數(shù)據(jù)結構概述
4.3.3 基于Vcomputer機器的數(shù)據(jù)的邏輯結構
4.3.4 基于Vcomputer機器的數(shù)據(jù)昀存儲結構l
4.4 程序
4.5 軟件
4.6 硬件
4.7 數(shù)據(jù)的存儲和表示
4.7.1 進位制數(shù)及其相互轉(zhuǎn)換
4.7.2 原碼、反碼、補碼及其轉(zhuǎn)換
4.7.3 字符、字符串和漢字
4.7.4 圖像
4.7.5 聲音
4.8 CC1991報告提取的核心概念
4.9 本章小結
習題四
第5章 學科中的數(shù)學方法
5.1 引言
5.2 數(shù)學的基本特征
5.3 數(shù)學方法的作用
5.4 計算學科中常用的數(shù)學概念和術語
5.4.1 集合
5.4.2 函數(shù)和關系
5.4.3 代數(shù)系統(tǒng)
5.4.4 字母表、字符串和語言
5.4.5 定義、定理和證明
5.4.6 必要條件和充分條件
5.5 證明方法
5.5.1 直接證明法和間接證明法
5.5.2 反證法
5.5.3 歸納法
5.5.4 構造性證明
5.6 遞婦和迭代
5.6.1 遞歸
5.6.2 迭代
5.7 隨機數(shù)和蒙特卡洛方法
5.7.1 隨機數(shù)
5.7.2 蒙特卡洛方法
5.8 公理化方法
5.8.1 理論體系
5.8.2 公理化方法的基本概念
5.8.3 實例
5.9 形式化方法
……
第6章 學科中的系統(tǒng)科學方法
第7章 社會與職業(yè)問題
第8章 探討與展望
附錄A CC2001中的計算機科學知識體
附錄B Armstrong公理系統(tǒng)
附錄C 哲學家共餐問題的模型檢驗
附錄D m+O=m的定理證明
索引
參考文獻
語言、文法以及自動機有著密切的關系。語言由文法產(chǎn)生,文法是一種數(shù)學模型,是建立在有限集合上的一組變換(運算)。因此,根據(jù)代數(shù)系統(tǒng)的定義,也可以將文法看作是一種代數(shù)系統(tǒng),而語言正是由這種代數(shù)系統(tǒng)產(chǎn)生的。
計算機使用的語言是一種形式語言,形式語言與自動機理論密切相關,并構成計算機科學重要的理論基礎,在形式語言與自動機理論中,語言又可分為短語結構語言、上下文有關語言、上下文無關語言和正規(guī)語言,它們分別由0型文法、1型文法、2型文法和3型文法產(chǎn)生。自動機是識別語言的數(shù)學模型,各類文法所對應的自動機分別是圖靈機、線性有界自動機、下推自動機和有限狀態(tài)自動機。
需要指出的是,語言與數(shù)學模型不是一一對應的關系,一種語言可以由不同的文法產(chǎn)生,也可以由不同的自動機識別。
5.4.5定義、定理和證明
定義、定理和證明是數(shù)學的核心,也是計算學科理論形態(tài)的核心內(nèi)容。其中,定義是蘊含在公理系統(tǒng)之中的概念和命題;定理是被證明為真的數(shù)學命題;證明是為使人們確信一個命題為真而作的一種邏輯論證。
數(shù)學家們認為,定義是數(shù)學的靈魂,定理和證明是數(shù)學的精髓。對一個問題來說,給出一個精確的定義是不容易的,以至有人認為,若能像圖靈給出“計算”的形式化定義那樣給出“智能”的定義,那么,“智能”的本質(zhì)將被揭示,“智能”領域也將產(chǎn)生一個質(zhì)的飛躍。
例5.8定義。定義是對一種事物的本質(zhì)特征或一個概念的內(nèi)涵與外延確切而簡要的說明。陳波在其著作《邏輯是什么?》一書中,從定義的作用、規(guī)則等多方面對定義做了系統(tǒng)的論述。
。1)定義的作用。
、倬C合作用:人們可以通過定義,對事物已有的認識進行總結,用文字的形式固定下來,并成為人們進行新的認識和實踐活動的基礎。
、诜治鲎饔茫喝藗兛梢酝ㄟ^定義,分析某個語詞、概念、命題的使用是否適合,是否存在邏輯方面的錯誤。
、劢涣髯饔茫喝藗兛梢酝ㄟ^定義,在理性的交談、對話、寫作、閱讀中,對于所使用的語詞、概念、命題有一個共同的理解,從而避免因誤解、誤讀而產(chǎn)生的無謂爭論,提高成功交流的可能性。
……