① CS 103 计算的数学基础
计算能力的理论极限是什么?计算机能解决哪些问题?哪些不能?我们如何以数学上的确定性来推理这些问题的答案?本课程探讨这些问题的答案,并作为离散数学、可计算性理论和复杂性理论的介绍。课程完成后,学生将能够轻松编写数学证明、推理离散结构、阅读和编写一阶逻辑语句,以及使用计算设备的数学模型。
学习地址:https://cs61c.org/sp22/
② CS106a 编程方法
计算机应用工程简介,强调现代软件工程原理:程序设计、分解、封装、抽象和测试。重点是良好的编程风格和各自语言的内置设施。使用 Python 编程语言。
学习地址: https://web.stanford.edu/class/cs106a/
抽象及其与编程的关系。数据抽象和模块化的软件工程原理。面向对象编程、基本数据结构(如堆栈、队列、集合)和数据导向设计。递归和递归数据结构(链表、树、图)。时间和空间复杂度分析简介。使用涵盖其基本功能的编程语言 C++。
学习地址: https://web.stanford.edu/class/cs106b/
https://web.stanford.edu/class/cs106x/
介绍计算机系统的基本概念。探索计算机系统如何执行程序和操作数据,从 C 编程语言到微处理器。涵盖的主题包括:C 编程语言、数据表示、机器级代码、计算机算术、代码编译元素、内存组织和管理,以及性能评估和优化。
学习地址: https://cs61c.org/sp22/
学习地址:http://web.mit.edu/6.031/www/fa21/
主题包括:计数和组合、随机变量、条件概率、独立性、分布、期望、点估计和极限定理。概率在计算机科学中的应用,包括机器学习和在算法分析中使用概率。配套教材是《概率论基础教程》。
学习地址:http://web.stanford.edu/class/cs109/
计算机软硬件系统工程原理与实践. 主题包括:控制复杂性的技术;使用客户端-服务器设计、虚拟内存和线程的强大模块化;网络;并行活动的原子性和协调性。
学习地址: https://www.bilibili.com/video/BV1iW411d7hd
通过操作系统设计和实现的镜头涵盖计算机系统中的关键概念。主题包括线程、调度、n 进程、虚拟内存、同步、多核架构、n 内存一致性、硬件原子、内存分配器、链接、I/O、n 文件系统和虚拟机。Pintos操作系统中的四核编程项目强化了这些概念。
学习地址: https://www.scs.stanford.edu/21wi-cs140/
编译器和解释器的设计和实现的原则和实践。主题:词法分析;解析理论;符号表;类型系统;范围; 语义分析;中间表示;运行时环境;代码生成;和基本的程序分析和优化。学生在课程编程项目中为简单的面向对象语言构建编译器。
学习地址: https://cs61c.org/sp22/
原则与实践。计算机网络的结构和组件,重点是互联网。分组交换、分层和路由。传输和TCP:通过不可靠的网络进行可靠传递、流量控制、拥塞控制。网络名称、地址和以太网交换。包括重要的 C/C++ 编程组件;学生构建互联网 TCP/IP 软件的一部分。
学习地址: https://cs61c.org/sp22/
介绍数据库和数据密集型系统的使用、设计和实现,包括数据模型;架构设计;数据存储; 查询处理、查询优化和成本估算;并发控制、事务和故障恢复;分布式和并行执行;半结构化数据库;和数据系统支持高级分析和机器学习。
学习地址:https://cs61c.org/sp22/
最差和平均情况分析。递归和渐近线。用于排序、搜索和选择的高效算法。数据结构:二叉搜索树、堆、哈希表。算法设计技术:分治法、动态规划、贪心算法、随机化。基本图问题的算法:最小成本生成树、连通分量、拓扑排序和最短路径。可能的附加主题:网络流、字符串搜索、摊销分析、稳定匹配和近似算法。
学习地址: https://cs61c.org/sp22/
本课程深入探讨数据结构的设计、分析、实现和理论。在本季度中,我们将探索数据结构设计中的基本技术(等距、定名、随机化等),并探索对开发新数据结构有用的观点和直觉。我们将通过调查经典数据结构(如 Fibonacci 堆和后缀树)以及更现代的数据结构(如 count-min 草图和 rangenminimum 查询)来做到这一点。到我们完成时,我们将看到一些真正漂亮的有效解决问题的策略。
学习地址: https://cs61c.org/sp22/
分布式操作系统和应用问题,强调高级协议和分布式状态共享作为关键技术。主题:分布式共享内存、面向对象的分布式系统设计、分布式目录服务、原子事务和时间同步、应用程序足够的一致性、文件访问、进程调度、进程迁移以及关于分布式、规模、健壮性的存储/通信抽象面对失败和安全。
学习地址: https://cs61c.org/sp22/
最重要的计算机应用程序必须可靠地管理和操作数据集。本课程涵盖现代数据存储和处理系统的架构,包括关系数据库、集群计算框架、流系统和机器学习系统。主题包括存储管理、查询优化、事务、并发、故障恢复和并行处理,重点关注跨多种类型的数据密集型系统共享的关键设计思想。
学习地址:https://cs61c.org/sp22/