MPCS 54001 Networks (Spring 2016)

Section 1
Instructor(s)
Location Ryerson 251
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Core Systems Elective

Syllabus

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
  • Network Applications (HTTP, SPDY, DNS, email, cloud computing, peer-to-peer)
  • Transport Layer (e.g. TCP, UDP)
  • Network Layer (IP, IPv6)
  • Link Layer
  • Wireless and Mobile Computing
  • Network Security
  • Internet-scale Distributed Systems

Coursework

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

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

Please note this is the new 6th edition; previous iterations of this course used the 5th edition. The title is available electronically via Kindle as well.

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 51031-1 -- Android App Development
  • MPCS 53001-1 -- Databases