|Instructor||Prof. Chris GauthierDickey|
|Office||John Greene Hall 117|
|Office Hours||3:00-3:30pm, Monday & Wednesday|
|Time & Location||MW 16:00 - 17:50, John Greene Hall 315|
|Prerequisite||COMP 2370 (Intro to Algorithms and Data Structures)|
|Hours:||Monday & Wednesday, 12:00-2:00pm|
Computer networks are pervasive in our every day lives. The building of the Internet has been one of the most significant events in our technological history. In this course, you will be introduced to the fundamental principles of computer networking. Using the Internet as a primary example of a large-scale network, topics including the design of the Internet, application and transport protocols, congestion control, routing protocols, packet switching and link-level protocols are covered in this course.
Today's networking cannot be considered without examining security issues surrounding it. In particular, the following topics will be covered over the course of the term to give students a deeper understanding of security in networking:
Finally, because networks and games are my research area, we will spend some time talking about how networking is implemented in computer games.
In addition to understanding the principles of networking, in this course you will learn network programming by implementing a substantial program using C/C++. Thus, a working knowledge of the language will help you succeed in this course.
For lectures we will use:
Undergraduates and Graduate students may work in groups of two for homeworks. Programming assignments may be completed in groups of two or three.
We do encourage you to work on your assignments collaboratively assuming that each individual spends a reasonable amount of time on each question alone before discussing it with others. Note that dividing the problems up and working on them individually will most likely lead to you not understanding a particular topic on the assignment. When you turn in group work, turn in a single copy and put the names of all group members on top of the first page of the submitted papers.
Programs must be written using the assigned language, and in this case in C/C++. Yes, Java is easier in some ways to do network programming. Python is downright simplistic. Both of these languages shield you from understanding how network code really works. Hence, you must use C/C++.
Homeworks are due in class and no late assignments will be accepted without prior arrangement. Turn in partial work if you are not finished. If you must hand it in before class, hand it in to the front office in the department. Do not slide the work under the door as it may get lost!
For this course, all work must be done individually unless specified (ie, problem sets can be worked on in groups of 2). You may discuss problems and assignments with other students, but you cannot use another student's solution or code in any way. All sources must be properly acknowldged and document. Failure to do so constitutes a breach of the Honor Code.
Sanctions imposed from a breach of the Honor Code may include, but are not limited to, the failure of an assignment, the failure of a course, and termination from the program. I will impose a failure of the course for any such offenses in the course.