Introduction to
Computer Systems
Welcome to the Spring 2020 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 students' ability to understand what a computer does to execute a program, with the intent to improve their abilities as programmers.

This course will also serve as a basis for CSCI 350 (Operating Systems), CSCI 450 (Computer Networks), and CSCI 457 (Computer Systems Organization).

Important Dates

  • First Lecture: Tue, Jan 14, 2020
  • Midterm I: Tue, Feb 25, 2020 (7pm)
  • Midterm II: Tue, Apr 07, 2020 (7pm)
  • Final (afternoon section): Thu, May 07, 2020 (2pm)
  • Final (morning section): Tue, May 12, 2020 (8am)


  • Registrations are open online.