Live data from Hacker News

Online course: Build your own simulated computer, assembler, lang, OS, & game

diycomputerscience.com

11–20 of 31 posts

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#11
Well there goes my weekend... I've been looking for something to help me step through this sequence, trying to read OSDev and the TinyVM source and the x86 handbook all at once trying to create an idea of how my computer actually works has just created a fried brain!

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#12
This book is great.

This book certiantly is not a crash course. I have been working through it in my spare time since I got it a couple of years ago. I have been taking my time because I was going through school when I got it and couldn't make time for it. Now seeing this article I should pick it back up again.

I suggest though that everybody resist the urge to find the answers rather than doing them yourself. It's quite rewarding when you figure things out. There isn't one way to do it.

The only complaint I have is that when you start getting into higher functions they recommend you not use the pieces you built up for performance reasons. Personally I would like to figure these out but perhaps that should be left for a later day.

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#13
post #5

There is a major problem with this teaching approach: every module is a pre-requisite for the next one. Therefore, if a student fails one module, he will have to spend time fixing it instead of moving forward.

I can't decide if you genuinely view this as a "major problem" or if you're making a wry commentary on the current state of education in some places?

That is, I would argue that you should have to pass prerequisite modules before moving forward. Right?

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#14
post #8

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?

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.

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#15
post #5

There is a major problem with this teaching approach: every module is a pre-requisite for the next one. Therefore, if a student fails one module, he will have to spend time fixing it instead of moving forward.

They address this by supplying implementations. In principle you could do most of the course backwards, though I haven't heard of anyone doing it that way.

And, in fact, they even say so.

> The lectures, book chapters and projects are highly modular and one can pursue subsets of them in any order and scope.

From the course's site's about page: http://www1.idc.ac.il/tecs/about.html

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#16
post #8

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?

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.)

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#17
Got a print copy of the book two days ago. Worked through most of the first chapter, and really loving it so far.

No CS background and a little (~1 year off and on) programming experience. Though having taken a symbolic logic course in college is definitely making the first chapter easier! :-)

Re: Online course: Build your own simulated computer, assembler, lang, OS, & game

#20
post #5

There is a major problem with this teaching approach: every module is a pre-requisite for the next one. Therefore, if a student fails one module, he will have to spend time fixing it instead of moving forward.

How would one understand calculus without understanding algebra? How would one understand algebra without understanding arithmetic? This isn't a major problem, it's the nature of learning interconnected things. The "major problem" is if the teacher forces the class to the next module without ensuring the students understand the previous one fully. Since this is a book the reader follows, that problem is eliminated.
Post reply on HN