Description: The emergence of quantum computing and information science has fundamentally reshaped computer science. It introduces new quantum approaches—including algorithms, complexity theory, and protocols—for solving classical computational tasks while also defining novel computational problems motivated by physics, chemistry, materials science, and more. This course is designed for senior undergraduates and graduate students with prior knowledge of algorithms and quantum computing. It aims to equip students with fundamental theoretical tools for designing rigorous quantum approaches to both classical and quantum computational problems, preparing them for research in the field. The course is structured into two main parts: 1. Quantum Algorithms and Complexity for Classical Problems ● Develop core toolkits for designing quantum algorithms for classical computational tasks. ● Demonstrate how these toolkits can lead to algorithms that outperform classical counterparts. ● Introduce fundamental tools in quantum complexity theory and apply them to establish the limits and advantages of various quantum computing models. 2. Quantum Algorithms and Complexity for Quantum Data ● Build foundational knowledge of quantum information theory, including key properties and measures of quantum states and processes. ● Learn algorithmic techniques for preparing, testing, and learning quantum states and quantum processes. ● Study emerging quantum complexity theoretical frameworks to analyze the computational hardness of these quantum tasks. By the end of the course, students will have a strong theoretical foundation and practical toolkits for developing quantum algorithms and analyzing hardness of classical and quantum problems, enabling them to contribute to cutting-edge research in quantum computer science. Cross-list: COMP 575. Recommended Prerequisite(s): COMP 458 or ELEC 468 Mutually Exclusive: Cannot register for COMP 475 if student has credit for COMP 575.