• Days: Monday/Wednesday
  • Time: 3:00PM - 4:15PM
  • Room: 324 Cathedral of Learning

  • Days: Tuesday/Thursday
  • Time: 1:00PM - 2:15PM
  • Room: 125 Frick Fine Arts

Recitations

  • Tuesday, 9:00 AM, 6110 Sennott Square
  • Tuesday, 12:00 PM, 5502 Sennott Square
  • Friday, 11:00 AM, 6110 Sennott Square
  • Friday, 3:00 PM, 6110 Sennott Square

You must attend only your assigned recitation.

Instructor

wilkie

Office: 5413 Sennott Square

E-Mail: dwilk@cs.pitt.edu Please place “CS449” in the subject line.

Teaching Assistants

Go here for office hours time and locations.

Gordon Lu

E-Mail: gol6@pitt.edu

Office: 5806 Sennott Square (UTA office)

Alex Conway

E-Mail: lac216@pitt.edu

Office: 5806 Sennott Square (UTA office)

Jon Rutkauskas

E-Mail: jsr68@pitt.edu

Office: 5806 Sennott Square (UTA office)

Zack Hable

E-Mail: zack.hable@pitt.edu

Office: 5806 Sennott Square (UTA office)

Purpose

The purpose of this course is to provide a solid understanding of how computer systems execute programs, store information, and communicate. We will explore systems-level issues from a programmer’s view by examining the abstractions, interfaces, and design decisions that influence the way that software runs on the computer system. The perspective we will take is one of the life cycle of a program from implementation to execution. The act of compiling and running a program, a sequence of events we often take for granted, is a complex interaction of many different components that work together to manage the computer’s resources and perform the desired task.

Prerequisites

Before enrolling in this course, you need to have completed CS 0441 - Discrete Structures for Computer Science, CS 0445 - Data Structures, and have completed or be currently enrolled in CS 0447 - Computer Organization and Assembly Language Programming.

Concepts

  • C Programming Language: Writing and reading C code.
  • Debugging: Learning tools to help debug program crashes and break down existing programs.
  • Memory Model: The memory layout and trade-offs. Memory addressing and pointers.
  • Caching: Some discussion of memory caches and the memory hierarchy.
  • Operating Systems: Very introductory glimpses into Operating System design, as time permits!