Internet, Web & Cloud Systems

Instructor: Wu-chang Feng
Contact and discussion: Office hours: here
TA: TBD (DM @tbd on pdx-cs.slack.com)
TA Office hours: TBD
Resources
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.

Schedule

Week Topic Assignments Due
1 Internet overview, ARP, DHCP
IP
Labs | HW1 Homework #1 (Fri)
2 IP addressing, ICMP, NAT, Network virtualization, SDNs, UDP, TCP, TLS, HTTP, DNS
Web programming languages, MVC, web frameworks
Labs Week #1 Labs (Mon)
3 Python, Flask, nginx/wsgi
Databases and SQL/NoSQL, ORMs, Web APIs, (JSON/REST/gRPC/GraphQL)
Labs | HW2 Week #2 Labs (Mon)
4
Virtualization and Virtual Machines (Type 1, Type 2), Containers (Docker), Unikernels
Cloud Computing overview
Labs | HW3 Week #3 Labs (Mon)
HW #2 (Fri)
5
Cloud Security, Storage, Compute continuum,
Infrastructure as a service
Databases as a Service
Labs | HW4 Week #4 Labs (Mon)
HW #3 (Fri)
6
Serverless platforms (Platform as a service)
Serverless containers and functions (Functions and containers as a service)
Labs Week #5 Labs (Mon)
7 CDN
Infrastructure as Code (Kubernetes, CloudFormation/CDK, Deployment Manager)
APIs
Labs Week #6 Labs (Mon)
HW #4 (Fri)
8
Machine learning APIs
Backend as a Service
Labs | Final project Week #7 Labs (Mon)
9 Data Warehousing Labs Week #8 Labs (Mon)
10 Data processing, Hadoop/MapReduce/Spark/Beam
Advanced: HTTP/2, QUIC
Labs Week #9 Labs (Mon)
Finals Final project   Week #10 Labs (Mon)
Final project screencast on MediaSpace(Fri)
Screencast URL and code in repo (Fri)

Assignments

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
Homework
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
 

Policies

Grading
Attendance and participation 5%
Homework 35%
Lab Notebook 40%
Final Project Demo and Walkthrough 20%
Attendance and participation
Although we are remote, the class is synchronous and attendance is graded. Sometime during each Zoom class, this Google Form will be enabled for you to register your attendance. If you miss class, extra credit is 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.