Term: Spring 2026
Instructor: Aline Normoyle
-
For those of you about to start Systems Programming, I salute you!
Course Info
Welcome to CS223: Systems Programming!
Systems programming is the foundation of all software and toolkits that serve as infrastructure for other software, such as compilers, operating systems, networking APIs, and graphics engines. Systems programming directly interacts with machine characteristics and low-level data types. Class topics include pointers, bit representations of data, x86_64 assembly, memory management, processes, and threads. In this class, students will gain hands-on experience implementing low-level algorithms and data structures using C. Additionally, students will build technical skills related to makefiles, interactive debugging, version control, and command-line shell interaction. C++ and STL will be introduced at the end of the course.
Meeting Times
| Activity | Location | Time |
|---|---|---|
Lecture |
Park 159 |
Tuesday and Thursday 10:10 AM - 11:30 AM |
Lab |
Park 230 |
Tuesdays 2:40 PM - 4:00 PM |
Office Hours - Prof. Aline Normoyle |
Park 230/231/200A |
Tuesdays-Thursdays, 4-5 PM, by appointment |
Office Hours - Rebecca Lassman |
Park 231 |
TBD |
Schedule
The syllabus may change during the semester. Please check here every week for updates on lecture content, worksheets, and assignments.
| Week | Date | Agenda | Resources |
|---|---|---|---|
1 |
Introductions, Hello C
|
||
2 |
Introduction to Pointers
|
||
3 |
Data structures in C
|
||
4 |
Binary and Data Representation
|
||
5 |
Bitwise operators, Introduction to Assembly
|
||
6 |
Assembly
|
||
7 |
Assembly, The operating system
|
||
8 |
Spring Break
|
9 |
|
Processes * Topics: Processes, fork, signals * Assignment 08: * Lab March 17: Code Jam 03 |
10 |
||
Threads I * Topics: Threads vs processes, designing concurrent algorithms, pthreads * Read: Section 2.9.3, 2.9.4 (void* and pointer arithmetic) * Read: Chapter 14 * Assignment 09: Due March 27 * Lab March 24: Practice Quiz 03 Study Guide 03 |
11 |
||
Threads II * Topics: performance, deadlock, thread safety, producer/consumer pattern * Read: Chapter 14 * Assignment 10: Due April 3rd * Lab March 31: Quiz 03: 50 minutes |
12 |
||
Memory * Topics: Memory hierarchy, spatial/temporal locality, caching * Read: Chapter 14 * Assignment 11: Due April 10th * Lab April 7: Code Jam 04 |
13 |
||
Memory * Read:"My malloc: mylloc and mhysa" by Johan Montelius * Read: Chapter 11.1-11.3 * Assignment 12: * Lab April 14: Practice Quiz 04 Study Guide 04 |
14 |
||
Code Optimization, C++ * Read: Chapter 12 * Assignment 13: Due April 24, Hardcopy due in class April 24 - no late work accepted * Lab 23: Quiz 04 |
15 |
Text and Tools
-
Dive into Systems by Suzanne J. Matthews, Tia Newhall, and Kevin C. Webb. Available free online from Dive into Systems
-
Github Account Please go to github.com and register. You will be using github to submit assignments.
-
Slack Please go to slack.com. Our workspace is BrynMawr-CS223-S26. You can ask questions and request one-on-one help over zoom using this course’s slack channel.
Unix, Bash, Makefiles
Grading Policies
All graded work will receive a grade, 4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7, 1.3, 1.0, or 0.0. At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:
45% |
Final Exam |
15% |
Assignments |
35% |
Code jams and quizzes |
5% |
Lab practice and class participation |
Labs, quizzes, exams
Labs and Quizzes are mandatory. No credit is possible for missed quizzes. If you must miss a quiz, you must make arrangements to take the quiz at another time BEFORE the scheduled quiz. If you miss a quiz for medical reasons, you must provide a doctor’s note.
Labs will consist of hands-on practice in teams, alternating each week between written exercises and timed coding sessions. Coding sessions will be graded and count towards your quiz grade. Worksheets count towards your participation grade.
There will be one final exam for the semester. Details and dates will be released during the semester. Please read the section on accommodations if you are in need of extra time. You must inform us of accommodations or conflicts at least 2 weeks in advance of the exam.
Quizzes and exams will be closed book. You may bring a single, hand written cheat sheet with you.
Late Policy
You may always request 1 late day for any assignment.
Academic Integrity
At Bryn Mawr, we assume students are trustworthy and work with honesty and
integrity.
Look here
for information about Bryn Mawr’s Honor Code.. Midterms and the final will be
closed book. Lab coding challenges will be open-book and closed-internet.
Thus, you cannot use VS Code, internet browsers, and other programming aids.
However, you can use the text book, Dive into Systems, the Linux Programming
Manual (available with man), and your class notes. You may work with others and
with online materials for assignments, but you will be expected to explain and reproduce your submitted assignment on your own.
Academic Accommodations
To receive an accommodation for a course activity (such as more time on quizzes and exams), you must have an Accommodation Letter from the Office of Student Disability Services and you need to contact us to work out the details of your accommodation at least two weeks prior to the activity. Forms can be emailed to me, the instructor.
You are also welcome to contact us privately to discuss your academic needs. However, all disability-related accommodations must be arranged, in advance, through Student Disability Services. Also note that accommodations are not retroactive and require advance notice to implement. More information can be obtained at the Access Services website. (http://www.brynmawr.edu/access-services/)
Covid Policy
Lectures and labs will have a mask-friendly policy. All are welcome to wear a mask if they so wish, but no one is mandated to wear a mask.
If you are symptomatic (coughing, sore throat, or running nose), please either stay at home or come into campus with a mask. Lectures will be recorded so they can be watched later. Missed lab activities and quizzes will have their grade credit transferred to the final.
Academic support
Title IX
Bryn Mawr/Haverford College is committed to fostering a safe and inclusive living and learning environment where all can feel secure and free from harassment. All forms of sexual misconduct, including sexual assault, sexual harassment, stalking, domestic violence, and dating violence are violations of Bryn Mawr/Haverford’s policies, whether they occur on or off campus. Bryn Mawr/Haverford faculty are committed to helping to create a safe learning environment for all students and for the College community as a whole. If you have experienced any form of gender or sex-based discrimination, harassment, or violence, know that help and support are available. Staff members are trained to support students in navigating campus life, accessing health and counseling services, providing academic and housing accommodations, and more.
The College strongly encourages all students to report any incidents of sexual misconduct. Please be aware that all Bryn Mawr/Haverford employees (other than those designated as confidential resources such as counselors, clergy, and healthcare providers) are required to report information about such discrimination and harassment to the Bi-College Title IX Coordinator.
Information about the College’s Sexual Misconduct policy, reporting options, and a list of campus and local resources can be found on the College’s website:
-
This site was generated with asciidoctor t cheat