Welcome to the website for Computer Systems Fundamentals (Spring 2021) 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/spring2021/601229
- Gradescope (assignment submission): https://www.gradescope.com/
News
- Apr 28 — A mistake in part (C) of the Exam 4 review problem solutions has been corrected.
- Apr 26 — Solutions to the Exam 4 review problems are available on the Resources page.
- Apr 21 — Exam 4 review materials are available on the Resources page. Also, please use the bonus topics survey (see Piazza post 813 for the link) to suggest “bonus topics” to cover on Monday, April 26th.
- Apr 13 — Assignment 6 is available. It has two milestones. Milestone 1 is due Wednesday, April 21st by 11pm, and Milestone 2 is due Wednesday, April 28th by 11pm.
- Apr 7 — Assignment 5 is available. It is due Tuesday, April 13th by 11pm.
- Mar 31 — Mistakes in the Exam 3 review problem solutions have been corrected.
- Mar 30 — Answers to the Exam 3 review problems are available on the Resources page.
- Mar 26 — Review problems for Exam 3 are available on the Resources page. There will be a review session on Wednesday, Mar 31st, and the exam will be available that day.
- Mar 24 — Assignment 4 is due Tuesday, April 6th by 11pm.
- Mar 19 — The due date for Milestone 2 of Assignment 3 has been moved to Saturday, March 20th by 11pm.
- Mar 8 — Solutions to the Exam 2 review problems are available on the Resources page.
- Mar 4 — Assignment 3 is available. The first milestone is due Wednesday, March 10th. See the assignment description for the other milestone due dates.
- Mar 3 — Review problems for Exam 2 are available on the Resources page. We will have a review session on Wednesday, Mar 10th, and the exam will be available at 11am that day.
- Feb 25 — Detailed grading criteria for Milestone 3 of Assignment 2 are available. Also, there is a
Makefile
correction you will need to apply. - Feb 19 — The zipfile for today’s in-class assembly language exercises is on the Resources page. (You’ll only need it if you want to work on the exercise after class.)
- Feb 17 — Some assembly language exercises (for practice) have been added to the Resources page.
- Feb 16 — Assignment 2 has been updated with detailed grading criteria for Milestones 1 and 2.
- Feb 15 — The Schedule has been updated to move the in-class assembly language exercise to Friday, Feb 19th.
- Feb 14 — Solutions to the practice problems for Exam 1 are available on the Resources page.
- Feb 12 — The assignment description for Assignment 2 has been updated to describe how to fix a missing dependency in the
Makefile
. (The zipfile has also been updated with the fixedMakefile
.) - Feb 11 — The skeleton file for Assignment 2 has been updated to include the missing runTest.rb and calctest.rb file. Also, the assignment description has been updated with commands to download them to your project.
- Feb 11 — The coding style guidelines have been updated to be more specific about function length.
- Feb 10 — There was an error in the
curl
command shown in Assignment 2 for downloading the skeleton code zipfile. This has been fixed. If you used the originalcurl
command, please download the skeleton again using the correct code. - Feb 9 — Assignment 2 is posted, with milestones due Thursday, Feb 18th, Thursday, Feb 25th, and Thursday, Mar 4th.
- Feb 8 — There will be a review session for Exam 1 on Monday, Feb 15th. The exam will be handed out at 11am that day, and will be due by 1pm on Tuesday, Feb 16th. The Resources page has links to practice problems.
- Feb 5 — The Syllabus has been updated with an update to the late policy (switching from late days to late hours), and to more fully describe how to earn participation credit.
- Feb 3 — Assignment 1 has been updated to include
apint_compare
in the detailed grading criteria for Milestone 2, and to includeapint_lshift
andapint_lshift_n
as optional bonus. - Feb 3 — Assignment 1 has been updated to include
apint_compare
in the detailed grading criteria for Milestone 2. - Feb 2 — Assignment 1 has been updated with detailed grading criteria for Milestone 2.
- Jan 26 — Assignment 1 has been updated with detailed grading criteria for Milestone 1, and an additional requirement (a
README.txt
file) to be included with your submission. - Jan 25 — Welcome back! Assignment 1 is posted, with milestones due on Feb 2nd and Feb 9th. It is a pair assignment.