MPCS 54001 Networks (Winter 2017)

Section 1
Instructor(s) Conner, William (wconner)
Location Ryerson 251
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Core Systems Elective


Course Description

Broadly, this course will focus on the history, theory and implementation of computer networks. We will discuss the low-level technologies that move bits around (such as Ethernet and WiFi), the high-level applications that are part of our everyday 21st-century lives (such as email, the Web, and mobile phones), and everything in between (security, TCP/IP). 

At the completion of this quarter, you will (or should!) be able to explain, in detail, how data makes its way around the Internet when you click on a web link, how you can drive around at 80 MPH talking on a cell phone without the call dropping, how you can make a streaming video call over a lousy wireless link without frame dropping or jitter. In short, we'll pull back the curtain on what can be a somewhat mysterious and magical part of working with computers.

Course Contents

    Computer Networking History

    Applications (HTTP, DNS, email, cloud computing)

    Transport Layer (e.g. TCP, UDP)

    Network Layer (IP, IPv6)

    Link Layer (Ethernet)

    Wireless and Mobile Computing





Weekly homeworks, several exams, and projects. You will complete the projects in teams of two. These will be a series of hands-on programming and design tasks. Based on provided specifications (e.g., the protocol standard) you will implement different network servers or clients (e.g., a simple web server or a simple network router).

Course Textbooks

Computer Networking: A Top-Down Approach (7th Edition) by James F. Kurose and Keith W. Ross


Please note this is the new 7th edition; previous iterations of this course used the 6th edition.

Course Prerequisites

Core Programming (completed or concurrently enrolled)

Other Prerequisites

Recommended (but not required): UNIX Bootcamp

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 50101-1 -- Concepts of Programming