Introduction to
Computer Systems
Welcome to the Fall 2024 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 27, 2024
  • Midterm I: Fri, Oct 4, 2024
  • Midterm II: Fri, Nov 8, 2024
  • Final: Sat, Dec 14, 2024
(If you have a conflict, contact the instructor of your section as soon as possible.)

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).

Announcements

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