Live data from Hacker News

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

diycomputerscience.com

21–30 of 31 posts

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

#22
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?

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

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

#23

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 q…

Using the pieces you built as you move along is a great idea, and an opportunity to understand the optimizations required to make them performant.

I think one reason, why they may insist is because, the basic pieces you built will be in HDL, while if you use the ones provided by the software, they will be in the form of compiled Java code. Perhaps that is one of the reasons why the books pieces will be faster/

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

#24
I actually took this course in person when Professor Schocken visited Harvard. It is a fantastic course that is extremely valuable for everyone from those who only have basic programming skills to advanced CS students (I took it as a senior after already having taken classes on operating system design and programming languages). In the class we did jump around a bit in the later chapters, and so I feel like one could probably approach the material in many different ways.

The exercises are very straight-forward and will not be extremely time-consuming for those who are already skilled at CS, but the course is best treated like a tour through CS rather than an in-depth study of any particular area.

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

#25
Thanks to everyone for your great comments, and for enrolling in the course. I have been looking to learn something like this from a long time, but lacked the community to be able to learn with peers.

That, and a desire to make a little contribution to the state of learning & education prompted me to create diycomputerscience.com

There were over a 100 registrations in the past day.

Thanks to everyone... you guys really made my day !

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

#26

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 q…

Using the pieces you built as you move along is a great idea, and an opportunity to understand the optimizations required to make them performant. I think one reason, why they may insist is because, the basic pieces you built will be in HDL, while if you use the ones provided by the software, they will be in the form of compiled Java code. Perhaps that is one of the reasons why the books pieces will be faster/

I finished the book a few months ago, and yes that is the main reason.

I wanted to test the whole finished stack using only my components so I did run it using only what I built. It ran but was around 10x slower, mainly the graphics tests. I did optimise the performance of the basic drawing algorithms using faster ones but, naturally, it was still much slower than the java implementation.

Another advantage of using your built components is that it helped me uncover some bugs which I only noticed when you ran something as complex as the pong example.

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

#27
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?

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.

Post reply on HN