Term: Fall 2025
Instructor: Aline Normoyle
-
Welcome to systems programming!
-
Assignment 02 is due Friday, September 12th
-
Congrats to team "On a R.O.L." as this week’s worksheet champions
Course Info
Welcome to CS223: Systems Programming!

Systems programming is the foundation for creating software that serves as controllers and infrastructure, such as drivers, embedded system controllers, compilers, databases, operating systems, networking APIs, and graphics engines. Systems programming involves writing code that directly interacts with hardware, memory, or the operating system. 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 337 |
Tuesday and Thursday 10:10 AM - 11:30 AM |
Lab |
Park 230 |
Tuesdays 2:40 PM - 4:00 PM |
Office Hours - Prof. Aline Normoyle |
Zoom (See slack for details) |
3-4 PM |
Office Hours - Rebecca Lassman |
Park 230/231 |
Fridays 6-8 PM |
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 |
More C, Pointers
|
TBD |
|
3 |
Data structures in C
|
TBD |
|
4 |
Binary and Data Representations
|
TBD |
|
5 |
Assembly
|
||
6 |
Review
|
||
7 |
Break
|
||
8 |
The operating system, Processes
|
TBD |
|
9 |
Threads I
|
TBD |
|
10 |
Threads II
|
TBD |
|
11 |
Threads III
|
TBD |
|
12 |
Memory, allocators
|
||
13 |
Thanksgiving, Midterm 02
|
||
14 |
Code Optimization, C++
|
||
15 |
Review
|
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-S25. 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:
40% |
Final Exam |
15% |
Assignments |
20% |
Lab code activities |
20% |
Midterms |
5% |
Attendance and participation |
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/)
Academic support
-
This site was generated with asciidoctor t cheat