21 julho 2024

Semana 00 - Planejamento da Disciplina.

 Aulas

As aulas acontecerão nos dias e horários planejados no Sistema Acadêmico (SIGA). Por ser um curso presencial, exige a presença em pelo menos 75% dos 20 encontros (80 aulas) planejadas.
Programação oficial da disciplina (igual o lançado no sistema SIGA):

Algoritmos e Estrutura de Dados II (CDN - Fatec Votorantim) - <aqui>

Livros Textos
Qualquer livro de linguagem Python pode ser utilizado/consultado.
Essencialmente, utilizarmos como base, três livros indicados na bibliografia básica São eles:

MENEZES, Nilo Ney Coutinho. Introdução à Programação com Python: Algoritmos e Lógica de Programação para Iniciantes, 2 ª edição. Novatec, 2014. ISBN: 9788575224083.


RAMALHO, Luciano. Python Fluente. Novatec, 2015. ISBN: 978-85-7522-462-5

GOODRICH, Michael T; TAMASSIA, Roberto; GOLDWASSER, Michael H. Data Structures and Algorithms in Python. John Wiley & Sons, Inc, 2013. 8576058812, 9788576058816.

Outras recomendações são as seguintes:

Estrutura de Dados e Técnicas de Programação. Editora Campus/Elsevier.
Autores: BIANCHI, Francisco; FREITAS, Ricardo; PIVA Jr, Dilermando. Elsevier Brasil, 2014. ISBN: 8535274383, 9788535274387.

Estrutura de Dados. Editora Bookman.
Autores: EDELWEISS, Nina; GALANTE, Renata. Porto Alegre: Bookman, 2009. ISBN: 857780450X, 9788577804504.


Fundamentos de Python: Estrutura de Dados. Editora CENGAGE.
Autor: Kenneth A. LAMBERT



Data Structure and Algorithmic: Thinking with Python. Editora CareerMonk Publications.
Autor: Narasimha Karumanchi



Data Structures and Algorithms with Python. Editora UTICS / Springer
Autores: Kent D. Lee; Steve Hubbard.



Algoritmos e Estruturas de Dados em Python. Apostila UFSCAR 
Autor: Alexandre Luis Magalhães Levada



Site pyPRO:  https://pypro.com.br
Autor: Dilermando Piva Jr.




Canal pyPRO no youtube:   https://youtube.com.br/@pypro_br
Autor: Dilermando Piva Jr.

Curso na UDEMY Gratuito - Python para Data Science:   🔗 https://www.udemy.com/course/python-para-data-science-parte1/
Autor: Dilermando Piva Jr.




MANUAL PI e TEMPLATE

Manual PI 2 - <aqui>
Template da Entrega - <aqui>


Semana 01 - Acolhimento e Boas-Vindas. Introdução a Disciplina

 

Tema:

Acolhimento e Boas-vindas! Introdução a Disciplina. Formas de Avaliação e Percurso Pedagógico. Por que estudar Estrutura de Dados. Tipo de dado abstrato.

Slides:
Aula 01 - <aqui>

Material de Apoio: 
Primeiro capítulo da apostila "Algoritmos e Estruturas de Dados em Python." Apostila UFSCAR de Alexandre Luis Magalhães Levada

Vídeos sobre a história da computação e conceitos fundamentais:
Por que estudar Algoritmos e Estrutura de Dados (Programação Dinâmica) - <aqui>
O que é Estrutura de Dados (Alura) - <aqui>


Semana 02 - Complexidade de Algoritmos

 
Tema:
Complexidade de Algoritmos

Slides:

Aula 02 - <aqui>
Aula 02 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 3 do livro "Data Structures and Algorithms in Python" (livro 3) - Análise de Algorítmos
Capítulo 2 (aula 2) da Apostila da UFSCar

Vídeos sobre a história da computação e conceitos fundamentais:Evolução: válvulas Análise de Algoritmos - Passo a Passo (parte 1) - <aqui>
Notação Big O e Complexidade de Algoritmos - <aqui>

Semana 03 - Revisão de POO

Tema:

Introdução a Orientação a Objetos (Paradigma Orientado a Objetos). POO (Programação Orientada a Objetos).

Slides:

Aula 03 - <aqui>
Aula 03 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Quarta capítulo (aula 4) da apostila "Algoritmos e Estruturas de Dados em Python." Apostila UFSCAR de Alexandre Luis Magalhães Levada - Programação orientada a objetos em Python.

