Computação 1 (21-2)

Funcionamento da disciplina

O meio primário de comunicação entre os alunos, monitores e professores será pelo Discord, no grupo acima.

As aulas serão realizadas em modo síncrono, com aulas às terças e quintas de 10:00 às 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

Lista Data Limite de Entrega
Lista 1 3/12 às 18:00
Lista 2 14/12 às 18:00
Lista 3 21/12 às 18:00
Lista 4 7/1 às 18:00
Lista 5 18/1 às 18:00
Lista 6 28/1 às 18:00
Lista 7 4/2 às 18:00
Lista 8 11/2 às 18:00
Trabalho Final 11/3 às 18:00

Cronograma planejado/registro de atividades

Data Aula Conteúdo Links
ter 16 nov sem aula
qui 18 nov Aula 0 Parte 1: Apresentação da disciplina; Parte 2: Filosofia da disciplina; abstração; instalação do Python Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2
ter 23 nov Aula 01 Teórica Parte 1: Calculando expressões aritméticas simples; variáveis; Parte 2: Funções Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
qui 25 nov Aula 01 Prática Parte 1: Definições de funções; Expressões; Avaliação de expressões Quadro, Vídeo, Chat, Código
ter 30 nov Aula 02 Teórica Parte 1: Dúvidas da Lista 01; Parte 2: Mais sobre definições de nomes (variáveis e funções); atribuições simultâneas; Parte 3: Escopos de nomes (globais/locais) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
qui 2 dez Aula 02 Prática Parte 1: Discussão sobre a Questão 7 da Lista 1; Parte 2: Módulos (import); dados booleanos; comandos condicionais (if/else) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
ter 7 dez Aula 03 Teórica Parte 1: Comandos condicionais if/elif/else; Parte 2: Exemplos de funções com condicionais; ’else implícito' Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
qui 9 dez Aula 03 Prática Parte 1: Laço de repetição condicional (while); exemplo com sorteios aleatórios; Parte 2: Sequência de Fibonacci; primeiro Fibonacci maior que um número dado Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
ter 14 dez Aula 04 Teórica Parte 1: Controlando a execução de um laço (continue e break); exemplo com médias; Parte 2: Mais do exemplo com médias, máximos e mínimos; abstraindo para função de alta ordem Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
qui 16 dez Aula 04 Prática Parte 1: Dúvidas da lista 3; Parte 2: Strings (concatenação, repetição); função print; Parte 3: Exemplo (simulador de jogo de vôlei) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
ter 21 dez Aula 05 Teórica Parte 1: Dúvidas da lista 03; Parte 2: Comando de repetição sequencial (for); sequências (strings e ranges); Parte 3: Mais sobre sequências (len, in, indexação, fatiamento) Quadro, Vídeo 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
qui 23 dez sem aula Recesso de fim de ano
ter 28 dez sem aula Recesso de fim de ano
qui 30 dez sem aula Recesso de fim de ano
ter 4 jan Aula 06 Teórica Parte 1: Recapitulação de for, strings, range; Parte 2: Imutabilidade de strings; tuplas; Parte 3: Listas; mutabilidade de listas Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
qui 6 jan Aula 06 Prática Parte 1: Recap de mutabilidade; funções de listas; Parte 2: Exercícios usando listas; list comprehensions (definição de lista por compreensão) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
ter 11 jan Aula 07 Teórica Parte 1: Mais sobre mutabilidade (listas dentro de tuplas); Parte 2: Exercícios de listas (mediana); Parte 3: Funções entre strings e listas; formatação de strings (f-strings) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
qui 13 jan Aula 07 Prática Parte 1: Dúvidas da Lista 05; Parte 2: Mais detalhes sobre f-strings e exemplos; Parte 3: Exemplos de listas e f-strings: imprimindo matrizes na tela Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
ter 18 jan Aula 08 Teórica Parte 1: Recebendo dados do usuário (input); exemplo (jogo de dados); Parte 2: Exemplo de input (receber matriz); Parte 3: Exemplo de input (jogo da forca) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
qui 20 jan sem aula Feriado
ter 25 jan Aula 09 Teórica Parte 1: Dúvidas da Lista 06; Dicionários em python; exemplo (contador de frequências); Parte 2: Definição de hasheabilidade; conjuntos em python (introdução); exemplo (sorteios até repetido) Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
qui 27 jan Aula 09 Prática Parte 1: Definições de dicionários e conjuntos por compreensão; funções de conjuntos; Parte 2: Exemplo: crivo de Eratóstenes (gerar o conjunto de primos de 2 até n) Quadro, Vídeo 1, Chat, Vídeo 2, Código
ter 1 fev Aula 10 Teórica Parte 1: Definições recursivas ’legais’ e ‘ilegais’; exemplos (Fibonacci recursivo); Memoização do Fibonacci recursivo; Parte 2: Exemplo de algoritmo recursivo: quicksort; quicksort aleatório; Parte 3: Exemplo de algoritmo recursivo: torres de Hanói Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Vídeo 3, Chat 3, Código
qui 3 fev Aula 10 Prática Parte 1: Analisando a execução de algoritmos recursivos; Parte 2: Definição recursiva de hasheabilidade; algoritmo recursivo para cópias profundas de listas Quadro, Vídeo 1, Chat, Vídeo 2, Código
ter 8 fev sem aula Aula cancelada
qui 10 fev Aula 11 Teórica Parte 1: Funções de Alta Ordem (HOF); exemplos; notação lambda; Parte 2: Usando HOF para ordenar sequências; encontrando elemento mais frequente em uma lista; análise de Dom Casmurro Quadro, Vídeo 1, Chat 1, Vídeo 2, Chat 2, Código
ter 15 fev aula assíncrona
qui 17 fev sem aula SIAc
ter 22 fev (apenas caso haja demanda)
qui 24 fev (apenas caso haja demanda)
ter 1 mar sem aula Carnaval
qui 3 mar sem aula Carnaval
ter 8 mar Aula Dúvidas Dúvidas sobre o trabalho final Quadro, Vídeo
qui 10 mar sem aula

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.