The course has a very ambitious agenda, namely to build a full-purpose computer from scratch by using a Hardware Simulator, gate logic and first principles. It is one of the courses that I have enjoyed the most. When learning programming, I sometimes felt that there was a significant gap: Basically, programming starts at a very high level of abstraction. All the chipsets etc. are abstracted away from. But what does it really mean when we say that a computer only understands 0s and 1s? This course aims at filling this gap. It is highly entertaining and enjoyable with well-thought out, difficult projects, that are a lot of fun.