Our first attempt at auditing select Computer Science courses.
ℹ️ You can suggest what we should do next here
Even if you are not a CS major, this will make you a better software engineer -- by understanding the things that make your code talk to the machine.
- Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) | Coursera - start by signing up here, choose the Audit option. You are also encouraged to pay if you can.
- More polished version of the projects from HUJI
- Saturdays 7 - 8 AM EAT, if missed, Sundays 7 - 8 PM EAT.
- Starts: Jan 14, 2023
- Ends: April 29, 2023
- Meeting Link: shared on the mailing-list
- Invite Only for now.
- This is self-paced, but our general agreed pace (for the slowest) should be 2 weeks to cover 1 week of the Coursera course. So we will take 14 weeks for the 7 c/weeks.
- MAIN: For posterity, let's use the mailing-list -
[email protected]
(alias:[email protected]
) - See all the past communications here - https://groups.google.com/g/compilers-cs-ke
- For quick chats, we can use the Slack Channel,
#course-compiler-construction
- Module 0: Machine Lanaguage - Key concepts: op codes, mnemonics, binary machine language, symbolic machine language, assembly, low-level arithmetic, logical, addressing, branching, and I/O commands, CPU emulation, low-level programming.
- Module 1: Virtual Machine, Part I - Key concepts: two-tier compilation (overview), virtualization, virtual machines, VM abstraction, stack processing, pointers, VM implementation, VM translators.
- Module 2: Virtual Machine, Part II - Key concepts: branching, functions, function call-and-return, dynamic memory management, stack processing, pointers, standard mapping, VM implementation.
- Module 3: High-Level Language - Key concepts: procedural programming, object-based programming, classes, methods, functions, constructors, list processing, recursion, developing interactive applications, graphics optimization.
- Module 4: Compiler I (Syntax Analysis) - Key concepts: tokenizing, grammars, parsing, parse trees, XML / mark-up, compilation.
- Module 5: Compiler II (Code Generation) - Key concepts: compiling procedural code, compiling the construction and manipulation of arrays and objects, code generation techniques, recursive compilation engine, symbol tables, memory management.
- Module 6: Operating System - Key concepts: running-time analysis, resource allocation, heap management, input handling, vector graphics, fonts, textual outputs, type conversions, string processing, booting, OS implementation issues.
- Will be shared privately on our mailing-list.
- Will adhere to our privacy terms.
- Compilers Course @ Edx
- Book: Crafting Interpreters
- Create Your Own Compiler - Caught in the Web (citw.dev)
- More to be added
This first pilot program is invite-only for now. However, if you really reaaally want to join, fill in the form here - https://forms.gle/da7fKkjv6fRwW1oS8
📨 For any enquiries, you can reach us on [email protected]