CS基础课程

1.计算机早期历史

2.电子计算机

3.布尔逻辑和逻辑门

4.二进制

5.算术逻辑单元

6.寄存器&内存

7.中央处理器

8.指令和程序

9.高级CPU设计(9.12)

CPU由控制单元、指令地址寄存器、指令寄存器和其他通用寄存器以及ALU算术逻辑单元组成。

CPU在一个时钟周期内完成取指(Fetch)解码(Decode)执行(Execute)三个过程

1秒中完成的周期被称为频率,现代计算机的频率4.5GH 一秒钟能运行45亿个时钟周期

CPU通过总线和内存进行数据交换和读写功能的开放,但这个速度相比于CPU的处理速度来说,仍然是慢的,于是科学家就往CPU里加了缓存,CPU通过访问这些高速缓存,可以更快的完成数据的获取和存储。

缓存命中:如果想要的数据已经在缓存中, 反之 叫 缓存未命中

脏位:dirty bit CPU运算完将结果存储在缓存中,就会导致缓存于内存的数据不一致。

特殊标志flag 用来解决这个问题

充分发挥CPU的性能,指令流水线

取指的同时解码单元也在解码、执行单元在执行   并行处理

高级计算机芯片 乱序执行

10.早期的编程方式

插线板式的,输入要靠不同的插线方式,可插拔

穿孔纸卡 输入输出 这会还是机器码

面板编程 通过机械开关模拟机器码 本质上还是机器码

冯诺依曼结构:处理器(ALU)+数据寄存器+指令寄存器+指令地址寄存器+内存(负责存数据+指令)

11.编程语言发展史

二进制输入效率太低,有bug时更是代价昂贵。

二进制(机器码)--->汇编器(助剂符)--->编译器(A-0)--->

逐渐出现了高级语言  c→c++→python→ java 

12.编程原理-语句和函数

程序就像菜谱,变量 容器,数据,从上到下依次执行

增加程序的灵活性 控制流语句 if else  for while swith case 

13.算法

排序

选择 O(n^2)

归并(分治和递归思想) O(n*log n)

Dijkstra算法 图论 成本最低的路径

14.数据结构

Array

String 

Matrax

Struct

Pointer

Node 

LinkedList

Queue

Stack   多层的松饼

Tree

BinaryTree\AVL

Graph

heap

这些数据结构适用不同的场景,高级语言对这些基础的数据结构都有编写,程序员可以直接调用【又一次抽象,又可以放到工具箱了】

15阿兰图灵(9.13)

阿兰图灵具有很高的数学科学方面的天赋和能力,在计算机不断向上抽象的过程中,人们提出了,特别是数学领域,一个问题“可判定性问题”,即是否存在一种算法,输入正式的逻辑语言,输出准确的是或否的答案,比如,是否有比所有数都大的数字,答案是没有的,以此类推,可以用于解决数学领域的一些问题。

阿隆佐丘奇 提出了了一种lambda算子,证明这个问题所描述的算法是不存在的,但该方法is difficult to apply and understand

阿兰图灵提出了图灵机的概念。图灵机是一种计算模型,是将人的计算行为抽象化的数字逻辑机。可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器。

计算模型:是描述如何根据一组输入值计算得出输出值 ,也包含了负责运算、存储和通讯等结构的具体组织方式。

图灵机由几部分构成:一条无线长的纸带、一个读写头、一套控制规则、一个状态寄存器。图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,将这个过程看作两个简单的动作:

1.在纸上写上或擦除某个符号;

2.把注意力从纸的一处移动到另一处

而在每一个阶段,人要决定下一步的决定,依赖于

        1.此人当前所关注的某个位置的符号

        2.此人当前的思想状态

停机问题:判断任意一个程序是否能在有限的时间之内结束运行的问题。图灵用对角论证法证明了不存在解决问题的通用算法

图灵完备

图灵测试,常见例子,发验证码前验证是否是机器人

