Computer Science Crash Course

Posted by Zhenda on Fri, May 24, 2024
Total Views:

起源

  • 算盘
  • 机械齿轮

硬件

  1. 开关
    • 继电器
      • 电磁感应
      • 吸引来开关
    • 真空管
      • 电产生光
    • 晶体管
      • 半导体
        • 材料:硅
      • 两级
  2. 布尔
    • 真,假
    • not,and,or
    • xor
        • 真真得假
  3. 二进制
    • 8 位二进制
      • 字节 byte
    • 正负
      • 在 32 位二进制中用第一位表示
    • 小数点
      • 在 32 位二进制中用 2-9 位表示
    • 文字
      • 美国标准 ASCII 1963
        • 仅限英语和标点
          • 7 位二进制 128 个数
            • 大小写
            • 0-9
            • 标点符号
      • 全球标准 Unicode 1992
        • 16 位 一百万个数
  4. alu
    • ALU
      • 计算
        • 加法运算
          • half adder
            • xor
          • full adder
            • 3 个参数变 2 个参数
        • 减法
        • ++
        • --
        • 不改变
      • 逻辑
      • operation code
        • 加减乘除
      • flags
        • overflow
          • 最大位装不下数值
        • zero
          • ab 相等
        • negative
          • ab 比大小
  5. 内存 memory(ram)
    • and-or latch
      • or 和交变电流
        • 用于记忆
      • and
        • 删除
    • 门锁
    • 一群门锁叫寄存器 register
    • 输入输出线太多,所以
      • 矩阵 matrix
  6. cpu
    • 动作顺序 CLOCK SPEED
      • 取指令 fetch
      • 解码 decode
      • 执行 execute
    • 结构
      • ram
        • control unit
          • instruction address register
          • instruction register
            • OPCODE
            • 取 RAM 的值
        • data register
      • alu
  7. instruction program
  8. CPU 设计
    • RAM
      • 通过 bus 线和 cpu 连
    • cache(缓存)直接在 cpu 里,更快取得数据
    • 高端 CPU
      • 单核
        • 流水线设计(pipeline)
        • 预测指令地址
      • 一 cpu 多核(core)
      • 多 cpu

软件

  1. 编程起源

    • 纺织机
    • 插线板
    • 冯诺依曼
      • cpu 有 alu
      • register
        • data
        • instruction
        • instruction address
      • memory(ram)
        • 存放 data,instruction
    • punch card
      • 来记录数据和命令
    • 卡带
    • dvd
  2. 编程发展史

    • 机器语言(二进制)
    • 汇编器:把文字指令转化为二进制指令
    • 编译器:把高级语言转化为低级语言
      • 低级语言(汇编,二进制)需要考虑 memory,register 的地址
    • fortean 代码
  3. 编程原理

    • 函数
      • 不超过 100 行
  4. 算法

    • 排序 sorting
      • 选择
      • 二分
    • 图搜索
      • 所有路线走一遍
      • 找用时最短的路线,计算节点时间
  5. 数据结构

    • 数组 array

      • 列表 list
      • 向量 vector
      • 配套函数
    • 字符串

      • 配套函数
    • 矩阵(多维数组)

    • 结构体

      • 变量打包
      • 和数组结合
    • 循环链表

      • node 指针
      • 队列 - Enqueue - dequeue
      • 栈 - push - pop
      • 树(单向)
        • 二叉树
          • 两个
    • 图(循环)

发展

  1. 图灵
    • 图灵机
      • 停机问题 ng
      • 计算问题 ok
  2. 软件工程
    • 工程量太大
      • 几亿行代码
    • 对象嵌套对象
    • 工具
      • IDE
      • git
  3. 集成电路,摩尔定律
    • cpu 硬件迭代
      • 电子管
      • 晶体管
      • IC
      • PCB
      • 光刻
        • 光刻流程
    • 摩尔
      • 两年晶体管数量翻倍(指数发展)
      • 有望被打破
        • 光的波长需要更短的
        • 晶体管电极太近会漏电
    • 硬件设计
      • VLSI

操作系统

  1. 操作系统
    • 起源
      • 程序运行,开始需要人手动放进电脑,让电脑读取
    • 功能
      • 内核
        • 管理程序和硬件
          • 多程序处理
            • 软件给系统,系统给硬件
              • 可以挂起,等待完成
            • 动态内存分配
              • 给程序分配内容
                • 物理地址
                  • 一个程序的内存块可能分散存储
                • 虚拟内容
                  • 方便人来看
                • 内存保护
                  • 程序间独立,保护其他程序
      • 分功能
        • 多用户
          • 分时操作系统
            • multics
    • UNIX
      • 简单,用户广
        • 主要是内核
          • 内核 panic 就 reboot
  2. 内存和储存
    • 内存 memory
      • 断电消失数据
    • 存储器 storage
      • 顺序/循环存取
      • 随机存取
        • 磁芯存储
          • 磁带
          • 磁盘
        • 光盘 CD
          • 有小坑
            • 光学传感器判断 0/1
  3. 文件系统
    • 文件分类
      • txt
        • 二进制->十进制->(ASSIC)文字
      • wave 音频
        • amplitude
      • bitmap 图片
        • 图片->像素->rgb->每个 r,g,b 由 1 字节描述(0-255)
    • 文件系统结构
      • 目录文件 directory file
        • name
        • time
        • addr
          • 多个地址
            • 碎片整理
        • length
      • 其它文件数据
      • 分层文件系统
        • n 个文件夹
          • 套 n 个文件
  4. 压缩
    • 无损
      • 方法
        • 减少重复信息
          • 游程编码
            • 相同的标记数量
        • 哈夫曼压缩
          • 建立组合
          • 给组合编号
      • 类型
        • GIF,PNG,PDF,zip
    • 有损
      • 去除一些人感知不到的东西
        • 感知编码
      • JPEG
      • 视频
        • 帧和帧之间只 load 差异部分

