This graduate-level course (also open to senior undergraduate students) provides advanced discussions on parallel
computing and its applications. A combination of lectures, research presentations, and course projects will expose
students to high-performance algorithms, fast numerical computations, and parallel programming models. Students
will learn how to write fast code for various scientific applications to execute on modern high-performance
In the cloud computing course, I cover basic concepts of cloud computing and its applications.
Today, cloud computing systems are build using core techniques and algorithms in distributed systems. I teach students how these core techniques are used to design some of the most popular cloud computing engines and frameworks.
In the second part of the class, students learn how to use state-of-the-art cloud computing engines to solve large-scale data-intensive problems. Using Amazon Web Services and through a semester-long project students get hands-on experience working with cloud computing platforms and services.