Computação 1 (2019.1)

Curso introdutório de Python versão 3.7.

  • Professor: Hugo Nobrega
  • Monitor: Derick Ribeiro. Email: d\*\*\*\*\*r\*\*\*\*\*\* “arroba” poli.ufrj.br (os asteriscos estão escondendo exatamente o nome do monitor).

Bibliografia

  • PythonUFRJ (Python 3.7), material desenvolvidos por professores do DCC/UFRJ.

Listas de exercícios

As listas de exercícios contarão como 20% da média final. Serão 11 listas, em média 1 por semana, e haverá o descarte das 2 ou 3 (a definir) piores notas; a nota prática será a média aritmética das notas não descartadas. As listas podem ser feitas em grupos de até três alunos cada, e a solução deve ser enviada como um arquivo em formato .py por email para o monitor. Indique no email os nomes dos componentes do seu grupo e respeite o prazo limite de cada lista!

ListaExercíciosData limite para entrega
Lista 12, 3, 4, 11, 1218 de março às 8:00 da manhã
Lista 22, 4, 5, 625 de março às 8:00 da manhã
Lista 32, 4, 5 (veja aviso abaixo), 81o de abril às 8:00 da manhã
Lista 44, 6, 7, 108 de abril às 8:00 da manhã
Lista 51, 3, 5, 624 de abril às 23:59
Lista 63, 7, 9, 1029 de abril às 8:00 da manhã
Lista 71, 3, 5, 713 de maio às 8:00 da manhã
Lista 81, 4, 6, 103 de junho às 8:00 da manhã
Lista 92, 5, 67 de junho às 23:59
Lista 102, 4, 612 de junho às 23:59
Lista 111, 2, 3, 4 (veja aviso abaixo)25 de junho às 23:59
Lista 12 (extra!)Exercício único5 de julho às 23:59

Atenção!

  • Para resolver a lista 1, você precisa saber como uma função pode retornar vários valores. Isso é feito simplesmente separando os valores com vírgula. Veja o exemplo abaixo.
  • Para resolver a questão 5 da lista 3, você não pode usar as funções min e max do Python.
  • Para resolver a questão 4 da lista 11, você deve receber a matriz do usuário elemento por elemento.
def soma_e_diferenca(n,m):
   """exemplo de função que retorna mais de um valor"""
   return n+m, n-m

Para os alunos que se inscreveram na disciplina recentemente, há listas 1 e 2 diferentes.

A data limite para entrega é 5 de abril às 23:59 por email para o professor.

  • Python Tutor: ferramenta muito útil para praticar Python, com execução de código passo-a-passo e diagramas mostrando a evolução das variáveis.
  • Python Brasil: tutoriais e listas de exercício em português. Contém diversos links para material extra em português e inglês.
  • Documentação do Python: documentação oficial do Python (em inglês).

Cronograma planejado

As aulas na sala A–204 são de 8:00 às 10:00, e na sala H–204 são de 10:15 às 12:00.
DataLocalAtividade planejada
11 de marçoA–204Aula teórica 1a: Introdução ao Python 3
12 de marçoH–228Aula teórica 1b: Primeiras definições
18 de marçoA–204Aula prática 1
19 de marçoH–228Aula teórica 2: Função
25 de marçoA–204Aula prática 2
26 de marçoH–228Aula teórica 3: Tipos de dados, strings, estrutura condicional
1o. de abrilA–204Aula prática 3
2 de abrilH–228Aula teórica 4: Variáveis e atribuição, strings
8 de abrilA–204Aula prática 4
9 de abrilH–228aula cancelada devido às chuvas
15 de abrilA–204Aula teórica 5: Manipulação de strings, tuplas e listas
16 de abrilH–228Aula teórica 6: Listas
22 de abrilA–204sem aula
23 de abrilH–228sem aula
29 de abrilA–204Aula prática 5 e Aula prática 6
30 de abrilH–228Aula teórica 7: Estrutura de repetição while
6 de maioA–204Aula prática 7
7 de maioH–228Revisão para P1
13 de maioCCMN-F2-021Prova 1 (primeira parte)
14 de maioH–228Prova 1 (segunda parte)
20 de maioA–204Discussão da P1
21 de maioH–228sem aula
27 de maioA–204Aula teórica 8: Estrutura de repetição for
28 de maioH–228Aula teórica 9: Laços aninhados e matrizes; Programa para copiar matrizes (visto em sala)
3 de junhoA–204Aula prática 8 e Aula prática 9
4 de junhoH–228Aula teórica 10: Dicionário
10 de junhoA–204Aula prática 10
11 de junhoH–228Aula teórica 11: Entrada e saída e programa principal
17 de junhoA–204Aula prática 11
18 de junhoH–228sem aula
24 de junhoA–204Aula teórica 12: Modularização Código
25 de junhoH–228Revisão para P2
1o de julhoCCMN-F2-022Prova 2 (primeira parte)
2 de julhoH–228Prova 2 (segunda parte)
8 de julhoCCMN-F2-022Prova final/segunda chamada (parte única)
9 de julhoH–228Prova final para segunda chamada (parte única)

Método de avaliação

Duas provas, \(P1\) e \(P2\), e diversas listas de exercícios. As listas de exercícios podem ser feitas em grupo de até 3 pessoas; não serão aceitas soluções iguais ou muito semelhantes entre grupos diferentes! Cada grupo enviará cada lista por e-mail ao monitor até o prazo combinado. O monitor é responsável pela correção das listas.

A média teórica \(M_T\) é a média aritmética simples das notas das duas provas. A média prática \(M_P\) é a média aritmética simples das \(n\) melhores listas de exercícios (a definir). A média parcial \(M\) é a média ponderada entre \(M_T\) (peso 4) e \(M_P\) (peso 1). Se $7 ≤ M $, então aprovado. Se \(M < 3\), então reprovado. Se \(3 \leq M < 7\), então o aluno vai para a prova final, \(PF\). Neste caso, se a média aritmética simples entre \(M\) e \(PF\) for \(\geq 5\), aprovado; caso contrário, reprovado.

Segunda chamada

A segunda chamada só é direito para casos devidamente justificados dentro do prazo de 48 horas.

Caso o aluno precise fazer segunda chamada da \(P1\) ou da \(P2\), a \(PF\) servirá como segunda chamada; neste caso, se a média \(M\) obtida satisfizer \(3 \leq M < 7\), o aluno faz a prova \(PF_2\). Caso o aluno faça \(P1\) e \(P2\) mas precise faltar a \(PF\), então a sua prova final será a prova \(PF_2\).

Se a média aritmética simples entre \(M\) e \(PF_2\) for \(\geq 5\), aprovado; caso contrário, reprovado.