Computação 1 (21-1)

Funcionamento da disciplina

O meio primário de comunicação entre os alunos, monitores e professores será pelo Telegram, no grupo https://t.me/joinchat/FFqmpCisFE0wNmMx

As aulas serão realizadas em modo síncrono, com aulas práticas às 2as de 10:00 a 12:00 e teóricas às 4as de 10:00 a 12:00. Esses encontros serão gravados e disponibilizados para todos os alunos que queiram acompanhar em modo assíncrono. A escolha entre modo síncrono e/ou assíncrono é completamente livre para cada aluno, mas recomendamos que os alunos participem das aulas ao vivo sempre que possível.

Bibliografia

Faremos nossas próprias notas de aula, mas o material será principalmente baseado em:

Listas de Exercícios e Trabalho Final

ListaData Limite de Entrega
Lista 1 (atualizada em 21/7)27 de julho às 23:59
Lista 23 de agosto às 23:59
Lista 3 (atualizada em 3/8)10 de agosto às 23:59
Lista 417 de agosto às 23:59
Lista 524 de agosto às 23:59
Lista 631 de agosto às 23:59
Lista 7 (atualizada em 3/9)9 de setembro às 23:59
Lista 821 de setembro às 23:59
Lista 928 de setembro às 23:59
Lista 105 de outubro às 23:59
Trabalho Final18 de outubro às 10:00

Cronograma planejado/registro de atividades

DataAulaConteúdoLinks
seg. 12 jul.Aula 0Apresentação da disciplina, aspectos administrativos, etcQuadro, Vídeo, Chat
qua. 14 jul.Teórica 1Parte 1: Primeiro contato com o Python (REPL e IDE); expressões; variáveis; comando de atribuição; Parte 2: Funções; comando de definição de função; estrutura e avaliação de expressões compostasQuadro, Código, Vídeo parte 1, Chat 1, Vídeo parte 2, Chat 2
seg. 19 jul.Prática 1Chamadas de função; Comando de definição de função; documentação; comentários; help; argumentos padrãoQuadro, Código, Vídeo, Chat
qua. 21 jul.Teórica 2Parte 1: Chamada de funções; Atribuição, import, nomes; Parte 2: Avaliando expressões dentro de funções, quadrosQuadro, Código, Vídeo parte 1, Chat 1, Vídeo parte 2, Chat 2
seg. 26 jul.Prática 2Parte 1: Funções retornando funções, quadros; Tipos; Parte 2: Anúncios, dúvidas das listasQuadro, Código, Vídeo parte 1, Chat 1, Vídeo parte 2, Chat 2
qua. 28 jul.Teórica 3Parte 1: Booleanos; if, elif, else; print; fatorial; Parte 2: Funções recursivas e frames; Revisão de árvores de framesCódigo, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 2 ago.Prática 3Parte 1: Fibonacci, asserts, testes de funções; Parte 2: While, repetição e contadores; Fibonacci nova versão; Parte 3: Dúvidas: quadros, resto e quocienteQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3
qua. 4 ago.Teórica 4Parte 1: Dúvidas (float, retorno de múltiplos valores, quadros de funções, comandos, expressões); Parte 2: próximo_Fibonacci; uso de break ou return para interromper whileQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 9 ago.Prática 4Parte 1: Dúvidas da lista 3; Parte 2: Testes em documentação de função (doctests); mais sobre while (continue); simulador simples de jogo de vôleiQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 11 ago.Teórica 5Parte 1: Dúvidas (doctests, break, continue); sequências: range e string; Parte 2: Loops sequenciais (for)Quadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 16 ago.Prática 5Parte 1: Dúvidas; Parte 2: while vs for; Parte 3: Trabalhando com strings (concatenação; repetição; métodos de strings); exemplo com a Cifra de CésarQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3
qua. 18 ago.Teórica 6Parte 1: Dúvidas, Listas e Tuplas; Parte 2: For em listas e tuplas, zip, descontrução de listas e tuplasCódigo, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 23 ago.Prática 6Parte 1: Dúvidas lista 5, memória; Parte 2: List comprehensions, mutabilidade de listasCódigo, Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 25 ago.Teórica 7Parte 1: Mais discussão sobre mutabilidade (id, alias); Parte 2: Funções de Alta Ordem, HOF; A operação de composição de funçõesQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 30 ago.Prática 7Parte 1: Dúvidas da lista, recap de HOF, Curryficação; Parte 2: Somatórios como funções de alta ordem; definições de funções simples usando lambdaQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 1 set.ExtraParte 1: Dúvidas HOF, tuplas; Parte 2: Polinômios com raizes dadas; Parte 3: Frames e funções que retornam funçõesQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3
seg. 6 set.Sem aulaFeriado
qua. 8 set.Teórica 8Parte 1: print e f-strings; Parte 2: geradores, str e repr, formatos de númerosCódigo, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 13 set.Prática 8Parte 1: Dúvidas; input e conversão de valores; Parte 2: Programas em python; import; funcionalidades do SpyderCódigo (aula), Código (demo de programa), Código (comp1lib) , Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 15 set.Teórica 9Parte 1: Dúvidas da lista 8; Dicionários; Parte 2: Dict comprehensions; exemplo de uso de dicionário (histograma); histograma de Dom CasmurroQuadro, Código (aula), Código (livro Dom Casmurro), Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 20 set.Prática 9Parte 1: Chaves em dicionários; Hasheabilidade; Parte 2: ConjuntosQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 22 set.Teórica 10Parte 1: Funções recursivas: Fatorial e ordenação; Parte 2: Ordenação como HOFCódigo, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 27 set.Prática 10Parte 1: Dúvidas L9 dicionários; Torres de Hanói: mecânica; Parte 2: Torres de Hanói: solução recursivaQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 29 set.Teórica 11Parte 1: Dúvidas (lista 10 e “pass”); cópias “rasas” de dados mutáveis; cópias com profundidade fixa; Parte 2: Cópias “profundas” de dados mutáveis; from copy import deepcopyQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
seg. 4 out.Prática 11Parte 1: Estimar phi e raiz(2) como exemplos de um mesmo procedimento de alta ordem; Parte 2: Comentário sobre tipos em Python; A função de raiz quadrada como um caso do estimador de alta ordemQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2
qua. 6 out.Extra 2Parte 1: Discussão do trabalho final; Parte 2: Geradores; Parte 3: Trabalhando com geradoresQuadro, Código, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3
seg. 11 out.Sem aulaFeriado
qua. 13 out.??(apenas sob demanda)
seg. 18 out.Encerramento
qua. 20 out.Encerramento

Método de avaliação

Diversas listas de exercícios e (pelo menos) um trabalho de maior porte. As listas contarão 70% da nota final. A monitoria fará a correção das listas, sob supervisão e responsabilidade do professor.