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 or ECE 205) and 332 and (311 or ECE 367) and 314; or consent. (Once a year)