Schedule

This schedule is tentative and subject to change. Slides will be posted after lectures.

NOTE: These slides are not meant to substitute for lectures.

We will use Byrant and O'Hallaron, Computer Systems: A Programmer's Perspective, 3/ed as the textbook for this class. Additional resources for this book and other course references:

A good introductory reference for modern C is the book by Jens Gustedt, Modern C.

If you already know C and want to learn more, I highly recommend the book by Robert Seacord, Effective C Programming: An Introduction to Professional C Programming.

References for each lecture are in the slides.

Date Topic
Wed Aug 31, 2022

Introduction

Mon Sep 05, 2022

Labor Day (no class)

Wed Sep 07, 2022

Bits and Integers

Mon Sep 12, 2022

Bitsets, Bitfields, Integer Arithmetic

Wed Sep 14, 2022

Integer Arithmetic, Real Numbers

Mon Sep 19, 2022

Floating Point

Wed Sep 21, 2022

Addresses and Instructions

Mon Sep 26, 2022

Assembly Language

Wed Sep 28, 2022

Functions

Mon Oct 03, 2022

Review class

Wed Oct 05, 2022

Midterm

Mon Oct 10, 2022

Fall Break (no class)

Wed Oct 12, 2022

Pointers and Arrays

Mon Oct 17, 2022

More Pointers

Wed Oct 19, 2022

The Processor Pipeline

Mon Oct 24, 2022

The Processor Pipeline and Performance

Wed Oct 26, 2022

Caches and the Memory Hierarchy

Mon Oct 31, 2022

IO, OS and Virtualization

Wed Nov 02, 2022

Virtual Memory

Mon Nov 07, 2022

Using Virtual Memory

Wed Nov 09, 2022

Privileges, System Calls, and Processes

Mon Nov 14, 2022

Concurrency and Inter-process Communication

Wed Nov 16, 2022

Threading and Parallelism

Mon Nov 21, 2022

Systems of Tomorrow

Wed Nov 23, 2022

Thanksgiving Recess (no class)

Mon Nov 28, 2022

Networking

Wed Nov 30, 2022

Networking (contd., same slides)

Mon Dec 05, 2022

Introduction to GPUs

Wed Dec 07, 2022

Mixed Language Programming

Mon Dec 12, 2022

Review 1

Wed Dec 14, 2022

Review 2

Mon Dec 19, 2022 8:30AM

Final Exam in Wegmans Hall 1400