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