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:
- EmailYou will receive a faster reply if you message me via Discord subjects should be prefaced with
[CS0449]
- For official communication, messages should be sent using your official Pitt E-Mail(
ABC123@pitt.edu
). - Email body should include your name and the section you’re enrolled in.
- Students should allow at least 24 business hours before following upGenerally, my working hours are between 8AM and 6PM .
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