sexta-feira, 29 de dezembro de 2023

Semana 00 - A 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 I (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:

Algoritmos e Programação de Computadores. Editora Campus/Elsevier.
Autores: Piva Jr, D.; Bianchi, F.; Nakamiti, G.S. e Engelbrecht, A.M.

Fundamentos de Python:  primeiros programas. Editora CENGAGE.
Autor: Kenneth A. Lambert


Python. Use a Cabeça!. Editora AltaBooks
Autor: Paul Barry.


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.


Semana 01 - Boas-vindas. Introdução a Disciplina. Formas de Avaliação e Percurso Pedagógico.

 Tema:

Apresentação da Disciplina e Introdução a Algoritmos.

Slides:

Aula 01 - <aqui>

Material de Apoio: 
Capítulo Um - O que são algoritmos e por que você deve se importar com eles?
do livro "Desmistificando Algoritmos" de Thomas H. Cormen.

Vá para a amostra do livro e clique sobre a figura da capa do livro. Você conseguirá ler todo o primeiro capítulo. 
Link <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 01 - Por que aprender programação? https://youtu.be/eGVNRynWMJ0
Aula 02 - Por que aprender Python? - https://youtu.be/BHEcKtP8bTI
Aula 03 - Comparação entre Python e outras linguagens - https://youtu.be/9CONtKJkdwY
Aula 04 - Quem sou eu? - https://youtu.be/1nnvScRn7p4

Vídeos sobre a história da computação e conceitos fundamentais:
Alguns termos utilizados em computação e matemática - Cálculo, Contas... - <link>

Semana 02 - Introdução a Computação - Parte 1: História e evolução da computação

Tema:

Introducação a Computação - Parte 1: História e Evolução da Computação / A Informação e sua representação

Slides:

Aula 02 - <aqui>

Material de Apoio: 
Evolução e história do computador: uma linha do tempo completa (apeti20)
Link <aqui>
Representação de Dados (Univesp) - <aqui>
Sistemas de Numeração e Conversão de Bases (Univesp) - <aqui>

Vídeos sobre a história da computação e conceitos fundamentais:
Evolução: válvulas - transistores - circuitos integrados - <aqui>
Filme - O jogo da Imitação (trailler) - <aqui>
Filme - Piratas do Vale do Silício - (trailler) - <aqui>
Breve história dos computadores - <aqui>
Série de 4 Videos (KhanAcademy) sobre a História dos Computadores e Internet - <aqui>
Mais uma história resumida dos computadores - <aqui>
Outros vídeos interessantes:
História do ENIAC (primeiro computador digital) - <aqui>
História do Sistema Operacional Windows - <aqui>
História da IBM - <aqui>
História da Microsoft - <aqui>
História da Apple - <aqui>
História do Wifi - <aqui>
História dos SmarthWatches - <aqui>
História da Internet - <aqui>
História do email - <aqui>
História do Google - <aqui>
História da Inteligência Artificial - <aqui>


Semana 03 - Introdução a Computação - Parte 2 - Algebra Booleana, Sistema Computacional: Hardware e Software

Tema:

Introducação a Computação - Parte 3: Álgebra Booleana e Sistema Computacional: Hardware e Software

Slides:

Aula 03 - <aqui>

Material de Apoio: 
Introdução a Informãtica: Hardware e Software  (IFRN - Macau)
Link <aqui>

Vídeos sobre Algebra Booleana e Sistemas Computacionais: Hardware e Software:
Operações Lógicas e tabela Verdade (Univesp) - <aqui>
Portas Lógicas e Expressões Booleanas (Univesp) - <aqui>
Sistemas Computacionais: Hardware (Univesp) - <aqui>
Sistemas Computacionais: Software (Univesp) - <aqui>
Sistemas Operacionais (Univesp) - <aqui>

Semana 04 - A lógica e os algoritmos

 Tema:

A lógica e os algoritmos.

Slides:

Aula 04 - <aqui>

Material de Apoio: 
Capítulo 01 - A lógica e os Algoritmos  do livro "Algoritmo e Programação de Computadores".

Ambientes de desenvolvimento que utilizaremos: 
Anaconda:  https://www.anaconda.com/download

Pode também criar um ambiente para programação com Python + IDE:
Instalação do Python:  https://python.org
IDE PyCharm: Escolha Community Edition --> https://www.jetbrains.com/pt-br/pycharm/download/#section=windows

Videos sobre GIT/GITHUB: 
CURSO de 2 horas - completo sobre GIT e GITHUB

Videoaulas complementares sobre GIT e GITHUB:
Parte 1: 
https://www.youtube.com/watch?v=DqTITcMq68k

Apresentação Config GIT/GITHUB :
GitHub Configuracao PPT - <aqui>


Vídeos para Complementar a aprendizagem: 
Instalação do Anaconda Python - Parte 1 (DSA) - https://www.youtube.com/watch?v=lC8_WhLJWMc
Instalação do Anaconda Python - Parte 2 (DSA) - https://www.youtube.com/watch?v=-agITg11JhE
Instalação Anaconda (Asimov Academy) - https://www.youtube.com/watch?v=tp4_BGU02VQ
Instalação do Anaconda (Código Fluente): https://www.youtube.com/watch?v=MOHziuKUgmM
Canal pyPRO:
Aula 05 - A instalação do Python - https://youtu.be/0iRTcMzS6EI
Aula 06 - A escolha de uma IDE - https://youtu.be/Lxqt0vdWTMw
Aula 07 - Instalação do PyCharm no Windows - https://youtu.be/7POnvegXmnc
Aula 08 - Instalação do PyCharm no Linux - https://youtu.be/zT0nf7-wNRk
Aula 09 - Instalação do PyCharm no MacOS - https://youtu.be/cYyQYADkC9Q
Aula 10 - Programação em Python utilizando o Navegador -  https://youtu.be/z76V6WcwXa0
Aula 11 - Programação Python utilizando um APP (no celular!) - https://youtu.be/X-cXcYWKdhY

Semana 05 - Resolução de Problemas. Expressões matemáticas. Tipos de dados.

Tema:

Resolução de problemas. Expressões matemáticas. Tipos de Dados.

Slides:

Aula 05 - <aqui>

Material de Apoio: 
Capítulo 02 - O raciocínio e as formas de resolução de problemas  do livro "Algoritmo e Programação de Computadores"
Capítulo 03 - Expressões matemáticas e lógicas e seus operadores  do livro "Algoritmo e Programação de Computadores"
Capítulo 04 - Tipo de dados  do livro "Algoritmo e Programação de Computadores"


Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 21 - O que é uma variável? - https://youtu.be/VAmRRTBXG4A
Aula 22 - O que é uma constante? - https://youtu.be/BhT27SUz5Kc
Aula 23 - Tipos de Dados em Python: INTEIRO - https://youtu.be/bFZk6l1OZDo
Aula 24 - Tipos de Dados em Python: FLOAT e COMPLEX - https://youtu.be/5iEaMPaqV2Y
Aula 25 - Tipos de Dados em Python: BOOLEAN - https://youtu.be/fAX8uIXDWyA
Aula 27 - Escopo e Conversão de Variáveis - https://youtu.be/o-SS_fMl0a4
Aula 28 - Desafio deste módulo - https://youtu.be/H0tbaq7S6M0

Semana 06 - Ambiente de Programação e Estruturas sequenciais

Tema:

Estruturas sequenciais

Slides:

Aula 06 - <aqui>
Aula 06 - Jupiter Nootebok - <aqui>

Material de Apoio: 
Capítulo 05 - Estrutura sequencial do livro "Algoritmos e Programação de Computadores".

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 12 - História da Linguagem Python - https://youtu.be/Y3hnQBse3ss
Aula 13 - Zen do Python - https://youtu.be/lXitJ2TBuT0
Aula 14 - PEP 8 - https://youtu.be/OpO-mne_yRM
Aula 15 - Funções dir() e help() - https://youtu.be/FA_oF-OaLsk
Aula 16 - Primeiros comandos em Python: print e input - https://youtu.be/ASRhTpJNqq0
Aula 17 - Resposta do primeiro desafio - https://youtu.be/13LMpFucSX8
Aula 18 - Identificadores e Palavras Reservadas - https://youtu.be/i-GmnaIji8g
Aula 19 - Comentários em Linguagem Python - https://youtu.be/18qnageghXg
Aula 20 - Primeiros comandos em Linguagem Python - Usando uma IDE - https://youtu.be/g38rVYXIsk4

Semana 07 - Estrutura Condicional

Tema:

Estrutura condicional simples e composta.

Slides:

Aula 07 - <aqui>
Aula 07 - Jupiter Nootebok - <aqui>

Material de Apoio: 
Capítulo 06 - Estrutura  condicional simples e composta do livro "Algoritmos e Programação de Computadores".

Lista de Exercícios: 
Lista de Exercícios - <breve>
Resolução da Lista de Exercícios - <breve>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 29 - O que é uma expressão matemática? - https://youtu.be/rb2orBc_gVM
Aula 30 - O que é uma expressão lógica? - https://youtu.be/7fREjLdJBOc
Aula 31 - Estrutura Condicional - https://youtu.be/4Bc5HMEMyM4
Aula 32 - Comando elif - https://youtu.be/jT-zjJs8Pqc
Aula 33 - Aninhamento de Ifs - https://youtu.be/Jq_jZ-iXEGM
Aula 34 - Desafio deste módulo - https://youtu.be/jP0WjB6vBE8
Aula 35 - Resposta do Desafio deste Módulo - https://youtu.be/yAmhZ6g9r-Q

Semana 08 - Estrutura de Repetição

Tema:

Estruturas de Repetição  (determinada e indeterminada)

Slides:
Aula 08 - <aqui>
Aula 07 - Jupiter Nootebok - <aqui>

Material de Apoio: 
Capítulo 08 - Estrutura de repetição do livro "Algoritmos e Programação de Computadores".

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 36 - O que são estruturas de repetição? - https://youtu.be/PUJV52JcCcU
Aula 37 - Estruturas de repetição: comando for - https://youtu.be/tHtBuGFYVnE
Aula 38 - Estruturas de repetição: comando while - https://youtu.be/7gwvopBnLqQ
Aula 39 - Estruturas de repetição: comandos break e continue - https://youtu.be/Eb9C_FdVtDU
Aula 40 - Desafio deste módulo - https://youtu.be/xReD5eSsDxU
Aula 41 - Resposta do desafio deste módulo - https://youtu.be/NuQwPx3Ep_k

Semana 09 - Revisão

Tema:

Aula de Revisão: Estruturas Sequenciais, Condicionais e de Repetição

Slides:
Aula 09 - <aqui>

Aula 09 - Jupiter Nootebok - <aqui>

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

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Todos os vídeos até a aula 8

Semana 10 - Primeira Avaliação (p1)

 Tema:

Primeira avaliação presencial (prova).
Tem um peso de 30% na média final.

Conteúdo:

Aulas de 01 a 09

Semana 11 - Strings (Cadeia de Caracteres)

Tema:

Estruturas de Dados Simples (Strings)

Slides:
Aula 11 - <aqui>

Aula 11 - Jupiter Nootebok - <aqui>

Material de Apoio: 
Capítulo 12 - String ou Cadeia de Caracteres do livro "Algoritmos e Programação de Computadores".

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 26 - Tipos de Dados em Python: STRING - https://youtu.be/UprOjDArIGE

Semanas 12 e 13 - Array, Listas e Outras estruturas de dados: Tuplas, Dicionários e Conjuntos

Tema:

Array, Listas e Outras Estrutura de Dados (Coleções: Tuplas, Dicionários e Conjuntos)

Lista de Exercícios:

Aulas 12 e 13 - <aqui>
Aulas 12 e 13 - Jupiter Nootebok - <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 42 - Listas - https://youtu.be/u1c2Z9E1DuM
Aula 43 - Tuplas - https://youtu.be/ckvv1-oS14Q
Aula 44 - Dicionários - https://youtu.be/5OCdIbjmftA
Aula 45 - Conjuntos - https://youtu.be/kEuoxAlZIjg
Aula 46 - Desafio deste módulo - https://youtu.be/y7fkEXtyb8k
Aula 47 - Resposta do Desafio deste Módulo - https://youtu.be/ApZAcxrC7JI


Semana 14 - Modularização de Algoritmos (funções)

Tema:

Modularização (Funções)

Slides:
Aula 14 - <aqui>
Aula 14 - Jupiter Nootebok - <aqui>

Material de Apoio: 
Capítulo 11 - Modularização de algoritmos - Procedimentos e Funções  do livro "Algoritmos e Programação de Computadores".

Exercício sobre Funções:
Exercício integração - <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 48 - O que é uma Função? - https://youtu.be/m8e_E2pcpX4
Aula 49 - Função sem retorno - https://youtu.be/eJZhUA-SJWc  
Aula 50 - Função com retorno - https://youtu.be/Kij9vdbzmXY  
Aula 51 - Função com Parâmetro - https://youtu.be/5ty7-Bh2pIs   
Aula 52 - Função com Parâmetro padrão - https://youtu.be/NAI4z51RK2Q  
Aula 53 - Documentação de Funções: DocString - https://youtu.be/Ng655oU-Cos 
Aula 54 - Argumentos *args e **kwargs - https://youtu.be/bgvLtxWkIsE    
Aula 55 - Desafio deste módulo ( e resposta ) - https://youtu.be/l1nXfE3akd4

Semana 15 - Módulos ou Pacotes

Tema:

Módulos (pacotes) em Python

Orientação a Objetos (Introdução)

Slides:
Aula 15 - <aqui>
Aula 15 - Jupiter Nootebok - <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 62 - O que são Módulos? - https://youtu.be/23x0lqAs8e8
Aula 63 - O módulo "random" - https://youtu.be/0YnwxsutecU
Aula 64 - Módulos Built-in - https://youtu.be/YabJvbdteUc
Aula 65 - Módulos e Pacotes de Terceiros - https://youtu.be/__s2krPq4dk
Aula 66 - Módulos Customizados - https://youtu.be/YoZkPUXZg9c
Aula 67 - Métodos __main__ e __name__  - https://youtu.be/E-vhBOQf4oA

Semana 16 - Orientação a Objetos (POO)

Tema:

Programação Orientada a Objetos


Slides:
Aula 16 - <aqui>
Aula 16 - Jupiter Nootebok - <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
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 aplicação dos conceitos de OO para desenvolvimento do Jogo da Forca:
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 

Outras pessoas falando sobre Orientação a Objetos:
- Como funcionam Classes e Programação OO - https://www.youtube.com/watch?v=97A_Cyyh-eU
- Dominando a programação O.O. - https://www.youtube.com/watch?v=yZ83sZUvLVw
- Orientação a Objetos (Alura) - https://www.youtube.com/watch?v=jpuJ1qrluoU

Semana 17 - Revisão Geral

Tema:

Revisão Geral da disciplina

Slides:
Todos os slides até a aula 16

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Todos os vídeos até a aula 8

Curso Gratuito na Udemy:

Semana 18 - Segunda Avaliação Oficial (P2)

Tema:

Segunda avaliação presencial (prova).
Tem um peso de 40% na média final.

Conteúdo:

Aulas de 01 a 17
Todo o conteúdo do semestre.

Semana 19 - Exame / Avaliação Substitutiva

 Tema:

Prova Substitutiva (para aqueles que perderam alguma avaliação e possuem comprovantes formais e legais para reposição da nota).

Semana 20 - Divulgação do Resultado Final

 Tema:

Correção da última avaliação.
Divulgação do resultado final.

Pesquisa de Percepção:
Gostaria de ouvir sua opinião sobre a disciplina para que possa melhorar o seu oferecimento nas próximas edições. Suas observações, sugestões, críticas e elogios são muito bem vindos.
Para iniciar a pesquisa clique <aqui> - breve.