1 Syllabus

1.1 General syllabus

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

1.2 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.

1.2.1 Prerequisite

1.3 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##) Socket programming assignments in Python (pa##)

1.4 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:

Open/free textbooks:
* https:_www.computer-networking.info/ (http:_cnp3book.info.ucl.ac.be/)
* free, 2 different versions; 1st ed explicitly mimics the above book
* http://intronetworks.cs.luc.edu/
* https://www.homenethowto.com/
* https://www.wikipendium.no/ID203012_Computer_Networks_and_network_programming
* http://etutorials.org/Networking/

1.5 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.

1.6 Which programming language for this class?

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