Welcome to the website for Computer Systems Fundamentals (Spring 2020) 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/spring2020/601229
- Gradescope (assignment submission): https://www.gradescope.com/
News
- May 1 — A solution to the practice final exam is available.
- Apr 28 — The Fall 2019 final exam is available for review.
- Apr 23 — The description of Assignment 6 was updated with minor revisions to the grading rubric.
- Apr 22 — Assignment 6 (the last assignment!) has been posted, due Friday, May 1st by 11pm.
- Apr 7 — Assignment 5 has been posted, due Friday, April 24th by 11pm.
- Apr 6 — Assignment 4 has been updated to indicate the required form for an error message. The autograder will be updated soon to check this requirement.
- Mar 29 — Corrected the starter code for Assignment 4 to include the example
swapbg
image plugin. Also, the due date has been moved to Monday, April 13th. - Mar 27 — A corrected version of the starter code for Assignment 4 has been posted.
- Mar 26 — Assignment 4 has been posted, and is due Wednesday, April 8th by 11pm.
- Mar 20 — The slides for today’s (optional and voluntary) online class meeting dry run are available.
- Mar 19 — The Schedule has been updated to account for the canceled classes prior to spring break.
- Mar 16 — There is a minor change to the grading rubric for Assignment 3. Also, the due date has been moved to 11pm on Monday, March 30th.
- Mar 13 — Please refer to Piazza for information about the class moving online. Also, please note that the slides for Lecture 17 (which would have been presented in class on March 11th) are available in the Piazza Resources section, and have some information about handling cache writes that will be useful for Assignment 3.
- Mar 9 — Additional corrections have been posted for the answers to performance optimization parts (a) and (b) on the midterm review solutions.
- Mar 8 — A correction has been posted for the answer to performance optimization part (b) on the midterm review solutions.
- Mar 3 — Assignment 3 has been (officially) released, due Thursday, March 26th by 11pm.
- Mar 3 — Solutions to the midterm review questions have been posted, but we recommend that you don’t look at them until you’ve tried answering them on your own.
- Mar 2 — Additional midterm review questions were added.
- Feb 28 — The midterm exam will take place in class on Monday, March 9th. It will be a written exam, closed book and closed notes, 50 minutes duration. Midterm review questions are available. Note that we will be adding additional review questions soon.
- Feb 21 — The due date for Assignment 2 has been moved to 11pm on Tuesday, Mar 3rd.
- Feb 19 — A solution to the in-class assembly language exercise has been posted.
- Feb 4 — An alternate Linux VM image (which may be more appropriate if you have limited disk space) has been posted on the Resources page.
- Feb 3 — The due date for Assignment 1 has been moved to 11pm on Tuesday, Feb 11th.
- Jan 30 — Assignment 1 has been updated to fix a
Makefile
issue, and provide information about the Gradescope autograder. - Jan 29 — Assignment 1 has been updated with a script to help with automatic generation of unit tests.
- Jan 27 — Assignment 1 is due by 11pm on Friday, Feb 7th.
- Jan 27 — Welcome back! We hope you had a great winter break.