Computação 1 (2020.1)

Funcionamento da disciplina

O meio primário de comunicação entre os alunos, monitores e professores será pelo Discord, no grupo https://discord.gg/BHsk7F64cK

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.

Bibliografia

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

Listas de Exercícios

ListaData Limite de Entrega da Parte 1Data Limite de Entrega das Partes 2 & 3
Lista 18/12 ao meio-dia14/12 às 10:00
Lista 215/12 ao meio-dia21/12 às 10:00
Lista 323/12 às 10:0011/1 às 10:00
Lista 414/1 às 10:0018/1 às 10:00
Lista 525/1 às 10:00(apenas uma parte)
Lista 61/2 às 10:00(apenas uma parte)
Lista 78/2 às 10:00(apenas uma parte)
Lista 818/2 às 10:00(apenas uma parte)
Trabalho Final3/3 às 10:00(apenas uma parte)

Cronograma planejado/registro de atividades

DataAulaConteúdoLinks
seg 30/11Prát. 1Apresentação da disciplina; funcionamento e objetivos da disciplina; instalando o PythonQuadro (Jamboard) Quadro (PDF) Vídeo 1 (Apresentação da disciplina) Vídeo 2 (Apresentação da disciplina (cont); funcionamento e objetivos da disciplina; instalando o Python) Chat
qua 2/12Teór. 1Primeiro contato com Python; Abstrações: variáveis e funções; Expressões e declarações; avaliando expressões; árvores de expressõesQuadro (Jamboard) Quadro (PDF) Código Vídeo 1 (Primeiro contato com Python; Abstrações: variáveis e funções) Chat 1 Vídeo 2 (Expressões e declarações; avaliando expressões; árvores de expressões) Chat 2
seg 7/12Prát. 2Documentação e comentários em funções; argumentos padrão; help; importQuadro (Jamboard) Quadro (PDF) Código Vídeo (Documentação e comentários em funções; argumentos padrão; help; import) Chat
qua 9/12Teór. 2Atribuições; ambientes e frames; avaliações de expressões em frames; Tipos de dados; tipos numéricos; tipos Booleanos; comandos condicionais if, elif, elseQuadro (Jamboard) Quadro (PDF) Código Vídeo 1 (Atribuições; ambientes e frames; avaliações de expressões em frames) Chat 1 Vídeo 2 (Tipos de dados; tipos numéricos; tipos Booleanos; comandos condicionais if, elif, else) Chat 2
seg 14/12Prát. 3Revisão da árvore de quadros; comandos condicionais if/elif/else; módulo datetime; módulo randomQuadro (Jamboard), Quadro (PDF), Código, Vídeo (Revisão da árvore de quadros; comandos condicionais if/elif/else; módulo datetime; módulo random), Chat
qua 16/12Teór. 3Comando de repetição whileQuadro (Jamboard), Quadro (PDF), Código, Vídeo (Comando de repetição while), Chat
seg 21/12Prát. 4Dúvidas de árvores de quadros; while com break e continue; Exemplo de while (Fibonacci); testes de função com função dedicada de testes e com o módulo doctestQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Dúvidas de árvores de quadros; while com break e continue), Chat 1, Vídeo 2 (Exemplo de while (Fibonacci); testes de função com função dedicada de testes e com o módulo doctest), Chat 2
qua 23/12Teór. 4Funções matemáticas e em computação; Funções de alta ordem (funções que manipulam funções como entrada e/ou saída); Composta de funções; Somatório de sequências visto como uma função de alta ordemQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Funções matemáticas e em computação; Funções de alta ordem (funções que manipulam funções como entrada e/ou saída); Composta de funções), Chat 1, Vídeo 2 (Somatório de sequências visto como uma função de alta ordem), Chat 2
seg 28/12sem aula
qua 30/12sem aula
seg 4/1Prát. 5Aproximação de valores usando função de alta ordemQuadro (Jamboard), Quadro (PDF), Código, Vídeo (Aproximação de valores usando função de alta ordem), Chat
qua 6/1Teór. 5Funções de alta ordem; exemplo com experimentos; Collatz; Método de NewtonQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Funções de alta ordem; exemplo com experimentos; Collatz), Chat 1, Vídeo 2 (Método de Newton), Chat 2
seg 11/1Prát. 6Dúvidas da Lista 3 (Fibonacci); Análise de “espécies” de dados; Aproximação de derivadaQuadro (Jamboard) Quadro (PDF) Código Vídeo (Dúvidas da Lista 3 (Fibonacci); Análise de “espécies” de dados; Aproximação de derivada) Chat
qua 13/1Teór. 6Dúvidas sobre chamadas de funções de alta ordem; Recursão; Fibonacci, fatorial, aproximações (chute/melhorar/bom_o_bastante) de forma recursivaQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Dúvidas sobre chamadas de funções de alta ordem), Chat 1, Vídeo 2 (Recursão; Fibonacci, fatorial, aproximações (chute/melhorar/bom_o_bastante) de forma recursiva), Chat 2
seg 18/1Prát. 7Ordens de chamadas em funções recursivas; Torres de HanóiQuadro (Jamboard), Quadro (PDF), Código, Vídeo (Ordens de chamadas em funções recursivas; Torres de Hanói), Chat
qua 20/1Teór. 7Tipos de dados sequenciais; len, concatenação, repetição, conversão de tipos; strings; Indexação e fatiamento de sequênciasQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Tipos de dados sequenciais; len, concatenação, repetição, conversão de tipos; strings), Chat 1, Vídeo 2 (Indexação e fatiamento de sequências), Chat 2
seg 25/1Prát. 8Operações com strings; for, enumerateQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Operações com strings), Chat 1, Vídeo 2 (for, enumerate), Chat 2
qua 27/1Teór. 8for; range; tuplas e listas; mutabilidadeQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (for; range), Chat 1, Vídeo 2 (tuplas e listas; mutabilidade), Chat 2
seg 1/2Prát. 9Dúvidas da Lista 6; Discussões sobre o calendário; str.split e str.join; list comprehensions (definir listas por compreensão); Mais discussão sobre mutabilidade e imutabilidade; “hasheabilidade”Quadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Dúvidas da Lista 6), Chat 1, Vídeo 2 (Discussões sobre o calendário; str.split e str.join), Chat 2, Vídeo 3 (list comprehensions (definir listas por compreensão)), Chat 3, Vídeo 4 (Mais discussão sobre mutabilidade e imutabilidade; “hasheabilidade”), Chat 4
qua 3/2Teór. 9Mais discussão sobre mutabilidade e cópias (rasas ou profundas); Dicionários; ConjuntosQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Mais discussão sobre mutabilidade e cópias (rasas ou profundas)), Chat 1, Vídeo 2 (Dicionários), Chat 2, Vídeo 3 (Conjuntos), Chat 3
seg 8/2Prát. 10Desempenho de conjuntos vs listas; definindo dicionários e conjuntos por compreensão; Memoização (cache) de funções usando dicionáriosQuadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Desempenho de conjuntos vs listas; definindo dicionários e conjuntos por compreensão), Chat 1, Vídeo 2 (Memoização (cache) de funções usando dicionários), Chat 2
qua 10/2Teór. 10Mostrando informações para o usuário (print); formatação de texto com f-strings; Formatando matrizes; Recebendo informações do usuário (input)Quadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Mostrando informações para o usuário (print); formatação de texto com f-strings), Chat 1, Vídeo 2 (Formatando matrizes), Chat 2, Vídeo 3 (Recebendo informações do usuário (input)), Chat 3
seg 15/2sem aula
qua 17/2sem aula
seg 22/2Prát. 11Módulos; Leitura e escrita de arquivos de texto; Gerador de senhasQuadro (Jamboard), Quadro (PDF), Código 1, Código 2, Código 3, Código 4, Código 5, Vídeo 1 (Módulos), Chat 1, Vídeo 2 (Leitura e escrita de arquivos de texto; Gerador de senhas), Chat 2
qua 24/2sem aula
seg 1/3Dúv. 01Dúvidas do Trabalho FinalQuadro (Jamboard), Quadro (PDF), Vídeo (Dúvidas do Trabalho Final), Chat
qua 3/3FinalAtividade final do curso (torneio de Dots and Boxes)

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.