Essa disciplina introduz a base do pensamento computacional e algorítmico. Os dois livros nos quais a disciplina se baseia estão referenciados no final dessa nota. Por enquanto estou decidindo seguir mais com o Grokking Algorithms, gostei bastante da proposta e da forma como ele se estrutura. Apesar disso, as notas compilam conteúdo tanto das aulas quanto de ambos os livros, quando necessário.

Classes

Backtracking

Book

O livro-base da disciplina é o Grooking Algorithms, um livro com várias ilustrações que busca mostrar de forma intuitiva os conceitos de algoritmos.

Chapter 1

This chapter introduces the basics of algorithms and how to measure the runtime of an algorithm.
Binary search
Big O notation

Chapter 2

Here we are introduced to the first two basic data structures. We also are presented to our first and more basic sorting algorithm.
Arrays and linked lists
Selection sort

Chapter 3

This chapter focus only on the topic of recursion, from its core concept to call stacks and so on.
Recursion

Chapter 4

This chapter focus on using recursion to solve more complex problems and introduces the quicksort algorithm.
Divide and conquer
Quicksort

Chapter 5

Here we are presented to hash tables and its uses.
Hash tables
Hash function

Chapter 6

This chapter presents the concept of graphs and some algorithms to work with them.
Graphs
Breadth-first search

Chapter 7

Still in the context of graphs we are presented to new concepts and ways to work with them.
Weighted graphs
Dijkstra’s algorithm