Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 7f6eb42c95
Fetching contributors…

Cannot retrieve contributors at this time

38 lines (27 sloc) 1.388 kb
This material aims to teach principles and understanding fundamental to study of Computer Science and programming in general. It is intended to be accesible to motivated beginners, but useful to those with programming experience. It is not a tutorial or a getting started guide for a particular language, paradigm, or application, but general fundamentals.
The general philosophy of this material is that Computer Scientists need to have an understanding of both mathematical theory (the "top" or "high level") and inner machine workings (the "bottom" or "low level") and practical applications of both.
== Outline so far ==
=== Assembly ===
* Registers and instructions
* Labels, branches, conditional execution, and procedures
* TODO: Program layout and pipelining
* Interacting with RAM, The Stack, and saving registers
* Pointers, pointer arithmetic, and arrays
* Talking to hardware and bitmasks
* Recursion and tail-call elimination
=== Untyped Lambda Calculus ===
* ULC syntax and alpha equivalence
* Beta reduction
* Normal form and reduction strategies
* Boolean Algebra
* Church Numerals
* Fixed-point combinators
== C ==
* Procedures, recursion, and tail-call elimination
* Libraries, build systems, and the preprocessor
* Syscalls, Pointers, and RAM
== Haskell ==
* Names and pattern matching
* Modules and build systems
* Types
* Merge sort and runtime analysis
Jump to Line
Something went wrong with that request. Please try again.