Engineering Robust Server Software

ECE 568 - Spring 2026

Schiciano A (1464) - Wed/Fri 8:30-9:45am

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 assume you are a completely capable programmer at the start of this course.

Contact Info

Links

Course Resources

Readings

Assignments

See Canvas "Assignments" page for Assignment materials. All submissions due at 11:59pm eastern on the specified day.
  1. Homework #1: (due Feb. 7)
  2. Homework #2: (due Mar. 3)
  3. Homework #3: (due Mar. 21)
  4. Homework #4: (due Apr. 4)
  5. Project: (due Apr. 25)
    • Project group chosen (due Mar. 27)
    • Project protocol spec (due Apr. 10)

Schedule

Wednesday Lecture Friday Lecture
Jan 7: n/a Jan 9: Intro/Overview
Jan 14: Server Software Jan 16: Protocols and APIs
Jan 21: Web Protocols and Technologies
Additional Resource
Jan 23: Unix Daemons
Jan 28: Unix Daemons Jan 30: Containers
Feb 4: Errors and Exceptions Feb 6: Finish Errors and Exceptions
Feb 11: Security: Introduction Feb 13: Security: Cryptography
Feb 18: Security: Vulnerabilities Feb 20: Security: Defense in Depth
Feb 25: High Availability Feb 27: Disaster Recovery
Mar 4: Performance and Scalability: Part 1 Mar 6: Midterm Review
Mar 11: Spring Break (no class) Mar 13: Spring Break (no class)
Mar 18: Midterm exam
(Sample Midterm)
(Midterm Study Guide)
Mar 20: Performance and Scalability: Part 2
Mar 25: Finish Perf & Scalability: Part 2 Mar 27: Performance and Scalability: Part 3
Apr 1: I/O Performance Apr 3: Guest Lecture
Apr 8: Guest Lecture Apr 10: Guest Lecture
Apr 15: Review for final exam Apr 17: No graduate classes
Final Exam - Wednesday, April 29, 9:00am - 12:00pm (in class)