next up previous
Next: Grading Up: Computer Networks/Computer Networks and Previous: Instructor and Venue

Course Outline

This course is surprisingly enough all about computer networks. The general discussion is kept to a minimum though, as the course is primarily about practical aspects. In other words, we are actually interested in programming network (or distributed) applications, and the principal topic is thus the TCP protocol in its incarnation as socket programming. The following is a rough (i.e., subject to change) outline:

Introduction to TCP/IP networking 1 week
The client-server model 1 week
Protocols 1 week
The socket API 1 week
Client software design 1 week
Server software design 2 weeks
Concurrency 1 week
Multiprotocol and multiservice servers 1 week
Advanced topics 2 weeks
Underlying network processing and algorithms 1 week

Advanced topics are scheduled to contain elements of distributed algorithms, though this may change depending on how the course progresses. The course will wrap up with a bridge between the matter considered in earlier courses and the matter considered here. In particular, we discuss how the lossless, connection-oriented features of the TCP protocol we use in this course are accomplished using the underlying switched network infrastructure. You know from previous courses how a network is electrically constructed, this wrap-up will outline the algorithmic features that convert a bunch of wires and machines into a system that allows the use of the TCP protocol to create distributed programs.

This course has a heavy programming component (see the section on grading for details). Programming will be done in either C or C++, although I will stick in my lectures, examples, Web pages, whatnot to C++ (since C is not actually taught here at Bishop's).


next up previous
Next: Grading Up: Computer Networks/Computer Networks and Previous: Instructor and Venue
Stefan Bruda 2012-04-28