Schedule, Readings, and Assignments

Date Topic Assignments
Wed  Aug 30

Course Overview

  What we consider computers

Read: CS:APP pp. xix - xxv and Chapter 1
Linux Command Line Tutorial
Fri  Sep 01

Abstraction vs. Reality

Read: King, Chapters 2-7 (skim through)
Focus on Chapter 3 (scanf and printf)
Mon  Sep 04

Working with C Programs

Read:  King Chapter 7
HW 0
+ files - Due in class Sept 11
Wed  Sep 06

Modularity and ADTs
  GCC Exercise

Data Abstraction in C
Test Program
Fri  Sep 08

Programming Examples
Read:  King Chapter 9
Mon  Sep 11

Pointer Variables and Addresses

  Low-Level Aspects of C

Read:  King Chapter 11-12
HW 1 + files- Due Sept 20
Wed  Sep 13
Arrays and C-Strings
  Hints on Debugging C

Read:  King Chapters 8, 13
Fri  Sep 15

Pointers and Structs
Read:  King Chapter 16
Mon  Sep 18

Bits and Bytes

Read:  CSAPP Sections 2.1-2.2
Wed  Sep 20

Representing Unsigned Integers

HW 2 - Due Sept 29
Fri  Sep 22
Representing Signed Integers -LAB
Read: CSAPP Section 2.3
Mon  Sep 25

Computer Arithmetic

Wed  Sep 27

Signed and Unsigned Multiplication
Fri  Sep 29

Signed and Unsigned Division

HW 3 - Due Oct 06
Mon  Oct 02

Floating Point Representation

Read:  CSAPP Section 2.4-end
Wed  Oct 04

FP Representation - Exercise
Format Example
Fri  Oct 06

Floating Point Arithmetic
HW 3 Solutions
Mon  Oct 09
Floating Point Exercise
 Exam Review
Read:  CSAPP Section 3.1-3.3
Wed  Oct 11

Intel x86-64 Processor Basics

 IA-32 Assembly Language

Read:  CSAPP Section 3.4-3.5
Fri  Oct 13

Intel x86-64 Addressing Modes
  x86-64 Cheat Sheet
Take-home Exam Out
Mon  Oct 16

Intel x86-64 Control Instructions

Take-home Exam Due
Wed  Oct 18

Compiling Conditional Branches
Read Section 3.6
 Oct 20

Compiling while loops
Read: CSAPP Section 3.7
Mon   Oct 23
Fall Break No Class
Wed  Oct 25
More Loops - LAB
HW 4 - Due Oct 30
Fri  Oct 27

Procedure Calls and Parameter Passing

Read: CSAPP Section 3.8-3.9
Mon  Oct 30
Accessing Local Variables
HW 5 - Due Nov 06
Wed  Nov 01 Compiling while loops Read: CSAPP Section 3.7
Fri  Nov 03

In-class exercise
Homecoming Lecture, 2:00
Mon  Nov 06

For Loops
HW 6 - Due Nov 13
Wed  Nov 08

Procedure Calls and Parameter Passing

Read: CSAPP Section 3.8-3.9
Fri  Nov 10

Data Structure Access

Read: CSAPP Section 3.10
Mon  Nov 13

Pointer and Array Bounds Errors

HW 7 - Due Nov 20
Wed  Nov 15
Security Exploits

  HeartBleed Bug
Read: CSAPP Section 3.14
Fri  Nov 17
Logic Circuit Design
  The EDVAC Report
Read: CSAPP Sections 4.1 - 4.4
Mon  Nov 20

Y86 Architecture
and Logic Design

Y86 Tools, Manual, and Code
Wed  Nov 22
Thanksgiving Break - no class

Fri  Nov 24 Thanksgiving Break - no class
Mon  Nov 27 Thanksgiving Break - no class
Wed  Nov 29
Y86 Sequential Implementation

Converting to Y86
Fri  Dec 01

Processing Pipelines

Reading: CSAPP Section 4.5|
Take Home Exam Out - due Dec. 04
Mon  Dec 04
Y86 Pipelined Implementation

HW 8 - Due Dec 13 by 4:30pm
Wed  Dec 06

Memory Hierarchy
Reading: CSAPP 6.1 - 6.3
Fri  Dec 08
Localization and Caching
  Numbers every programmer should know

Reading: CSAPP 6.4
Mon  Dec 11
, with examples

Hitting the Memory Wall
Sun also gets it
Wed  Dec 13

Multiple Processor Cores
  Multicore / Multiprocessors

Final Review
 Dec 17
Final Exam @ 7:00 PM


Grace Hopper Explains Nanoseconds from funbury on YouTube.

Grace Hopper on David Letterman from TheLazlo101 on YouTube.

Gustafson on Issues with Floating Point
from stanfordonline on YouTube.

View from the ISS at Night from Knate Myers on Vimeo