CS2910
Schedule

This is an old version of this course, from Fall 2015. A newer version is available here.

Jump to the Current Week


Week 1

  • Lecture 1:
    • (Labor Day)
  • Lab:
    • In Lab:
      • See slides for today's lecture. I will bring a printout.
      • Course introduction
      • Class exercise: Networking Sand Blaster
      • Layers in the Internet Stack
      • Packet Encapsulation
      • Wireshark is a "packet sniffer" that supports logging and analysis of network traffic. In this course, we will use it as a tool to learn about network protocols and to find and fix problems with network applications, like using an oscilloscope to study the behavior of an electronic circuit.
      • Install Python development environment
        • Go to the Python Windows downloads page
        • Select the latest Python 2 (not Python 3) installer (e.g., Python 2.7.10)
        • On the Python release page, download an appropriate MSI Installer for your Windows environment (i.e., X86-64 for the freshman laptop).
        • Invoke the installer package to install Python on your system.
        • During installation, on the "Customize Python" page, select "Add python.exe to Path" for installation.
        • (You can also add the Python install directory to your system path manually using these instructions,
        • You may want to explore the Python Mind Map sections 3.3 and 3.3.2.)
      • Install JetBrains PyCharm (Python IDE from the maker of IntelliJ)
        • Download either the Professional or the Community Edition.
        • If you choose the Professional Edition, request a student account with your MSOE email. Once you complete the account creation process, you can use it to log in during the professional edition install. If you choose the Community Edition, just install it normally.
  • Lecture 2:

Week 2


Week 3

  • Lecture 1:
    • Class exercise:
      • Methods in Python
      • Long procedure design
      • What is a protocol?
      • Using TCP in Python
  • Lab:
  • Lecture 2:
    • Assignment (due before the start of class):
      • Complete Quiz
    • In Class:
      • In-class Quiz 2
        • Encoding bits and bytes
          • By hand, as on Quiz 1
          • In Python
        • Python syntax
      • Reading a protocol specification
        1. What is the HTTP date/time stamp format? What time zones may be used?
        2. When is a Content-Length header forbidden?
        3. What should an HTTP/1.1 client do if it does not know how to handle "chunked" transfer encoding?
        4. What does an If-Modified-Since header do?
        5. What is the most common form of Request-URI? What other forms are defined?
        6. What is escaped encoding ("% HEX HEX") in a Request-URI? What RFC defines it?
        7. In an HTTP response, what is the difference between "Moved Permanently" and "Temporary Redirect" status?
        8. How is the Location header used?
        9. How does "pipelining" work with persistent connections?
        10. What is the difference between GET and HEAD methods in an HTTP request?

Week 4


Week 5


Week 6


Week 7

  • Lecture 1
    • Assignment (due before the start of the lecture))
      • Install Thunderbird mail client
    • In Class
      • Creating and interpreting SMTP sessions
  • Lab:
  • Lecture 2
    • Assignment
    • In Class
      • Paper Quiz: Encoding/decoding fixed-width formats like UDP. See email from Dr. Yoder for details.
      • Fetching email with IMAP
      • Python exercise

Week 8

  • Lecture 1
    • Assignment:
      • Complete Online Quiz - Finding an interesting character
    • In Class
      • IMAP with Python
      • Encoding Internet Messages (email)
      • Unicode and UTF8 in Python — In-class demo

Week 9


Week 10

  • Lecture 2:
    • In class:
      • Wrap-up exercise
      • Review

Exam week

  • Final exam - Wednesday 11am-1pm L304 (Morning Section) and L305 (Afternoon Section) (18 Nov 2015)
    • Morning Section - Section 001
    • Afternoon Section - Section 002

Acknowledgement: Original schedule created by Dr. Mark Sebern