• 1.摘要
  • 2.基本信息
  • 3.内容简介
  • 4.图书目录
  • 5.序言

计算机科学导论:思想与方法

《计算机科学导论:思想与方法》根据教育部高等学校计算机科学与技术教学指导委员会、IEEE— CS和ACM对“计算机导论”课程的要求,将“计算机导论”课程构建的重点放在课程的结构设计上,在学科思想与方法这个较高的层面,将学科知识有机地统一起来,避免了该课程在结构设计上容易出现的学科知识杂乱堆积的问题,有助于课程的教与学。 《计算机科学导论:思想与方法》的主要内容包括计算学科专业名称的演变,学科的描述、培养侧重点,学科各专业方向的知识体与核心课程,“计算机导论”课程的构建,学科的基本问题,学科中的抽象、理论和设计3个学科形态,学科中的核心概念、数学方法、系统科学方法,社会与职业问题,学科若干问题的探讨以及对学科教育的展望等。为了使读者更好地理解和掌握书中的内容,在各章末都附有一定数量的习题。 《计算机科学导论:思想与方法》可作为高等学校“计算机导论”或“计算机方法论”等课程的教材,还可供其他专业的学生、教师和科技人员参考。

基本信息

  • 书名

    计算机科学导论:思想与方法

  • 作者

    董荣胜

  • 出版社

    高等教育出版社

  • 出版日期

    2007年9月1日

  • 页数

    263页

内容简介

《计算机科学导论:思想与方法》: 依据教育部高等学校计算机科学与技术教学指导委员会编制的高等学校计算机科学与技术专业规范和IEEE/ACM制订的CC2001-CC2005有关教程编写。 《计算机科学导论:思想与方法》特色: 《计算机科学导论:思想与方法》的撰写建立在计算学科认知模型的基础上,并在学科思想与方法层面上对学生进行整个学科的导引,为学生顺利完成大学课程的学习提供必要的帮助。 从问题入手进行导引,是将学生引入学科富有挑战性领域的一个有效方法。《计算机科学导论:思想与方法》从与计算学科有关的若干著名问题出发,引出学科及其分支领域的基本问题,增加了《计算机科学导论:思想与方法》的趣味性,使问题更易于理解和记忆。 从程序员的角度,以计算机语言的发展为主线,将自然语言、形式语言、图灵机、冯·诺依曼计算机,以及程序等内容联系在一起,为学生以后深入学习和理解计算机系统打下基础。

图书目录

