Department of Computer Science
Computer Network Architecture and Programming
Office phone: 540-231-1927
Course home page: http://courses.cs.vt.edu/~cs4254/
Office hours: TR or by appointment (Tentative)
Office Hours: T 1-2 PM and W 10-12 AM in MCB 116
Stevens, Bill Fenner, and Andrew Rudoff,
Unix Network Programming, The Sockets Networking
Douglas E. Comer and David L.
Stevens, Internetworking with
Douglas E. Comer, Internetworking
The course is an introduction to computer network architecture and programming using the application programming interface known as sockets. The course will introduce basic architecture and protocols comprising the Internet. Upon successful completion of the course, the student should be able to develop network-aware applications from the ground up. Hands-on experience will be gained through several programming assignments/projects, which require C knowledge.
· A grade of C or better required in CS prerequisite 3204 (Operating Systems).
· Strong programming ability in C.
· User-level understanding of the UNIX operating system
· Ability to undertake substantial independent design projects
Tentatively, the topics that will be covered include (A full updated schedule will be available at the course website):
Ø Introduction and ISO layering architecture
The Transport layer:
Ø Elementary Sockets
Ø I/O Multiplexing
Ø Socket Options
Ø Elementary UDP Sockets
Ø Name and Address Conversions
Ø IPv4 and IPv6 Interoperability
Ø Client/Server Design Alternatives
Ø Network Security
Homework and Programming Assignments
Comprehensive Final Exam (May 6th )
The instructor reserves the right to change the grading scheme or add assignments/projects/exams.
All students are required to know how to create and send assignments electronically (using FTP). Assignments submitted after the due date will not be accepted unless extenuating circumstances exist and special arrangements are made prior to the due date.
Homework: Homework assignments will consist of problems from the text and supplemental problems provided by the instructor. Problem sets will be graded on overall effort and correctness of selected problems.
Programming Assignments: Assignments require the design, implementation, and testing of network-aware applications. The assignment code should be submitted electronically. Results and assignment reports should be submitted in electronic and paper form.
Course Project: The course project involves the design, implementation and validation of an “industrial strength” network service or application. A suggested project will be provided. If you wish to take up a different project, please contact the instructor. Students may pair up in groups of two (2) for the final project.
Midterm: There will be one in-class midterm. The exam will be open book and open notes.
Final Exam: There will be a comprehensive final exam. The exam will be open book and open notes.
The Virginia Tech honor code applies to all homework/assignments and examinations. The instructor's academic honesty policy is very strict; instances of academic dishonesty will be severely penalized. All work submitted must be the student's own work! In working on problem sets, discussion and cooperative learning are allowed and, in fact, encouraged. However, copying or otherwise using another person's detailed solutions to assigned problems is an honor code violation. Projects are to be the work of the individual student. You may discuss general concepts, such as system calls, software libraries, Internet resources, or class and text topics, with others. However, discussion of project solutions, specific code, or detailed report content is an honor code violation. All source material used in project code and reports must be properly cited. Please discuss any questions that you may have about what is or is not permitted with the instructor.
Special Needs or Circumstances
Any students with special needs or circumstances should feel free to meet with or otherwise contact the instructor.