Skip to content

Sessions

Topics

1. Interfaces

  • terminal / command line interface (CLI) → session 01
    • essential commands: ls, cd, pwd, mv, cp, rm, mkdir, cat, less
    • shortkeys: Tab, Up, Ctrl-r
    • productivity commands: grep, find, rsync
  • SSH → session 02
    • public-private keys, configuration
  • Zsh → session 02
    • Oh My Zsh plugins and themes
  • editors → session 03
    • VSCode: overview, extensions
    • Vim: configuration, being productive
  • Git → session 04
    • status, init/clone, add/commit, pull/push, diff/log/show
    • branch/switch/checkout, merge
    • (fetch, rebase, remote, stash)
  • AI agents → session 05
    • AI for coding (web) and agents (CLI)

2. The Go language

  • tour of Go → session 06
    • example: duplicate lines
    • go tool basics
    • example: fetching URLs
  • tour of Go (continued) → session 07
    • example: lissajous
    • example: web server
  • Go's programming syntax → session 08
    • basic syntax: packages, imports, functions, variables, types, constants, for, if, ...
    • deeper dive: structs, pointers, methods
  • many workers with Goroutines → session 09
    • parallel thinking, fork-join pattern, workgroup management, goroutines vs. threads
    • example: Mandelbrot
  • shared memory between workers → session 13
    • race conditions
    • mutex, rw-mutex
    • example: bank account with shared variables
  • message passing with Go channels → session 14
    • unbuffered, buffered, and unidirectional channels
    • multiplexing
    • example: bank account with channels
  • case studies with concurrency → session 15
    • caching function calls
    • building a chat server
  • performance and scalability → session 16
  • case studies with parallel algorithms → session 17
    • matrix-matrix multiplication
    • histogram

3. Neural networks and PyTorch

  • introduction to PyTorch → session 19
    • what is PyTorch?
    • PyTorch tensors
  • automatic differentiation → session 20
    • what is automatic differentiation?
    • PyTorch autograd
  • basic neural network models and training → session 21
    • building models with PyTorch
    • training loops in PyTorch
  • optimization hyperparameters → session 22
    • learning rate and batch size
    • number of epochs and early stopping
  • distributed training with data parallelism → session 23
    • basics of distributed training
    • distributed training with PyTorch DDP
    • hands-on: converting single-GPU code to multi-GPU
  • distributed training on multiple compute nodes → session 24
    • PyTorch DDP with multiple nodes