CS自学课程汇总
目录
众所周知,国内大学绝大部分 CS 课程的质量实在堪忧,加之于我本科还是光电的……
本文将持续更新我正在学习的 CS 课程。
Haskell MOOC
- 主页:https://haskell.mooc.fi
- 内容:Haskell 语言入门,包括类型系统、IO、Monad 等
- 形式:
- 视频
- 文档
- 作业(with grader)
- 难度:Part 1 语言入门很简单;Part 2 中的算子涉及到范畴论,有些难度
- 标签:函数式编程
- 语言:Haskell
- 评价:Haskell 是我接触到的第一门函数式编程语言,相比于 C++等指令式语言有很大差别,整体感觉很有意思,难度也是循序渐进。
- 状态:已完成
MIT 6.S081: Operation System Enginnering (2021 Fall)
- 主页:https://pdos.csail.mit.edu/6.828/2021/schedule.html
- 内容:在 xv6 上,实现操作系统内核的组件,例如 pagetable、scheduler、file system 等
- 形式:
- 视频
- 文档
- 作业(with grader)
- 难度:难度不小,需要花费很多时间
- 标签:操作系统
- 语言:C
- 评价:收获很大,在操作系统内核中写代码的逻辑与在应用程序中完全不同,需要考虑很多细节。
动手学深度学习 第二版
- 主页:https://zh.d2l.ai
- 内容:从零开始深度学习,手把手教你实现深度学习的很多算法
- 形式:
- 视频:bilibili
- 文档
- 作业
- 难度:内容很多,但因为没有lab,所以不存在代码实现的难度
- 标签:深度学习
- 语言:Python(PyTorch)
- 评价:收获很大,但对我来说更多的是科普性质的(了解大致原理),没怎么上手写代码。此外,李沐老师每次讲课后还会回答网友的很多问题,这很难得。
CMU 15-213 Introduction to Computer Systems
- 主页:http://www.cs.cmu.edu/~213/
- 内容:
- 形式:
- 视频:bilibili(2015 Fall)
- 文档:CS-APP 3rd
- 作业
- 难度:
- 标签:操作系统
- 语言:C、RISC-V
- 评价:
南京大学 操作系统:设计与实现 (2023 春)
- 主页:https://jyywiki.cn/OS/2023/index.html
- 内容:
- 形式:
- 视频:bilibili
- 文档
- 作业
- 难度:
- 标签:操作系统
- 语言:
- 评价:
NTU EE5184 Machine Learning (2022 Spring)
- 主页:https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php
- 内容:
- 形式:
- 视频
- 文档
- 作业
- 难度:
- 标签:机器学习
- 语言:
- 评价:
- 状态:学习中
课程大纲
- Lecture 1: Introduction of Deep Learning
- Lecture 2: What to do if my network fails to train
- Lecture 3: Image as input
- Lecture 4: Sequence as input
- Lecture 5: Sequence to sequence
- Lecture 6: GenerationRecent Advance of Self-supervised learning for NLP期中考週不上課
- Lecture 7: Self-supervised learning for Speech and Image
- Lecture 8: Auto-encoder/ Anomaly Detection
- Lecture 9: Explainable AI
- Lecture 10: Attack
- Lecture 11: Adaptation
- Lecture 12: Reinforcement Learning
- Lecture 13: Network Compression
- Lecture 14: Life-long Learning
- Lecture 15: Meta Learning
作业
- hw1: Regression
- hw2: Classification
- hw3: CNN (2023/12/04)
- hw4: Self-attention
- hw5: Transformer
- hw6: GAN
- hw7: BERT
- hw8: Autoencoder
- hw9: Explainable AI
- hw10: Attack
- hw11: Adaptation
- hw12: RL
- hw13: Compression
- hw14: Life-long
- hw15: Meta Learning
Oxford: Course on CUDA Programming on NVIDIA GPUs, 2023
- 主页:https://people.maths.ox.ac.uk/gilesm/cuda/
- 内容:CUDA编程入门
- 形式:
- 视频
- 文档
- 作业(no grader): my sol
- 资料:NVIDIA CUDA C Programming Guide
- 难度:
- 标签:并行计算
- 语言:CUDA
- 评价:
- 状态:学习中
课程大纲
- lecture 1: An introduction to CUDA (2023/10/11)
- lecture 2: Different memory and variable types (2023/10/11)
- lecture 3: Control flow and synchronisation (2023/10/12)
- lecture 4: Warp shuffles, and reduction / scan operations (2023/10/12)
- lecture 5: Libraries and tools (2023/10/13)
- lecture 6: Multiple GPUs, and odds and ends (2023/10/13)
- lecture 7: Tackling a new CUDA application (2023/10/18)
- lecture 8: OP2 “Library” for Unstructured Grids research talk (MG) (2023/10/18)
- lecture 9: AstroAccelerate research talk (WA) (2023/10/18)
- lecture 10: Future Directions (2023/10/18)
- extra research talk: Use of GPUs for Explicit and Implicit Finite Difference Methods (2023/10/18)
作业
- Practical 1: a trivial “hello world” example (2023/10/11)
- Practical 2: Monte Carlo simulation using NVIDIA’s CURAND library for random number generation (2023/10/14)
- Practical 3: 3D Laplace finite difference solver (2023/10/16)
- Practical 4: reduction (2023/10/16)
- Practical 5: using the CUBLAS and CUFFT libraries (2023/10/16)
- Practical 6: revisiting the simple “hello world” example (2023/10/16)
- Practical 7: tri-diagonal equations (2023/10/19)
- Practical 8: scan operation and recurrence equations
- Practical 9: pattern matching
- Practical 10: auto-tuning
- Practical 11: streams and OpenMP multithreading
- Practical 12: more on streams and overlapping computation and communication
Caltech CS 179: GPU Programming
- 主页:http://courses.cms.caltech.edu/cs179/
- 内容:
- 形式:
- 视频
- 文档
- 作业
- 难度:
- 标签:并行计算
- 语言:CUDA
- 评价:
- 状态:学习中
课程大纲
Week 1 Introduction
- Lecture 1: Introduction (2023/10/24)
- Lecture 2: Intro to the SIMD lifestyle and GPU internals (2023/10/24)
- Lecture 3: Recitation 1 (2023/10/24)
Week 2 Shared Memory
- Lecture 4: GPU Memory Systems (2023/10/25)
- Lecture 5: Synchronization and ILP (2023/10/26)
- Lecture 6: Recitation 2 (2023/10/26)
Week 3 Reductions, FFT
- Lecture 7: “Reductions for GPUs” (2023/10/27)
- Lecture 8: “cuFFT” (2023/10/27)
- Lecture 9: “Recitation 3” (2023/10/27)
Week 4 cuBLAS and Graphics
- Lecture 10
- Lecture 11
- Lecture 12
Week 5 Machine Learning and cuDNN I
- Lecture 13
- Lecture 14
- Lecture 15
Week 6 Machine Learning and cuDNN II
- Lecture 16
- Lecture 17
- Lecture 18
作业
- Lab 1: Introduction to CUDA (2023/10/25)
- Lab 2:
- Lab 3:
- Lab 4:
- Lab 5:
- Lab 6:
MIT 6.854/18.415J: Advanced Algorithms (Fall 2021)
- 主页:https://6.5210.csail.mit.edu
- 内容:
- 形式:
- 视频
- 文档
- 作业
- 难度:
- 标签:数据结构与算法
- 语言:
- 评价: