Actions

TECS: Difference between revisions

From HacDC Wiki

No edit summary
 
(17 intermediate revisions by the same user not shown)
Line 25: Line 25:
|-
|-
|0
|0
|February 9, 2011
|September 5, 2012
|Course overview and introductions.
|Course overview and introductions.
|-
|-
|1
|1
|February 16, 2011
|September 12, 2012
|Getting Started & Boolean Arithmetic
|Getting Started & Boolean Logic
|-
|Skipped
|February 23, 2011
|HacDC's Annual Meeting
|-
|-
|2
|2
|March 2, 2011
|September 19, 2012
|Sequential Logic
|Boolean Arithmetic
|-
|Skipped
|March 9, 2011
|I will be out of town for work.
|-
|-
|3
|3
|March 16, 2011
|November 7, 2012
|Machine Language
|Sequential Logic
|-
|-
|4
|4
|March 23, 2011
|November 14, 2012
|Computer Architecture
|Machine Language
|-
|-
|5
|5
|March 30, 2011
|November 28, 2012
|Assembler
|Computer Architecture
|-
|-
|6
|6
|April 6, 2011
|December 5, 2012
|Virtual Machine I
|Assembler
|-
|-
|7
|7
|April 13, 2011
|December 12, 2012
|Virtual Machine II
|Virtual Machine I
|-
|-
|8
|8
|April 20, 2011
|January 16, 2013
|High Level Language
|Virtual Machine II
|-
|-
|9
|9
|April 27, 2011
|January 23, 2013
|Compiler I
|High Level Language
|-
|-
|10
|10
|May 4, 2011
|January 30, 2013
|Compiler II
|Compiler I
|-
|-
|11
|11
|May 11, 2011
|February 6, 2013
|Operating System I
|Compiler II
|-
|-
|12
|12
|May 18, 2011
|February 13, 2013
|Operating System II & More Fun To Go
|Operating System & More Fun To Go
|}
|}
*: Proposed dates.


== Methodology ==
== Methodology ==
Line 96: Line 90:
* [http://video.google.com/videoplay?docid=7654043762021156507# Longer video introduction to the course]
* [http://video.google.com/videoplay?docid=7654043762021156507# Longer video introduction to the course]
* [http://www.amazon.com/gp/product/0262640686/ref=oss_product Textbook on Amazon]
* [http://www.amazon.com/gp/product/0262640686/ref=oss_product Textbook on Amazon]
* [http://learnproglang.couch.it/ Additional learning resources (Ben the Pyrate's brain-dump)]
* [https://github.com/HacDC/tecs-projects Example solutions for the projects in the book]
* [https://groups.google.com/a/hacdc.org/forum/#!forum/tecs-list Mailing list for the class]


[[Category:Classes]]
[[Category:Classes]]

Latest revision as of 01:01, 17 January 2013

The Elements of Computing Systems: Building a Modern Computer from First Principles

Course Overview

Copied from course-provided syllabus: 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.

Prerequisites

  1. A copy of the book is highly recommended. It can be purchased from Amazon for less than $30 $20. 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 on Windows, Linux or Mac.
  3. Some programming experience is recommended. Any programming language can be used for the projects in the book.

Software

The software necessary for the course is freely available from the books website: [1]

Lecture

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

This is the proposed schedule based on the course-provided syllabus. Changes are likely to happen and I will try to keep this updated to reflect those. Let me know if any of these dates need to altered. I will be at the space by 7:00p but lecture typically begins at 7:30p.

Week Date Topics Covered
0 September 5, 2012 Course overview and introductions.
1 September 12, 2012 Getting Started & Boolean Logic
2 September 19, 2012 Boolean Arithmetic
3 November 7, 2012 Sequential Logic
4 November 14, 2012 Machine Language
5 November 28, 2012 Computer Architecture
6 December 5, 2012 Assembler
7 December 12, 2012 Virtual Machine I
8 January 16, 2013 Virtual Machine II
9 January 23, 2013 High Level Language
10 January 30, 2013 Compiler I
11 February 6, 2013 Compiler II
12 February 13, 2013 Operating System & More Fun To Go
  • Proposed dates.

Methodology

Copied from course-provided syllabus: This is mostly a hands-on course, which evolves around implementing a series of hardware and software modules. Each module development task will be accompanied by a design document and an executable solution (illustrating what the module is supposed to do), a detailed implementation document (proposing how to build it), and a test script (specifying how to test it). The homework assignments will be spread out evenly, so there will be no special “crunch” toward the semester’s end. Each lecture will start by reviewing the work that was done thus far, and giving instructions on what has to be done next. The homework assignments can be done in pairs.

Each week/chapter is completely modular and self-contained. It is not necessary to complete an earlier chapter in order to participate in a later one. Therefore students are free follow along in whichever order they choose or audit only those weeks that are of interest to them.

Resources