This class is aimed at graduate students and seniors/juniors who are strong/competent programmers. Graduate students should have taken ECE 551 and ECE 550, and be in (or have already taken) ECE 650 [or have equivalent background]. Undergraduates should have had CS 308, ECE/CS 250, and be in (or have already taken) Networking, and Databases.
I will assume you are a completely capable programmer at the start of this course.
Course Resources
- We will be using Piazza for class discussions/questions etc. I will also post various announcements, assignment corrections/clarifications, and so forth here.
- The course syllabus (Spring 2018)
- OIT's vcm site, where you will obtain your VM. Details of specific provisioning requirements coming soon.
- Recommended list of package to install on your VM: gcc g++ make valgrind emacs screen git postgresql-9.5 python python3-pip libssl-dev libxerces-c-dev libpqxx-dev manpages-posix-dev
- A quick intro to Python
- The Django Tutorial is here
- The midterm from 2017.
Readings:
- https://tools.ietf.org/html/rfc2119
- http://onstartups.com/tabid/3339/bid/97052/How-To-Survive-a-Ground-Up-Rewrite-Without-Losing-Your-Sanity.aspx
- https://status.cloud.google.com/incident/compute/16007
Homework Assignments
- Event RSVP Website
- Caching Web Proxy
- Security Analysis of Another Group's Hwk 1+2
- Scalable "Exchange Matching" server
- Project description .
Lectures
This is what I expect for a schedule, but (except for exam dates) is subject to change:
Tuesday Lecture | Thursday Lecture |
Jan 9: (no class: Winter Break) | Jan 11: Intro/VM Setup |
Jan 16: Server Software | Jan 18: (Snow day) |
Jan 23: Protocol/Server Concepts | Jan 26: Web Protocols/Technologies |
Jan 30: Unix Daemons | Feb 1: Unix Daemons (cont'd) |
Feb 6: Guest lecture: Drew Stinnett | Feb 8: Containers |
Feb 13: Guest lecture: CI/CD | Feb 15: Errors/Exceptions |
Feb 20: Security: Intro/Authentication | Feb 22: Security: Cryptography |
Feb 27: High Availability (Tyler Bletsch) | Mar 1: Disaster Recovery (Tyler Bletsch) |
Mar 6: Security: Attacks | Mar 8: Defense in Depth |
Mar 13: Spring Break (no class) | Mar 15: Spring Break (no class) |
Mar 20: Midterm Exam | Mar 22: Performance + Scalability |
Mar 27:Performance + Scalability | Mar 29: Performance + Scalability |
April 3: IO Performance (Tyler Bletsch) | April 5: Guest Lecture: Salman Azhar |
April 10: Guest Lecture: Ken Edwards | April 12: Guest Lecture Ravi Soundararajan |
April 17: Guest Lecture: Vlad Petric | April 19: Guest Lecture: Jim Posen |