MC102 — Algoritmos e Programação de Computadores

Instituto de Computação (IC/Unicamp)
Profa. Sandra Avila (sandra@ic.unicamp.br)

 

Avisos Importantes:

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:

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.

Data Assunto Material da Aula
05/03/2020 Introdução e Plano de Desenvolvimento Aula
O que é um algoritmo?, O futuro do seu emprego, O primeiro computador
CCSL-USP: O que é Ciência da Computação (12:24)
Learn Python with Socratica (1:04)
09/03/2020 Lab00: Oi, mundo! (Peso 1) Lab00
Python 3: Como Começar no Windows
10/03/2020 Estrutura de um programa, Variáveis, Objetos e Atribuição Aula
Exact Instructions Challenge: Vale a pena tentar!
CCSL-USP: Primeiras linhas em Python (7:34)
CCSL-USP: Variáveis e scripts (programas) em Python (10:33)
CCSL-USP: Valores e tipos em Python (10:33)
Socratica: Hello World in Python (2:47)
Socratica: Python Strings (3:24)
11/03/2020 Lab01: Aritmética com inteiros (Peso 1) Lab01
12/03/2020 Estrutura de um programa, Variáveis, Objetos e Atribuição Aula
CCSL-USP: Entrada de Dados (16:43)
CCSL-USP: Tipos booleanos e precedência de operadores (14:41)
Socratica: Numbers in Python Version 3 (3:00)
Socratica: Arithmetic in Python V3 (4:40)
Socratica: Python Booleans (4:40)
17/03/2020 Aula Cancelada
19/03/2020 Aula Cancelada
23/03/2020 Lab02: Atrasos e renegociação (Peso 1) Lab02
24/03/2020 Expressões Relacionais, Lógicas e Comandos Condicionais Aula
CCSL-USP: Condicionais (13:53)
CCSL-USP: Exercício resolvido - Bhaskara (9:42)
26/03/2020 Comandos Condicionais: elif Aula
Socratica: If, Then, Else in Python (6:53)
30/03/2020 Lab03: Será COVID-19? (Peso 1) Lab03
31/03/2020 Comandos Repetitivos: while e for Aula
CCSL-USP: Repetições (laços) com while (20:12)
02/04/2020 Comandos Repetitivos: Variáveis Indicadora e Contadora Aula
CCSL-USP: Indicadores de passagem (17:22)
06/04/2020 Lab04: Classificador de triângulos (Peso 1) Lab04
07/04/2020 Funções Aula
Bugs Incríveis
CCSL-USP: Funções (17:07)
Socratica: Python Functions (9:27)
09/04/2020 Feriado
13/04/2020 Lab05: Doe sangue, doe vida! Em tempos de pandemia… (Peso 2) Lab05
14/04/2020 Comandos Repetitivos: while e for CCSL-USP: Repetições encaixadas (11:10)
Exercícios & Laços Encaixados
Exercícios & Laços Encaixados
16/04/2020 Listas & Comandos Repetitivos Aula
CCSL-USP: Coleções (20:14)
CCSL-USP: Repetições com for (15:30)
20/04/2020 Lab06: Corrida de caracóis (Peso 2) Lab06
21/04/2020 Feriado
22/04/2020 Lab07: Desenhando polígonos (Peso 3) Lab07
23/04/2020 Listas Aula (até o slide 48)
CCSL-USP: Manipulação de listas (25:04)
Socratica: Python Lists (5:44)
Mais sobre listas
28/04/2020 Strings Aula (a partir do slide 49)
Strings: Exercícios & Exemplos
CCSL-USP: Strings (15:53)
CCSL-USP: Comparação de Strings (8:36)
30/04/2020 Tuplas & Dicionários Aula
Socratica: Python Tuples (7:44)
Socratica: Python Dictionaries (6:09)
Mais sobre tuplas
Mais sobre dicionários
04/05/2020 Lab08: #ilovepython ;-) (Peso 3) Lab08
05/05/2020 Revisão para a Prova 1 Aula
Aula
07-09/05/2020 Prova 1
11/05/2020 Lab09: Critério para Aprovação em MC102 (Peso 3) Lab09
12/05/2020 Funções Aula
Aula
Bugs Incríveis
CCSL-USP: Funções (17:07)
Socratica: Python Functions (9:27)
14/05/2020 Objetos Multidimensionais Aula
CCSL-USP: Manipulação de matrizes (soma) (09:41)
CCSL-USP: Exercício resolvido (multiplicação de matrizes) (11:10)
18/05/2020 Lab10: Jogo da Vida (Peso 3) Lab10
19/05/2020 Algoritmos de Ordenação (Seleção, Bolha, Inserção) Aula
CCSL-USP: Seleção Direta (11:37)
CCSL-USP: Algoritmo de Ordenação da Bolha (8:29)
21/05/2020 Algoritmos de Ordenação (Seleção, Bolha, Inserção) Aula
CCSL-USP: Seleção Direta (11:37)
CCSL-USP: Algoritmo de Ordenação da Bolha (8:29)
26/05/2020 Feriado
28/05/2020 Algoritmos de Busca Aula
CCSL-USP: Busca sequencial (12:08)
CCSL-USP: Busca binária (12:57)
01/06/2020 Lab11: Amiges em comum (Peso 4) Lab11
08/06/2020 Lab12: Bubble Sort (Peso 2) Lab12
08/06/2020 Lab13: Busca Binária (Peso 2) Lab13
09/06/2020 Recursão Aula
CCSL-USP: Recursão - Parte 1 (11:57)
11/06/2020 Recursão Aula
Socratica: Fibonacci Sequence, Recursion and Memoization (8:00)
16/06/2020 Lab14: ASCII ART e Recursão (Extra) Lab13
16/06/2020 Quick Sort & Merge Sort Aula
Aula
CCSL-USP: Recursão - Parte 2 (25:53)
18/06/2020 Arquivos (Opcional) Aula
Aula
Socratica: CSV Files in Python (9:32)
23/06/2020 Revisão para a Prova 2 Aula
30/06/2020 Revisão para a Prova 2 Aula
01-04/07/2020 Prova 2
13-15/07/2020 Exame

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:

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.

Informações Adicionais:

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:

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).