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
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