Vídeos :
Canal PyPRO:
Módulo 01 - Introdução a Orientação a Objetos
Aula 87 - O que é Orientação a Objetos? - https://youtu.be/4T1cPao21dI             
Aula 88 - Pilares da Orientação a Objetos - https://youtu.be/p46aO2J2nzA           
Aula 89 - Relação entre Classe e Objeto... - https://youtu.be/BfJ2Dh_tYhA          
Aula 90 - Criando uma Classe em Python -  https://youtu.be/1qmE9I20aYs                           
Aula 91 - Criando mais um Classe... - https://youtu.be/E6-PGGv8XxI                 
Aula 92 - Atributos Privados - https://youtu.be/wtu8_KY2OH0                        
Aula 93 - Métodos getters e setters - https://youtu.be/oWjDD6qZhkY                 
Aula 94 - Atributos de Classe - https://youtu.be/xiFkZdiXxls 
Exemplo de utilização com programação de um Jogo (Jogo da Forca) em OO:
Aula 99 - Projeto OO - Parte1 - Jogo da Forca - https://youtu.be/-vUdc2HxNpw      
Aula 100- Projeto OO - Parte2 - Jogo da Forca - https://youtu.be/aJEwMOnqlB0      
Aula 101- Projeto OO - Parte3 - Jogo da Forca - https://youtu.be/8pGY26qfhks  
Aula 102- Projeto OO - Parte4 - Jogo da Forca - https://youtu.be/fRBRat4HpDU 

Outros vídeos de outros Professores e Canais:
O que é POO (Hashtag em 10 minutos): https://www.youtube.com/watch?v=97A_Cyyh-eU
Canal ByLearn: Dominando POO: https://www.youtube.com/watch?v=yZ83sZUvLVw
Orientação a Objetos (Alura): https://www.youtube.com/watch?v=jpuJ1qrluoU

Semana 04 - Vetores não-Ordenados e busca sequencial

Tema:

Vetores não-ordenados e busca sequencial

Slides:

Aula 04 - <aqui>
Aula 04 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 4 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)

Vídeos:
Ainda não disponível... <em breve>

Semana 05 - Vetores Ordenados e busca binária

Tema:

Vetores Ordenados e Busca Binária

Slides:

Aula 05 - <aqui>
Aula 05 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 4 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)

Vídeos:
Ainda não disponível... <em breve>

Semana 06 - Pilhas

Tema:

Pilhas

Slides:

Aula 06 - <aqui>
Aula 06 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 10 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)
Capítulo 5 (aula 5) da Apostila da UFSCar

Vídeos:
Ainda não disponível... <em breve>

Semana 07 - Filas

Tema:

Filas

Slides:

Aula 07 - <aqui>
Aula 07 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 9 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)
Capítulo 5 (aula 5) da Apostila da UFSCar

Vídeos:
Ainda não disponível... <em breve>

Semana 08 - Listas Encadeadas

Tema:

Listas Encadeadas

Slides:

Aula 08 - <aqui>
Aula 08 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 7 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)
Capítulo 6 (aula 6) da Apostila da UFSCar

Vídeos:
Ainda não disponível... <em breve>

Semana 09 - Recursão


Tema:
Recursão

Slides:

Aula 09 - <aqui>
Aula 09 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 3 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)

Vídeos:
Ainda não disponível... <em breve>

Semana 10 - Primeira Avaliação (p1)

Tema:

Primeira avaliação formal (30%)

Material de Apoio: 
Todos os materiais até a aula 9

Semanas 11 e 12 - Algoritmos de Ordenação

Tema:

Algoritmos de Ordenação

Slides:

Aulas 11 e 12 - <aqui>
Aulas 11 e 12 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 5 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca)
Capítulo 3 (aula 3) da Apostila da UFSCar

Vídeos:
Ainda não disponível... <em breve>

Semanas 13 e 14 - Árvores

Tema:

Árvores e árvores binárias.

Slides:

Aulas 13 e 14 - <aqui>
Aulas 13 e 14 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 11 do livro: "Estrutura de Dados e Técnicas de Programação" (Árvores)
Capítulo 7 (aula 7) da Apostila da UFSCar


<<<  ATENÇÃO!!!    SIGA O ROTEIRO ABAIXO PARA A AULA DE 01/11/2024  >>>

Vídeos / Roteiro de Estudo:
Para maior efetividade do estudo, sigam os 7 passos a seguir na ordem sugerida. Bons estudos!

