Computer Systems Fundamentals, Spring 2020
Staff:
Name | Role | Office | |
---|---|---|---|
Xin Jin | Instructor | xinjin@cs.jhu.edu | Malone 233 |
David Hovemeyer | Instructor | daveho@cs.jhu.edu | Malone 337 |
Meetings
Section 01 (Hovemeyer): MWF 10-10:50, Hackerman B17
Section 02 (Jin): MW 3:00-4:15, Hackerman B17
Course description
This course is an introduction to computer systems. We will cover a variety of topics, all of which are focused on techniques needed to develop software which can take advantage of the capabilities offered by modern computer hardware, operating systems, and networks.
Course topics
- Machine-level data representation
- Computer architecture
- Assembly-language programming
- Performance optimization
- Memory hierarchy and caching
- Virtual memory
- Networks
- Concurrency
Prerequisites
Required: Intermediate Programming (EN.601.220 or equivalent)
Textbook
There is no required textbook.
The following textbook is strongly recommended:
- Bryant and O’Halloran, Computer Systems: A Programmer’s Perspective, 3rd ed.
The following textbook is optional:
- Patterson and Hennessey, Computer Organization and Design (MIPS edition)
Online resources
Lecture notes, assignments, and public information about the course will be posted on the course website, https://jhucsf.github.io/spring2020. You should check the course website frequently.
We will be using Piazza for discussion and Q&A. The course’s Piazza site is https://piazza.com/jhu/spring2020/601229.
Assignments will be submitted using Gradescope: https://www.gradescope.com/.
Course structure and expectations
Class meetings will consist of lecture and discussion, interspersed with in-class activities. We will be using peer instruction in the form of clicker quizzes. You will need to bring an iClicker 2 remote to each class meetings.
Grading
Your course grade will be determined as follows:
- Programming assignments: 55%
- Midterm exam: 20%
- Final exam: 20%
- Clicker quizzes: 5%
Clicker quizzes
You will need to bring an iClicker remote to each class meeting in order to participate in peer instruction quizzes. Note that these quizzes are graded for participation only. In order to receive full credit for the clicker quiz portion of the course grade, you need to participate in at least 85% of the clicker quizzes.
If you do not have an iClicker remote, they are available at the JHU Barnes and Noble and the Johns Hopkins Technology Store.
Please let us know your iClicker’s remote ID using the Google form linked in the General Resources section of the Resources tab on the course’s Piazza site.
Late Days
You have a total of 5 late days to use as needed for homework assignments throughout the course. Each 24 hour period following an assignment deadline is considered to be one late day: for example, if an assignment is due at 11pm on Friday, but you submit your assignment at 11:30pm on Friday, you have used one late day. If you are planning on using more than two late days on an assignment, please send a private message to the instructors on Piazza to let us know. Assignment submissions which exceed the maximum number of late days will not be considered for credit.
Note that we will not grant additional late days unless there are truly exceptional circumstances. Being busy is not, by itself, an exceptional circumstance. So, use your late days wisely!
Academic integrity expectations
As with all CS courses, we expect that you will honor the CS Academic Integrity Code: https://www.cs.jhu.edu/academic-integrity-code/
For this course, all assignments are individual assignments. Copying or sharing of code in any form is not allowed. Any code or information resources you use in your assignment must be properly acknowledged and cited.
Students with Disabilities
Any student with a disability who may need accommodations in this class must obtain an accommodation letter from Student Disability Services, Shaffer Hall Suite 101, (410) 516-4720, studentdisabilityservices@ jhu.edu.