CS201: Computer Systems Programming

Spring 2019

Instructor: Professor Karen Karavanic (karavan at pdx.edu)


TA: Jeff De La Mare (dejef at pdx dot edu)

TA dropin hours: Mon 10:30am - 12:30 pm, Tues 5:30pm - 7:00pm, Fri 5:30pm - 7:00pm

PLEASE include instructor name on your emails to Jeff so he knows which section you are in

Introduction to computer systems from a software perspective. Topics include: Basic machine organization, System programming using C and assembly language, Introduction to system programming tools (gcc, makefile, gdb), Data representation (bits & bytes, characters, integers, floating point numbers), Implementation of control flow, procedure calls, and complex data types at machine level, Linking and loading, Exceptions and interrupts, Process control and signals, System calls, File I/O, Timing and improving program performance, Introduction to memory hierarchy, dynamic memory allocation techniques. Our learning platform will be linux on x86. This course covers all of the material in the "standard" CS 201 courses, and will prepare students for any PSU course with CS 201 as a prerequisite.


Required Textbook: Bryant and O'Halloran, "Computer Systems, A Programmer's Perspective" THIRD EDITION ISBN 978-0-13-409266-9

Prerequisites: CS 162 (or equivalent courses for a one year introduction to programming with basic data structures.

Course Information


Course Description
Tentative Class Schedule
Lectures and Materials