Fall 2017 CS240

Foundations of Computer Systems with Laboratory

About CS240

big ideas in this course


  • Program Execution - Understand how programs are excuted by computers, through examining control flow, and use of assertions and debugging tools
  • Abstraction - Understand key software and hardware abstractions, their implementations, and their relation through translation and representation
  • Performance Analysis - How and when does computer system implementation impact the correctness or performance of arbitrary high level programs?
  • Independence - We'll help you develop skills for independent learning, critical thinking, and problem-solving as a computer scientist

Timeline of Topics

Computer Hardware
Hardware-Software Interface
Abstractions for Practical Systems

Meet your instructors & tutors

Click here for the CS240 Google Calendar


CS240 Fall 2017 schedule


Lecture Topics,   Lab Topics,   Written Assignment,   Coding Assignment,   Exam

Jump to this week

Monday

Tuesday

Wednesday

Thursday

Friday

Sep 4

Labor Day

Sep 5

The Plan

Lab (Computer guts, Transistors to Gates)

Sep 6

The Plan

Lab (Computer guts, Transistors to Gates)

Sep 8

Sep 12

Lab (Digital Logic, Software tools)

Sep 13

Lab (Digital Logic, Software tools)

Sep 15

Sep 26

Lab (MUXs, adders)

Sep 27

Lab (MUXs, adders)

Sep 29

Oct 3

Lab (Flip-flops, FSMs)

Oct 4

Lab (Flip-flops, FSMs)

Oct 6

Oct 9

Fall Break

Oct 10

Fall Break

Oct 11

Lab (Processor datapath)

Oct 12

A Simple Processor

Oct 13

Oct 17

Lab (C, pointers, arrays, debugging)

Oct 18

Lab (C, pointers, arrays, debugging)

Oct 20

Oct 23

x86 ISA, Assembly

Due: Pointer Potions

Oct 24

Lab (x86 assembly, reverse engineering)

Oct 25

Lab (x86 assembly, reverse engineering)

Oct 26

x86 ISA, Assembly
Control flow
Due: Pointer Potions

Take Home Exam Out

Oct 27



Oct 30

Control flow

Oct 31

Tanner Conference
No labs

Nov 1

No labs

Nov 2

Procedures and stacks

Take Home Exam Due

Assign: x86 Runes

Nov 3

Nov 6

Procedures and stacks

Nov 7

Lab (Procedures and stacks)

Nov 8

Lab (Procedures and stacks)

Nov 9

Buffer overrun exploits

Nov 10

Nov 13

Memory Hierarchy and Cache

Due: x86 Runes
Assign: Dark Buffer Arts

Nov 14

Lab (Cache)

Nov 15

Lab (Cache)

Nov 16

Memory Hierarchy and Cache

Nov 17

Nov 20

Exceptional Control Flow
Intro to Operating Systems

Nov 21

Nov 22

Nov 23

Thanksgiving Day

Nov 24

Nov 27

Processes

Due: Dark Buffer Arts
Assign: Shell Spells

Nov 28

Lab (Processes)

Nov 29

Lab (Processes)

Nov 30

Shells and Signals
Virtual Memory

Dec 1

Dec 4

Virtual Memory

Dec 5

Lab (Memory Management)

Dec 6

Lab (Memory Management)

Dec 7

Dynamic Memory Allocation

Due: Shell Spells
Assign: Remembrallocator

Dec 8

Dec 11

Parallelism and Concurrency
Beyond CS240

Dec 12

Dec 13

Reading Period

Dec 14

Reading Period

Dec 15

Final Exam Period

Dec 18

Final Exam Period

Dec 19

Final Exam Period

Dec 20

Final Exam Period

Dec 21

Final Exam Period

Due: Remembrallocator

Dec 22

Winter Break