Instructor: Omprakash Gnawali
Office Hour: T 4pm
TAs: Alireza Ansaripour and Nour Smaoui
Office Hour: AA (R 4pm), NS (F 11am)
Instructor: Omprakash Gnawali
Office Hour: T 4pm
TAs: Alireza Ansaripour and Nour Smaoui
Office Hour: AA (R 4pm), NS (F 11am)
Overview
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.
Textbook
There is no required textbook. If you have not taken prior networking course at the undergraduate level, 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.
Structure
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. There will be opportunities for hands-on learning through homework and projects during the course.
Exams
There will be two 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. The exams will be administered during lecture hours.
Homework
Homework will involve reading papers, doing simple calculations, and writing short programs. There will be approximately 3 homework assignments.
Project
You will build a networking service or an application that has a significant networking component. The project likely will involve significant network programming in Python (preferred) or a language of your choice. 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 one mid-project checkpoint.
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.
Grades
Component | Percentage |
---|---|
Homework | 15% |
Midterm Exam | 20% |
Final Exam | 20% |
Project M1 | 20% |
Project Final | 20% |
Class participation | 5% |
Recommended prerequisites
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.
Lectures
Lectures will take place on Microsoft Teams group for the class. The lectures will be recorded and made avaialble in the class channel.
Emergencies
If you cannot submit your homework, projects or be in class for the exam due to family, personal, or medical emergencies, you must document your case with the appropriate UH officials in advance of the relevant deadlines.
Academic Honesty
You are encouraged to collaborate with others but all the work you submit should be yours. If we find any evidence of plagarism, you will get an F in the course. Please refer to the Student Handbook for details: http://publications.uh.edu/content.php?catoid=36&navoid=13063.