电脑是一个很笨的机器,你需要书写程序向它发出指令,它才会工作!
在第一讲中,先凭借查找电话簿的方式,简要讲解了什么是算法,不同的算法之间又存在算法效率的差别,随后又应用小拼图的例子告诉我们什么是程序设计,介绍了实验室所用的scrath语言,C语言等。
第二讲中,通过Gmail的例子来探究隐藏在背后的技术,基本的算法以及数据存储的基本原理,还有计算机程序设计中的基本概念。
感悟一:数据存储的理解
数字与字符通过ASCII码转换成二进制数,方便计算机表达和识别,而计算机中对于数据的存储是依靠磁盘表面附着的磁性粒子来实现的。
为了将RAM中的数据存储到硬盘中,需要使用软件驱动信号告诉硬盘如何存储数据,电脑是通过驱动软件和其自身的硬件进行沟通的,所以硬盘电路板将产生的驱动信号转化为电压波动,反过来控制硬盘的移动部分(电脑保留移动的一部分),其中一部分控制金属编码磁盘的旋转,另一部分控制移动读写头即磁盘的读写,这样数据就可以存储在磁盘中了。
感悟二:电磁信号如何转换为0和1;
当一个简单的电磁脉冲送到读写头时,短时间内会出现一个小电磁,能改变覆盖在磁盘表面的小金属粒子的磁极,这样磁盘表面上成群的有序的小粒子就代表了二进制中单独的一位。
感悟三:怎样从磁盘中读取信息
将上述过程反向,通过读写头得到每个粒子的极性,所以一个文件是由成千上万个粒子信息汇聚而成的。
问题1:当你格式化一个硬盘时,会发生什么?
格式化只是修改了几个或几千个有价值的信息,导致电脑不知道文件或者文件夹存放的位置,但组成这些文件和文件夹的字节还在原有的位置存放着,所以说格式化仅仅为你存储新数据进行准备,但并未删除你的旧数据。
问题二,磁盘碎片的整理
你保存一个文件在磁盘某处,你也有可能回到这个位置并删除这个文件,现在的数据可能会有一些空白,但你仍然有一些有用的磁性粒子,因为现代操作系统允许将你的文件进分开存储,但这样的话,你的文件变成分片的,操作系统能够根据文件块的地址找到你的文件,但是显然你的操作速度变慢了。
问题四,读写头的原理
老留声机的读写头根据来回移动来完成不同的操作,以此为例在计算机中硬盘驱动器中存在一个电路板吗,其本身知道何时能够上下移动,系统是通过驱动软件发送上下左右的指令来控制读写头读取数据。
后面简要介绍了程序设计中常用的一些术语,变量是函数构造的一个处理对象,语句是用来告诉电脑该如何工作的,数组是用来存储数据的,线程是适应多个事务同时进行而创立的,选择体结构,循环体结构,随机数和伪随机数等。