We may earn an affiliate commission when you visit our partners.
Kyle Stewart-Franz, Abe Feinberg, and Brynn Claypoole
Learn about the basic algorithms used in programming.

What's inside

Syllabus

Get familiar with and practice greedy algorithms.
Learn about the many aspects of graph algorithms!
Learn about dynamic programming and apply your learnings to challenging exercises.
Read more
A*
In this project, you will build a route-planning algorithm like the one used in Google Maps to calculate the shortest path between two points on a map.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores various graph algorithms, a fundamental skill in computer science
Taught by experienced instructors Kyle Stewart-Franz, Abe Feinberg, and Brynn Claypoole
Covers important topics like greedy algorithms, dynamic programming, and A*
Offers practical exercises to reinforce learning concepts
Skills acquired are valuable for software developers and those interested in computer science
Requires a basic understanding of programming concepts

Save this course

Save Advanced Algorithms to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Advanced Algorithms with these activities:
Review the basics of graph theory
Knowing the basics of graph theory will improve your understanding of graph algorithms.
Browse courses on Graph Theory
Show steps
  • Read a textbook or online resource on the basics of graph theory.
  • Watch video lectures on graph theory.
  • Solve practice problems on graph theory.
Solve practice problems on greedy algorithms
Solving practice problems will help you develop your skills in applying greedy algorithms.
Browse courses on Greedy Algorithms
Show steps
  • Find a set of practice problems on greedy algorithms.
  • Solve the practice problems.
  • Review your solutions and identify areas for improvement.
Read 'Introduction to Algorithms' by Cormen, Leiserson, and Rivest
This book provides a comprehensive overview of algorithms, including graph algorithms.
Show steps
  • Read the book.
  • Solve the practice problems in the book.
Two other activities
Expand to see all activities and additional details
Show all five activities
Write a blog post about a recent breakthrough in graph algorithms
Writing a blog post will help you deepen your understanding of graph algorithms and improve your communication skills.
Browse courses on Graph Algorithms
Show steps
  • Research recent breakthroughs in graph algorithms.
  • Write a blog post explaining the breakthrough in clear and concise terms.
  • Share your blog post with others.
Develop a graph algorithm to solve a real-world problem
Developing a graph algorithm to solve a real-world problem will give you hands-on experience in applying your knowledge.
Browse courses on Graph Algorithms
Show steps
  • Identify a real-world problem that can be solved using a graph algorithm.
  • Design and implement a graph algorithm to solve the problem.
  • Test and evaluate your algorithm.

Career center

Learners who complete Advanced Algorithms will develop knowledge and skills that may be useful to these careers:
Software Engineer
A Software Engineer is responsible for designing, implementing, and maintaining software systems. They work with a variety of programming languages and technologies to create software that meets the needs of users. This course can help Software Engineers build a foundation in advanced algorithms, which are essential for developing efficient and effective software systems.
Machine Learning Engineer
A Machine Learning Engineer is responsible for developing and deploying machine learning models. They work with a variety of machine learning algorithms and techniques to create models that can learn from data and make predictions. This course can help Machine Learning Engineers build a foundation in advanced algorithms, which are essential for developing effective machine learning models.
Data Scientist
A Data Scientist is responsible for collecting, analyzing, and interpreting data to help businesses make informed decisions. They use a variety of statistical and machine learning techniques to identify patterns and trends in data. This course can help Data Scientists build a foundation in advanced algorithms, which are essential for developing effective data analysis models.
Quantitative Analyst
A Quantitative Analyst is responsible for developing and using mathematical and statistical models to analyze financial data. They use these models to make predictions about future financial trends. This course can help Quantitative Analysts build a foundation in advanced algorithms, which are essential for developing effective financial models.
Operations Research Analyst
An Operations Research Analyst is responsible for using mathematical and analytical techniques to solve problems in business and industry. They use these techniques to improve efficiency and productivity. This course can help Operations Research Analysts build a foundation in advanced algorithms, which are essential for developing effective operational models.
Computer Scientist
A Computer Scientist is responsible for studying the theory and practice of computing. They work on a variety of topics, including algorithms, data structures, and computer architecture. This course can help Computer Scientists build a foundation in advanced algorithms, which are essential for developing effective computer systems.
Algorithm Engineer
An Algorithm Engineer is responsible for designing and analyzing algorithms. They work on a variety of applications, including computer graphics, gaming, and robotics. This course can help Algorithm Engineers build a foundation in advanced algorithms, which are essential for developing effective algorithms.
Game Developer
A Game Developer is responsible for designing, developing, and testing video games. They work with a variety of programming languages and technologies to create games that are fun and engaging. This course can help Game Developers build a foundation in advanced algorithms, which are essential for developing effective game AI.
Robotics Engineer
A Robotics Engineer is responsible for designing, building, and testing robots. They work with a variety of hardware and software technologies to create robots that can perform a variety of tasks. This course can help Robotics Engineers build a foundation in advanced algorithms, which are essential for developing effective robot control systems.
Financial Analyst
A Financial Analyst is responsible for analyzing financial data to make investment recommendations. They use a variety of financial models and techniques to identify undervalued stocks and bonds. This course can help Financial Analysts build a foundation in advanced algorithms, which are essential for developing effective financial models.
Data Engineer
A Data Engineer is responsible for designing, building, and maintaining data pipelines. They work with a variety of data sources and technologies to create data pipelines that are reliable and efficient. This course can help Data Engineers build a foundation in advanced algorithms, which are essential for developing effective data pipelines.
Software Architect
A Software Architect is responsible for designing and developing software systems. They work with a variety of stakeholders to create software systems that meet the needs of users and businesses. This course can help Software Architects build a foundation in advanced algorithms, which are essential for developing effective software architectures.
Systems Analyst
A Systems Analyst is responsible for analyzing and designing computer systems. They work with a variety of stakeholders to create systems that meet the needs of users and businesses. This course can help Systems Analysts build a foundation in advanced algorithms, which are essential for developing effective computer systems.
Database Administrator
A Database Administrator is responsible for managing and maintaining databases. They work with a variety of database technologies to ensure that databases are reliable and efficient. This course can help Database Administrators build a foundation in advanced algorithms, which are essential for developing effective database management systems.
Web Developer
A Web Developer is responsible for designing and developing websites. They work with a variety of programming languages and technologies to create websites that are user-friendly and efficient. This course may help Web Developers build a foundation in advanced algorithms, which can be useful for developing complex website features.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Advanced Algorithms.
Classic textbook on algorithms and data structures. It provides a comprehensive overview of the field, and it valuable resource for anyone who wants to learn more about algorithms.
Comprehensive textbook on integer programming. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about integer programming.
Comprehensive textbook on linear programming. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about linear programming.
Comprehensive textbook on nonlinear programming. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about nonlinear programming.
Comprehensive textbook on convex optimization. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about convex optimization.
This multi-volume work that provides a comprehensive treatment of the art of computer programming. It valuable resource for anyone who wants to learn more about the design and analysis of algorithms.
Comprehensive textbook on algorithmics. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about the foundations of algorithms.
Comprehensive textbook on network flows. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about network flows.
Comprehensive textbook on combinatorial optimization. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about combinatorial optimization.
Comprehensive textbook on data structures and algorithms in Java. It valuable resource for anyone who wants to learn how to implement efficient data structures and algorithms in Java.
Comprehensive textbook on algorithms and data structures in C++. It valuable resource for anyone who wants to learn how to implement efficient data structures and algorithms in C++.
Comprehensive textbook on machine learning. It provides a rigorous treatment of the subject, and it valuable resource for anyone who wants to learn more about machine learning.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser