Hard prereq: CSC301
Recommended: SE350 (patterns), CSC376 (distributed systems), CSC347 (programming languages).