General syllabus

Note: click on this, and actually read it; it's part of the syllabus:

Course description

This course focuses on the Internet and the general principles of computer networking. It covers the TCP/IP model from the application layer to the link layer in a top-down approach. It also exposes students to multimedia networking, network security, wireless and mobile networks. This course includes performance modeling and analysis, development and implementation of complex communication protocols. Prerequisite: A "C" or better grade in Comp Sci 3800.


  • A good attitude, work ethic, and an interest in computing!
  • Grade of "C" or better in CompSci 3800 - Operating systems


In general, in this class, you are welcome to propose some variant of these assignments that benefits you. For example, setting up a DNS server for something you actually need to do, in a different environment that the class uses, setting up your own real web server, DHCP server, etc. It will often, but not always overlap enough.

Real assignments (ra##)

  • These are intended to cover the IT side of actually setting up real networks and applications, both personal, and small corporate networks.
  • By the end of the semester, you should know how to setup a website, DNS server, firewall, intrusion prevention and detection system, wifi access point, local router, DHCP server, and more, enough for a small company's network.

Socket programming assignments in Python (pa##)

  • These are intended to help you learn to actually program network applications.


I normally try very hard to not require a "paid" textbook.
This one is the best in the field, and is a great book
The 6th edition is actually better, in my opinion, and the 7th edition is actually worse...).
It is optional, though you can just duck it:

Open/free textbooks:

Which virtual machine / OS for this class?

You're going to make a virtualized corporate network on your own computer!
You should use Fedora Security Labs for most of those virtual machines.
Virtual machines are NOT optional in this course.

Which programming language for this class?

Python, Python-Scapy, a hint of bash, SQL

Backlinks: index:Classes:Networking