第1章 绪论 1.1 引言 1.1.1 计算学科命名的背景 1.1.2 计算学科的定义 1.1.3 计算学科的根本问题 1.2 学科专业名称的演变、学科描述及培养侧重点 1.2.1 演变中的学科专业名称 1.2.2 分支学科(专业)描述及培养侧重点 1.3 学科知识体和核心课程 1.3.1 计算机科学知识体及专业核心课程 1.3.2 计算机工程知识体及专业核心课程 1.3.3 软件工程知识体及专业核心课程 1.3.4 信息技术知识体及专业核心课程 1.4 如何构建“计算机导论”课程 1.4.1 “计算机导论”课程的构建是计算教育面临的一个重大问题 1.4.2 计算学科的认知模型——计算学科二维定义矩阵 1.4.3 “计算机导论”课程的结构设计 1.5 本章小结 习题一 第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 一个不可计算问题:停机问题 2.3.6 旅行商问题与组合爆炸问题 2.3.7 找零问题、背包问题与贪婪算法 2.4 “GOTO语句”与程序的结构 2.5 “哲学家共餐”问题与计算机的资源管理 2.5.1 生产者一消费者问题 2.5.2 “哲学家共餐”问题 2.6 “两军问题”与计算机网络 2.6.1 两军问题 2.6.2 互联网软件的分层结构 2.7 人工智能中的若干哲学问题 2.7.1 图灵测试 2.7.2 西尔勒的“中文屋子 2.7.3 计算机中的博弈问题 2.8 计算机科学各主领域及其基本问题 2.8.1 离散结构 2.8.2 程序设计基础 2.8.3 算法与复杂性 2.8.4 体系结构 2.8.5 操作系统 2.8.6 网络计算 2.8.7 程序设计语言 2.8.8 人机交互 2.8.9 图形学和可视化计算 2.8.1 0智能系统 2.8.1 1信息系统 2.8.1 2软件工程 2.8.1 3社会和职业问题 2.8.1 4科学计算 2.9 本章小结 习题二 第3章 3个学科形态 3.1 引言 3.2 一个关于“学生选课”的例子 3.2.1 对“学生选课”例子的感性认识 3.2.2 对“学生选课”例子的理性认识 3.2.3 “学生选课”系统的工程设计 3.3 抽象形态 3.3.1 一般科学技术方法论中的抽象形态 3.3.2 计算学科中的抽象形态 3.3.3 例子中有关抽象形态的主要内容及其简要分析 3.4 理论形态 3.4.1 一般科学技术方法论中的理论形态 3.4.2 计算学科中的理论形态 3.4.3 例子中有关理论形态的主要内容及简要分析 3.5 设计形态 3.5.1 一般科学技术方法论中的设计形态 3.5.2 计算学科中的设计形态 3.5.3 例子中有关设计形态的主要内容及简要分析 3.6 3个学科形态的内在联系 3.6.1 一般科学技术方法论中3个学科形态的内在联系 3.6.2 计算学科中3个学科形态的内在联系 3.6.3 关系数据库领域中3个学科形态的内在联系 3.7 计算机语言的发展及其3个学科形态的内在联系 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个学科形态的主要内容 3.9 本章小结 习题三 第4章 学科中的核心概念 4.1 引言 4.2 算法 4.2.1 算法的历史简介 4.2.2 算法的定义和特征 4.2.3 算法实例 4.2.4 算法的表示方法 4.2.5 算法分析 4.3 数据结构 4.3.1 数据结构的基本概念 4.3.2 常用的几种数据结构 4.4 程序 4.5 软件 4.6 硬件 4.7 数据存储和表示 4.7.1 进位制数及其相互转换 4.7.2 原码、反码、补码及其转换 4.7.3 字符、字符串和汉字 4.7.4 图像 4.7.5 声音 4.8 CC1991报告提取的核心概念 4.9 本章小结 习题四 第5章 学科中的数学方法 5.1 引言 5.2 数学的基本特征 5-3数学方法的作用 5.4 计算学科中常用的数学概念和术语 5.4.1 集合 5.4.2 函数和关系 5.4.3 代数系统 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 迭代 …… 第6章 学科中的系统方法 第7章 社会与职业问题 第8章 探讨与展望 附录A 计算机科学知识体 附录B Armstrong公理系统 附录C 哲学家共餐问题的模型检验 附录D m+o=m的定理证明 参考文献

序言

计算学科的基本认知问题是学术界长期以来一直探讨的问题,反映在教学上就是“计算机导论”课程的构建问题,这个问题弓l起了IEEE-CS和ACM的关注。 1989年,ACM攻关组提交 “计算作为一门学科”的报告,将该问题与学科的“存在性”证明问题、学科核心课程的设置问题并列为计算教育面临的3个重大问题。 回顾历史,“计算作为一门学科”报告解决了计算教育面临的第一个重大问题,即学科的“存在性”证明问题,同时,也奠定了该报告在计算教育史上的里程碑地位。现在,计算学科已经成为大学最活跃的学科,至于计算教育是否列入学科的争论已经不存在了,现在的问题是如何找到一种方法来满足这种需求。 CC1991报告与“计算作为一门学科”报告一脉相承,由于没有给出学科核心课程的详细内容,最终没有获得预期的效果。CC2001吸取CC1991的教训,给出了计算机科学(CS)核心课程的详细设计,为CE2004、SE2004、IT2005等报告的制定提供了模式。现在,计算学科有了非常详细的专业核心课程。然而,学科内容的庞杂给计算学科的教学带来了困难。19世纪,化学教学史上曾遇到过前所未有的危机,面对当时杂乱无章的63个化学元素,教与学面临相当大的困难,为了解决这个问题,门捷列夫发明了“元素周期表”,该表揭示了化学元素之间的规律,使问题的复杂性大大下降,最终促进了化学学科的发展。 现在的计算学科,仅就其重要的思想、方法和核心概念而言,已远远超过63这个数字。因此,要解决计算学科内容庞杂的问题,就不得不解决“计算机导论”课程的构建问题。 “计算作为一门学科”报告希望“计算机导论”课程能用类似于数学那样严密的方式将学生引入计算学科各个富有挑战性的领域之中。CC2001报告介绍了该课程的构建问题,并希望在这门课中讲授学科中那些富有智慧的核心思想。CC2004和CC2005则进一步指出,该课程的关键是课程的结构设计问题,现有的浓缩版结构显然不是一种好的课程结构,报告期待人们在该课程的结构设计上有所突破。