Course material, lecture slides, hands-on projects, and exams — from C and Python fundamentals through Go, networking, Kubernetes, and LLMs. Everything here is open: take it, teach with it, or learn from it.
Parham teaches programming, backend, and infrastructure. Elaheh works on machine learning and data science.
Most repositories carry a hands-on project, not just slides — they show how we approached a well-known problem. Try your own solution first, then compare. Programming has no one-size-fits-all rulebook, so where our approach differs from yours, use whatever serves you and your team better — and open an issue to tell us about it. Questions, corrections, and contributions are all welcome.
| If you want to learn… | Start with |
|---|---|
| Programming, from zero | c-lecture → go-lecture |
| Go, from zero | go-lecture → students-fall-2023 |
| Building a real backend | fandogh |
| Python | python101 → Python201 |
| Kubernetes | k1s |
| Web & internet engineering | ie-lecture |
| Information security | is-lecture |
| LLMs, as a non-AI developer | llm101 |
- go-lecture — introduction to Go, also used in the Internet Engineering course
- fandogh — backend demonstration in Go with JWT, MongoDB, and friends
- tinyurl — a URL shortener that walks through the key concepts of Go
- song_cloud — a minimal SoundCloud, built for having fun with databases
- gorm-sample — the GORM object-relational mapper by example
- record-appender — read a log file, append the records into PostgreSQL
- say-hello — React, Fiber, and an API, just for saying hello
- cloud-fall-2022 — a Go review run with the Snapp! cloud team
A RESTful server in Go, written live during class — database, configuration, logging, and testing, added session by session. Each term starts fresh, so pick the most recent one.
- students-fall-2023 — latest
- students-fall-2022
Earlier terms (archived)
- python101 — an introduction to Python
- Python201 — advanced Python, including functional programming
- python-assignments — assignments accompanying the python101 course
- fruits-api — a small containerized API with FastAPI and SQLite
- socket.py — socket programming in Python, sized for one or two hands-on sessions
- P2P — a peer-to-peer network for file distribution
- ion-sample — WebRTC with Pion's ion-sfu
- k1s — learn how to use Kubernetes
- IaC — an introduction to infrastructure as code
- argofun — practices worth reviewing when using ArgoCD
- llm101 — an introduction to LLMs, written by a non-AI developer
- transformers101 — using Transformers in Python, with Microsoft Phi
- dimensionality-reduction — reducing the curse of dimensionality
The four decks taught as university courses. Each is a full term of slides, kept in step with the assignments and exams beside it.
- c-lecture — Fundamentals of Computer and Programming, an introduction to programming in C. Beamer slides, fourteen lectures
- go-lecture — introduction to Go, also the sample code for the Go lecture of the Internet Engineering course
- ie-lecture — Internet Engineering, from back-end to front-end web development. reveal.js slides
- is-lecture — Introduction to Information Security: cryptography, access control, and system, web and network defence
The exercises and papers that go with them:
- ie-assignmets — Internet Engineering assignments
- ie-exam — Internet Engineering midterm and final questions
- git-exercise — the first Git assignment of the AUT course
- interviews — using code to remember the awesome moments of our lives
Retired material. Still readable, no longer maintained — the language basics have moved on, but the exercises hold up.
C programming
- TanhaDarKhaneh — learn to code with C at home
- c-linked-list-workshop — a workshop on linked lists and structures
- c-exam — midterm and final questions
Courses and exams
- computer-networks — computer networking course material
- cn-exam — computer networks exam problems
- effective-documentation — the JSON Schema example used in the IE lecture
- JavaIn4 — a Java review in four hours
Tools and one-offs
- dallal — writing a message broker in Python over TCP
- IoTIPv6 — the Internet of Things and IPv6 presentation
- gitlab-ci — how to keep GitLab CI easy to use
- harpocrates — mailing student grades privately from a CSV file
- ellang — the Elahe language, from the Fall 2020 compiler course
Everything here was prepared for someone else to follow — courses, lectures, and exercises with a beginning and an end. The scratchpads where we work things out for ourselves, one technology at a time, live in 1995parham-learning. That one is the workbench. This one is curated.
Found a mistake, or solved something a nicer way? Open an issue on the repository — we would like to see it.
