Topics and Schedule
Please see the syllabus
here.
Grading Policy
The class is graded as follows:
- Programming assignments (50%)
- Two midterm exams (20%)
- Final exam (20%)
- Participation (10%)
Late policy
You should submit your work on an assignment (electronically) before its due time. If you submit your work late, we will give you credit for it on this scale:
- 90% for work submitted up to 24 hours late
- 80% for work submitted up to 2 days late
- 60% for work submitted up to 5 days late
- 50% for work submitted more than 5 days late
We will grant extensions only in the case of illness (with a doctor's note) or extraordinary circumstances. If illness or an extraordinary circumstance will cause you to submit an assignment late, then you should discuss the matter with your instructor as soon as possible. Please plan your work on the assignments so that travel, interviews, athletics, religious holidays, etc. do not cause you to submit it late. A heavy workload is not an extraordinary circumstance. Similarly, we cannot accommodate excuses such as "My laptop died."
You are, however, allowed three "free" late days during the semester. You do not need to tell us that you are applying your "late day" -- we'll remove the late penalty at the end of the semester from the assignment that benefits you the most.
Collaboration Policy
Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate; the program must be your own work.
Do not, under any circumstances, copy another person's program, comments, README description, or any part of the submitted assignment. This includes character-by-character transliteration of another works (whether inspected visually or copied digitally), but it also includes derivative works (i.e., by renaming variable names or subtlety shifting around statements in order to try to hide that copying has occurrred). You are also not allowed to use other people's code, comments, or results, even when "citing" them -- all work must be your own. Writing code for use by another or using another's code in any form is academic fraud and will be dealt with harshly. You are also responsible for ensuring that the code you write for the assignments is not readable by others.
Generative AI Policy
You may use generative AI tools (e.g., ChatGPT, Copilot) in this course to support learning and productivity on programming assignments.
However, you may not use AI to
offload your work. You are responsible for the correctness, originality, and understanding of everything you submit.
Allowed uses (programming assignments / homeworks)
- Brainstorming approaches and tradeoffs.
- Clarifying networking concepts, protocols, and APIs.
- Generating small snippets or examples that you understand, verify, and integrate yourself.
- Debugging help (interpreting errors, proposing hypotheses, suggesting tests).
Not allowed (offloading)
- Submitting AI-generated solutions that you do not fully understand.
- Asking an AI tool to produce the complete solution (or substantial portions) and submitting it with only superficial edits.
- Using AI to circumvent the intended learning goals (e.g., "write the full proxy," "finish all TODOs").
Principles for using AI-generated content
- Selective incorporation (not full implementation): use AI output sparingly; focus on small pieces rather than end-to-end solutions.
- Augmentation (not replacement): AI may support your work, but it must not replace your reasoning, design, and implementation.
- Validation (not full acceptance): you must test, review, and be able to explain any AI-assisted code or text.
Required attribution
If you use AI on an assignment, include an
AI-use note in your submission (e.g., in README.md) listing:
(1) the tool(s) used, (2) what you used it for (1–3 bullets), and (3) any non-trivial code/logic that came from AI (briefly describe).
Exams (strict)
During exams,
no electronics or external resources may be used (no laptops, phones, smartwatches, tablets, or AI tools).
Any attempt to access or use such tools during an exam is prohibited.
Academic integrity
The strength of the university depends on academic and personal integrity. In this course, you must be honest and truthful. Ethical violations include cheating on exams, plagiarism, reuse of assignments, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition.
Report any violations you witness to the instructor. You can also contact:
Personal Wellbeing, Support, and Policies
- 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 available for primary care needs. If you would like to speak with a medical provider, please call 410-516-8270. See also Illness Note Policy.
- Anxiety, stress, and mental health: If you are struggling with anxiety, stress, depression or other mental health related concerns, please consider connecting with resources through the JHU Counseling Center at 410-516-8278 and studentaffairs.jhu.edu/counselingcenter.
- Student Outreach & Support: To connect with SOS, please email deanofstudents@jhu.edu, call 410-516-7857, or schedule to meet with a Case Manager via the Student Outreach & Support website.
- Students with Disabilities – Accommodations and Accessibility: Johns Hopkins University is committed to providing welcoming, equitable, and accessible educational experiences for all students. If disability accommodations are needed for this course, students should request accommodations through Student Disability Services (SDS) as early as possible to provide time for effective communication and arrangements. For further information, please refer to the SDS website.
- Inclusivity: Johns Hopkins University is committed to creating a classroom environment that values the diversity of experiences and perspectives that each student brings. Everyone deserves to be treated with dignity and respect. We invite you to help create a welcoming, vibrant and intellectually engaging classroom climate. If you ever have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to your instructor or the TAs.
- Religious holidays: Religious holidays are valid reasons to be excused from class. Students who must miss a class or an examination because of a religious holiday must inform the instructor as early in the semester as possible to be excused from class or to make up for any work that is missed.