Material de Apoio
Slides
Aqui pode consultar os slides usados nas aulas
- 0 - Apresentação e Programa (útima alteração: 12/02/2021)
- 1 - Introdução ao Java (útima alteração: 12/02/2021)
- 2 - Sobre Programação Estruturada (útima alteração: 02/03/2021)
- 3 - Tipos Abstractos de Dados (útima alteração: 06/03/2021)
- 4 - Listas Ligadas (útima alteração: 21/03/2021)
- 5 - Complexidade Algorítmica (útima alteração: 01/05/2021)
- 6 - Recursividade (útima alteração: 14/05/2021)
- 7 - Árvores Binárias (útima alteração: 22/05/2021)
- 8 - Filas de Prioridade e Heaps (útima alteração: 22/05/2021)
Aulas Práticas
Aqui pode consultar o guião da aula. Pode também consultar de problemas disponíveis no Mooshak de EDados, uma lista de programas exemplo dados e uma pequena página de introdução ao Java.
- Aula Prática #01 - Introdução ao Java (15/02 a 19/02)
- Aula Prática #02 - Input/Output e Mooshak (22/02 a 26/02)
- Aula Prática #03 - Introdução a Classes (01/02 a 05/03)
- Aula Prática #04 - Programação Estruturada (08/02 a 12/03)
- Aula Prática #05 - Tipos Abstractos de Dados (15/03 a 19/03)
- Aula Prática #06 - Listas Ligadas Simples (22/03 a 26/03)
- Aula Prática #07 - Listas, Pilhas e Filas (29/03 a 02/04)
- Aula Prática #08 - Consolidação de Conhecimentos (Listas, Pilhas e Filas) (05/04 a 09/04)
- Aula Prática #09 - Revisões/Preparação para o 1º Teste Prático (03/05 a 07/05)
- Aula Prática #10 - Complexidade Algorítmica (10/05 a 14/05)
- Aula Prática #11 - Recursividade (17/05 a 21/05)
- Aula Prática #12 - Árvores Binárias (24/05 a 28/05)
- Aula Prática #13 - Árvores Binárias de Pesquisa (31/05 a 04/06)
Livros Recomendados
- Livro Principal:
- Data Structures and Algorithms in Java.
M Goodrich, R Tamassia and M Goldwasser, 6th Edition, Wiley, 2014.
- Data Structures and Algorithms in Java.
- Outros Livros Recomendados:
- Introduction to Algorithms.
TH Cormen, CE Leiserson, RL Rivest and C Stein, 3rd Edition, MITPress, 2009. - Introduction to Programming in Java: An Interdisciplinary Approach.
R. Sedgewick, K Wayne, 2nd Edition, Addison-Wesley, 2017. - Think Java: How To Think Like a Computer Scientist.
A Downey, O'Reilly, 2016. - Think Data Structures.
A Downey, O'Reilly, 2017.
- Introduction to Algorithms.
Temas Específicos
Ao longo do semestre algumas ligações poderão ser aqui acrescentadas, quando tal fizer sentido.
(a colocar)
Cursos Relacionados
- Estruturas de Dados @ DCC/FCUP (2019/2020) (2018/2019)
- Computer Science: An Interdisciplinary Approach @ Princeton (primeiros 4 capítulos)
- COS226: Algorithms and Data Structures @ Princeton (webpage)
- CSE22: Data Structures @ Harvard (website)
- CS 2110: OO Programming and Data Structures @ Cornell (website)
Outras Ligações
- VisuAlgo - visualising data structures and algorithms through animation
- Data Structures Visualizations
- Online judges: UVA Online Judge (uHunt) | SPOJ | PEG Online Judge | Kattis
- Outros concursos/comunidades: CodeForces | Google CodeJam | Topcoder | Project Euler
- Competitive Programming List of Links