其他等价的计算模型 寄存器机、递归函数、生命游戏、马尔可夫算法,计算力与图灵机等价

邱奇-图灵论题:一切直觉上能计算的函数都可用图灵机计算,反之亦然。

图灵奖

图灵个人生活,天妒英才。

16软件工程

随着硬件层面的不断发展,软件也从一个简单的二进制不断发展到高级语言,一个office软件的代码工程量 是4000万,得靠一个团队才能完成,并且得有一些规范的软件工具,着一些就叫做软件工程

函数功能的不断细化和数量激增,需要抽象出更高的一层来方便程序之间的相互调用,出现了对象(Object),把函数打包成对象,面向对象编程,核心就是:隐藏内部复杂度,向外选择性的公布功能。方便不同开发团队的协作。

public private 权限范围,选择性公开、

集成开发环境,帮助程序员提高 效率和检查出错

调试

文档和注释,如果一项功能已经开发好了,通过了测试,那么其他人就不需要再造一遍轮子了,只需要看懂文档和注释,知道如何使用即可。注释增加了程序的可读性、也有助于降低调试成本

版本控制,主要是源代码管理,放到统一的代码管理仓库,每次修改代码,只需要check out ,修改测试完之后 commit 即可,支持回滚和记录修改日志

质量控制,找bug,

Beta(公测版) Alpha(内测版)

17集成电路与摩尔定律

晶体管由真空管发展而来,但是商用仍存在很大 问题,出现了数字暴政,出现了几十万个的独立原件.

出现了一种集成电路(IC)通过光刻技术在晶圆表面进行蚀刻,还有光刻胶,光刻膜配合,实现了电路的集成,使得数以万计的逻辑门电路可以集成在一块拇指大小的芯片上,

PCB 印刷电路板

芯片巨头:英特尔Integrated     Electronics

摩尔定律:每十八个月就要增加一倍晶体管和电阻数量

小型化的极限:1.光的波长 2.量子隧穿效应,电路之间的距离只有几个原子的距离,电子容易跳过间隙

IC设计有专门呢的大型软件 VISI 自动生成芯片设计

苹果芯片1CM*1cm 上集成了33亿个晶体管

中国在被制裁芯片,也拿出了当年造原子弹的气魄,已经研制出中国龙芯,研制出7nm的芯片制造装备。正在逐渐赶上国际水平,甚至某些方面还更好。

18操作系统

批处理:当计算机运行完一个程序,会自动执行下一个程序

操作系统作为软件和硬件之间的媒介,负责对计算机硬件进行抽象

外部设备

设备驱动程序  操作系统提供API来抽象硬件

多任务处理:批处理的基础上+单个CPU可以同时运行几个程序,CPU通过调度来分配算力

虚拟内存:一个程序的数据存在一堆不连续的内存块中

动态内存分配:虚拟内存与动态内存分配,使得从程序角度来看,内存是从0开始并且连续。

内存保护,由于虚拟内存的实现,如果一个程序出现bug,不会影响到别的程序,它只会在自己的内存里面捣乱

多用户分时操作系统:由于CPU速度很快,可以支持多个用户操作,每个用户用一小块处理器和内存,互不影响

Unix:一种轻量化的操作系统,两个方面,一是只保留内核功能:多任务,内存管理和输入输出设备处理,二是工具性质的东西,比如程序和运行库。减少了操作系统占用的资源,让操作系统可以在更为低配的硬件系统上运行,比如单片机上。                     

19内存储存介质

内存介质的发展也是一个不断微型化的过程。

纸卡,纸带

延迟线存储器

磁芯

磁带

磁鼓

硬盘

光盘

固态硬盘

20文件系统

不同的文件格式

文本音频视频

底层都是二进制文件

只是不同的表示方式

21压缩

无损压缩 :游程压缩(相同值进行压缩,标明出现次数)、字典编码(对应关系)

有损压缩:感知编码,删除人类无法感知的数据的方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值