From HacDC Wiki
The course objective is to integrate key topics from algorithms, computer architecture, operating systems, compilers, and software engineering, in one unified framework. This will be done constructively, by building a general-purpose computer system from the ground up. In the process, we will explore many ideas and techniques used in the design of modern hardware and software systems, and discuss major trade-offs and future trends. Throughout this journey, you will gain many cross-section views of the computing field, from the bare bone details of switching circuits to the high level abstraction of object-based software design.
1) A copy of the book is highly recommended. It can be purchased from Amazon for less than $30. Most of the chapters can also be downloaded as PDFs from the books website. 2) A computer to run the examples and assignments. The course software is written in Java so it will run Windows, Linux or Mac. 3) Some programming experience is also recommended.
The software necessary for the course is freely available from the books website: 
We will be using the syllabus provided by the book which follows the chapters in order. The lecture/discussion will loosely follow the slides provided on the course website.
List of Lectures
An archival list of lectures, including presentations and videos, can be found here
This is currently an incomplete list, additional topics will be added as I solidify them - will
|1||September 22, 2010||Getting Started & Boolean Arithmetic|
|2||September 29, 2010||Sequential Logic|
|3||October 6, 2010||Machine Language|
|4||October 13, 2010||Computer Architecture|
|5||October 20, 2010||Assembler|
|6||October 27, 2010||Virtual Machine I|
|7||November 3, 2010||Virtual Machine II|
|8||November 10, 2010||High Level Language|
|9||November 17, 2010||Compiler I|
|10||November 24, 2010||Compiler II|
|11||December 1, 2010||Operating System I|
|12||December 8, 2010||Operating System II & More Fun To Go|