Syllabus

____________________________________________________


General syllabus

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


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.


Prerequisite

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

Assignments

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.

Textbook

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:
https://duckduckgo.com/?t=ffab&q=filetype%3Apdf+Kurose+Computer+Networking+A+Top+Down+Approach+6th


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.
https://labs.fedoraproject.org/en/security/
Virtual machines are NOT optional in this course.


Which programming language for this class?

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



Backlinks: index:Classes:Networking