Computação 1 (20-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

Lista Data Limite de Entrega da Parte 1 Data Limite de Entrega das Partes 2 & 3
Lista 1 8/12 ao meio-dia 14/12 às 10:00
Lista 2 15/12 ao meio-dia 21/12 às 10:00
Lista 3 23/12 às 10:00 11/1 às 10:00
Lista 4 14/1 às 10:00 18/1 às 10:00
Lista 5 25/1 às 10:00 (apenas uma parte)
Lista 6 1/2 às 10:00 (apenas uma parte)
Lista 7 8/2 às 10:00 (apenas uma parte)
Lista 8 18/2 às 10:00 (apenas uma parte)
Trabalho Final 3/3 às 10:00 (apenas uma parte)

Cronograma planejado/registro de atividades

Data Aula Conteúdo Links
seg 30/11 Prát. 1 Apresentação da disciplina; funcionamento e objetivos da disciplina; instalando o Python Quadro (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/12 Teór. 1 Primeiro contato com Python; Abstrações: variáveis e funções; Expressões e declarações; avaliando expressões; árvores de expressões Quadro (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/12 Prát. 2 Documentação e comentários em funções; argumentos padrão; help; import Quadro (Jamboard) Quadro (PDF) Código Vídeo (Documentação e comentários em funções; argumentos padrão; help; import) Chat
qua 9/12 Teór. 2 Atribuições; ambientes e frames; avaliações de expressões em frames; Tipos de dados; tipos numéricos; tipos Booleanos; comandos condicionais if, elif, else Quadro (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/12 Prát. 3 Revisão da árvore de quadros; comandos condicionais if/elif/else; módulo datetime; módulo random Quadro (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/12 Teór. 3 Comando de repetição while Quadro (Jamboard), Quadro (PDF), Código, Vídeo (Comando de repetição while), Chat
seg 21/12 Prát. 4 Dú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 doctest Quadro (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/12 Teór. 4 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; Somatório de sequências visto como uma função de alta ordem Quadro (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/12 sem aula
qua 30/12 sem aula
seg 4/1 Prát. 5 Aproximação de valores usando função de alta ordem Quadro (Jamboard), Quadro (PDF), Código, Vídeo (Aproximação de valores usando função de alta ordem), Chat
qua 6/1 Teór. 5 Funções de alta ordem; exemplo com experimentos; Collatz; Método de Newton Quadro (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/1 Prát. 6 Dúvidas da Lista 3 (Fibonacci); Análise de “espécies” de dados; Aproximação de derivada Quadro (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/1 Teór. 6 Dúvidas sobre chamadas de funções de alta ordem; Recursão; Fibonacci, fatorial, aproximações (chute/melhorar/bom_o_bastante) de forma recursiva Quadro (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/1 Prát. 7 Ordens de chamadas em funções recursivas; Torres de Hanói Quadro (Jamboard), Quadro (PDF), Código, Vídeo (Ordens de chamadas em funções recursivas; Torres de Hanói), Chat
qua 20/1 Teór. 7 Tipos de dados sequenciais; len, concatenação, repetição, conversão de tipos; strings; Indexação e fatiamento de sequências Quadro (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/1 Prát. 8 Operações com strings; for, enumerate Quadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (Operações com strings), Chat 1, Vídeo 2 (for, enumerate), Chat 2
qua 27/1 Teór. 8 for; range; tuplas e listas; mutabilidade Quadro (Jamboard), Quadro (PDF), Código, Vídeo 1 (for; range), Chat 1, Vídeo 2 (tuplas e listas; mutabilidade), Chat 2
seg 1/2 Prát. 9 Dú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/2 Teór. 9 Mais discussão sobre mutabilidade e cópias (rasas ou profundas); Dicionários; Conjuntos Quadro (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/2 Prát. 10 Desempenho de conjuntos vs listas; definindo dicionários e conjuntos por compreensão; Memoização (cache) de funções usando dicionários Quadro (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/2 Teór. 10 Mostrando 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/2 sem aula
qua 17/2 sem aula
seg 22/2 Prát. 11 Módulos; Leitura e escrita de arquivos de texto; Gerador de senhas Quadro (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/2 sem aula
seg 1/3 Dúv. 01 Dúvidas do Trabalho Final Quadro (Jamboard), Quadro (PDF), Vídeo (Dúvidas do Trabalho Final), Chat
qua 3/3 Final Atividade 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.