MC102 — Algoritmos e Programação de Computadores
Instituto de Computação (IC/Unicamp)Profa. Sandra Avila (sandra@ic.unicamp.br)
Avisos Importantes:
- [05/07/2020] As notas da Prova 2 e as notas dos labs foram divulgadas.
- [25/05/2020] As notas da Prova 1 foram divulgadas.
- [06/04/2020] Todos os atendimentos acontecerão via Google Meet. O link será enviado por email.
- [06/04/2020] Página atualizada!
- [19/03/2020] Por conta do coronavírus, as atividades na disciplina serão retomadas de forma remota a partir de 24 de março. Mais informações em breve.
- [12/03/2020] Por conta do coronavírus, todas as atividades na Unicamp estão suspensas de 13 a 29 de março. Não teremos aula.
- [02/03/2020] A disciplina terá início no dia 05/03/2020.
- [02/03/2020] Os laboratórios terão início nos dias 11-12/03/2020.
Dias, Horários e Local:
Local: Todos os atendimentos acontecerão via Google Meet. O link será enviado por email.
Tipo de Aula | Dia da Semana | Horário | Local |
---|---|---|---|
Atendimento com a Profa. (turmas GHI) | Terça | 10h–12h | Google Meet |
Atendimento com a Profa. (turmas GHI) | Quinta | 10h–12h | Google Meet |
Atendimento com a Profa. & Monitores (turma I) | Quarta | 16h–18h | Google Meet |
Atendimento com a Profa. & Monitores(turma G) | Quinta | 14h–16h | Google Meet |
Atendimento com a Profa. & Monitores (turma H) | Quinta | 14h–16h | Google Meet |
Atendimento: Este oferecimento de MC102 conta com a colaboração de várias(os) alunas(os) de pós-graduação (PEDs) e graduação (PADs) que atuam como monitoras(es). Veja a página web geral da disciplina (https://ic.unicamp.br/~mc102/atendimento.html). As(Os) monitoras(es) da disciplina são:
- Caio Vinicius Dadauto (PED)
- Vanessa Marques Sampaio Sidrim (PED)
- Wellington Viana Lobato Junior (PED)
- Renan Fernando Franco Da Silva (PAD)
Programa 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.
De acordo com a Resolução 34 de 2020, as atividades presenciais estão suspensas até o dia 30 de abril. Seguiremos, na medida do possível, com atividades mediadas por tecnologia de acordo com um novo Plano de Desenvolvimento da Disciplina.
Veja no Cronograma de exploração de conteúdos quais são os temas e atividades recomendadas para cada da semana. Recomendamos fortemente os vídeos da série Introdução à Ciência da Computação com Python do Prof. Fabio Kon da USP. Você também pode aprender Python de um jeito bem-humorado com os vídeos do Socratica. Infelizmente, os vídeos do Socratica estão disponíveis apenas em inglês.
Observação: Aula no Material de Aula, logo abaixo, são os slides da disciplina MC102 ofertada em 2019.1.
Linguagem de Programação: Python, versão 3.
Critério de Avaliação: Serão levados em consideração os seguintes elementos: Tarefas de Laboratório e Provas Teóricas, sendo:
Tarefas de Laboratório: Serão propostas m tarefas de laboratório, que deverão ser implementadas pelas(os) alunas(os) de maneira individual. Os programas desenvolvidos serão testados com um jogo de testes pré-determinado, subdividido em testes abertos, que podem ser vistos pelas(os) alunas(os) e testes fechados, que não podem ser vistos. A nota de cada laboratório será proporcional ao número de testes, abertos ou fechados, que executaram corretamente. No entanto, serão considerados válidos apenas os programas projetados de maneira a resolver o problema proposto para um conjunto amplo de possibilidades e não aqueles projetados para emitir a saída correta para o subconjunto de testes abertos.
Juntamente com o enunciado de cada tarefa de laboratório ${L}_{i}$ será indicado o peso desta tarefa ${PL}_i \in \{1,2,3,4,5\}$. A média dos laboratórios, $M_{L}$, é a média ponderada destas m notas.
O gerenciamento da submissão e testes das tarefas de laboratório é feito com o auxílio um sistema automatizado conhecido como SuSy (Submission and Testing System for Student Programs), e está acessível a partir do endereço web https://susy.ic.unicamp.br:9999/mc102.
Provas Mediadas por Tecnologia: Serão realizadas duas provas teóricas, $P_1$ e $P_2$, com questões a serem respondidas via Moodle MC102 - 1S2020. As provas estarão abertas por 48 horas para todas as turmas nas datas abaixo:
Prova Peso Data $P_1$ 3 07-08/maio $P_2$ 4 01-04/julho A média de provas teóricas, $M_P$, é a média ponderada das provas $P_1$ e $P_2$ considerando seus respectivos pesos.
Critérios de Avaliação: A média final $M_{Final}$ e a situação da(o) aluna(o) serão definidas de acordo com as regras a seguir.
- Caso $M_P ≥ 5$ e ${M}_{L} ≥ 5$: A(O) aluna(o) estará aprovada(o) por nota e frequência com Média Final: ${M}_{Final} = 0.7*{M}_{P} + 0.3 *{M}_{L}$.
- Caso a(o) aluna(o) não esteja aprovada(o) pela regra anterior e ${M}_{P} ≥ 2.5$ e ${M}_{L} ≥ 2.5$: a(o) aluna(o) terá direito a fazer o exame Exame mediado por tecnologia que estará aberto por 72 horas para todas as turmas nas datas 13 a 15 de julho. Sua média final será ${M}_{Final} = ({M}_{Preliminar} + Exame)/2$, onde ${M}_{Preliminar} = min(4.9, 0.7*{M}_{P} + 0.3 *{M}_{L})$. Caso a(o) aluna(o) tenha obtido ${M}_{Final} ≥ 5.0$ estará aprovada(o) por nota e frequência, caso contrário estará reprovada(o) por nota.
- Caso $M_P < 2.5$ ou $M_L < 2.5$: a(o) aluna(o) estará reprovada(o) por nota com ${M}_{Final} = min({M}_{P}, {M}_{L})$.
Informações Adicionais:
- Não há possibilidade de troca de horário de provas e/ou exame final.
- Não haverá reposição de tarefas de laboratório.
- Todas as tarefas são individuais.
- Qualquer tentativa de fraude implicará em nota 0.0 (zero) na disciplina para todas as pessoas envolvidas.
- O sistema de correção automático dispõe de um eficiente detector de fraudes. Ele é programado para detectar plágios entre todas as respostas (de todas as alunas e de todos os alunos, entre todas as turmas). Ocorrência de fraude implicará em nota 0.0 (zero) na disciplina para todas as pessoas envolvidas.
Referências: Existem muitos textos sobre programação em Python. Neste semestre utilizaremos como referência principal o livro “How to Think Like a Computer Scientist: Interactive Edition” de Brad Miller e David Ranum, disponível em inglês e português, conforme descrito a seguir:
- How to Think Like a Computer Scientist: Interactive Edition
- Aprendendo com Python: Edição interativa (usando Python 3.x)
- Introduction to Computation and Programming Using Python
- Aplicativo SoloLearn
- Aplicativo Programming Hub
Caso tenha interesse por outro texto, verifique se a versão utilizada de Python é a 3. Se não for, fique atenta(o) aos detalhes que variam de uma versão para outra.
Adicionalmente, recomendamos o material disponível nas páginas oficiais da linguagem Python: www.python.org ou www.python.org.br (em português).