MPCS 54001 Networks (Winter 2021)

Section 1
Instructor(s) Singh Sahota, Davender (dsahota)
Location Online Only
Meeting Times Thursday 5:30pm - 8:30pm
Fulfills Core Systems Elective

Syllabus

*This course will be conducted remotely and will be online only for Winter 2021*

 
Course Description


This course focuses on the history, theory, and implementation of computer networks.  Topics include everything from low-level technologies (e.g., Ethernet, Wi-Fi) to high-level applications (e.g., Web, email).  By the end of this course, you should have a better understanding of the underlying network protocols used by the computers, smart phones, and other network-enabled devices that you depend on every day.

 

Course Contents

    Computer Networking History

    Applications (HTTP, DNS, email)

    Transport Layer (TCP, UDP, QUIC)

    Network Layer (IPv4, IPv6, ICMP)

    Link Layer (Ethernet)

    Wireless and Mobile Computing

    Security (Cryptography, SSL/TLS, Web vulnerabilities)

 

Coursework

Weekly homeworks, weekly labs, two exams, and three projects. The projects 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

Familiarity with Python

Experience with concurrent programming (threads, synchronization)

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
  • MPCS 52553-1 -- Web Development
  • MPCS 51044-1 -- C++ for Advanced Programmers