|CSCI P538: Computer Networks|
General Course Information (Fall 2015)
| Time: Tuesday and Thursday, 4:00pm - 5:15pm Location: BH103|
| Time: Tuesday and Thursday, 7:15pm - 8:30pm Location: SE240|
Dr. Raquel Hill |
|     Email: ralhill [at] indiana [dot] edu |
|     Office hours: Tuesday and Thursday 2-3 pm (or by appointment) |
|     Office: Lindley Hall (LH) 230E |
|Associate Instructor's |
|    Deyaaeldeen Almahallawi (dalmahal [at] indiana [dot] edu) |
|    Isha Arora (isharora [at] indiana [dot] edu) |
|    Wen Chen (wc23 [at] indiana [dot] edu) |
|    Varsha Suresh Kumar (vsureshk [at] indiana [dot] edu) |
| AI office Hours:|
|     Wen Wednesday 09:00 am - 11:00 am |
|     Isha Wednesday 2:30 pm - 4:30 pm |
|     Varsha Tuesday 1:00 pm - 3:00 pm |
|     Deyaa Monday 09:00 am - 11:00 am |
| AI office hour location:   Abyss in 2nd floor, Lindley Hall
Our goal in this class is to learn about computer networks. We will do this
by understanding how the networks work today and why they are designed the way
they are. The course will primarily focus on the Internet but will also cover
other past and present network technologies to put things in perspective.
Since applications play an important role in the evolution of the Internet we
will also study DNS, peer-to-peer networks, multicast, and security.
Topics to be covered include: Error control, medium access, routing,
congestion control, end-to-end transport, TCP/IP, IEEE 802.11 networks,
security, and applications.
Pre-requisites: This is the first graduate level networking
course. An undergraduate course in Operating Systems or Networking along with
programming experience in C/C++ is required.
Programming Assignments : FAQ
Which programming languages are permitted ?
Programming assignments will be in C/C++ only. This is so that you can play around with low level sockets such as raw_sockets and POSIX threads. The objective of the course is to get you familiar with low level networking and protocol internals such as TCP / IP packets, checksum etc. This would not be possible in higher level languages such as Java. Also, most of the code you write will run most efficiently in C/C++.
Which libraries am I allowed to use ?
You cannot use third party libraries like Boost, Qt or any of these kind. If there are assignments related to multithreading, you are only allowed to use the POSIX thread library. Unless we explictily state otherwise, you can utilize C++ standard library, its containers (vector, map etc), and algorithms. Ask us if you have any doubts reagrding other libraries. But in the end, before submission, please ensure that your code compiles and runs as expected on silo . We will be grading your assignments by running the program on silo, and failing to compile will only make grading difficult. Eventough the program happens to be correct, you might lose points for not compiling. We strongly recommend that even if you program on your local machine, compile/run them on silo.
Computer Networking: A Top-Down Approach
(6th edition) by Jim Kurose and Keith Ross. Addison
I will derive material from the other reference books, RFCs, and research
papers for certain classes. However, you are not required to buy any
additional materials for this class.
Grading and Exams
The tentative grade break-up for the class is as follows:
- Quizzes: 25%
- Final: 25%
- Problem Sets: 10%
- Projects (3-4): 40% (all projects have equal weight)