CS 240: Introduction to Computer Systems

Instructors: Mahesh Viswanathan (primary), Elsa Gunter (secondary)

Schedule: Content is borrowed from CS 233, CS 241, and CS 425. Though the relevant content is listed below, there might additional content (lecture slides/worksheets) on the course websites that you may find useful. Visit the course schedule page for these courses: CS 233; CS 241. Assignments on system programming are posted here. Textbook for systems programming can be accessed here.

Date Video Content Assessments/Handouts/Homework
2/11 Bitwise Operations, Bases, Hexadecimal, Binary Addition, Two's Complement Representation, Bitshift Operations PrairieLearn HW1
2/13 Multiplexers, Arithmetic Logic Units, Registers, Binary Decoders, Register Files PrairieLearn HW2
2/18 Arithmetic Machine, Instruction Set Architectures (ISAs), Instruction Decoding, Instruction Memory, Endianness PrairieLearn HW3
2/20 Control Instructions, Data Memory, Manipulating the data memory PrairieLearn HW4
2/25 Register naming conventions, Pseudoinstructions, Manipulating the data memory, Pointers PrairieLearn HW5
2/27 Same content as 2/25 because of Quals --
3/3 Writing Functions and Managing the Stack, Callee Save Functions, Cache Basics: Temporal and Spatial Locality PrairieLearn HW6
3/5 EXAM REVIEW --
3/10 Introduction to C programming CS 241 HW0, Luscious Locks
3/12 Same content as 3/10 --
3/24 Same content as week before Spring break --
3/26 Same content as week before Spring break --
3/31 A day at the C side Perilous pointers
4/2 System Programming --
4/7 Exec/Fork/Environ Vector
4/9 scanf/getline --
4/14 Fork, Exec, Wait, Signals Utilities Unleashed
4/16 Heaps --
4/21 Threads Shell Part 1
4/23 Threads and Memory --
4/28 pthreads Teaching Threads
4/30 pthreads and locks --
5/5 UDP/TCP --
5/7 TCP Client, TCP server --