Fizemos parcerias com os professores da faculdade Dartmouth, Tom Cormen e Devin Balkcom, para ensinar algoritmos introdutórios de ciência da computação, incluindo busca, ordenação, recursividade, e teoria dos grafos. Aprenda com uma combinação de artigos, visualizações, perguntas, e desafios de programação.

O que são algoritmos e por que você deveria se importar com eles? Vamos começar com uma visão geral de algoritmos, e então discutir sobre dois jogos nos quais você poderia usar um algoritmo para resolvê-los de forma mais eficiente - o jogo da adivinhação do número, e o jogo de encontrar uma rota.

Aprenda sobre a busca binária, uma forma de fazer uma busca eficiente em um array de itens com a diminuição do espaço de busca pela metade a cada vez.

Aprenda a usar as análises assintóticas para descrever a eficiência de um algoritmo, e a usar notação assintótica (Big O, Big-Theta, e Big-Omega) para descrever a eficiência com mais precisão.

Aprenda o insertion sort, outra forma simples, mas não muito eficiente, de ordenar um array de valores.

Use a técnica recursiva para resolver as Torres de Hanoi, um desafio matemático clássico e declaradamente enfrentado por monges em um templo.

Aprenda o merge sort, um algoritmo de ordenação mais eficiente que se baseia fortemente no poder da recursividade para, repetidamente, ordenar e misturar subarrays.

Aprenda o quick sort, outro algoritmo de ordenação eficiente que usa recursividade para ordenar um array de valores mais rapidamente.

Aprenda a descrever grafos, com suas arestas, vértices, e pesos, e veja formas diferentes de armazenar dados em grafos, com listas de arestas, matrizes de adjacência, e listas de adjacência.

Learn how to traverse a graph using breadth-first-search to find a particular node or to make sure you've visited all the nodes, traversing one layer at a time.

Ideias de como você poderia continuar sua jornada de aprendizagem em algoritmos.