Welcome to the website for Computer Systems Fundamentals (Spring 2022) at Johns Hopkins University!
The course is about computer systems from the programmer’s perspective. We’ll be making a fairly deep dive into topics such as data representation, memory, assembly language, CPU architecture, networks, and concurrency. By the end of the course you’ll know a lot about how modern computers really work and how to take advantage of their advanced features.
All public information about the course (readings, assignments, etc.) will be posted on this website.
Use the links above to navigate the site. The Syllabus describes course policies. The Schedule is the schedule of readings and exams. The Assignments page has links to the programming assignments and indicates when they are due. The Resources page has links to useful resources.
Important links
- Piazza (ask questions here!): https://piazza.com/jhu/spring2022/601229
- Gradescope (assignment submission): https://www.gradescope.com/
Please email daveho@cs.jhu.edu if you need to get access to Gradescope.
News
- Apr 27 — Assignment 5 has been updated with
a link to a partial implementation of
server.cpp
(server_skel.cpp.) It demonstrates an approach for accepting connections, starting client threads, and communicating with clients. - Apr 25 — Exam 3 will take place at 2pm on Tuesday, May 10th in Mergenthaler 111.
- Apr 25 — Assignment 5 has been updated to indicate that you may submit Milestone 2 by 11pm on Monday, May 2nd without penalty. Note that this is a firm deadline, and submissions beyond this point will not be accepted.
- Apr 22 — A screencast is available demonstrating several manual testing scenarios involving the reference server, your clients, your server, and/or netcat.
- Apr 22 — Exam 3 will take place at 2pm on Tuesday, May 10th (location TBD.) Review materials are available on the Resources page.
- Apr 19 — The deadline for Milestone 1 of Assignment 5 has been extended by one day to Thursday, Apr 21st.
- Apr 18 — The description for Assignment 5 has been updated with a description of the functional requirements and suggested approach for Milestone 2.
- Apr 16 — The description for Assignment 5 has
been updated to describe how to fix a mistake in the
solution.zip
target in theMakefile
distributed in the original assignment skeleton. Also, the Milestone 1 autograder is available on Gradescope. - Apr 14 — The description for Assignment 5 has
been updated with support for automated testing
and a demo animation showing the behavior
of multiple clients running in real time. Also, an updated skeleton project
csf_assign05.zip has been updated to fix
an issue with the reference server implementation (
ref-server
.) - Apr 13 — The Schedule has been updated so that threads and thread synchronization are covered in time for Milestone 2 of Assignment 5.
- Apr 12 — Assignment 5 has been posted. There are two milestones. Milestone 1 is due Wednesday, Apr 20th, and Milestone 2 is due Friday, April 29th. Note that Assignment 5 is a “double” assignment. Each milestone is worth the same as (individually) Assignments 1–4.
- Apr 11 — The due date for Assignment 4 has been changed to Tuesday, Apr 12th.
- Apr 1 — Assignment 4 is due Monday, Apr 11th by 11pm.
- Mar 28 — Exam 2 takes place in class on Wed, Apr 6th. Review materials are posted on the Resources page. We will have a review session in class on Mod, Apr 4th (bring questions!)
- Mar 8 — The due date for Milestone 1 of Assignment 3 has been moved to Thurs, Mar 10 by 11pm.
- Mar 4 — Assignment 3 has been posted. There are three milestones, due Wed, Mar 9, Fri, Mar 18, and Thurs, Mar 31, respectively.
- Feb 18 — Fixed (or mostly-fixed) versions of the code from the in-class assembly language exercise are available on the Resources page.
- Feb 16 — Exam 1 review materials and assembly language practice exercises have been posted to the Resources page. Exam 1 takes place in class on Friday, Feb 25th, and is closed book and closed notes.
- Feb 10 — Assignment 2 has been updated to
correct a mistake in the comment for the
hex_format_offset
function. - Feb 6 — Assignment 2 has been posted. There are two milestones, due Tues Feb 22nd and Thurs Mar 3rd, respectively.
- Jan 25 — The description for Assignment 1 has been
updated with a correction for
fixedpoint_tests.c
. - Jan 24 — Welcome back! Assignment 1 has two milestones, due Tues Feb 1st and Tues Feb 8th.