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.
- 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 2017)
- OIT's vm-manage site, where you will obtain your VM. Be sure to select "Engineering Robust Server Software" for your provisioning in Step 3.
- 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
- The Django Tutorial is here
- Caching Web Proxy
- Event RSVP Website
- Security Analysis of Another Group's Hwk2
- Scalable "bank" server
- Project description .
This is what I expect for a schedule, but (except for exam dates) is subject to change:
|Tuesday Lecture||Thursday Lecture|
|Jan 10: (no class: Winter Break)||Jan 12: Intro/VM Setup|
|Jan 17: Server Software||Jan 19: Web Protocols/Technologies|
|Jan 24: Unix Daemons||Jan 26: Unix Daemons (cont'd)|
|Jan 31: Django Intro||Feb 2: Django (cont'd)/ AJAX Basics|
|Feb 7: Guest lecture: Broad Systems Picture||Feb 9: Security|
|Feb 14: Cryptography (Tami Guest Lecture)||Feb 16: Vulnerabilities|
|Feb 21: Guest lecture: Tara Gu||Feb 23: Exceptions|
|Feb 28: Atomicity||Mar 2:High Availability (Tyler Bletsch)|
|Mar 7: Disaster Recovery (Tyler Bletsch)||Mar 9: Guest Lecture: Melissa Fritcher|
|Mar 14: Spring Break (no class)||Mar 16: Spring Break (no class)|
|Mar 21: Midterm Exam||Mar 23: Performance + Scalability|
|Mar 28:Performance + Scalability||Mar 30: Performance + Scalability|
|April 4: Performance + Scalability||April 6: IO Scalability (Tyler Bletsch)|
|April 11: Lock Free Data Structures||April 13: Design for Failure (Jim Posen)|
|April 18: ACID, CAP, NewSQL (Vlad Petric)|