Fundamentals of Computer Systems
CSEE 3827, Fall 2013

Administrative

Lectures

Lectures will be held on TR 10:10am-11:25am in 209 Havemeyer

Course Staff

Prof. Martha Kim martha@cs.columbia.edu (212) 939-7094 469 CSB
TA Andrew Mercer-Taylor ajm2209@columbia.edu
TA Tim Paine tkp2108@columbia.edu
TA Michael Yang my2292@columbia.edu
TA Jie Feng jf2776@columbia.edu

Office Hours

Refer to course calendar.

Course Overview

This course examines how the 1s and 0s that form the foundation of digital computing are organized, structured, and manipulated to produce full-fledged computer systems. In bridging this gap, the course will cover many subjects beginning with binary logic, combinatorial and sequential circuit design, memory structures, instruction set architectures, and, ultimately, basic processor design.

Prerequisites

An introductory programming course, such as COMS 1004 or 1007. You need to understand the basics of imperative, sequential programming to understand the assembly language programming we will discuss.

Late Policy

Each homework assignment is due at at the beginning of lecture on the due date. Late submissions will not be accepted. We will drop each student's lowest homework grade when calculating final grades.

Collaboration Policy

We take academic honesty extremely seriously, and expect the same of you. You may discuss homework problems with your classmates, however, each student is to write up his or her own solution and is expected to be able to explain and reproduce the work she or she submits. Please note the names of your collaborators at the top of your homework submission. Apart from these exceptions, the Computer Science Department's Academic Honesty policy is in effect.

Grading Formula

Homeworks: 40%
Midterm Exam: 30%
Final Exam: 30%

Textbooks

There are no required texts. Recommended texts are:

Syllabus

Date Topic(s) Reading Slides Homework Due
Sep 3 Representing Numbers
  • H+H: 1.4
  • M+K: Ch 1, 4.3-4.4, 10.7
  • P+H: 3.5
intro.pdf
Sep 5 Boolean Logic
  • H+H: 1.5, 2.1-2.7
  • M+K: 2.1-2.5, 2.8, 2.9
boolean.pdf
Sep 10
    Sep 12 Combinational Logic
    • H+H: 2.8,2.9,5.2
    • M+K: 3.1, 3.3, 3, 3.6-3.9, 4.1-4.2, 4.5, 9.4
    standard-combinational.pdf
    Sep 17
      combinational.pdf
      Sep 19
        hw1.pdf
        hw1-solutions.pdf
        Sep 24 Sequential Logic
        • H+H: 3.1-3.3,3.5
        • M+K: 5.1-5.3, 5.6
        sequential.pdf
        Sep 26
          Oct 1 Finite State Machines
          • H+H: 3.4
          • M+K: 5.4-5.5
          fsms.pdf
          in-class-fsms-1.pdf
          hw2.pdf
          Oct 3
            Oct 8 Memory Elements
            • H+H: 5.5
            • M+K: 6.8, 7.1-7.3, 8.1-8.7
            Oct 10 Midterm Review
              Oct 15
              Midterm Exam
              Oct 17 The MIPS Instruction Set
              • H+H: 6.1-6.7
              • P+H: 2.1-2.8, 2.10
              Oct 22
                Oct 24
                  Oct 29 Transistors, Gates, and ICs (Prof. Edwards)
                  • H+H: 1.7
                  Oct 31
                  Class cancelled -- MK Travel
                  Nov 5
                  Election Holiday
                  Nov 7 MIPS Microarchitecture
                  • H+H: 7.1-7.3
                  • P+H: 4.1-4.4
                  Nov 12 A Multicycle MIPS Processor
                  • H+H: 7.4
                  Nov 14 Pipelining MIPS
                  • H+H: 7.5
                  • P+H: 4.5-4.8
                  Nov 19
                    Nov 21
                      Nov 26 Caches
                      • H+H: 8.3
                      • P+H: 5.1-5.2
                      Nov 28
                        Dec 3 (slack)
                          Dec 5 (slack)
                            Dec 10-12
                            Study Days
                            Dec 13-20
                            Exam Period