Drafts and schedules for "Programming" and related series.
Note: oudated. We decided not have to language-, framework-, tool-specific themes/courses. The following should be update accordingly.
- Intro. Warmup with logic, numbers, etc.
- Sets. Introduction to Set Theory.
- Booleans. Introduction to Boolean Algrebra.
- Relations and Functions. ...
- Calculations. Start from numeric calculations.
- Variables. Split calculations on steps using variables.
- Datatypes. Declarations, properties, structuring & destructuring.
- Functions and Operations. Use a function abstraction to abstract calculations.
- Conditions. Practice and compare different conditionals.
- Loops. Practice and compare different loops.
- Mutability. In contrast to Immutability. Yield first patterns and "best practices".
- Types: highly language-specific, need another course series as JS does not fit
- Scoping: later, basic scoping is given in Functions, advanced – togeher with Closures
- Recursions: later, not necessary from the start in JS
- Regular expressions: later, not necessary, can copy-paste for a while
- Binary numbers: later, not necessary for beginners (really!)
- Statements and expressions: later, too formal
- Map / Filter / Reduce: later, too advanced
- Collections ?? Arrays vs Tuples, Records vs Dicts
- Binary Numbers ??
- Regular expressions ??
- First class objects ??
- Recursions ??
- Scoping and closures ??
- Basic FP (map, filter, reduce) ??
- Error handling ??
- Notations (prefix vs infix) ??
- More datastructures (sets, lists, trees, queues) ??
- Expression problem (FP vs OOP) ??
- Functors, Applicatives, Monads ??
- Lazy evaluation ??
- Lenses ??
- Dynamic programming ??
- Minimax ??
- Traversals, Zippers ??
- Advanced algorithms ??
- Recursion schemes ??
- Parsers and DSLs ??
- Parallel computations ??
- Distributed computations ??
- Modules – language specific, better covered by JS series (and, oh boy, JS has many). Some II+ courses may assume a basic module knowledge (not an overestimation)
- Types – language specific, better covered by JS series (or TypeScript)
- Unit tests ??
- Integration tests ??
- Applied Statistics (basics) ??
- Applied Linear Algebra (basics) ??
- Finite state machines ??
- Asynchronisity 100%
- Static Typing 60%
- Functional Programming 60%
- all competent topics 40%
- all expert topics 60%