Principles of concurrent and high performance programming. Multi-threading in C and Java for shared-memory programming. Distributed memory programming with Java. Introduction to cluster computing. A-F only. Pre: 212 and 322 and (311 or EE 367) and 314, or consent. (Once a year)