目录

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
  • 内容:从零开始深度学习,手把手教你实现深度学习的很多算法
  • 形式
  • 难度:内容很多,但因为没有lab,所以不存在代码实现的难度
  • 标签:深度学习
  • 语言:Python(PyTorch)
  • 评价:收获很大,但对我来说更多的是科普性质的(了解大致原理),没怎么上手写代码。此外,李沐老师每次讲课后还会回答网友的很多问题,这很难得。

CMU 15-213 Introduction to Computer Systems

南京大学 操作系统:设计与实现 (2023 春)

NTU EE5184 Machine Learning (2022 Spring)

课程大纲
  • 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

课程大纲
作业
  • 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

课程大纲
  • 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)