Introduction to
Computer Systems
Welcome to the Fall 2023 session of CSCI356!
Please register online for a lecture section, a discussion session, and the quiz timeslot. And grab a copy of our textbook, Computer Systems: A Programmer's Perspective by Bryant and O'Hallaron (3rd edition, Pearson, 2015).

Course Overview

This course covers information representations, x86 assembly, buffer overflow attacks, memory hierarchies, caches, virtual memory, out-of-order execution, along with compilation and system software concepts such as linking and heap management.

The goal is to improve your understanding of what a computer does to execute a program, improving your ability as a programmer.

This course will also serve as a basis for CSCI 350 (Operating Systems), CSCI 450 (Computer Networks), CSCI 457 (Computer Systems Organization), EE 451 (Parallel and Distributed Computation)

Important Dates

  • First lecture: Tue, Aug 22, 2023
  • Midterm I: Fri, Sep 29, 2023
  • Midterm II: Fri, Nov 3, 2023
  • Final: Sat, Dec 9, 2023

Cloud Resources

This class provides access to a cloud server; this will allow you to complete assignments on x86-64 assembly even if your laptop has an ARM processor (e.g., Apple Silicon).


  • Registrations are open online.
  • Classes and exams will be held in person for the Fall 2023 semester.