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.


Canal pyPRO no youtube:   https://youtube.com.br/@pypro_br
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

Slides:

Aula 02 - <aqui>

Material de Apoio: 
Evolução e história do computador: uma linha do tempo completa (apeti20)
Link <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: A informação e sua representação

Tema:

Introducação a Computação - Parte 2: A informação e sua representação

Slides:

Aula 03 - <aqui>

Material de Apoio: 
Representação de Dados e Sistemas de Numeração (PUC-RJ)
Link <aqui>

Vídeos sobre a Representação da Informação nos computadores:
Representação de Dados (Univesp) - <aqui>
Sistemas de Numeração e Conversão de Bases (Univesp) - <aqui>
Sistemas de Numeração e Conversão de Bases - Ponto Flutuante (Univesp) - <aqui>

Exemplo de Conversão de Números em Ponto-Flutuante: Binario <-> Decimal
Parte 1:

Parte 2:


Parte 3:

Semana 04 - Introdução a Computação - Parte 3 - 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 04 - <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 05 - A lógica e os algoritmos

 Tema:

A lógica e os algoritmos.

Slides:

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

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 06 - 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 06 - <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 07 - Ambiente de Programação e Estruturas sequenciais

Tema:

Estruturas sequenciais

Slides:

Aula 07 - <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 08 - Estrutura Condicional

Tema:

Estrutura condicional simples e composta.

Slides:

Aula 08 - <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 09 - Estrutura de Repetição

Tema:

Estruturas de Repetição  (determinada e indeterminada)

Slides:
Aula 09 - <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 10 - Primeira Avaliação Formal (P1)

 Tema:

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

Conteúdo:

Aulas de 01 a 09

Semana 11 - Strings

Tema:

Estruturas de Dados Simples (Strings)

Slides:
Aula 11 - <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

Semana 12 - Listas, Vetores e Matrizes

Tema:

Estruturas de Dados (Listas: Vetores e Matrizes)

Slides:
Aula 12 - <aqui>

Material de Apoio: 
Capítulos 9 e 10 - Vetor e Matrizes do livro "Algoritmos e Programação de Computadores".


Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 42 - Listas - https://youtu.be/u1c2Z9E1DuM

Semana 13 - Outras estruturas de dados: Tuplas, Dicionários e Conjuntos

Tema:

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

Lista de Exercícios:

Aula 13 - <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
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>

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

Tema:

Trabalhando com Arquivos

Slides:
Aula 15 - <aqui>

Material de Apoio: 
Capítulo 15 - Arquivos do livro "Algoritmos e Programação de Computadores".

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
Aula 74 - Leitura de Arquivos - https://youtu.be/84j9Q471B7I
Aula 75 - Escrevendo em Arquivos - https://youtu.be/Pms2PYxk3dY 
Aula 76 - Seek e Cursor - https://youtu.be/1kfpj59uunA
Aula 77 - Comando "with" - https://youtu.be/fqB18TsBX5s
Aula 78 - Modos de Operação em Arquivos - https://youtu.be/BNC55HVukMw
Aula 79 - StringIO  -  https://youtu.be/5qT1M-cDB0c
Aula 80 - Sistema de Arquivos - Navegação - https://youtu.be/ds2O2yUtZ0U
Aula 81 - Sistema de Arquivos - Manipulação - https://youtu.be/eDrQO_YlEGg

Semana 16 - Módulos - Numpy

Tema:

Módulos (pacotes) em Python
Pacote: Numpy

Slides:
Aula 16 - <aqui>
Aula 16 - 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 17 - Módulos - Pandas

Tema:

Módulos (pacotes) em Python
Pacote: Pandas

Slides:
Aula 17 - <aqui>
Aula 17a - Jupiter Nootebok - <aqui>
Aula 17b - Jupiter Nootebok - <aqui>
Aula 17c - Jupiter Nootebok - <aqui>
Aula 17 - dataset - <aqui>

Vídeos para Complementar a aprendizagem: 
Canal pyPRO:
<breve>

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

Tema:

Segunda avaliação presencial (prova).
Tem um peso de 35% 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.