Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

For the people who have read the book / taken the course:

I can see how a simple assembler and a simple game can be built quickly, but Computer Architecture, Compilers and Operating Systems are usually separate, semester-length courses. (And not among the simplest.) So what is he giving up on, in order to compress all this into a single course?



Read the book, finished it a few months ago.

Each chapter is usually covered by one course in a CS degree(more or less), but each one has a very specific goal and so focuses only on that.

As an example, the OS chapter doesn't actually build an OS. Just a few basic functions that allows you to build more meaningful programs in jack(the lang you build a compiler for). So a simple memory allocator, some basic math functions, a string class and so on.

The compiler chapter hardly mentions any theory about grammars and instead focuses on why a certain step is needed and how it fits in with the overall plan of building the project.

Even with a CS degree, I found it useful and, more importantly, enjoyable.


I haven't read it, but from skimming it looks like the tactic is to follow consistent rules for the entire course. The system being built is entirely self-contained, just complete. This makes it a lot easier to build on what you've already done.

In a typical csci curriculum each class will start with its own set of assumptions about which systems are being dealt with and what tools you need to learn. You might take a compilers class that uses yacc, a languages class that uses Common Lisp, an OS class that uses Java and an architecture class that uses x86 assembly. For each class you'll need to spend some time reviewing the tools and systems specific to that class, in addition to spending time on theory that isn't relevant to the focused goal of building a working computer system from scratch.


This is a great book, but each of the sections are very short introductions to the topics. You dig in and actually build something, but not anywhere the same depth you would in a course dedicated to the topic. (And I didn't feel like the operating systems section was really worth it - so cursory.)


He is using a lot of abstractions, and is focusing on building something which will introduce the main concepts of 'Computer Architecture', 'Compilers', and 'OS'.

A student taking this course will be building something very simple, but grasping the main concepts in the process.

I think the real beauty of this book is that the simple implementations can be a segue into exploring those concepts in greater detail (if one gets interested in them) ...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: