CSC 458/2209: Computer Networks, Fall 2019: Department of Computer Science, University of Toronto
CSC 458/2209: Computer Networks, Fall 2019: Department of Computer Science, University of Toronto
Class Time: Thu. 1-3 PM Class Time: Tue. 1-3 PM Class Time: Tue. 6-8 PM
LocaGon: BA1220 LocaGon: ES B149 LocaGon: BA1210
Tutorial: Fri. 11 AM - 12 PM Tutorial: Fri. 1-2 PM Tutorial: Tue. 8-9 PM
LocaGon: BA1220 LocaGon: ES B149 LocaGon: BA1210
Course DescripGon
This is an introductory course on computer networks. Topics covered in this course include packet
switching systems, socket programming, network soAware, hardware, and protocols, network naming
and addressing, congesBon control schemes, soAware-defined networking, network security, and
wireless networking. The emphasis of the course is network programming and applicaBons.
Prerequisites
You need to have a basic understanding of probability theory, a strong background in C, a good
understanding of Python, and familiarity with the Unix operaBng system. If you are not sure whether you
have the background to take this course, please take a look at the first programming assignment (link
available at the class web page) to get an idea of the type of work, and the amount of Bme you will need
to spend on it. If you sBll are not sure, send me an e-mail.
Teaching Assistants
Please check class web page for informaBon about TAs, and their office hours.
There is also a class mailing list that will be used by the TAs and the instructor for announcements.
Please never use the class mailing list for ques4ons. There are many students in this class and we’d all be
flooded with e-mails.
If you have any quesBons that cannot be posted on the bulleBn board (e.g. quesBons about your
grades), you can e-mail the TAs directly.
Exams
There will be an in class midterm exam on October 17th for SecBon L0101, and October 22nd for
SecBons L0201, and L5101. There is also a final exam. For date, and locaBon of the final exam, please
check the class web page. All graduate students enrolled in this course are required to complete the
midterm and final exams.
Textbook
• “Computer Networks: A Systems Approach”, (5th EdiBon), Peterson, Davie, 2011.
Recommended Books
• “UNIX Network Programming, Volume I: The Sockets Networking API”, W. Richard Stevens, Bill
Fenner, and Andrew M. Rudoff, 3rd ediBon, 2003.
• “TCP/IP Illustrated, Volume 1: The Protocols”, W. Richard Stevens, 1993.
Grading
• Assignments: 50%
o Problem sets: 20%
o Programming assignments: 30%
• Midterm exam: 20%
• Final exam: 30%
Assignments
There will be two problem sets, both based on the textbook, and the material covered in the class.
There will also be two programming assignments. Here is a summary of the requirements for all
submi#ed programming assignments:
• We will use a virtualized network environment (MiniNet) for programming assignments.
• Each student will get access to a virtual machine (on CDF servers) where she/he can complete the
programming assignments.
• To ensure compaBbility with our marking scripts, please make sure you only use the VM provided
through CDF.
• All programs must be wri#en in ANSI “C”. To make the grading uniform, we can’t except assignments
in C++, Python, Java, Perl, ....
• AddiBonal informaBon and requirements will be specified in each assignment.
Academic Offences
“Briefly, an academic offence is a bad thing done to get marks you don't deserve. Slightly more formally,
an academic offence is an acBon by a student or course instructor that breaks the rules about academic
credit at the University of Toronto.” CheaBng is considered a very serious offence. Please avoid it! We are
all here to teach and learn aAer all, and concerns about cheaBng make an unpleasant environment for
everyone.
Permi\ed CollaboraGon
The following items are encouraged and allowed at all Bmes for all students in this class:
• Discussion of material covered during lecture, problem sessions, or in handouts
• Discussion of the requirements of an assignment
• Discussion of the use of tools or development environments
• Discussion of general approaches to solving problems
• Discussion of general techniques of coding or debugging
• Discussion between a student and a TA or instructor for the course
Unpermi\ed CollaboraGon
All submissions must represent original, independent work. Some examples of acBviBes that do not
represent original work include:
• Copying soluBons from others. In parBcular, do not ask anyone to provide a copy of his or her
soluBon or, conversely, give a soluBon to another student who requests it. Similarly, do not discuss
algorithmic strategies to such an extent that you and your collaborator submit exactly the same
soluBon. Use of soluBons posted to websites, such as at other universiBes, is prohibited. Be aware
that we photocopy some of the exams prior to handing them back.
• Using work from past classes. The use of another student's soluBon or the posted class soluBons
from a previous class consBtutes a violaBon.
• Studying another student's soluBon. Do not read another soluBon submission whether in electronic
or printed form, even to "check answers."
• Debugging code for someone else. When debugging code it is easy to inadvertently copy code or
algorithmic soluBons. It is acceptable to describe a problem and ask for advice on a way to track
down the bug.