CSCI-4964 Computer Communication Networks Syllabus
Instructor: Jasmine Plum [she/her] ()
Office Hours: Friday 10:30am to noon, Amos Eaton 205
Graduate TA: Prem Datre ()
Office Hours: Tuesday 11am - 1pm, Amos Eaton 118
Assignments and lectures will be posted via Submitty as the course progresses. We will also use the Submitty Discussion Forum to communicate. Note: if you are off campus you will need to use the VPN to access Submitty - I am waiting for Submitty admins to fix this.Pre-requisites: CSCI 2300 Intro to Algorithms; CSCI 2500 Computer Organization or ECSE 2660 "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 it is quite likely you cannot receive credit for both courses. Since this is the first time this is being offered in the Department of Computer Science at scale, we will be experimenting with the material to make it more CS-intensive. Given that it is my first time teaching the course to larger audience and that the number and length of lectures is different, the format of the course may also be a little different from a typical course.
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): 20%
- Midterm Exams (there will be 2): 15% each
- Programming Assignments (estimating 3): 20%
- Final exam: 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, though there may not be any autograding. 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 in partial credit. If autograding is used we may require a particular language, otherwise Python, C/C++, and Java are acceptable in this course.
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 7th edition of "Computer Networking: A Top-Down Approach " by Kurose and Ross. [Amazon]
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 are subject to change:
All due dates refer to 11:59:59 PM unless otherwise specified.
Date | Sections | Topics | Homeworks/Exams |
May 21 | 1.1 - 1.3 | Syllabus, Introduction, Circuit and Packet Switching | |
May 24 | 1.3 - 1.5 | Network Structure, Delay, Loss, and Throughput, Layering Models | HW1 Assigned |
May 27 | NO CLASSES, MEMORIAL DAY | ||
May 28 | 2.1.1 - 2.1.3, 2.2.1 - 2.2.4 | Layering Models, Transport/Application Layer, HTTP | |
May 31 | 2.2.5, 2.7, 2.3 | HTTP, SMTP, IMAP, POP3, Python Socket Code | HW1 due | PA1: HTTP Assigned |
Jun 4 | 2.6, 2.4 | Streaming, DNS | |
Jun 7 | 2.5, 3.1, 3.2 | P2P, Transport Layer, Multiplex/Demux | PA1 due | HW2 Assigned |
Jun 11 | 3.3, 3.4.1 | UDP, TCP overview, Reliable Data Transfer | |
Jun 14 | 3.4.2 - 3.4.4, 3.5.1 - 3.5.4 | Pipelining, Go Back N / Selective Repeat, TCP Reliability | HW2 due | Homework 3 Assigned |
Jun 18 | 3.5.5 - 3.5.6, 3.6, 3.7 | TCP Flow Control / Connections, CA Principles, TCP CA | |
Jun 21 | 4.1 - 4.3.2 | Network Layer, Routers, IP Datagrams | HW3 due |
Jun 25 | 4.3.3 - 4.4 | IP Addressing / NAT / Longest Prefix Matching | |
Jun 28 | EXAM 1 (Ch 1-3) | HW4 Assigned | ||
Jul 1-5 | NO CLASS, SUMMER BREAK | ||
Jul 7 | PA 2: Reliable Data Transfer Assigned | ||
Jul 9 | 5.1 - 5.3 | Exam 1 Discussion, Routing Table, Link-State, DVR, OSPF | |
Jul 12 | 5.4 - 5.5 | BGP, SDN, ICMP, | HW5 Assigned |
Jul 13 | HW4 due (note: This is a Saturday) | ||
Jul 16 | 5.6, 6.1-6.3 | Link Layer, Error Detection, Multiple Access | |
Jul 19 | 6.4 | Ethernet, Switched LANs | HW6 Assigned |
Jul 20 | HW5 due (note: This is a Saturday) | ||
Jul 22 | PA 2 due (note: This is a Monday) | ||
Jul 23 | 6.6 - 6.7 | Data Centers, "The Big Picture" review, VLSM review problem | |
Jul 26 | No lecture - Study day / Work on PA3 | HW6 due | PA3: Routing Assigned | |
Jul 30 | EXAM 2 (Ch 4-6) | ||
Aug 2 | 8.1 - 8.2 | EXAM 2 Discussion, Cryptography Concepts | |
Aug 6 | 8.3 - 8.5 | End-Point Authentication PGP | HW7 Assigned |
Aug 9 | 8.6 -8.7, 8.9 | SSL, IPSec/VPN, Firewalls/IDP | PA 3 due |
Aug 13 | Review | ||
Aug 16 | HW7 due (at start of class) | FINAL EXAM |