Internet, Web & Cloud Systems

Instructor: Wu-chang Feng
Zoom (T/Th 2pm-3:50pm): link
Contact and discussion: Office hours: here over Zoom
TA: Sree Vandana (OdinID sreev2 , DM @Sree Vandana
TA Office hours Zoom (Mon 10-noon): link
Course Description This class provides an overview of networked computing systems including their history and evolution. Topics covered include Internet protocols, virtual machines, containers, web servers, web applications, and databases as well as their deployment in the cloud. The course is intended as an overview course that will allow students to better choose from elective courses that provide more in-depth coverage of each topic. Aside from lecture material, the coursework consists of hands-on lab exercises, a lab notebook, homework assignments, and a final project.


Week Topic Assignments Due
1 Internet overview, ARP, DHCP
Labs, HW1 Homework #1 (Fri)
2 NAT, IPv6, Network virtualization, SDNs, ICMP, UDP, TCP
Labs Week #1 Labs (Mon)
3 Web programming languages, MVC, web frameworks, Python (to decorators)
Python, Flask, nginx/wsgi, Databases and SQL/NoSQL
Labs, HW2 Week #2 Labs (Mon)
4 Databases (ORMs, Web APIs, JSON/REST/gRPC/GraphQL)
Virtualization and Virtual Machines (Type 1, Type 2), Containers (Docker), Unikernels
Labs, HW3 Week #3 Labs (Mon)
HW #2 (Fri, 10/22)
5 Cloud Computing overview, Cloud Security, IAM (GCP)
IAM (AWS), Infrastructure as a service, Databases as a Service
Labs Week #4 Labs (Mon)
HW #3 (Fri, 10/29)
6 Serverless platforms (Platform as a service)
Serverless containers and functions (Functions and containers as a service)
Labs, HW4 Week #5 Labs (Mon)
7 Infrastructure as Code (Kubernetes, Deployment Manager)
Labs Week #6 Labs (Mon)
HW #4 (Fri, 11/12)
8 Machine learning APIs, OAuth2 APIs
Backend as a Service
Labs Week #7 Labs (Mon)
9 Data Warehousing Labs, Final project Week #8 Labs (Mon)
10 Data processing, Hadoop/MapReduce/Spark/Beam
Advanced: CDN
Advanced: HTTP/2, QUIC
Advanced: Data backends
Labs Week #9 Labs (Mon)
Finals Final project   Week #10 Labs (Mon, 12/6)
Final project (Fri, 12/10)


Labs and notebook
Lab assignments will be given each class covering the course material. You will perform each one, while maintaining a lab notebook in a Google Doc that documents your progress via screenshots with your OdinID in them. The notebook should also include answers to any questions in the labs.  Notebooks should be exported as a PDF file and include a table of contents generated by Google Docs. Submission will be done via adding, committing and pushing the file to your private git repository. Use the following naming convention to submit your notebooks.
  • notebooks/<week_number>.pdf e.g. notebooks/Week1.pdf
The notebook will be graded based upon the following rubric:
  • Neatness and organization
  • Completeness
  • Inclusion of OdinID or project identifier in screenshots
Throughout the term, homework assignments will be given that are to be done individually and submitted via your git repository and a public DockerHub repository. Instructions and rubrics for each homework will be given as they are assigned.

Final project
A final project will be assigned for you to do individually. It will involve building a web application of your own that utilizes Machine Learning APIs of your choice (Vision, Natural Language Processing, Speech, Video Intelligence, Translate, etc) or other APIs you choose (e.g. Maps, Knowledge Graph, Nutritionix, Yelp, LiFX, etc.). The web application can either build off of your previous homework or be a completely new application. Detailed instructions will be given when the project is assigned.

Course objectives

  • Understand Internet networking and how it has enabled the cloud.
  • Perform web development and construct web applications backed by databases.
  • Utilize virtual machines and containers as building blocks for constructing services.
  • Adapt applications to models of service and storage supported by cloud computing providers.
  • Utilize cloud tools for data analysis and machine learning applications


Attendance and participation 5%
Homework 30%
Lab Notebook 45%
Final Project Demo and Walkthrough 20%
Attendance and participation
Whether you are in-person or remote, class is synchronous and attendance is graded. Sometime during each class, the attendance form linked above will be enabled. Visit it and submit the form to record your attendance. If you miss class, extra credit will be given back for participation in the Slack channel. You are expected to follow this code of conduct when communicating.
Academic misconduct
  • Includes allowing another student to copy your work unless specifically allowed by the instructor.
  • Includes copying blocks of code from external sources without proper attribution
  • Results in a grade of 0 for the assignment or exam.
  • Results in the initiation of disciplinary action at the university level.