Computer Systems Fundamentals
Spring, 2023 (3 credits, E)
Please note that this syllabus could be updated during the semester. Any updates will be mentioned in class and on Courselore.
Instructor
David Hovemeyer daveho@cs.jhu.edu
Office: Malone 240A
Office hours: T/Th 1–3 pm, via Zoom (see Courselore for link)
Course Assistants
Head CAs:
- Max Hahn mhahn12@jhu.edu
- Susan Liu sliu151@jhu.edu
CAs:
- David Hla dhla2@jhu.edu
- Elena Kote ekote1@jhu.edu
- Fangjie Li fli35@jhu.edu
- Theo Lee imeal1@jhu.edu
- Kuleen Sasse ksasse1@jhu.edu
- Melody Hsu mhsu13@jhu.edu
- Rena Bi rbi4@jhu.edu
- Rishika Vadlamudi rvadlam2@jhu.edu
- Tony Jung tjung8@jhu.edu
- Lisa Hou qhou4@jh.edu
Meeting
MWF 10:00–10:50 am in Mergenthaler 111
Textbook
Recommended: Bryant and O’Halloran, Computer Systems: A Programmer’s Perspective, 3rd ed.
Optional: 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/spring2023. You should check the course website frequently.
Courselore (announcements, discussion): https://courselore.org/
Gradescope (assignment/exam submission and grading): https://www.gradescope.com/
Videos will be posted on Canvas: go to http://my.jhu.edu, log in, choose Education → Canvas, choose EN.601.229.01.SP23 from courses, then choose Panopto Video
Course Information
- 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.
- Prerequisites
Intermediate Programming (EN.601.220) - Required
Course Goals
By the end of the course you will
- Understand machine data types and arithmetic
- Be able to understand and write assembly language programs
- Understand machine-level memory organization
- Understand some types of machine-level security vulnerabilities and how to avoid introducing them
- Understand memory hierarchies
- Understand architectural features of modern processors, and how to optimize code for efficient execution
- Understand how linkers enable the creation of executables from separately-compiled modules
- Understand dynamic linking and run-time loading of shared objects
- Understand process address space layout
- Understand virtual memory translation hardware and how it is used for memory isolation and sharing
- Understand basic principles of computer networking
- Use networking APIs such as sockets to implement network applications
- Use concurrency using abstractions such as threads
This course will address the following Criterion 3 Student Outcomes:
Graduates of the program will have an ability to:
2) Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the programs discipline.
Course Topics
- Machine-level data representation
- Computer architecture
- Assembly-language programming
- Performance optimization
- Memory hierarchy and caching
- Virtual memory
- Networks
- Concurrency
Course Expectations & Grading
Class meetings will consist of lecture and discussion, interspersed with in-class activities.
Your course grade will be determined as follows:
- Programming assignments: 55%
- Exams: 40% (3 exams, each worth 13.3%)
- Participation: 5%
You have a total of 120 late hours to use as needed for homework assignments throughout the course. Each 60 minute period following an assignment deadline is considered to be one late hour: 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 hour. If you are planning on using more than 48 late hours on an assignment, please send a private message to the instructors on Courselore to let us know. Assignment submissions which exceed the maximum number of late hours will (generally) not be considered for credit. Having said that, we understand that exceptional circumstances can arise. If you are in a situation where you think you may need additional late hours, please notify your instructor.
You are expected to attend class in person. The participation credit is earned by participating in peer instruction quizzes during class. You will need an iClicker remote to participate in these quizzes.
Key Dates
The Schedule lists exam dates.
The Assignments page lists assignments and their due dates.
Assignments & Readings
The Schedule lists the topics and readings for each day.
The course’s Canvas site (under Panopto Video) hosts the lecture videos.
Ethics
The strength of the university depends on academic and personal integrity. In this course, you must be honest and truthful, abiding by the Computer Science Academic Integrity Policy:
Cheating is wrong. Cheating hurts our community by undermining academic integrity, creating mistrust, and fostering unfair competition. The university will punish cheaters with failure on an assignment, failure in a course, permanent transcript notation, suspension, and/or expulsion. Offenses may be reported to medical, law or other professional or graduate schools when a cheater applies.
Violations can include cheating on exams, plagiarism, reuse of assignments without permission, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition. Ignorance of these rules is not an excuse.
Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at anyone else’s solutions (including program code) to your homework problems. However, you may discuss assignment specifications (not solutions) with others to be sure you understand what is required by the assignment.
If your instructor permits using fragments of source code from outside sources, such as your textbook or on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.
Falsifying program output or results is prohibited.
Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor, TA or CAs, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.
On every exam, you will sign the following pledge: “I agree to complete this exam without unauthorized assistance from any person, materials or device. [Signed and dated]”. Your course instructors will let you know where to find copies of old exams, if they are available.
Report any violations you witness to the instructor.
You can find more information about university misconduct policies on the web at these sites:
- For undergraduates: http://e-catalog.jhu.edu/undergrad-students/student-life-policies/
- For graduate students: http://e-catalog.jhu.edu/grad-students/graduate-specific-policies/
Personal Wellbeing
- Because of the ongoing COVID-19 pandemic special requirements may
be in effect this term, and these may vary during the term. Please keep
updated with these at the following sites:
- University information: https://covidinfo.jhu.edu/
- Whiting School of Engineering information: https://engineering.jhu.edu/covid-19/
- COVID-19 vaccination a required unless an exception has been granted by the university for health or religious reasons.
- The Johns Hopkins COVID-19 Call Center (JHCCC), which can be reached at 443-287-8500 seven days a week from 7 a.m. to 7 p.m., supports all JHU students, faculty, and staff experiencing COVID-19 symptoms. Primarily intended for those currently within driving distance of Baltimore, the JHCCC will evaluate your symptoms, order testing if needed, and conduct contact investigation for those affiliates who test positive. More information on the JHCCC and testing is on the coronavirus information website.
- If you are sick please notify me by email so that we can make appropriate accommodations should this affect your ability to attend class, complete assignments, or participate in assessments. The Student Health and Wellness Center is open and operational for primary care needs. If you would like to speak with a medical provider, please call 410-516-8270, and staff will determine an appropriate course of action. See also https://studentaffairs.jhu.edu/student-life/student-outreach-support/absences-from-class/illness-note-policy/
- All students with disabilities who require accommodations for this course should contact me at their earliest convenience to discuss their specific needs. If you have a documented disability, you must be registered with the JHU Office for Student Disability Services (101 Shaffer Hall; 410-516-4720; http://web.jhu.edu/disabilities/) to receive accommodations.
- Students who are struggling with anxiety, stress, depression or other mental health related concerns, please consider connecting with resources through the JHU Counseling Center. The Counseling Center will be providing services remotely to protect the health of students, staff, and communities. Please reach out to get connected and learn about service options based on where you are living this fall at 410-516-8278 and online at http://studentaffairs.jhu.edu/counselingcenter/.
- Student Outreach & Support helps students manage physical and mental health concerns, personal and family emergencies, financial issues, and other obstacles that may arise during their college experience. Students can self-refer or refer a friend who may need extra support or help getting connected to resources. To connect with SOS, please visit this website: https://studentaffairs.jhu.edu/student-life/student-outreach-support/ or email deanofstudents@jhu.edu, call 410-516-7857, or students can schedule to meet with a Case Manager by visiting the Student Outreach & Support website and filling out a referral form online.
Classroom Climate
As your instructor, I am committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone here has the right to be treated with dignity and respect. I believe fostering an inclusive climate is important because research and my experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. Please join me in creating a welcoming and vibrant classroom climate. Note that you should expect to be challenged intellectually by me, the TAs, and your peers, and at times this may feel uncomfortable. Indeed, it can be helpful to be pushed sometimes in order to learn and grow. But at no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity.
If you ever have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, I invite you to share directly with me or the TAs. I promise that we will take your communication seriously and to seek mutually acceptable resolutions and accommodations. Reporting will never impact your course grade. You may also share concerns with the department/center chair/head/director (Randal Burns, randal@cs.jhu.edu), the Director of Undergraduate Studies (Joanne Selinski, joanne@cs.jhu.edu), the Assistant Dean for Diversity and Inclusion (Darlene Saporu, dsaporu@jhu.edu), or the Office of Institutional Equity (oie@jhu.edu). In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).
Family Accommodations Policy
You are welcome to bring a family member to class on occasional days when your responsibilities require it (for example, if emergency child care is unavailable, or for health needs of a relative). In fact, you may see my children in class on days when their school is closed. Please be sensitive to the classroom environment, and if your family member becomes uncomfortably disruptive, you may leave the classroom and return as needed.
University Policy on Incompletes
There are important revisions to the Incomplete Grade policy in effect for UNDERGRADUATES for the 2022-2023 academic year. The full policy is available here: https://e-catalogue.jhu.edu/engineering/full-time-residential-programs/undergraduate-policies/academic-policies/grading-policies/
The following text is an excerpt:
- A request for an Incomplete grade must be initiated by the student no later than the last day of classes via the Incomplete Grade Contract available in SIS
- The required elements on the Incomplete Grade Contract are listed below; all of these topics should be included in the conversation between the student and the instructor.
- The reason for the request for an incomplete grade
- A description of all outstanding work that must be completed
- Date the work is due from the student
- The reversion grade if the student does not complete any of the outstanding work
- Instructors are required to submit the new grade to the Office of the Homewood Registrar no later than 45 calendar days after the last day of classes. If the Incomplete grade is not resolved within 45 calendar days after the last day of classes, the Incomplete grade is automatically converted to the reversion grade.
The significant change here is that there is an Incomplete Grade Contract available to students in SIS to request an incomplete grade. This is how all incomplete grades must be initiated now. The other significant change is the timeline for completion of an incomplete grade, now set at 45 calendar days after the last day of classes. Formerly, the default deadline was the end of the third week of the following semester. See the full catalogue entry for considerations for students on academic probation and graduating students.
Deadlines for Adding, Dropping and Withdrawing from Courses
Students may add a course up to February 3, 2023 (independent academic work such as research may be added until March 5, 2023). They may drop courses up until March 5, 2023 provided they remain registered for a minimum of 12 credits. Between March 6, 2023 and April 14, 2023 a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and then withdrew from the course.
For more information on these and other academic policies, see https://e-catalogue.jhu.edu/engineering/full-time-residential-programs/undergraduate-policies/academic-policies/grading-policies/
The Office of Academic Support at JHU
All programs are free to students. Please see below for specifics:
- PILOT Learning—Peer-Led Team Learning
- Students are organized into small study teams who meet weekly to collaborate on faculty-developed problems-sets. Students work together as a team to solve problems.
- A trained student leader acts as captain and facilitates the weekly meetings using various strategies to foster a collaborative learning environment.
- Registration opens on August 31st at 9pm EST; registration will remain open throughout the semester if space allows.
- Contact: Ariane Kelly <maillto:ariane.kelly@jhu.edu>
- Instagram: @jhupilot
- Learning Den Tutoring Program - Small Group Tutoring
- Small group, tailored tutoring of 4 students or less which is headed by one tutor. Visit the website (above) to access zoom links for drop-in sessions
- Tutors can assist with but are not limited to:
- Review and strengthening of subject-specific material knowledge
- Assist with homework-like problems
- Course-specific study skills and exam preparation
- Contact: Kaitlin Quigley quigley@jhu.edu
- Instagram: @jhulearningden
- The Study Consulting Program
- Students work one-on-one with a study consultant to set academic goals and develop customized strategies for success. Areas addressed include but are not limited to:
- Time management
- Note taking and test preparation
- Mastering large amounts of information
- Contact: Dr. Sharleen Argamaso sharleen.argamaso@jhu.edu
- Instagram: @jhustudyconsulting
- Students work one-on-one with a study consultant to set academic goals and develop customized strategies for success. Areas addressed include but are not limited to:
- The Writing Center
- Undergraduate and graduate students in KSAS/Whiting School of Engineering can schedule 50-min sessions with a Writing Center tutor to look over a draft of written work (up to 10 pages) or a personal statement for graduate study
- Contact: Robert Tinkle rtinkle1@jhu.edu
- Web Address: https://krieger.jhu.edu/writingcenter/