Teaching

This course presents fundamental ideas and techniques of modern algorithm design and analysis. After completing this course, students should be able to analyze and design efficient algorithms for a variety of computational problems. Students will learn a variety of algorithm design techniques, how to apply them to different problems, and how to choose which technique should be used for which problem.

This course is an interdisciplinary introduction to network resilience and its applications in science and engineering. Classes will interchangeably present the chapters from these textbooks with an emphasis on the current active research papers related to network resilience, robustness, stability, and control. Topics to be covered include graph theory, resilience, dynamical systems, data analysis, and applications to biology, ecology, sociology, technology, and other fields. Students will learn about the ongoing research in the area and ultimately apply their knowledge to conduct their research by analyzing real network data sets of their choosing as part of the final project.

Networks are everywhere. This course is an interdisciplinary introduction to the emerging science of complex networks and their applications. Topics to be covered include the mathematics of networks, data analysis, network visualization, and applications to ecology, biology, sociology, technology, and other fields. Students will learn about the ongoing research in the field and ultimately apply their knowledge to conduct their own analysis and visualization of real-world networks.