← Back to Home

Introduction to Systems Software

CS 0449 (Spring 2023, Term 2234)


Pointers, XKCD 138
This page will provide any information for the class that I go over in recitation. Please check back for updates regularly, especially if you miss a recitation.

Course Description

A Computer System is comprised of both hardware and software working in concert to accomplish useful work. In this course, we will explore the issues of programming a real computer system by examining the abstractions, interfaces, and design decisions that influence the way that software runs. This includes the role the Operating System has in communication and resource management.

The perspective we will take is one of the lifecycle of a program from implementation to execution. The simple 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. Together, these components form a working computer system.

Recitation Information

Most up-to-date information is on Canvas, and Course Website Accompanies professor Luis Oliveira’s lecture section 1090 which meets Tue/Thu, 2:30–3:45pm at 405 Information Science Building
CRN: 23985
Meets: Fridays 12:00 PM at 5502 Sennott Square

TA Information

TA: Shinwoo Kim
E-mail: shinwookim@pitt.edu
Home Page: https://sites.pitt.edu/~shk148/teaching
TA Office Hours: Spring 2023 Office Hours

Note when E-mailing:


Schedule & Handout

If you require access to Zoom, or the recitation recording, please contact me prior to the start of recitation

Week Date Topic Handout
00 January 13 No Recitation n/a
01 January 20 Hello Lab
Getting up to speed with the environment
slides
hello.c
02 January 27 Data & Pointer Lab
Practice with data and input
slides
VS Code guide
scan.c
03 February 3 Project 1: BMP Steganography
Hiding data and reading files
slides
04 February 10 Pointer Lab
Looking at pointers
slides
05 February 17 Queue Lab
Linking those nodes
slides
06 Wednesday
February 22 5:45 PM
(5502 SENSQ)
Project 2: Implementing a Heap Allocator
Malloc Project Boot Camp
slides
malloc_example.c
06 February 24 Project 2: Implementing a Heap Allocator
Implementing Phase 2 & 3
slides
07 March 3 Assembly Lab
Investigating the code
slides
Demo code (GitHub)
AT&T x86 Syntax
08 March 10 Spring Break
No Recitation
n/a
09 March 17 Project 3: Assembly bombs and attack
Understanding the assembly
slides
10 March 24 Process Lab
The fork-exec model & Process management
slides
Solutions to In-class Problems
11 March 31 Project 4: The Shell
After the bomb, shell shock!
slides
strtok.c
12 April 7 Multi-file Development:
Writing Makefiles
lab handout
slides
13 April 14 Multithreading & Synchronization slides
14 April 21 Final Recitation
Final Exam Review + Course Review
slides
15 April 28 Finals Week
No Recitation
-

Student Feedback

Please send me your anonymous feedback