MC102 - Algoritmos e Programação de Computadores
Turmas Coordenadas - Primeiro Semestre de 2022
Conteúdo desta página
Avisos Importantes
- [10/07/2022] Disponibilizados os laboratórios relativos ao
Exame (16, 17, 18, 19 e 20).
- Os alunos que ficaram de exame podem utilizar as soluções já submetidas por eles previamente.
- Os programas previamente enviados não serão automaticamente submetidos para os laboratórios correspondentes aos exames (cada aluno deve fazer as submissões manualmente).
- Os alunos que desejarem aproveitar programas previamente desenvolvidos devem usar a função “Recuperar” do SuSy para obter o programa submetido no laboratório antigo correspondente.
- [22/06/2022] O SuSy voltou a funcionar normalmente, aceitando a submissão de programas. Os prazos de submissão dos Laboratórios 11 e 14 foram ajustados, até 24/06/2022 (sexta-feira) e 12/07/2022 (terça-feira), respectivamente
- [20/06/2022] O SuSy está apresentando problemas, não permitindo a submissão de programas. Tão logo ele estiver funcionando corretamente, será avisado neste site.
- [11/03/2022] Divulgados os horários de atendimento da disciplina.
- [02/02/2022] Divulgado o calendário da disciplina.
Turmas e Docentes
- Turmas 4567:
- Professor Julio César López Hernández
- Email: jlopez@ic.unicamp.br
- Turmas ABC:
- Professora Sandra Eliza Fontes de Avila
- Email: sandra@ic.unicamp.br
- Turmas EF:
- Professor Edson Borin
- Email: edson@ic.unicamp.br
- Turmas GHI:
- Professor Hervé Cédric Yviquel
- Email: herve@ic.unicamp.br
- Turmas KLMN:
- Professor Guilherme Pimentel Telles
- Email: gpt@ic.unicamp.br
- Turmas OVXZ:
- Professor Lise Rommel Romero Navarrete
- Email: lrommel@ic.unicamp.br
Observações:
- Toda mensagem enviada para os professores deve conter no começo do subject/assunto o texto “[MC102]” seguido do motivo da mensagem.
Exemplo: [MC102] Problema com o Sistema de Submissão - O contato por email só deve ser usado em casos excepcionais.
- Para contatos por email, sempre use emails acadêmicos (@dac.unicamp.br) e identifique-se corretamente (nome completo, turma e RA).
- Emails que não seguirem estritamente as regras acima não serão respondidos.
- Dúvidas quanto ao conteúdo das aulas ou às atividades práticas não serão respondidas por email. Nesses casos, consulte o Plantão Online de Dúvidas.
Formato das Aulas
As aulas teóricas serão realizadas de forma presencial. Os laboratórios, assim como os atendimentos de dúvidas extraclasse, serão realizados de forma online. O material das aulas (slides, vídeos e códigos) serão disponibilizados no site da disciplina.
Material Didático
Materiais didáticos recomendados:
- Aula Introdutória [ slides ] [ vídeo ]
- Primeira Aula de Laboratório [ slides ] [ vídeo ]
- Python Básico: Tipos, Variáveis, Operadores, Entrada e Saída [ slides ] [ vídeo ]
- Comandos Condicionais [ slides ] [ vídeo ]
- Comandos de Repetição [ slides ] [ vídeo ]
- Listas e Tuplas [ slides ] [ vídeo ]
- Strings [ slides ] [ vídeo ]
- Dicionários [ slides ] [ vídeo ]
- Funções [ slides ] [ vídeo ]
- Objetos Multidimensionais [ slides ] [ vídeo ]
- Algoritmos de Ordenação [ slides ] [ vídeo ]
- Algoritmos de Busca [ slides ] [ vídeo ]
- Recursão [ slides ] [ vídeo ]
- Algoritmos de Ordenação Recursivos [ slides ] [ vídeo ]
- Arquivos [ slides ] [ vídeo ] (extra)
- Expressões Regulares [ slides ] [ vídeo ] (extra)
- Execução de Testes no Google Cloud Shell [ slides ] [ vídeo ] (extra)
- Numpy [ slides ] [ vídeo ] (extra)
- Pandas [ slides ] [ vídeo ] (extra)
Materiais didáticos complementares:
- Panda - Cursos de Computação em Python (IME -USP):
- Material Didático de MC102 (Marcio Pereira)
Videoaulas:
- Introdução à Ciência da Computação com Python - Fabio Kon (em português)
- Python Programming Tutorials - Socratica (em inglês)
Listas de Exercícios
- Primeira Lista - Tipos, Variáveis, Operações Matemáticas e Comandos Condicionais
- Segunda Lista - Comandos de Repetição
- Terceira Lista - Lista e Tuplas
- Quarta Lista - Strings
- Quinta Lista - Funções
- Sexta Lista - Recursão
Atividades Práticas
- As atividades práticas serão disponibilizados no SuSy.
Sites Recomendados
Os sites listados abaixo fornecem informações adicionais aos tópicos cobertos nas aulas:
- MC102 - Algoritmos e Programação de Computadores:
- Programação em Python:
- Ambientes de Desenvolvimento Integrado (IDE) para Python:
- Wikipédia (em português):
- Competições de Programação:
Downloads
- Reference Cards:
- Jogos (Programming Games):
- Cargo-Bot ( iPad)
- Robo Logic 2 HD - Lite ( iPad)
- Light-Bot ( iPhone/iPad / Android)
- Hopscotch ( iPhone/iPad)
- Swift Playgrounds ( iPad)
Ementa da Disciplina
Conceitos básicos de organização de computadores. Construção de algoritmos e sua representação em pseudocódigo e linguagens de alto nível. Desenvolvimento sistemático e implementação de programas. Estruturação, depuração, testes e documentação de programas. Resolução de problemas.
Programa da Disciplina
- Conceitos Básicos de Organização de Computadores
- Conceitos Básicos sobre Algoritmos e Programação
- Entrada e Saída de Dados
- Expressões Aritméticas, Lógicas e Relacionais
- Comandos Condicionais
- Comandos de Repetição
- Listas, Tuplas, Dicionários, Strings e Matrizes
- Funções e Escopo de Variáveis
- Algoritmos de Ordenação
- Algoritmos de Busca
- Recursão
- Algoritmos Recursivos de Ordenação
- Arquivos (extra)
- Expressões Regulares (extra)
Avaliação
A avaliação será realizada através de tarefas práticas, ou seja, programas em Python que deverão ser implementados e submetidos para correção automática através do SuSy.
Serão propostas n tarefas práticas, que deverão ser realizadas pelos alunos. Os programas desenvolvidos serão testados com um conjunto pré-determinado de testes, subdividido em testes abertos (que podem ser acessados pelos alunos) e testes fechados (que não podem). A nota de cada atividade prática será proporcional ao número de testes, abertos ou fechados, que executarem corretamente.
Juntamente com o enunciado de cada tarefa prática será indicado o peso Pi ∈ {1, 2, 3, 4} dessa tarefa. A média das tarefas práticas (P) será a média ponderada das notas das tarefas.
A média final F e a situação de cada aluno serão definidas de acordo com as regras a seguir.
- Caso P ≥ 5:
O aluno estará aprovado por nota e frequência com média final (F):
F = P
- Caso 2,5 ≤ P < 5:
O aluno poderá realizar o exame. O exame será composto por um subconjunto das tarefas práticas disponibilizadas ao longo do semestre. O aluno poderá refazer as tarefas indicadas no período do exame ou aproveitar os programas já submetidos anteriormente naquelas tarefas (sem necessidade de refazer a tarefa).
A nota do exame (E) será calculada como a média ponderada das tarefas selecionadas para compor o exame. Os pesos das tarefas para fins do exame poderão ser diferentes daqueles previamente utilizados para o cálculo da média das tarefas práticas (P). O cálculo da média final (F) será feita da seguinte forma:
F = min{5, (P + E)/2}
Caso F ≥ 5.0 o aluno estará aprovado por nota e frequência. Caso contrário, estará reprovado por nota.
- Caso P < 2,5:
O aluno estará reprovado por nota, com média final (F):
F = P
Observações:
- Não haverá atividades práticas substitutivas.
- As tarefas práticas serão disponibilizadas às segundas-feiras de manhã e ficarão disponíveis por 3 semanas (até domingo a noite).
- Qualquer tentativa de plágio ou fraude nas atividades práticas implicará em
nota final F = 0 (zero) para todos os envolvidos, sem
prejuízo de outras sanções. Exemplos de plágios e fraudes:
- Cópia ou compra de programas.
- Submissão de programas que produzam as saídas esperadas dos testes abertos a partir da comparação de trechos da entrada, sem de fato implementar os algoritmos solicitados nas tarefas práticas.
- Casos de tentativa de plágio ou fraude nas tarefas práticas poderão ser detectadas automaticamente entre todas as submissões (de todos os alunos, de todas as turmas) ao longo do semestre.
- Todos os casos de tentativa de plágio ou fraude automaticamente detectados serão verificados manualmente pela coordenação da disciplina até o final do semestre.
- As notas das atividades práticas serão divulgadas no site da disciplina até, no máximo, uma semana após o final do prazo de submissão das tarefas.
- De acordo com a fórmula acima, caso um aluno seja aprovado após realizar o exame final, sua nota final será F = 5 (cinco).
Notas
Consulte as notas aqui.
Datas Importantes
-
Calendário da disciplina: consulte as datas das atividades práticas e os tópicos cobertos a cada semana de aula.
-
Calendário oficial da DAC: consulte as datas sem atividades didáticas na Unicamp, além de outras datas importantes como o período de alteração e desistência de disciplinas.
-
Exame: conforme indicado no calendário da disciplina, os laboratórios correspondentes ao exame estarão disponíveis para submissão de 25 a 30/07/2022.