人机交互

  1. 命令行界面

    • 机械
    • 齿轮,开关,电线
    • 键盘
    • 电传打字机
    • 屏幕
  2. 屏幕,图形

    • led
    • 显卡
      • 字符生成器
      • rom(ReadOnlyMemory)
  3. 图形界面

    • 从命令行到图形
      • GUI
        • 控件
        • event 驱动
        • 公司
          • 苹果
          • 微软
            • win95
    • 鼠标
  4. 3D 图形

    • 结构

      • 坐标
      • 线
    • 算法

      • 一个个实际需求的计算方法
        • 3D 投影
          • 3D 图形显示到 2D 屏幕上
          • 分类
            • 正交投影:平行
            • 透视投影:交于一点
        • 填充物体
          • 扫描线渲染
        • 抗锯齿
          • 被线切的像素点显示浅色
        • 遮挡
          • 有部分可见就有不可见的部分
          • 排序算法
            • 画家算法
              • 先远后近
          • 深度缓冲
            • 比较算最近
        • 背面剔除
          • 不可见部分直接跳过
            • 处理一半
        • 明暗
          • 面的朝向
          • 光源
        • 纹理(外观)
    • GPU 图形处理单元

网络

  1. 计算机网络
    • 近距离网络
      • 局域网 LAN
        • 以太网
          • 电缆连接所有区域电脑
          • 用 MAC 区分各电脑
          • 指数逃避
            • 等待时间+随机数
    • 互联网
      • 分成多个小区域
      • 小区域间信息传输
        • 路由
      • 大文件分成小文件,防止阻塞
        • IP 协议
      • 阻塞控制(分组交换)
        • 路由器间相互协调,防止阻塞
        • 例子
          • ARPANET
  2. 互联网
    • 流程
      • 互联网主干(超级路由器)
        • WAN 广域网(移动,联通,电信)
          • 局域网 LAN
            • 手机
            • 电脑
    • 协议
      • 数据包传输 IP
        • 发送到 pc
      • 发送到程序软件
        • UDP
          • 只判断文件数量
            • 不能修复,不确定传输完成与否
              • 适合视频,快
        • TCP
          • 排序数据包
            • 接收方校检
            • 发送方修复,重发
          • 接收方完成后,发送 ok 信号告知
            • 通过 ok 信号,判断网络。调节发送量
    • 访问网站
      • 方法
        • IP:port
        • 域名:google.com
      • 电话簿
        • dns
          • 树状分布存储
    • OSI
      • 物理
      • 数据链路
      • 网络
      • 传输
      • 会话
      • 表示
      • 应用程序
  3. 万维网
    • 结构
      • 基本单元
        • 单个网页
      • 有去往其它网页的链接
    • http
      • 作用
        • 网络服务器给网页的反馈
      • 结构
        • status
        • get
    • html
      • 作用
        • 区分链接,非链接
    • 搜索引擎
      • 爬虫:收集链接
      • 索引 index
      • 搜索算法
        • 出现频率
  4. 安全
    • 安全
      • 验证身份
        • 密码
        • 指纹
      • 身份权限
      • 软件
        • 软件 bug
          • 独立安全检查和质量检验
        • 软件崩溃
          • 减少损失
    • 黑客
    • 加密

人工智能

  1. 机器学习
    • 本质
      • 根据数据做预测
    • 分类
      • 特征
        • 数据
    • TrainingData
      • 最大化正确
      • 最小化错误
    • 算法
      • 统计学
        • 决策树
        • 向量机
      • 神经网络
        • 起源于神经元
        • 一层一层的数据处理
          • 很多层数据处理就是深度学习
            • 人脸识别
            • 开车
            • 翻译
    • 机器学习速度快多了
      • 依靠反馈,训练
  2. 计算机视觉
    • 几何形状
    • 边缘检测
      • Prewitt 算子
        • 左右差异核
          • 卷积
        • 上下差异核
    • 事物
      • 人脸检测算法
        • 通过五官动作
          • 情绪检测
        • 通过五官特征
          • 人脸识别
  3. 自然语言(人话)
    • 语法
      • 语音模型
    • 口音
  4. 机器人
    • 例子
      • 无人机
      • atm
    • 结构
      • 基本
        • 判断
          • sensor
        • 控制
          • sw
        • 行动
          • hw
      • pid
        • 内容
          • 微分
            • 未来
          • 积分
            • 历史
          • 比例
            • 现在
              • 目标与实际的差距比例
        • 应用
          • 汽车
          • 飞机
          • 平衡车
  5. 计算机心理

教育发展

  1. 教育

  2. 未来

    • 奇点
      • 计算机自己发展自己,人类跟不上速度
    • 量子

个人理解

  1. 功能
    • 表示
    • 存储
    • 计算
  2. 从需求到设想最后实现
    • 实际逻辑
      • 点击顺序
        • 逻辑顺序