计算科学导论这门课让我第一次系统了解计算机的世界。老师推荐了几本书。我读了这些书。我发现这些书很有意思。它们讲了计算机怎么来的。它们讲了计算机怎么工作的。它们讲了计算机能做什么。我把我的想法写下来。
一本重要的书是《计算机科学概论》。这本书很厚。书里有很多图片。书里有简单的例子。第一章讲计算机的历史。最早的计算工具是算盘。后来人们发明了机械计算器。巴贝奇设计了分析机。图灵提出了图灵机的想法。这些机器都很笨重。它们为现代计算机奠定了基础。第二章讲计算机的组成。计算机有五个部分。输入设备键盘鼠标。输出设备显示器打印机。存储器存放数据和程序。运算器进行加减乘除。控制器指挥各个部件。这些部件协同工作。计算机才能运行。
另一本书是《算法导论》。算法是解决问题的步骤。这本书教我怎样设计算法。排序是一个常见问题。冒泡排序的方法很简单。它比较相邻的两个数字。如果顺序不对就交换它们。它一遍一遍重复这个过程。直到所有数字排好序。这个方法容易理解。但是它的速度比较慢。快速排序是另一种方法。它选择一个基准数字。把小的放左边大的放右边。然后对左右两边分别排序。这个方法速度快很多。算法有不同的特点。有的算法占用内存少。有的算法运行时间短。我们需要根据情况选择。
我还读了《代码:隐匿在计算机软硬件背后的语言》。这本书从基础讲起。它先解释什么是电。电灯通电就会亮。电灯断电就会灭。这个开关状态表示0和1。计算机只认识0和1。多个开关组合起来。可以表示更多的信息。八个开关组成一个字节。一个字节可以表示一个字母。这本书慢慢深入。它讲继电器可以放大电信号。很多继电器组成逻辑门。与门或门非门是基本门电路。这些门电路组合成复杂电路。这些电路能实现加法运算。还能实现存储数据的功能。一层一层抽象上去。计算机的奥秘逐渐揭开。我读得很慢。我一边读一边画图。我明白了计算机底层的原理。
《计算机程序的构造和解释》这本书有点难。它强调计算过程的思想。程序不只是指令的集合。程序是对知识的表达。这本书用了一种语言。这种语言语法很简单。它主要讨论函数的构造。函数可以组合成更大的函数。数据也可以抽象和操作。书里有一个例子。它讲如何求平方根。它使用牛顿迭代法。先猜一个答案。用这个答案改进猜测。不断接近真实结果。这个过程用递归实现。递归就是自己调用自己。递归需要终止条件。否则程序会一直运行。这本书让我思考更深。编程不仅仅是写代码。编程是塑造思维的过程。
网络方面我看了《计算机网络:自顶向下方法》。网络把计算机连在一起。我家里的电脑可以上网。我手机也能连Wi-Fi。这本书解释这是怎么实现的。网络分成很多层。应用层是我们直接使用的。比如网页浏览器和电子邮件。传输层负责端到端的通信。TCP协议保证数据不丢失。网络层负责寻址和路由。IP地址像房子的门牌号。链路层在局部网络传输数据。物理层是网线和无线电波。每层各司其职。数据从上层传递到下层。发送时加上每一层的头。接收时去掉这些头。信息就这样传遍世界。
这些书给我打开一扇门。我以前只知道用电脑打游戏。我现在知道电脑为什么能打游戏。游戏是一个大型程序。程序由无数行代码组成。代码被编译器变成机器语言。机器语言控制CPU工作。CPU从内存读取数据。CPU把画面数据交给显卡。显卡把信号送到显示器。显示器点亮一个个像素。我按一下键盘。键盘产生一个中断信号。CPU暂停当前工作。CPU处理我的按键。游戏里的角色跳起来。这个过程非常短暂。这一切背后是计算科学。
计算科学不只是关于机器。它关于信息和处理信息的方法。社会越来越依赖计算机。手机支付需要安全算法。地图导航需要最短路径算法。视频推荐需要数据挖掘算法。这些算法来自计算科学。学习这些知识很有用。它帮助我们理解现代世界。它给我们解决问题的工具。
读书时我遇到很多困难。有些概念很抽象。我读不懂就多读几遍。我在纸上画流程图。我写一些简单的程序验证。慢慢我就明白了。学习需要耐心。一点一点积累就会进步。
这些书只是开始。计算科学领域很广阔。人工智能机器学习很有趣。大数据云计算很重要。网络安全密码学很关键。我想继续学习更多知识。我想知道计算机还能做什么。未来会有新的技术出现。理解基础原理很重要。基础牢固才能跟上发展。
计算科学导论的书很好。它们写得清楚明白。它们从简单到复杂。它们让我有了基本概念。我会记住这些书的内容。我会用这些知识继续探索。计算机的世界很大很精彩。我很高兴开始这段旅程。