CS Circles
cscircles.cemc.uwaterloo.caAn introduction to computer programming from Waterloo
An introduction to computer programming from Waterloo
Computer-science foundations taught through programming problems
Interactive programming lessons reinforced by short reviews
Zig study for readers with prior programming experience
An annual collection of language-independent programming puzzles
Illustrated programming lessons with browser coding practice
Japanese programming lessons in short videos
A curated roadmap for programming-contest skills
Mathematical problems that reward programming solutions
Programming courses with language and framework paths
Deeper R language study for practising programmers
Programming courses built around substantial project practice
Programming guides spanning C and network concepts
Algorithm explanations for competitive programming
Short programming tutorials beside exercises and references
Learn C by implementing a small programming language
Creative programming tracks for beginners
Edit code on iPhone or iPad with broad syntax highlighting, remote file access, and an SSH terminal.
A reactive Python notebook editor that saves notebooks as ordinary Python files.
Write statically typed Nim programs and compile them with a toolchain designed for systems and application work.
A browser IDE for running short code samples or building supported multi-file projects across many languages.
Compile systems software with a general-purpose language built around explicit control and cross-compilation.
Write visual sketches in a desktop editor and run them in a graphics window with Processing.
Compile Ruby-inspired, statically typed Crystal programs into native executables.