308-435B: Basics of Computer Networks

McGill University, Winter 2003


Note: Assignment 4 will not be returned before the exam. For studying, here are solution descriptions for assignments 3 and 4.


Note: By popular demand and for your studying pleasure, here is an old midterm, and here are the corresponding solutions. Note that this old midterm is not very representative: it covers only the first half of the course, whereas the exam will cover the entire course.



Time and Place

Monday, Wednesday, Friday 14:35pm - 15:25pm
ARTS 270

Instructor

Clark Verbrugge
Office: McConnell, room 230
Office hours: Monday 12:30-14:00, Wednesday 9:00-10:30, or by appointment
Phone: 398-2411
Email: clump@cs.mcgill.ca

Once term has begun, please send course-related emails to cs435@cs.mcgill.ca. This will allow the TAs to respond as well.

Teaching Assistant

Anatole Le
Office: McConnell, room 229
Office hours: Monday 9:00-10:00 and 11:30-12:30, Wednesday 11:30-12:30, or by appointment
Email: ale44@cs.mcgill.ca

Pre-requisites

COMP-310 (Computer Systems and Organization).
Ability to program in C or Java will be required.
Students registering without the pre-requisite may find the course removed from their transcript by the Faculty of Science.
Engineering students note that COMP-435 is restricted to Computer Science students; engineers interested in a computer networking course should take COMP-535.

Text

Required text: Computer Networks, 4th Edition. by Andrew S. Tanenbaum. Readings from this book will be essential to the course.
Supplementary text: Pocket Guide to TCP/IP Socket Programming in C by Michael J. Donahoo and Kenneth L. Calvert or TCP/IP Sockets in Java: Practical Guide for Programmers by Kenneth L. Calvert and Michael J. Donahoo. These are optional texts covering socket programming; select the text corresponding to the programming language you intend to use (C or Java).
Texts are available in the bookstore, and on reserve in the PSE Library.

Course Overview/Objectives

In this course students will learn about the basic networking algorithms and protocols on which modern networks are based. This covers networks from low level protocol design up to TCP/IP. Upon completion of the course, students should have a good understanding of the main networking problems and solution algorithms.
Note: There will be some socket programming required in assignments. A priori knowledge of socket programming is not required or assumed, but only high-level aspects of socket programming will be covered in class. Students will be expected to learn how to use the actual socket APIs from the supplementary texts, tutorial documents, and supplied template code.

Course Syllabus

A detailed syllabus in .pdf form is here.

Evaluation

4 Assignments: 40%
Midterm: 15%
Exam: 45%

Assignments

Assignment descriptions and information will be posted here as term progresses.