Xmchx's Blog
Technology

CS国外课程学习

The best thing to do is have fun.


MIT 6.5840: Distributed Systems Engineering

MIT 6.5840: Distributed Systems Engineeringgo

Raft/KV-store

->
CMU 15-445: Introduction to Database System

CMU 15-445: Introduction to Database Systemcpp

数据库底层实现,Buffer Pool Manager (内存管理), B Plus Tree (存储引擎), Query Executors & Query Optimizer (算子们 & 优化器), Concurrency Control (并发控制)

->
MIT 6.S081: Operating System Engineering

MIT 6.S081: Operating System Engineeringc

xv6 OS,后面可以用Rust重写一个。

->

UCB CS169: Software Engineeringruby

Engineering Software as a Service

->
MIT 6.031: Software Construction

MIT 6.031: Software Constructionts,java

一些规范

->

CS106B: Programming Abstractionscpp

->
MIT 6.101: Fundamentals of Programming

MIT 6.101: Fundamentals of Programmingpython

Audio Processing/Image Processing/Bacon Number/Snekoban/Recipes/Minesweeper/SAT Solver/Autocomplete/Game/LISP Interpreter

->
CS 61C: Great Ideas in Computer Architecture (Machine Structures)

CS 61C: Great Ideas in Computer Architecture (Machine Structures)c

编写Risc-V汇编代码,搭建五级流水线CPU,使用OpenMP, SIMD等方法并行优化矩阵运算,实现一个简易的 Numpy。

->
CS 106L: Standard C++ Programming

CS 106L: Standard C++ Programmingcpp

现代C++基础,两个项目一个有关Wiki BFS算法应用/手写STL HashMap。

->
CS 61B: Data Structures and Algorithms

CS 61B: Data Structures and Algorithmsjava,idea

运用数据结构和算法解决实际问题,三个千行项目实现。

->
CS 110L: Safety in Systems Programming

CS 110L: Safety in Systems Programmingrust

用 Rust 实现一个类似于 GDB 的 debugger/实现一个负载均衡器。

->
CS 144: Introduction to Computer Networking

CS 144: Introduction to Computer Networkingcpp,linux

用 C++ 循序渐进地搭建出整个 TCP/IP 协议栈,IP 路由以及 ARP 协议。

->
CMU 15-213: Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e)

CMU 15-213: Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e)c,linux

系统入门课,课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,兼具深度和广度。

->
CSCI 0300: Fundamentals of Computer Systems

CSCI 0300: Fundamentals of Computer Systemscpp,c,rust

系统入门课,Project有 Snake、Dmalloc、Caching I/O、WeensyOS、Vunmo、Distributed Store。涵盖了C、GDB、Assembly、OS、gRPC、Rust、KV等知识点。

->
From Nand to Tetris: Building a Modern Computer From First Principles

From Nand to Tetris: Building a Modern Computer From First Principlesgo

基础课程,从硬件到软件,0到1的世界,用与非门构造出逻辑电路,Assembler,VM,PL,编译器,OS。

->
Programming Languages (A/B/C) by UW

Programming Languages (A/B/C) by UWruby

多种编程范式入门,SML、Racket、Ruby。

->
CSE 251 Programming in C

CSE 251 Programming in Cc

C语言入门课程。

->
MIT-Missing-Semester

MIT-Missing-Semesterbash,vim,git,linux

工具课程,有很多需要熟练掌握的,如Vim、Git、Grep、tmux、Shell配置等。

->
CS 61A: Structure and Interpretation of Computer Programs

CS 61A: Structure and Interpretation of Computer Programspython

Python 版的 SICP,会随着实现Project如Ants、Scheme等,学习到有关函数式编程,数据抽象、面向对象等知识。

->