Computer Systems CS 3650

"No more magic" -- Your Instructor

Schedule/Road Map


The following is our tentative syllabus for the course, some changes should be expected throughout the semester. I will announce in class or through e-mail any major changes.

  • To get all of the assignments/activities for the course, you must first click the following link: CS 3650 Monorepo Do not do a 'git pull' until class starts (Occasionally I make changes/spelling corrections)
Week
Date
Lecture and Readings Assignments Note(s)
1 Wed/Thur, Sept. 4/5, 2019
  • Lecture outline
    • Introduction to Computer Systems and Linux Crash Course
    • Introduction to Linux and the Terminal
      • Common command line programs
    • Begin Module!
A1 - Automate (some of) your life (due Sept. 12 @ 11:59pm)
First week of classes, welcome back!
2 Monday, Sept. 9, 2019
  • Lecture outline
    • Lab: Scripting -- The Command line, ssh, git, and Setting up Virtual Box
    • Begin Module!
-- --
-- --
Wed/Thur, Sept. 11/12, 2019
  • Lecture outline
    • Basic C Programming
    • Arrays and Memory
    • Structs, Pointers, Malloc
    • Begin Module!
A2 - C Data Structures (due Sept. 19 @11:59pm)
-- --
3 Monday, Sept. 16, 2019
Lab 1 due (All labs are due at the start of your sections class)
-- --
Wed/Thur, Sept. 18/19, 2019
  • Lecture outline
    • Introduction to Machine Representation
      • Assembly and Registers
      • Condition Codes
      • x86-64 Stack
    • Begin Module!
A3 - Assembly (due Sept. 26 Sept. 27 at 11:59pm)
-- --
4 Monday, Sept. 23, 2019
Lab 2 due
-- --
Wed/Thur, Sept. 25/26, 2019
  • Lecture outline
    • Pre-processor
    • Compilers
      • Front-end
      • Middle-end
      • Back-end
    • Linkers
    • Begin Module!
A4 - Libraries (due Oct. 3 at 11:59pm)
Thursday 11:45am class will be in ISEC 102 (other section will join us)
5 Monday, Sept. 30, 2019
  • Lecture outline
Lab 3 due
Monday 11:45am class will be in ISEC 102 (other section will join us)
Wed/Thur, Oct. 2/3, 2019
  • Lecture outline
    • CPU - Fetch Decode Execute
    • Pipelining
    • Memory Hierachy
    • Locality
    • Caching
    • Processes
    • Begin Module!
A5 - Shell (due. Oct. 17 at 11:59pm)
-- --
6 Monday, Oct. 7, 2019
  • Lecture outline
    • Process control and fork()
    • The memory Hierarchy
    • Lab: Processes and Cache Simulator
    • Begin Module!
Lab 4 due
-- --
Wed/Thur, Oct. 9/10, 2019
  • Lecture outline
    • Principle of Locality
    • Directly Mapped Cache
    • Set Associative Cache
    • Begin Module!
-- --
-- --
7 Monday, Oct. 14, 2019
------ (Review your notes) ------
-- --
No Class -- Holiday
Wed/Thur, Oct. 16/17, 2019
  • Lecture outline
    • Memory Management Unit
    • Virtual Memory
    • Page
      • Page hit
      • Page miss
      • Page fault
    • Address Translation
    • Translation Lookaside Buffer(TLB)
    • Begin Module!
A6 - Allocators 1 (due. Oct. 30 at 11:59pm)
-- --
8 Monday, Oct. 21, 2019
------ (No class) ------
-- --
-- --
Wed/Thur, Oct. 23/24, 2019
  • Lecture outline
    • Dynamic Memory Allocation
    • Internal and External Fragmentation
    • First-fit, next-fit, and best-fit
    • Begin Module!
Lab 5 due
-- --
9 Monday, Oct. 28, 2019
  • Lecture outline
    • Parallelism vs Concurrency
    • Threads vs Processes
    • Shared Variables
      • Data Race
      • Dead lock
      • Starvation
    • Semaphores
    • Begin Module!
A7 - Concurrency (due. Nov. 7 at 11:59pm)
-- --
Wed/Thur, Oct. 30/31, 2019
  • Lecture outline
    • Thread-Safety Classes
    • Concurrency Patterns
      • Barrier
      • Signaling
      • Producer Consumer
      • Readers-Writers
    • Lab: Concurrent Artists
    • Begin Module!
Lab 6 due
-- --
10 Monday, Nov. 4, 2019
  • Lecture outline
    • Performance Bottlenecks
    • Expressing Program Performance
    • Optimizing Compilers
    • Instruction Level Parallalism
    • Begin Module!
A8 - Allocator 2 (due. Nov. 20 at 11:59pm)
-- --
Wed/Thur, Nov. 6/7, 2019
Lab 7 due
Note: This lab will be due Mon. November 18 because of the holiday.

(Mike traveling out of country after Thursday lecture--to talk about Caching!)
11 Monday, Nov. 11, 2019
------ (Review your notes) ------
-- --
No Class Veterans Day
Wed/Thur, Nov. 13/14, 2019
  • Lecture outline
(A3 makeup due Nov. 14)
-- --
12 Monday, Nov. 18, 2019
Lab 8 due

A9 - OS (due Dec. 4 at 11:59pm)
-- --
Wed/Thur, Nov. 20/21, 2019
  • Lecture outline
    • Operating Systems
    • Pressing Power
    • xv6 Introduction
    • Begin Module!
(Study for your quiz!)
-- --
13 Monday, Nov. 25, 2019
Lab 9 due

Quiz Released online--open until December 5th [Study Guide]
-- --
Wed/Thur, Nov. 27/28, 2019 ------ (Enjoy good food!) ------
-- --
No Class, Thanksgiving Recess
14 Monday, Dec. 2, 2019
  • Lecture outline
Lab 10 due
-- --
Wed/Thur, Dec. 4/5, 2019 No Class -- will be in office 2:50-4:30 --
-- --
Dec. 5 Last day of Fall Classes