The course is currently full, and there is a waiting list. However,
I will let anyone into the course who wants to take this course for a
grade. If you want to take the course, come to class, even if you are
not enrolled.
Course Description:
This is an introductory course on computer networking and distributed
systems, with an emphasis on networking. It covers protocol design
principles, performance considerations, and networking technologies.
The goals are 1) to provide students with a broad theoretical and
practical base in computer communication issues by considering all
protocol layers involved in process-to-process communication, 2) to
introduce students to the design issues and tradeoffs that arise in
building and using networks for interprocess communication, and 3) to
give students ``hands on'' experience with building and using
distributed network services.
Required Background:
A strong desire to learn about computer networking and programming
experience with one conventional programming language (e.g., C, C++,
Pascal, etc.). Programming projects will involve writing 200--500
line programs in C under UNIX. Warning: this course requires
programming, but the focus is NOT on programming; although we
will answer questions about the C/UNIX environment, you are expected
to learn C and UNIX on your own. Basic probability and first year
calculus will be needed for the first 1/3 of the course when we study
data transmission and physical layer technologies.