The benefit of learning together with your friend is that you keep each other accountable and have meaningful discussions about what you're learning.

Courtlyn
Promotion and Events SpecialistThe only prerequisites are high school algebra, comfort with mathematical arguments, and working knowledge of at least one programming language. Participants will use Python for the coding assignments, so some familiarity with Python and Jupyter Notebook is helpful, but not required.
TBD
10 weeks, online
5-10 hours/week
Our participants tell us that taking this program together with their colleagues helps to share common language and accelerate impact.
We hope you find the same. Special pricing is available for groups.
The benefit of learning together with your friend is that you keep each other accountable and have meaningful discussions about what you're learning.
Courtlyn
Promotion and Events SpecialistBased on the information you provided, your team is eligible for a special discount, for Introduction to Algorithms and Data Structures starting on TBD .
We’ve sent you an email with enrollment next steps. If you’re ready to enroll now, click the button below.
Have questions? Email us at group-enrollments@emeritus.org.There is a rapidly growing demand for technology professionals who understand the ways in which algorithms drive today’s world. The number of technical professionals who list “algorithms and data structures” among their skills is increasing by 25% year over year, according to LinkedIn Insights. Keep pace with this rapidly growing field by enrolling in Algorithms and Data Structures, an online program offered by Carnegie Mellon University's School of Computer Science Executive Education. Participants receive an in-depth understanding of the design principles behind real-world, problem-solving algorithms, as well as the data structures that support them.
SOURCE: Forbes
Software engineers and developers, as well as early-career technology graduates and other IT professionals, will gain an in-depth understanding of algorithms and data structures. Over the course of 10 weeks, you will:
Each of the 10 modules focuses on a specific type of algorithm or data structure, encompassing an array of computational theories and applications.
Learn fundamental concepts of algorithm design, including:
Delve deeper into time complexity and learn to prove upper and lower bounds (worst and best possible runtime) of comparison-based algorithms, including:
Learn when to apply greedy algorithms, which are designed for rapid optimization, including:
Learn dynamic programming algorithms and explore their real-world applications, including:
Explore data structures, such as hash tables and data streams, and apply them to solve computational problems, including:
Learn the fundamental concepts of network flows and how to use max-flow algorithms to solve optimization problems, including:
Formulate and solve linear programming (LP) problems, including:
Understand the concepts of P (polynomial time problems) and NP, a wider class of problems that are potentially intractable, including:
Learn to formulate multiplicative weights algorithms (frequently used in prediction, learning, and optimization systems) and prove their correctness, including:
Learn the definition, core concepts, and applications of gradient descent (GD)—a method commonly used to solve optimization and machine learning problems, including:
Learn fundamental concepts of algorithm design, including:
Learn the fundamental concepts of network flows and how to use max-flow algorithms to solve optimization problems, including:
Delve deeper into time complexity and learn to prove upper and lower bounds (worst and best possible runtime) of comparison-based algorithms, including:
Formulate and solve linear programming (LP) problems, including:
Learn when to apply greedy algorithms, which are designed for rapid optimization, including:
Understand the concepts of P (polynomial time problems) and NP, a wider class of problems that are potentially intractable, including:
Learn dynamic programming algorithms and explore their real-world applications, including:
Learn to formulate multiplicative weights algorithms (frequently used in prediction, learning, and optimization systems) and prove their correctness, including:
Explore data structures, such as hash tables and data streams, and apply them to solve computational problems, including:
Learn the definition, core concepts, and applications of gradient descent (GD)—a method commonly used to solve optimization and machine learning problems, including:
Try-it Activities
Live Office Hours
Knowledge Checks
Discussion Board Activities
Programming Assignments
![]()
David P. Woodruff
Associate Professor, Department of Computer Science, Carnegie Mellon University
David Woodruff is an associate professor in CMU's Computer Science Department. A recipient of the 2021 Herbert Simon Award for Teaching Excellence in Computer Science, he has taught algorithm programs since joining CMU in 2017.
Over his professional career, David has been a member of the Visiting Faculty Program at Google's Mountain View Research Division; research scientist at the IBM Almaden Research Principles and Methodologies Group; and visiting scholar at the Tsinghua University Institute for Theoretical Computer Science. He is author of the book Sketching as a Tool for Numerical Linear Algebra and more than 200 articles for refereed publications. He holds a Ph.D. in computer science from the Massachusetts Institute of Technology.
![]()
Anupam Gupta
Professor, Department of Computer Science, Carnegie Mellon University
Anupam Gupta is a professor in CMU's Computer Science Department. He taught Graduate Algorithms at CMU in the Spring 2021 semester. He is recipient of the 2019 Herbert Simon Award for Teaching Excellence in Computer Science
Anupam's research interests include theoretical computer science, with an emphasis on algorithms for uncertain environments and metric embeddings. He has received a CAREER Award and an Alfred P. Sloan Research Fellowship. In addition, he is a member of the Joint Indo-US Networked Center for Algorithms Under Uncertainty and has published more than 160 papers. He holds a Ph.D. in computer science from the University of California, Berkeley, and a B.Tech from the Indian Institute of Technology, Kanpur.
Upon successful completion of the program, participants will receive a verified digital certificate of completion from Carnegie Mellon University's School of Computer Science Executive Education. Participants must complete 60 percent of the required activities including a capstone project (if any) to obtain the certificate of completion. This is a training program and it is not eligible for academic credit.
Download BrochureYour digital certificate will be issued in your legal name and emailed to you at no additional cost, upon completion of the program, per the stipulated requirements. All certificate images are for illustrative purposes only and may be subject to change at the discretion of Carnegie Mellon University's School of Computer Science Executive Education.