Passo 1)
Passe os olhos sobre o arquivo PDF dos slides da árvore, para saber os tópicos principais da matéria (tema) sobre árvores.  Link <aqui>
Total de tempo em média a ser gasto aqui: 15 minutos.

Passo 2) 
Um vídeo de introdução geral a Árvores: Acesse apenas o vídeo entre os minutos indicados:
a- Estrutura de Dados: Árvore (exemplo de implementação): do minuto: 7:54 ao 10:42  (3 minutos de vídeo)

Passo 3)
Depois dessa introdução, vamos ver duas definições do que são Árvores e em seguida do que são Árvores Binárias:
a- Conceitos básicos de árvores (Univesp) (17 minutos)
b- Teoria: O que são árvores e árvores binárias? (23 minutos de vídeo)

Passo 4)
Vamos enfatizar o que são arvores binárias:
a- O que são árvores binárias?  (5 minutos de vídeo.)

Passo 5)
Como percorrer uma árvore binária:
a- Video descrevendo o percurso em árvores binárias: pré-ordem, em-ordem e pós-ordem. ( 8 minutos de vídeo)

Passo 6)
Para finalizar os vídeos, assista ao vídeo do Fábio Akita que explica o que são árvores, para que servem e um pouco mais...
a- Estrutura de Dados - Árvores (para se aprofundar e saber a origem): Fábio Akita - para otimizar veja a partir do minuto 10:00 --> portanto (50 minutos de vídeo).

Passo 7:
Por fim: Leia com atenção o texto do capítulo 11 do livro recomendado. Tempo médio de leitura ( 60 minutos ).

Total de tempo para estudo: 15+3+17+23+5+8+50+60 = 181 minutos = 3 horas.
Nossas 4 aulas, normalmente levam 3 horas e 30 minutos. Portanto, mesmo havendo alguma variação ou necessidade de revisão de vídeos, o tempo é suficiente para o estudo preliminar do assunto.

---------

APÓS REALIZAR ESSES 7 PASSOS, FAÇA O SEGUINTE:
Para fazer a validação da presença, cada um dos(as) estudantes deverá formular uma pergunta (BASEADO NO MATERIAL CONSTANTE NA SEQUENCIA DIDÁTICA). Pode ser de qualquer parte do material impresso ou dos vídeos.

Essa pergunta deve ser passada até às 23h59 do dia 03/11, impreterivelmente. Quem não passar uma pergunta até esse dia e horário ficará com ausência na aula desse dia.

Os conteúdos aqui descritos e elencados (materiais e conceitos) formam a base para a próxima aula. Portanto, é importantíssimo estuda-lo.

Para onde deve ser passada a pergunta? Para meu endereço de email institucional: piva.jr@fatec.sp.gov.br

Template a ser utilizado:

ASSUNTO: <AED2> - Aula 11 - <nome do(a) estudante>
CORPO DA MENSAGEM:
1- Em que material tive a dúvida?
2- Qual foi a dúvida?
3- Você pensa em alguma alternativa para responder sua dúvida (reflexão)?

---------

Vejo vocês na próxima aula, para tirar suas dúvidas e fazermos alguns exercícios e implementações em Python.  Bons estudos e sucesso!!

Semanas 15 e 16 - Grafos

Tema:

Grafos

Slides:

Aulas 15 e 16 - <aqui>
Aulas 15 e 16 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 14 do livro: "Estrutura de Dados e Técnicas de Programação" (Grafos)
Capítulos 8 e 9 (aula 8 e 9) da Apostila da UFSCar

Vídeos:
Ainda não disponível... <em breve> 

Semana 17 - Tabela Hash (Tabela de Espalhamento)

Tema:

Tabela Hash (Tabela de Espalhamento)

Slides:

Aula 17 - <aqui>
Aula 17 - Arquivos Jupyter Notebook - <aqui>

Material de Apoio: 
Capítulo 4 do livro: "Estrutura de Dados e Técnicas de Programação" (Métodos de Busca - Tabela Hash)

Vídeos:
Ainda não disponível... <em breve>

Semana 18 - Segunda Avaliação (P2)

Tema:

Segunda avaliação formal (p2 - 40%)

Material de Apoio: 
Todas os materiais até a aula 17.

Semana 19 - Exame / Avaliação Sub / Correção

Tema:

Exame ou Avaliação Substitutica
Após o intervalo (correção)

Material de Apoio: 
Todos os materiais da disciplina.

Semana 20 - Divulgação do Resultado Final


Tema:
Divulgação dos resultados

Resultado Final:

Breve - <aqui>