CSCI-4964 Computer Communication Networks Syllabus
Instructor: Jasmine Plum [she/her] ()
Office Hours: by appointment
Assignments and lecture notes will be posted via Submitty as the course progresses. We will also use the Submitty Discussion Forum to communicate. Lectures will be in-person and live, subject to change based on RPI policy.Pre-requisites: CSCI 2300 Intro to Algorithms; CSCI 2500 Computer Organization or ECSE 2610 "COCO"
Topics: Introduction to the internet / computer networks, application layer, transport layer, network layer, link layer concepts, perhaps some wireless network materials. Basics of security. Other topics may be added.
About the Course: This course is based on ECSE-4670 Computer Communication Networks, and you cannot receive credit for both courses.
The exams will contain quantitative problems, true/false questions and short-answer questions. The focus will be on understanding of concepts, and problem-solving skill. Exams will be open-book/notes, but will be time-constrained. Material from lecture slides, text and reading/homework assignments will be included in the scope of exams. Exams will be administered in class.
Grading:
The grading scheme might change slightly but the approximate breakdown is:
- Homework Assignments (estimating 7): 35%
- Midterm Exams (there will be 2): 35%
- Programming Assignments (estimating 3): 30%
Grades will use traditional cutoffs of:
- A: 92%+
- A-: 90-92%
- B+: 88-90%
- B: 82-88%
- B-: 80-82%
- C+: 78-80%
- C: 72-78%
- C-: 70-72%
- D+: 68-70%
- D: 60-68%
- F: below 60%
Homework assignments will be submitted through Submitty and must be typed and submitted as a Portable Document Format (PDF) file with each problem starting on a new page. You are welcome to use a word processor such as Microsoft Word, LaTeX, or a solution of your choosing. There will be a 20% deduction for poorly organized submissions or PDFs consisting of scanned/photographed paper. Where applicable, show your work.
Programming assignments will be submitted through Submitty as well. Assignments will not be accepted over e-mail. While you will not be graded on programming style, we recommend trying to write readable and well-designed code to assist us in giving partial credit. Programming Assignments 1 and 2 will use Python, while for Programming Assignment 3 you will have your choice of C++ or Python.
Late Work Policy: There are no late days in this course, all work is expected to be submitted by the deadlines provided in assignment handouts/the syllabus. If you have a legitimate excuse you should get it approved through Student Success / your class dean.
Textbook: The textbook we use is the 8th edition of "Computer Networking: A Top-Down Approach " by Kurose and Ross. The publisher does have digital versions as well as a rental [Pearson] but the RPI bookstore may have other links / pricing. There has been some communication delays with the bookstore and they may be trying to sell the 7th edition instead, a lot of the material lines up between the 7th and 8th editions but problems will be different and some topics such as HTTP/2 and MPLS may not be in the 7th ed.
Academic Integrity: Student-teacher relationships are based on trust. Acts which violate this trust undermine the educational process. Violations of academic integrity will not be tolerated. Please refer to the Rensselaer Handbook for definitions of various forms of academic dishonesty and the applicable penalties. We take cheating very seriously; you can expect to be punished for violations of academic integrity. Cheating will result in a 0 on the gradeable in question and full letter reduction of the semester grade. A second offense will result in an automatic F in the course.
Schedule: Topics and timing are subject to change:
All due dates refer to 11:59:59 PM unless otherwise specified.
Date | Sections | Topics | Homeworks/Exams |
May 24 | 1.1 - 1.3 | Syllabus, Introduction, Circuit and Packet Switching | |
May 27 | 1.3 - 1.5 | Network Structure, Delay, Loss, and Throughput, Layering Models | HW1 Assigned |
May 31 | 2.1, 2.2 | Layering Models, Transport/Application Layer, HTTP, HTTP/2 | |
Jun 3 | 2.2, 2.7, 2.3 | HTTP, SMTP, IMAP, POP3, Python Socket Code | HW1 due | PA1: HTTP Assigned |
Jun 7 | 2.6, 2.4 | Streaming, DNS | |
Jun 10 | 2.5, 3.1, 3.2 3.3 | P2P, Transport Layer, Multiplex/Demux UDP | PA1 due | HW2 Assigned |
Jun 14 | 3.3, 3.4.1 3.5.5 - 3.5.6 | TCP overview, Reliable Data Transfer Pipelining, Go Back N / Selective Repeat | |
Jun 17 | 3.4.2 - 3.4.4, 3.5.1 - 3.5.4 3.6, 3.7, 3.8 | TCP Reliability TCP Flow Control / Connections, CA Principles, TCP CA, QUIC | HW2 due | HW 3 Assigned |
Jun 21 | 4.1 - 4.2 | Network Layer, Routers | |
Jun 24 | HW3 due | EXAM 1 (Ch 1-3) | ||
Jun 28 | 4.3 - 4.4 | IP Datagrams / Addressing, NAT, Longest Prefix Matching, SDNs | PA 2: Reliable Data Transfer Assigned |
Jul 1 | CCN Lecture Cancelled | HW4 Assigned | |
Jul 4 - Jul 8 | NO CLASS, SUMMER BREAK | ||
Jul 12 | 5.1 - 5.3 | Exam 1 Discussion, Routing Table, Link-State, DVR, OSPF | |
Jul 15 | 5.4 | BGP, SDN | HW4 due | HW5 Assigned |
Jul 19 | 5.5 - 5.6, 6.1 - 6.3 | ICMP, Link Layer, Error Detection, Multiple Access | |
Jul 22 | 6.4 | Ethernet, Switched LANs | HW5 due | HW6 Assigned |
Jul 26 | 6.5 - 6.7 | MPLS, Data Centers, "The Big Picture" review, VLSM review problem | PA 2 due |
Jul 29 | EXAM 2 (Ch 4-6) | HW6 due | PA3: Routing Assigned | |
Aug 2 | 8.1 - 8.2 | EXAM 2 Discussion, Cryptography Concepts | |
Aug 5 | 8.3 - 8.5 | End-Point Authentication , PGP | HW7 Assigned |
Aug 9 | 8.6-8.7, 8.9 | TLS, IPSec/VPN, Firewalls/IDP | |
Aug 12 | No CCN Class | HW7 due | |
Aug 16 | PA 3 workday | PA 3 due | |
Aug 19 | DHT/More on P2P |