Instructor | Omprakash Gnawali |
The goal of this course is to understand the technologies that power the Internet. We will cover the core concepts, philosophies, and read old and new papers to get a feel for the challenges and opportunities for the future Internet. We will also build and use several networked systems to get practical experience related to Internet technologies.
There is no required textbook. If you have not taken prior networking course, reading through Computer Networks: A Systems Approach by Peterson and Davie or Computer Networking: A Top-Down Approach by Kurose and Ross is highly recommended.
The first three weeks will cover the basics of networking. Remainder of the class will be paper discussion, first mostly classical papers in networking, then a few papers from selected topics in networking, including routing, transport, quality of service, wireless networks, security, and Internet services.
Exams: The exams will cover everything covered or mentioned during the class. You can bring any notes or material to the exam. There will be no make-up exams.
Homework: Homework will involve reading papers, doing simple calculations, and writing short programs. There will be 3-5 homeworks.
Project: You will build a networking service or an application that has a significant networking component. The project likely will involve significant low-level network programming in C/C++. The program must compile on a department provided Linux machine. PhD students are strongly encouraged to design their own projects. There will be a single project but will have intermediate checkpoints.
Class participation: You are expected to participate actively during the class. We will also allocate a few minutes in each class to discuss topical news articles related to networking. We want to learn not only technical topics but also how to discuss them. Use that as your opportunity to engage with the class.
The class expects that you have prior exposure to the basic concepts in networking or operating systems. If none of your undergraduate courses covered these topics, you should thoroughly read the recommended textbook because we will breeze through the basic topics in the first few lectures.
The projects will involve programming a networked system. The expectation is you have some familiarity with systems or network programming (e.g., socket programming). We will do our project in Linux environment.
We will use Github for HW and project submissions.
Two in-class exams | 40% |
HWs | 15% |
Project | 40% |
Class Participation | 5% |
You may submit your HW or project up to two days late total (not for each HW or project).
If you cannot submit your homework, projects or be in class for the exam due to family, personal, or medical emergencies, you must send a notice to the instructor as soon as possible and document your case with the appropriate UH officials.
Students are expected to do their own work. Collaborations and borrowing from other work may be ok as long as they are approved by the instructor and are clearly cited. Please refer to the Student Handbook for details: http://catalog.uh.edu/content.php?catoid=6&navoid=1025.
Counseling and Psychological Services (CAPS) can help students who are having difficulties managing stress, adjusting to the demands of a professional program, or feeling sad and hopeless. You can reach CAPS (www.uh.edu/caps) by calling 713-743-5454 during and after business hours for routine appointments or if you or someone you know is in crisis. No appointment is necessary for the "Let's Talk" program, a drop-in consultation service at convenient locations and hours around campus. http://www.uh.edu/caps/outreach/lets_talk.html