cs_notes

UCB CS70 : discrete Math and probability theory

https://www.youtube.com/playlist?list=PLzAv_uHZw7dTI2e0F8-lxxOWV9zXMzwNE

1. Computer Science 70 2015-01-20

1. 介绍

计算机科学是对计算机和计算能力的研究。它关注计算机软件和硬件的理论和实践,以及应用程序的设计、开发和操作。

2. 计算理论

计算理论研究可以被计算机解决的问题。它处理可以用算法解决的问题以及无法用算法解决的问题。1944年,教皮特·赫尔发现了某些问题尽管可以被明确定义,但没有已知的有效算法来解决它们。这些问题属于不可解决性问题。

3. 算法设计

算法设计研究如何解决特定类型的问题。它考虑问题的输入,执行的步骤以及输出结果。成功设计一个算法需要明确问题的规范并产生一个高效并正确地解决问题的步骤序列。

4. 软件工程

软件工程研究如何设计、实施和维护软件系统。它处理软件开发过程,包括需求分析、设计、实现、测试、部署和维护。软件工程师致力于制定重复使用和可靠的方法,以促进软件产品质量和生产力。

5. 计算机体系结构

计算机体系结构研究计算机硬件的设计和组织。它处理CPU、内存和外设及它们相互之间的通信。体系结构设计关注硬件成本、性能和可靠性的折中。不同体系结构导向不同类型的应用。

6. 操作系统

操作系统管理和控制计算机硬件资源以实现软件组件的协调工作。它提供抽象接口使软件组件可以访问硬件资源而无需了解底层细节。操作系统处理IO操作、内存管理、线程和进程的同步和通信。

7. 网络

网络研究将计算机与其他计算机连接在一起以实现资源共享和远程访问。网络协议如TCP/IP标准化了机器之间的通信。网络包括物理层、数据链路层、网络层、传输层和应用层等结构。研究网络和通信领域涉及嵌入式系统和移动计算。

8. 人工智能

人工智能研究如何使用计算机模拟人类智能,例如机器学习、专家系统和语言处理。AI领域对于开发智能体系统以解决复杂问题至关重要。计算机视觉、机器学习和深度学习使机器在视觉和语音识别方面取得重大进展。

2. Computer Science 70 2015-01-22

计算机系统概览

计算机系统包括软件和硬件两个部分。

软件包括操作系统和应用软件。操作系统负责管理计算机的硬件资源,为应用软件提供统一的接口。常见的操作系统有Windows、Mac OS、Linux等。

应用软件则包括各种软件工具和应用程序,例如Office软件、浏览器、编程软件等。它运行在操作系统之上,直接为用户提供服务。

硬件主要包括:

计算机系统的工作原理是软件指令控制硬件执行各种操作,并通过互动完成用户任务。随着技术发展,计算机硬件越来越强大浑,软件也不断丰富,带来了人类生活的巨大变化。

3. Computer Science 70 2015-01-27

1. 计算机操作系统

操作系统负责管理计算机硬件资源并为应用程序提供统一接口。常见操作系统类型有:

2. 操作系统组成

主要组成:

3. 操作系统功能

操作系统作为计算机最基础层软件,是所有其他软件运行的基础。它管理硬件资源使用,协调各个应用程序的运行。

4. Computer Science 70 2015-01-29

1. 计算机处理器

处理器(CPU)是计算机的中央处理单元,负责计算机系统内部的计算和控制工作。

主要特点:

2. CPU工作原理

CPU工作分为四个阶段:

  1. 指令寻址:从内存中取出待执行指令

  2. 指令解码:将指令代码翻译成硬件可以识别的操作信号

  3. 执行阶段:运算和逻辑单元依次执行指令指定的操作

  4. 写回阶段:将执行结果写回内存或CPU内部寄存器

一次完整的工作周期需要通过以上四个步骤完成。

3. CPU性能指标

综合多个因素来评价CPU的整体性能水平。高性能CPU是现今计算机的基石。

5. Computer Science 70 2015-02-03

1. 计算机存储器

计算机中的存储单元用于存放程序和数据。主要类别有:

2. 内存技术

内存技术决定其性能和容量:

内存层次结构使系统充分利用各级存储的优点,克服容量和速度的取舍矛盾。

3. 内存管理

操作系统通过内存管理来有效调配和使用各块存储器:

良好的内存管理可以充分发挥硬件资源的潜能。

6. Computer Science 70 2015-02-05

1. 输入输出接口

计算机与外界通信依赖不同的输入输出接口:

2. 图形界面

图形用户界面(GUI)采用图标和窗口进行人机交互:

GUI极大提高了用户体验并广泛应用于个人设备和办公软件。

3. 输入设备

主要输入设备:

人机交互通过多种输入输出实现自然信息交换。

7. Computer Science 70 2015-02-10

1. 计算机网络概述

计算机网络是将几台或几十台以上计算机连接成一个整体的计算系统。网络通过交换机或路由器将节点间通信进行连接。

2. TCP/IP网络通信模型

TCP/IP是Internet功能模型的基础,主要包含四层:

3. 计算机网络分类

根据规模和使用目的可分为:

计算机网络架构提供计算资源的协同工作和信息共享基础,极大提升工作效率。

