Algorithms

Algorithms are a core topic of computer science, and they're key to doing high-value work with computers such as performance optimization, data retrieval, and data analysis.  Use resources in this section to learn the high-level concepts behind algorithms, how to code them, and how to optimize them.

What is Algorithms?

Learning algorithms are a subset of artificial intelligence used to improve the performance of a model by tweaking its parameters. Data scientists use learning algorithms to automatically adjust the model based on feedback from data. The goal is to find the best combination of weights and biases that minimize prediction error.

There are three main types of learning algorithms:

Supervised learning: The model is trained on a labeled dataset, where the correct answers are known. This is the most common type of learning algorithm and is used for tasks like image classification and predictive analytics.

Unsupervised learning: The model is trained on an unlabeled dataset, where the correct answers are not known. This type of learning algorithm is used for tasks like clustering and dimensionality reduction.

Reinforcement learning: The model is trained through trial and error, receiving rewards for correct predictions and penalized for incorrect predictions. This type of learning algorithm is used for tasks like robotic control and game playing.

There are a variety of different types of learning algorithms, including linear regression, logistic regression, decision trees, and neural networks. Each of these algorithms has its own strengths and weaknesses, and choosing the right algorithm for a given problem can be a difficult task.

In general, though, learning algorithms are very powerful tools that can be used to solve a wide variety of problems. With the right data, they can be used to make predictions about everything from the weather to the stock market.

Algorithms Resources

CS303: Algorithms

CS303: Algorithms

This course focuses on the fundamentals of computer algorithms, emphasizing methods useful in practice. We look into the algorithm analysis as a way to understand behavior of computer programs as a function of its input size. Using the big-O notation...

Algorithms

Algorithms

We've partnered with Dartmouth college professors Tom Cormen and Devin Balkcom to teach introductory computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, q...

Introduction to Recommender Systems

Introduction to Recommender Systems

Recommender systems have changed the way people find products, information, and even other people. They study patterns of behavior to know what someone will prefer from among a collection of things he has never experienced. The technology behind reco...

Master Algorithmic Programming Techniques

Master Algorithmic Programming Techniques

The Specialization covers algorithmic techniques for solving problems arising in computer science applications. It is a mix of theory and practice: you will not only design algorithms and estimate their complexity, but you will get a deeper understan...

Approximation Algorithms Part I

Approximation Algorithms Part I

Approximation algorithms, Part I How efficiently can you pack objects into a minimum number of boxes? How well can you cluster nodes so as to cheaply separate a network into components around a few centers? These are examples of NP-hard combinatorial...

Approximation Algorithms Part II

Approximation Algorithms Part II

Approximation algorithms, Part 2 This is the continuation of Approximation algorithms, Part 1. Here you will learn linear programming duality applied to the design of some approximation algorithms, and semidefinite programming applied to Maxcut. By t...

Algorithmic Thinking (Part 2)

Algorithmic Thinking (Part 2)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process...

Algorithms on Strings

Algorithms on Strings

World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make sea...

Algorithm Master: Python

Algorithm Master: Python

This course guides students through learning Python, with an emphasis on algorithms and data structures. This track covers recursion, searching algorithms, sorting algorithms, big-O notation, and implementing various data structures. Students who ex...

Algorithmic Toolbox

Algorithmic Toolbox

Algorithmic Toolbox is course 1 of 6 in the Data Structures and Algorithms Specialization. The Specialization covers algorithmic techniques for solving problems arising in computer science applications. It is a mix of theory and practice: you will n...

Advanced Algorithms and Complexity

Advanced Algorithms and Complexity

You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in...