Are you interested in a Computer Science course in which you will build your own computer (in a simulator), your own assembly language, compiler, operating system, and an application on top of all this? If you are already excited then this is just the course for you !
In a typical Computer Science program, we learn many key topics such as algorithms, computer architecture, operating systems, compilers, software engineering, etc. However, almost always, we learn all of these topics in isolation. This leaves a student with a lot of throretical knowledge, but often in the dark about how all these peices play together.
The Elements of Computing Systems - is a course which takes a student across the entire computing stack in a hands on manner. In this course, students start with the primitive NAND gate, and using a hardware simulator and HDL, they build basic gates, using which they build an ALU (Arithmatic Logic Unit), going on to building an actual computer (in simulation). Then they create an assembly language for this computer, followed by a high level language, an operating system, and finally a game using the language they created, on the machine they created.
In the process, students explore many ideas and techniques used in the design of modern hardware and software systems, and discuss major trade-offs and future trends.
This course is a one of a kind course which unifies the most important concepts a student learns in Computer Science, in a fun and hands on way. The hands on approach is important because many of the topics covered in this course are dealt only at a theoretical level in most university courses.
This course was originally created by Professor Shimon Schocken, and Professor Noam Nisan. The creators of this course have very kindly made the content available online and through their book, so we can all benefit from it. Here is a link to the original course page.
Here is a 10 minute video where Professor Shimon Schocken talks about why he created the course and what it contains. Please note: I have embedded this video to give participants a better idea of the course. It does not mean that Prof. Schocken is endorsing the course on diycomputerscience.com.
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit register' ... Mar 28, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 1 bit binary cell' ... Mar 28, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Create a (simulated) memory chip' ... Mar 26, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Get familiar with the assembler and CPU emulator' ... Mar 19, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit Incrementer' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build an ALU' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit Adder' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a Full Adder' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a Half Adder' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build an 8 Way DMUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 4 Way DMUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit / 8 Way MUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit / 4 Way MUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build an 8 Way OR' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit MUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit OR' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit AND' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a 16 bit NOT' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a DMUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a MUX' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build an XOR gate' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build an OR gate' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build an AND gate' ... Mar 16, 2012
- http://twitter.com/dmux4way submitted an activity response for activity 'TECS - Build a NOT gate' ... Mar 16, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16-bit / 16384-register memory' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16-bit / 4096-register memory' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16-bit / 512-register memory' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16-bit Program Counter' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16-bit / 64-register memory' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16-bit / 8-register memory' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit register' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 1 bit binary cell' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build an ALU' ... Mar 15, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit Incrementer' ... Mar 13, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit Adder' ... Mar 13, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a Full Adder' ... Mar 13, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a Half Adder' ... Mar 12, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build an 8 Way DMUX' ... Mar 12, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 4 Way DMUX' ... Mar 12, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit / 8 Way MUX' ... Mar 10, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit / 4 Way MUX' ... Mar 10, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build an 8 Way OR' ... Mar 9, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit MUX' ... Mar 8, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit OR' ... Mar 8, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit AND' ... Mar 8, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a 16 bit NOT' ... Mar 8, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a DMUX' ... Mar 8, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a MUX' ... Mar 8, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build an XOR gate' ... Mar 7, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build an OR gate' ... Mar 7, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build an AND gate' ... Mar 7, 2012
- http://twitter.com/kingpinzs submitted an activity response for activity 'TECS - Build a NOT gate' ... Mar 7, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Write a program using Jack' ... Feb 9, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build the Program Control part of the VM' ... Feb 9, 2012
- http://twitter.com/coding_insights submitted an activity response for activity 'TECS - Build an ALU' ... Feb 3, 2012
- http://twitter.com/coding_insights submitted an activity response for activity 'TECS - Build a 16 bit Incrementer' ... Feb 2, 2012
- http://twitter.com/coding_insights submitted an activity response for activity 'TECS - Build a 16 bit Adder' ... Feb 2, 2012
- http://twitter.com/coding_insights submitted an activity response for activity 'TECS - Build a Full Adder' ... Feb 2, 2012
- http://twitter.com/coding_insights submitted an activity response for activity 'TECS - Build a Half Adder' ... Feb 2, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build the Stack Arithmatic part of the VM' ... Jan 31, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build an assembler' ... Jan 25, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build an assembler' ... Jan 25, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a (simulated) Computer chip' ... Jan 18, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a (simulated) CPU chip' ... Jan 18, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build a 16 bit MUX' ... Jan 16, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build a DMUX' ... Jan 16, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build a 16 bit AND' ... Jan 16, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build a 16 bit NOT' ... Jan 16, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build an XOR gate' ... Jan 16, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build an OR gate' ... Jan 16, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build a MUX' ... Jan 16, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Create a (simulated) memory chip' ... Jan 15, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'TECS - Build a NOT gate' ... Jan 14, 2012
- http://twitter.com/pj_robins submitted an activity response for activity 'Download and install the TECS Hardware Simulator' ... Jan 14, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Write an IO bound program using our assembly language' ... Jan 2, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Write a assembly language program to multiply two numbers' ... Jan 2, 2012
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Get familiar with the assembler and CPU emulator' ... Jan 2, 2012
- http://twitter.com/diyfan1 submitted an activity response for activity 'TECS - Build a (simulated) Computer chip' ... Dec 28, 2011
- http://twitter.com/diyfan1 submitted an activity response for activity 'TECS - Build a (simulated) CPU chip' ... Dec 28, 2011
- http://twitter.com/diyfan1 submitted an activity response for activity 'TECS - Build a 16-bit / 16384-register memory' ... Dec 27, 2011
- http://twitter.com/diyfan1 submitted an activity response for activity 'TECS - Build a 16-bit / 8-register memory' ... Dec 27, 2011
- http://twitter.com/diyfan1 submitted an activity response for activity 'TECS - Create a (simulated) memory chip' ... Dec 27, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16-bit Program Counter' ... Dec 26, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16-bit / 16384-register memory' ... Dec 26, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16-bit / 4096-register memory' ... Dec 26, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16-bit / 512-register memory' ... Dec 26, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16-bit / 64-register memory' ... Dec 26, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16-bit / 8-register memory' ... Dec 26, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16 bit register' ... Dec 25, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 1 bit binary cell' ... Dec 25, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build an ALU' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16 bit Incrementer' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16 bit Adder' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a Full Adder' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a Half Adder' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build an 8 Way DMUX' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 4 Way DMUX' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16 bit / 8 Way MUX' ... Dec 23, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build a 16 bit / 4 Way MUX' ... Dec 22, 2011
- http://twitter.com/siabard submitted an activity response for activity 'TECS - Build an 8 Way OR' ... Dec 22, 2011