8. Computer Science 70 2015-02-12

1. 网络通信模型分层

根据TCP/IP模型,计算机网络包含以下几层:

9. Computer Science 70 2015-02-19

1. 数字传输

数字信息以二进制流的形式在网络上发送。

2. 物理层标准

常见的物理介质和标准:

3. 数据链路层

通过交换机驱动逻辑链路子网,实现主机与主机之间可靠数据传输功能。

4. 网络层

利用IP地址实现主机间的逻辑连接,完成分组的源目的地标记与转发功能。

5. 运输层

通过端口号实现进程间的可靠连接通信。

TCP/IP参考模型在互联网中得到广泛应用,成为计算机通信的基础载体。

10. Computer Science 70 2015-02-24

1. 互联网基础设施

互联网基础设施包括:

2. 因特网服务

3. 网络应用

Web2.0带来新一代网络应用:

网络技术促进了信息产业和生活方式的深刻变革。

11. Computer Science 70 2015-02-26

1. 网络攻击方式

2. 网络攻防对策

网络安全一直是技术和管理并重的一个课题。

12. Computer Science 70 2015-03-03

1. 软件开发概述

软件开发是一套规范的过程,包括需求分析、设计、编码、测试和部署等阶段。

2. 软件开发模型

3. 软件工程基础

良好的软件开发流程有助于研发高质量可维护性的软件系统。

13. Computer Science 70 2015-03-05

1. 系统分析与设计

系统分析设计的主要内容:

2. 系统架构设计

主要阶段为:

3. 详细设计

埋头细致的设计每个模块或组件的功能和接口:

系统设计使需求实现得以明确规范化开发。

14. Computer Science 70 2015-03-10

1. 计算机软件分类

2.软件开发语言

3.开发环境

选择合适的软件开发语言和环境有利于提高开发效率。

15. Computer Science 70 2015-03-12

1. 面向对象分析与设计

面向对象的三大特性:

2. 类与对象

3. UML类图

常用UML图示类关系:

4. 面向对象五步法

  1. 寻找对象 2. 确定类 3. 确定属性 4. 确定方法 5. 确定关系

规范的分析与设计有利于面向对象开发高内聚低耦合的软件系统。

16. Computer Science 70 2015-03-17

1. 类成员

2. 类的封装

3. 访问控制符

4. 构造函数

5. this指针

6. 继承

7. 多态

面向对象设计突出封装、继承、多态机制。

17. Computer Science 70 2015-03-19

1. 模板类

定义通用算法和结构,实现代码重用。

2. 函数模板

定义泛型函数:

template <class T> 
T max(T a, T b) {
  return a > b ? a : b;
}

3. 类模板

定义泛型类:

template <class T>
class Stack{
public:
  void push(T item);
  T pop();
private: 
  vector<T> items;
}

4. 迭代器

支持泛型算法操作各种容器:

for(vector<int>::iterator it = v.begin(); it != v.end(); ++it)
  // do something

5. STL标准模板库

提供序列式容器(vector、list)、关联式容器(set、map)等。

模板机制提高代码复用性,降低开发维护成本。

18. Computer Science 70 2015-04-02

1. 对象存储管理

2. new和delete运算符

3. 智能指针

4. 内存开销

使用RAII和智能指针有效管理堆内存和资源。

19. Computer Science 70 2015-04-07

1. 数据库基础

2. 数据库设计

3. 关系数据模型

4. 关系运算

数据库与 SQL 规范化存储管理大容量结构化数据。

20. Computer Science 70 2015-04-09

1. 范式

2. 索引

3. 视图

4. 存储引擎

规范化与优化可提高数据库访问效率与数据完整性。

21. Computer Science 70 2015-04-14

1. 事务特性

2. 并发问题

3. 事务隔离级别

高级别事务隔离效率低,选择适当级别平衡一致性和并发性。

22. Computer Science 70 2015-04-16

1. 网络通信模型

2. 传输层协议

3. 网络层协议

4. 应用层协议

网络通信模型和标准协议规范各层之间数据格式和接口。

23. Computer Science 70 2015-04-21

1. HTTP请求方式

2. HTTP报文格式

3. RESTful风格设计

4. HTTP状态码

规范RESTful接口便于理解和扩展。

24. Computer Science 70 2015-04-23

1. Javascript语言特性

2.变量

3.数据类型

4.操作符

5.流程控制

JavaScript具有简洁灵活的语法,广泛应用于Web页面交互等场景。

25. Computer Science 70 2015-04-28

1. 函数

2. 作用域

3.对象

4.数组

5.正则表达式

-基本匹配:/pattern/ -标志修饰符:g(全局搜索)、i(忽略大小写)等 -常用方法:test()、exec()、replace()

JavaScript灵活强大的动态语言特性,广泛应用于Web开发。

26. Computer Science 70 2015-04-30

1. BOM对象

2. DOM对象

3. DOM操作

4. BOMe DOM关系

5. DOM遍历

通过DOM操作实现动态Web页面交互效果。

27. Computer Science 70 2015-05-05

1. 事件模型

2. 事件绑定

3. 事件对象

4. 鼠标事件

5. 键盘事件

通过事件处理实现与用户交互。