CS476/576: Programming Models for Emerging Platforms, Fall 2020
The landscape of computation platforms has changed dramatically in recent years. Multi-core CPUs are commonly deployed in computer systems. Computing devices such as Unmanned Aerial Vehicles (UAVs) are on the horizon. Big data processing becomes an indispensable part of numerous applications. Programming on these emerging platforms remains a challenging task. This course introduces a number of state-of-the-art programming models on these platforms, and further explores the frontier of next-generation programming language design that may potentially impact the future programming practice for emerging platforms. In particular, the course investigates multi-core programming, UAV programming, and Big Data programming, with additional presentations on other platforms on the rise. Applications of these programming models range from high-performance computing, cyber-physical systems, databases, to energy-conscious systems.
An adventurous, creative, and non-conformist student is expected to be happier than one only willing to learn today's standard practices verbatim. If you have asked yourself "what will the programming practices look like in ten years?" this course might help you form educated guesses by offering a forward-looking glimpse.
Recommended TextbooksThere are no required textbooks for the course. Some recommendations are listed below. (More will be added as the course progresses.)