具体描述
本书共分7章,分别介绍计算与计算思维、充满智慧与挑战的计算理论(技术)基础、计算思维之方法学、计算思维之算法基础、面向计算之问题求解思想与方法、计算思维之程序基础、基于计算之问题求解思想与方法、从“计算”到“文化”等。
本书特点:一是知识面比较广、内容非常丰富;二是尽量体现“实例化、生活化、故事化、图文并茂”的指导思想,以增强可读性;三是内容比较新颖。
本书可作为高等院校计算机专业和非计算机专业的入门教材,也可供相关技术人员参考学习。
作者简介
唐培和,男,教授,先后任广西科技大学计算机学院院长、教务处处长。广西高等教育学会计算机基础教育专业委员会常务理事,全国高校计算机基础教育研究会第六届理事会理事,广西高校“教学名师”。 长期从事计算机教学与科研,重点关注专业基础课和计算机基础教育。自知专业知识不够精深,但还算广博,提倡以博辅专,融会贯通。文风通俗,不饰粉墨,字如其人。可谓“三尺讲台毕生缘,一份痴情心血凝”。
目录信息
1.1 计算需求与计算技术的演化 2
1.1.1 远古时代的原始计算方法 2
1.1.2 机械式计算技术 6
1.1.3 机电式计算技术 7
1.1.4 电子计算技术 8
1.1.5 并行与分布式计算 11
1.1.6 云计算与海计算 12
1.1.7 未来的计算 13
1.2 科学研究的三大方法——理论、实验与计算 14
1.3 计算(机)科学与计算学科 15
1.4 计算思维 18
1.4.1 什么是计算思维? 18
1.4.2 狭义计算思维与广义计算思维 19
1.4.3 计算思维之应用 21
阅读材料:计算机发展史大事记 24
第2章 充满智慧与挑战的计算理论(技术)基础 32
2.1 独辟蹊径的数据表示方法 32
2.1.1 数据的表示——弃“十”选“二”的神来之笔 32
2.1.2 有限的字长与大小不一的数据 39
2.1.3 符号的表示——编码 41
2.1.4 鸿沟与代价 42
2.2 从逻辑学到逻辑电路——思维可计算吗 47
2.2.1 生活中的“逻辑问题” 47
2.2.2 逻辑与思维 48
2.2.3 数理逻辑 52
2.2.4 逻辑推理与人工智能 55
2.2.5 逻辑门电路 57
2.3 “九九归一”的加法运算 58
2.3.1 加法运算及其加法器的设计 58
2.3.2 补码运算——把减法当加法做 61
2.4 计算的本质——图灵机及其计算能力 62
2.4.1 图灵机模型 62
2.4.2 图灵机的工作原理 64
2.4.3 图灵机的计算能力 67
2.5 计算机的构造——冯诺依曼机及其工作原理 72
2.5.1 冯诺依曼型计算机的组成和工作原理 73
2.5.2 思想与技术的演化 75
2.5.3 冯诺依曼型计算机的特点及其局限性 78
2.6 计算技术的开拓与发展 79
2.7 什么都能计算吗——难题及其可计算性 82
2.7.1 难题何其多 83
2.7.2 可计算性与计算复杂性 86
2.7.3 难题大挑战及其科学意义 88
【阅读材料】计算机系统(PC机)的硬件组成 92
第3章 计算思维之方法学 99
3.1 问题求解过程 99
3.1.1 人类解决客观世界问题的思维过程 99
3.1.2 借助于计算机的问题求解过程 101
3.1.3 两种问题求解过程的对比 104
3.2 数学模型——问题的抽象表示 104
3.3 数据存储结构 108
3.3.1 顺序存储结构 108
3.3.2 链式存储结构 109
3.3.3 索引存储结构 111
3.3.4 散列存储结构 111
3.4 客观世界到计算机世界的映射方法 112
3.4.1 面向过程的结构化设计方法学 112
3.4.2 面向对象程序设计方法学 116
3.5 时间与空间及其相互转换 122
3.6 抽象 124
3.6.1 什么是抽象(Abstraction) 124
3.6.2 计算学科中的抽象 128
3.6.3 抽象的层次性 128
3.6.4 程序中的抽象 131
3.6.5 抽象与模型 133
3.6.6 抽象与计算机语言 134
3.7 串行与并行 137
3.8 局部化与信息隐藏 139
3.8.1 局部化 139
3.8.2 信息隐藏(Information hiding) 140
3.9 精确、近似与模糊 141
3.10 折中与中庸之道 142
【阅读材料】计算机软件及其软件系统 144
第4章 计算思维之算法基础 149
4.1 算法 149
4.1.1 什么是算法 149
4.1.2 算法的性质 152
4.1.3 算法的种类 153
4.1.4 算法的表示(描述) 154
4.1.5 算法与程序 159
4.1.6 算法的比较与分析 161
4.2 算法设计的基本思想与方法 164
4.2.1 穷举法(也称为枚举法,Enumeration) 164
4.2.2 递推法(Recurrence) 166
4.2.3 递归法 168
4.2.4 回溯法(Backtracking)* 173
4.2.5 分治法(Divide and Conquer) 178
4.2.6 仿生法——蚁群算法(Ant colony optimization,ACO)* 181
4.2.7 并行算法* 184
4.2.8 算法设计与计算思维 186
4.3 几个常用的经典算法 186
4.3.1 累加和、连乘积与最大(小)值 187
4.3.2 查找 188
4.3.3 排序 191
4.3.4 逻辑分析与推理 201
阅读材料:MATLAB问题表示与计算 207
第5章 面向计算之问题求解思想与方法 213
5.1 大海捞针的搜索引擎 213
5.1.1 网页的自动下载与存储 214
5.1.2 网页索引与匹配 215
5.1.3 网页排序方法 218
5.2 瞒天过海的密码技术 225
5.2.1 有趣的对称加密技术 226
5.2.2 难解的非对称加密技术 229
5.2.3 数字签名及其应用 232
5.3 令人期待的人工智能 235
5.3.1 人工智能时代正在快步走来 235
5.3.2 人工智能方法论 237
5.3.3 人工智能应用 241
5.3.4 展望未来,人工智能会颠覆一切 242
5.4 不可思议的自纠错技术 243
5.4.1 面临的问题与挑战 243
5.4.2 重复传输 244
5.4.3 冗余编码 246
5.4.4 校验 247
5.4.5 错误定位 250
5.4.6 推广应用 252
5.5 柳暗花明的自然语言处理 254
5.5.1 美好愿景 254
5.5.2 原始的“逐词替换” 254
5.5.3 基于“规则”的方法 256
5.5.4 从“规则”到“统计” 259
5.5.5 基于统计的机器翻译 260
5.6 削尖脑袋的数据压缩技术 262
5.6.1 无损压缩及其方法 262
5.6.2 有损压缩之“thinking” 275
5.6.3 展望未来 276
阅读材料:计算机网络 277
第6章 计算思维之程序设计基础 280
6.1 数据的类型与本质 280
6.1.1 我们熟悉的数与数据 280
6.1.2 计算机世界中的数据 282
6.1.3 数据的类型与本质 283
6.2 变量的特定含义 285
6.2.1 “先定义,后使用” 286
6.2.2 变量得有自己“好听”的名字 287
6.2.3 变量是有类型的 287
6.2.4 变量的作用域 288
6.2.5 变量的生命周期 289
6.3 有穷与无穷 290
6.3.1 数据的有穷性 291
6.3.2 程序的有穷性 291
6.4 程序的基本控制结构 292
6.4.1 顺序结构 292
6.4.2 条件选择结构 293
6.4.3 循环结构 293
6.5 问题求解的本质过程 294
6.6 效率与可读性 295
6.7 程序的构造特性 297
6.8 上下文无关文法 298
6.9 二义性 298
6.10 严谨性 299
阅读材料:计算机语言概述 300
第7章 基于计算之问题求解的思想和方法 304
7.1 重复迭代,寻根问底——方程求根 304
7.1.1 二分法(Bisection Method) 304
7.1.2 简单迭代法 306
7.1.3 牛顿法 308
7.1.4 其他求根方法 310
7.2 有限划分,无限逼近——定积分的计算 312
7.2.1 问题求解的基本思路与方法 312
7.2.2 求解算法 315
7.3 千年求精,万年求真——求解圆周率π 316
7.3.1 关于圆周率的计算 316
7.3.2 圆周率的计算史 317
7.3.3 圆周率的计算方法 319
7.3.4 圆周率的计算永无止境 322
7.3.5 研究圆周率的意义 322
7.4 大事化小,小事化了——有限元计算 324
7.4.1 有限元方法的诞生 324
7.4.2 什么是有限元方法 324
7.4.3 有限元方法的基本思想 325
7.4.4 有限元法求解问题的步骤 326
7.4.5 有限元方法的应用 326
7.4.6 有限元方法中的计算思维 329
7.5 万事俱备,不欠东风——数值天气预报 330
7.5.1 天气预报的发展 331
7.5.2 现代数值天气预报原理 333
7.5.3 天气预报对计算技术永无止境的需求 336
7.6 赌城之名,绝妙之法——蒙特卡罗法 337
7.6.1 蒙特卡罗方法导引 337
7.6.2 蒙特卡罗方法的基本思想与过程 338
7.6.3 蒙特卡罗方法的应用与分析 339
7.7 精确制导,百步穿杨——巡航导弹制导系统 341
7.7.1 制导方法分类 342
7.7.2 “战斧”式巡航导弹 344
7.8 红楼遗梦,作者存疑——《红楼梦》作者是谁 345
阅读材料:Python语言 346
第8章 从“计算”到“文化” 354
8.1 文化与计算文化 354
8.2 计算文化的本质特征 355
8.3 计算文化与传统文化 357
阅读材料:一路走来的“云计算” 359
附录A ASCII码字符集 363
附录B 几种常用进位制数值对照表 365
参考文献 366
· · · · · · (收起)
读后感
用户评价
如果要用一个词来概括这本书给我的感受,那就是“结构化”。它不是简单地罗列知识点,而是构建了一个严密的知识地图,让你清楚地知道每一个概念是如何与整体架构相连接的。我特别欣赏作者在论证每一个思维模块时,都会追溯到它的逻辑源头,这使得读者可以建立起一个非常牢固的知识底层基础。书中关于“自动化”的讨论非常精妙,它超越了传统的工具自动化概念,触及到了思维本身的自动化——即如何训练自己的大脑,使其在面对特定类型的输入时,能够自动触发最优的决策路径。这本书最棒的一点是,它在提供解决方案的同时,也教会了你如何去“提问”。在信息过载的今天,知道如何有效地提问,比知道一堆答案更有价值,而这本书正是训练这种提问能力的绝佳范本。读完后,我感觉自己对信息的处理能力得到了质的飞跃。
我必须承认,这本书的深度远远超出了我对一本“科普读物”的预期。它不仅仅是停留在概念的介绍层面,而是深入挖掘了这些思维工具在实际生活和复杂系统设计中的应用潜力。我最喜欢的部分是关于“模式识别”的章节,作者用极其生动的案例,比如分析一个城市的交通拥堵模式,或者一家公司的组织架构效率问题,来展示如何从看似随机的现象中提炼出规律性的结构。这种将纯粹的逻辑工具与现实世界的复杂性相结合的叙述手法,使得阅读过程充满了发现的乐趣。它不是教你如何“按部就班”地操作,而是激发你去思考“为什么”和“如何才能更优化”。读完后,我发现自己在面对日常工作中的数据分析时,潜意识里已经开始运用更严谨的筛选和归纳方法,这是一种非常实实在在的进步,而非空泛的理论学习。这本书的价值在于,它提供了一套可以迁移到任何领域的思考框架。
这本书真是让人眼前一亮,它并非那种枯燥的教科书,而是以一种近乎于对话的方式,将复杂的逻辑概念娓娓道来。作者的叙述功力非常了得,仿佛在引导我们进行一场思维的探险。特别是关于“分解”和“抽象”这两个核心思想的阐述,简直是点石成金。我记得其中有一章专门讨论了如何将一个宏大的、看似无法解决的问题,拆解成一系列可管理的小模块,那种清晰的逻辑推演,让人豁然开朗。它没有拘泥于任何具体的编程语言,而是聚焦于思维模式的重塑。读完之后,我感觉自己看问题的角度都变得更加立体和系统化了。对于那些一直想提升自己解决问题能力,但又害怕接触晦涩理论的人来说,这本书无疑是打开了一扇友好的大门。它更像是一位经验丰富的导师,在你迷茫时,悄悄地在你耳边低语,为你点亮前方的路标。我尤其欣赏它在描述算法思维时,那种优雅和简洁,没有任何多余的赘述,直击本质。
这本书的装帧和排版也值得一提,它似乎有意营造出一种老派的手稿质感,这在现在的数字阅读时代显得尤为珍贵。内容上,它有一个非常独特的切入点,聚焦于人类认知偏差如何阻碍我们应用这些基础的计算思维。作者没有把“计算思维”塑造成一个完美无瑕的理论偶像,而是将其放置在人类不完美的决策背景下进行审视。这种批判性的视角,让整本书的论述充满了张力。特别是关于“迭代和反馈循环”的部分,作者没有仅仅停留在软件工程的层面,而是将其延伸到了个人成长的过程中——即如何构建一个有效的自我修正机制。这使得书中的内容不再是冷冰冰的工具论,而是充满了对“人如何更好地思考”这一终极问题的关怀。阅读体验是沉浸式的,仿佛在和一位哲人进行一场关于效率和认知的深度交流。
坦白讲,这本书的写作风格极其的个人化,带有一种强烈的作者烙印,这种风格处理得好就是魅力,处理不好就容易显得自我中心。幸运的是,作者的叙事节奏把握得非常到位。它像一部精心剪辑的纪录片,在必要的时候放慢速度,让你细细品味一个关键的哲学思辨;在需要的时候,又突然加快节奏,用一系列紧凑的例子来佐证观点。这本书并没有试图成为一本万能手册,它更像是一次邀请,邀请读者参与到一种更高维度的思考对话中。我注意到,作者非常巧妙地避免了使用那种高高在上的说教口吻,反而更倾向于使用设问和类比,让人感觉自己始终是主动的探索者,而不是被动的接收者。这种互动感极大地降低了阅读的疲劳度,即便是面对一些较深层次的逻辑推导,也能保持高度的专注力。
不如直接上硬核书目,什么《深入理解计算机系统》《算法》《计算机网络》《操作系统》《统计自然语言处理》《机器学习》《离散数学》……
不如直接上硬核书目,什么《深入理解计算机系统》《算法》《计算机网络》《操作系统》《统计自然语言处理》《机器学习》《离散数学》……
不适合普通读者,适合高校教师 铺垫冗余多,多陈列事件,平铺知识点
思路不错,但仍旧比较 “建制派”,选题略微广泛导致重点不够突出,虽然理论结合实际,但是全书并没有形成一股合力。
不适合普通读者,适合高校教师 铺垫冗余多,多陈列事件,平铺知识点