Computer Networks EN.601.414/614

Administrivia

  • Instructor: Dr. Ghorbani
  • TAs: Sepehr Abdous, Erfan Sharafzadeh, Carolyne Holmes, Saksham Sharma
  • Lecture time: Mondays and Wednesdays, 3-4:15pm ET
  • Location: Homewood Campus, Hodson 311
  • Office hours: by appointment

Course Description

Topics covered will include application layer protocols (e.g. HTTP), transport layer protocols (UDP, TCP), network layer protocols (e.g. IP), link layer protocols (e.g. Ethernet) and wireless protocols (e.g. IEEE 802.11). The course will also cover routing protocols such as link state and distance vector, multicast routing, and path vector protocols (e.g. BGP). The class will examine security issues such as firewalls and denial of service attacks. We will also study DNS, NAT, Web caching and CDNs, peer to peer, and protocol tunneling. We will explore security protocols (e.g. TLS, SSH, IPsec), as well as some basic cryptography necessary to understand these. Finally, we will learn about a few selected state-of-the-art topics such as cloud networking and software-defined networks. Grading will be based on hands-on programming assignments, homeworks, and three exams. [Systems]
Prerequisites: EN.601.220 and EN.601.229 or permission. Students can only receive credit for one of 601.414/614.

Acknowledgment: This course is based on Stanford CS244 and Princeton COS461.

Topics and Schedule

Please see the tentative schedule 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.

Personal Wellbeing

  • 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 based on your geographic location, presenting symptoms, and insurance needs. Telemedicine visits are available only to people currently in Maryland. See also https://studentaffairs.jhu.edu/student-life/student-outreach-support/absences-from-class/illness-note-policy/
  • The Johns Hopkins COVID-19 Call Center (JHCCC), which can be reached at 833-546-7546 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.
  • 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 (385 Garland 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 will be fully operational (virtually) to help support students. Students can self-refer or refer a friend who may need extra support or help getting connected to resources. To connect with SOS, please 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 follow "Schedule an Appointment".

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 Head (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).

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, 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: (a) Review and strengthening of subject-specific material knowledge, (b) Assist with homework-like problems, (c) 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: (a) Time management, (b) Note taking and test preparation, (c) Mastering large amounts of information.
    • Contact: Dr. Sharleen Argamaso, sharleen.argamaso@jhu.edu. Instagram: @jhustudyconsulting

Readings correspond to sections of Peterson and Davie's Computer Networks: A Systems Approach, unless otherwise specified. Some other useful standard textbooks (not required):
  • Tanenbaum and Steen, Distributed Systems: Principles and Paradigms
  • Kurose and Ross, Computer Networking: A Top-Down Approach