CS450 - INTRODUCTION TO NETWORKING |
|
|
Spring 2015 - Latest news
General information
|
||||||||||||||
OverviewBy the end of this course, you will have a good understanding of the main elements that work together to form the Internet. You will have acquired some familiarity with standard diagnostic tools, network application development, and typical network designs and configurations. In addition, you will have caught a glimpse of more advanced networking concepts and research directions. Assessment will include in class quizzes, a midterm, a final, a group presentation, and 6 programming assignments. PrerequisitesThis class is programming intensive, with most assignments done in C. CS361 or equivalent is a required prerequisite: concurrent enrollment only with instructor consent, and not recommended. If you took CS361 but struggled in it, you may want to reconsider taking this class until you have gained a bit more experience with low-level programming and UNIX environments. Peer InstructionThis course will be taught using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction. Students need to read required materials before classes. Every student must have a physical iClicker device to answer in class quizzes in order to archive participation grades. EvaluationGrades are curved based on an aggregate course score. Grads and undergrads are graded on separate curves. This means that the course score cut-offs for an A, B, C etc. are not defined ahead of time: these will be set after the end of the course. The course grade weighting is:
Reading quizzesReading quizzes will be given at the beginning of each class period using iClickers. You have to register your iClicker in Blackboard (select the course in Blackboard -> Tools -> i>clicker Student Registration). Class participationAs this course places stronger emphasis on classroom discussion and
student interaction, class participation is incredibly important and therefore graded. The baseline
Class Participation grade is 5% will be based off of participating in group
discussion questions. You have to sign up in a group (three students each) for these discussions.
You have to sign-up in a group in Blackboard by noon Thursday Jan 15, 2015 (Tools -> Groups -> Peer discussion group). You can find your group partners in person/classes or use Blackboard forum to form your group. Otherwise, I will assign you in a group randomly by the third lecture on Friday Jan 16.
Programming assignmentsProgramming assignments will consist of approximately 6 programming projects with duration between one and two weeks. The deadlines are firm. If you have an “acceptable” reason that you think you cannot make the deadline, email me 26 in advance. Some projects will require working in pair. You are responsible to find your partner. You can use the discussion forums to find a match. The recommended programming language is C, however, students can choose their own language to implement programming projects. Be sure to consult the online handout or the instructor if you have any questions. Academic integrityConsulting with your classmates on assignments is encouraged, except where noted. However, turn-ins are individual, and copying code from your classmates is considered plagiarism. For example, give the question “how did you do X?”, a great response would be “I used function Y, with W as the second argument. I tried Z first, but it doesn’t work”. An inappropriate response would be “here is my code, look for yourself”. To avoid suspicion of plagiarism, you must specify your sources together with all turned-in materials. List classmates you discussed your homework with and webpages from which you got inspiration or copied (short) code snippets. All students are expected to understand and be able to explain their turned-in materials. Plagiarism and cheating, as in copying the work of others, paying others to do your work, etc, is obviously prohibited, is grounds for failing the course, and will be reported. TOPICS COVERED (tentative)
|
||||||||||||||
Tentative Course Schedule(The schedule more than 24 hours in advance is subject to change) |
Date | Topic | Required Readings | Recommended Readings | Assignments |
Application Layer | ||||
W1-Lecture 1: Mon January 12 |
Introduction to the course, and the Internet |
How the Internet works (video) | ||
W1-Lecture 2: Wed January 14 |
Programming envoriment demo, Assignment 1 |
VirtualBox, Ubuntu | Assignment 1 - Simple HTTP Client | |
W1-Lecture 3: Fri January 16 |
4 layer Internet model, Socket Programming |
K&R 1.1, 1.5, 1.6 |
beej’s guide (sections 4 & 5) | |
W2-No class: Mon January 19 |
No class (Martin Luther King, Jr. Day) |
W2-Lecture 4: Wed January 21 |
Network applications and the Web |
2.1 & 2.2 |
Wireshark Get started |
W2-Lecture 5: Fri January 23 |
HTTP |
2.2 |
Wireshark HTTP | |
W3-Lecture 6: Mon January 26 |
SMTP |
2.4 |
W3-Lecture 7: Wed January 28 |
Client-Server model, Assignment 2 |
no quiz | Assignment 2 - Multithreaded Web server |
W3-Lecture 8: Fri January 30 |
DNS |
2.5 |
Wireshark DNS | |
W4-Lecture 9: Mon February 2 |
DNS |
no quiz | W4-Lecture 10: Wed February 4 |
Peer to Peer, BitTorrent, DHTs, Distributed Consensus |
2.6 |
Transport Layer | ||||
W4-Lecture 11: Fri February 6 |
Transport layer and UDP |
3.1-3.3 |
||
W5-Lecture 12: Mon February 9 |
Reliable Transport |
3.4 |
W5-Lecture 13: Wed February 11 |
Reliable Transport |
3.4 |
W5-Lecture 14: Fri February 13 |
TCP |
3.5.0-3.5.4 |
||
W6-Lecture 15: Mon February 16 |
Assignment 3 |
Assignment 3 - Wireshark experiments | W6-Lecture 16: Wed February 18 |
TCP (cont.) and Flow control |
3.5.0-3.5.4 |
W6-Lecture 17: Fri February 20 |
Connection management and Congestion control |
3.6 |
||
W7-Lecture 18: Mon February 23 |
DNS Security Guest lecture by Prof. V.N. Venkatakrishnan |
W7-Lecture 19: Wed February 25 |
Congestion Control (cont.) |
3.6 |
Assignment 4 - DNS resolver |
W7-Lecture 20: Fri February 27 |
iClicker questions review | |||
W8-Lecture 21: Mon March 2 |
Midterm review | |||
The Network Layer | W8-Lecture 22: Wed March 4 |
Network layer introduction |
4.1.1-4.2.2 |
|
W8-Midterm: Fri March 6 |
Midterm Exam |
|||
W9-Lecture 23: Mon March 9 |
Routers & IP |
4.3-4.4.2 |
W9-Lecture 24: Wed March 11 |
Internet P |
4.3-4.4.2 |
W9-Lecture 25: Fri March 13 |
Midterm exam review and Assignment 4 | |||
W10-Lecture 26: Mon March 16 |
NAT | 4.4.2 | W10-Lecture 27: Wed March 18 |
IPv6 | 4.4.4 |
W10-No class: Fri March 20 |
Assignment 4 evaluation | |||
W11-No class: Mon March 23-27 |
(Spring vacation) |
|||
W12-Lecture 28: Mon March 30 |
Routing Algorithms | 4.5 | Assignment 5 - Reliable communication | W12-Lecture 29: Wed April 1 |
Routing Algorithms | 4.5 |
W12-Lecture 30: Fri April 3 |
Routing in the Internet | 4.6.2-4.6.3 | ||
The Link Layer | ||||
W13-Lecture 31: Mon April 6 |
Introduction to the Link Layer | 5.1-5.3 | W13-Lecture 32: Wed April 8 |
Media Access Control | 5.3 |
W13-Lecture 33: Fri April 10 |
Ethernet; Address assignment and discovery | 5.4.1,4.4.2 Obtaining a Host Address subsection | Assignment 6 - Unreliable communication | |
W14-Lecture 34: Mon April 13 |
Switches and VLANs | 5.4.3 – 5.4.4 | W14-Lecture 35: Wed April 15 |
Data center Networking and Web transactions synthesis | 5.6 |
W14-Lecture 36: Fri April 17 |
Wireless and Mobile Networks |
6.x |
||
Physical Layer | ||||
W15-Lecture 37: Mon April 20 |
Wireless and Mobile Networks |
6.x | W15-Lecture 38: Wed April 22 |
Network security overview |
8.x |
W15-Lecture 39 Fri April 24 |
SSL, HTTPS, Firewall |
8.x |
||
W16-Lecture 40: Mon April 27 |
i-clicker questions review |
W16-Lecture 41: Wed April 29 |
Final review |
|
W16-No class Fri May 1, 11-2 |
Hour offices and Assignment 6 demo | |||
W17-Final exam Mon May 4 |
Final exam 1:00-3:00 p.m. |
Final exam schedule |