Universidade Estadual de Campinas
Instituto de Computação
MC102 - Algoritmos e Programação de Computadores (Turmas M e N)
1º Semestre de 2006

>> <<

Avisos Importantes

  12/07/2006 -

Notas do exame disponibilizadas.
Foi um prazer lecionar a todos vocês! Boas férias e sucesso!

  22/06/2006 -

Notas da prova 2 disponibilizadas.
Para aqueles que ficaram de exame, nos encontramos de novo no dia 11/07, às 14h no CB12.
Para aqueles que já passaram, boas férias e sucesso!

  20/06/2006 -

Notas do Laboratório 8 disponibilizadas.

  18/06/2006 -

ATENÇÃO: a aula de correção da 2a prova do dia 22/06 começará a partir das 13h.

  11/06/2006 -

Notas do Laboratório 7 disponibilizadas.
ATENÇÃO: haverá aula de revisão nesta terça-feira 13/06 a partir das 13h.

  08/06/2006 -

Notas de aula da Aula 27 disponibilizadas (revisão).

  06/06/2006 -

Notas de aula da Aula 26 atualizadas (revisão).

  06/06/2006 -

Notas de aula da Aula 26 disponibilizadas (revisão).

  03/06/2006 -

Laboratório 8 disponibilizado.

  01/06/2006 -

Notas do Laboratório 6 disponibilizadas.

  30/05/2006 -

Notas de aula das Aulas 24-25 disponibilizadas.

  25/05/2006 -

Notas de aula da Aula 23 atualizadas.

  24/05/2006 -

Notas de aula da Aula 23 disponibilizadas.
Laboratório 7 disponibilizado.

  23/05/2006 -

Notas de aula da Aula 22 disponibilizadas.

  22/05/2006 -

Notas do Laboratório 5 disponibilizadas.

  18/05/2006 -

Notas de aula da Aula 21 disponibilizadas.

  17/05/2006 -

Laboratório 6 disponibilizado.

  16/05/2006 -

Notas de aula da Aula 19-20 atualizadas.

  12/05/2006 -

Notas de aula da Aula 19 atualizadas.

  11/05/2006 -

Notas de aula da Aula 19 disponibilizadas.
Notas de aula das Aulas 16-17 e 18 atualizadas.
Arquivo binário "rankingFifa.bin" disponibilizado aqui para testes de seu programa de laboratório.

  09/05/2006 -

Notas de aula da Aula 18 disponibilizadas.

  05/05/2006 -

Notas do Laboratório 4 disponibilizadas.

  03/05/2006 -

Notas de aula da Aula 16-17 disponibilizadas.
Laboratório 5 disponibilizado.

  27/04/2006 -

Notas de aula da Aula 15 disponibilizadas.
Notas do Laboratório 3 atualizadas.
Laboratório 4 disponibilizado (exemplo da média 6 está correto; verificar novo enunciado).

  26/04/2006 -

Notas da Prova 1 disponibilizadas.
Notas do Laboratório 3 disponibilizadas.

  19/04/2006 -

Data de entrega do Laboratório 3 prorrogada para 25/04.

  11/04/2006 -

Notas de aula da Aula 11 disponibilizadas.

  09/04/2006 -

Notas do Laboratório 2 disponibilizadas.

  06/04/2006 -

Notas de aula da Aula 10 disponibilizadas.
Laboratório 3 disponibilizado.

  05/04/2006 -

Notas do Laboratório 1 disponibilizadas.

  04/04/2006 -

Notas de aula da Aula 9 atualizadas.

  31/03/2006 -

Notas de aula da Aula 9 disponibilizadas.

  28/03/2006 -

Notas de aula da Aula 7 e da Aula 8 disponibilizadas.
Laboratório 2 disponibilizado.

  23/03/2006 -

Notas de aula da Aula 6 disponibilizadas.
Obs.: o teste 4 do Laboratório 1 será desconsiderado. Se você já enviou pelo SuSy e só ele deu errado, significa que você tirou total no laboratório. Caso queira re-enviar mesmo assim, tudo bem.

  21/03/2006 -

Notas de aula da Aula 5 disponibilizadas.
Laboratório 1 disponibilizado.

  16/03/2006 -

Notas de aula da Aula 4 disponibilizadas.

  15/03/2006 -

Notas de aula da Aula 3 disponibilizadas.

  14/03/2006 -

Notas de aula da Aula 2 atualizadas.

  09/03/2006 -

Notas de aula da Aula 2 disponibilizadas.

  07/03/2006 -

A data da segunda prova, combinada em sala de aula para o dia 15/06, foi alterada por ser feriado (Corpus Christi) e realocada para o dia 20/06.

  07/03/2006 -

Aqui são deixados avisos de liberação de listas de exercício, notas dos alunos, alteração de aulas, etc.
Consultem sempre.

Docente Responsável

 

Rodrigo de Oliveira
e-mail: oliveira@ic.unicamp.br (favor colocar no título da mensagem: "MC102" e o complemento conveniente)

Monitor: Rodrigo Minetto (ra049243@ic.unicamp.br)

Horário de Aulas e Laboratórios

 

Terça: 14:00h - 16:00h (aula teórica - sala CB12)
Quinta: 14:00h - 16:00h (aula teórica - sala CB11)
Quinta: 8:00h - 10:00h (aulas práticas de laboratório - sala SI03 e SI05)

Obs.: O atendimento aos alunos será prestado após as aulas teóricas quando estes requisitarem o professor.
Não haverá atendimento em véspera de prova!

Ementa, Programa e Referências Bibliográficas

  Ementa:
Fundamentos de algoritmos e sua representação em linguagem de alto nível. Estudo pormenorizado de uma ou mais linguagens. Desenvolvimento sistemático e implementação de programas. Modularidade, depuração, testes e documentação de programas.

Programa:
1. Introdução à programação de computadores. 2. Programa, entrada e saída de dados. 3. Variáveis, comandos de atribuição e constantes. 4. Comandos condicionais. 5. Comandos de repetição. 6. Vetores. 7. Matrizes. 8. Ponteiros e alocação dinâmica de memória. 9. Procedimentos e funções. 10. Manipulação de cadeias de caracteres. 11. Registros e enumeração. 12. Arquivos. 13. Recursão. 14. Listas ligadas.

Obs.: também iremos abordar algoritmos clássicos de busca e ordenação.

Referências Bibliográficas:
Não será seguido um livro texto específico. As notas de aula estarão disponíveis neste site. Além disso, o aluno pode procurar por outros livros na biblioteca como, por exemplo:

  • Azevedo, R. J. Curso de Linguagem C. Instituto de Computação - Unicamp. 2001. (disponível aqui).
  • Farrer, H.; Becker, C. G.; Faria, E. C.; Matos, H. F.; Santos, M. A.; Maia, M. L. Programação Estruturada de Computadores: Algoritmos Estruturados, Guanabara, 1985.
  • Kernighan, B. W.; Ritchie, D. M. C : A Linguagem de Programação Padrão ANSI. Rio de Janeiro : Campus, 1989. 289p.
  • Miyazawa, F. K.; Souza, C. C.; Kowaltowski, T. Notas de Aula de Algoritmos e Programação de Computadores. Instituto de Computação - Unicamp. 2001. (disponível no xerox do Instituto de Artes).
  • Schildt, H. C Completo e Total, 3ª edição, São Paulo, Makron Books, 827p. (trad. de Roberto Carlos Mayer, C: The Complete Reference, McGraw-Hill, 1995).
  • Wirth, N. Programação Sistemática. Campus, 1978.

Avaliação

 

Provas
Serão aplicadas 2 provas teóricas, P1 e P2. A média das provas teóricas é calculada da seguinte forma:

Caso o aluno tenha perdido uma prova, a nota do exame poderá substituir a prova faltante (desde que acompanhada previamente de um atestado) Não haverá outro tipo de prova substitutiva.
A princípio, sugere-se que as datas das provas sejam as seguintes:

20/04/2006 - Primeira Prova
20/06/2006 - Segunda Prova
11/07/2006 - Exame

Laboratórios
Os exercícios de laboratório (programas a serem desenvolvidos) deverão ser realizados individualmente e submetidos ao SuSy. Além da verificação de "cola" feita pelo programa, o monitor da disciplina ficará encarregado de checar semelhanças entre os programas. Qualquer evidência de cola será notificada ao aluno infrator com pena de reprovação direta na disciplina.
A cada semana tem-se um laboratório valendo nota. Cada laboratório tem o prazo de 1 semana para ser entregue (com exceção de alguns laboratórios maiores que poderão ter prazo de 2 semanas e que terão o dobro do peso para efeito de nota). Ao todo, serão aplicados m laboratórios valendo nota (8 < m < 12): L1, L2, ..., Lm. A nota de cada laboratório Li será calculada como segue:

A média dos laboratórios L serão calculadas como:

Média Final
A média M, antes do exame, será calculada da seguinte forma:

Caso o aluno tenha média M < 5.0, haverá um exame: E. Note a importância de ir bem tanto nas provas quanto nos laboratórios. Se P < 5.0 ou L < 5.0, o aluno já está de exame.
A nota final F será calculada como:

 

Materiais úteis para a conduta da disciplina

  Compiladores gratuitos de C para Windows:
  • Borland C 2.01: descompactando esse arquivo serão gerados 3 diretórios: disk1, disk2 e disk 3. Copie todos os arquivos desses diretórios para um mesmo diretório e depois execute o programa "install.exe".
  • MinGW: Esta página contém uma série de links para download das versões do MinGW. Até 21/07/2004, a mais recente era a 3.1.0. Procure pelo link MinGW-3.1.0-1.exe e baixe ele.

Calendário de Aulas Teóricas

Conforme as aulas forem se desenvolvendo, serão preenchidas as datas com o correspondente assunto teórico abordado.

  07/03/2006 -

Aula 1 - Apresentação da disciplina.

  09/03/2006 -

Aula 2 - Introdução à computação (histórico, organização de computadores, termos técnicos, noções de algoritmos, compiladores e interpretadores, bits e bytes, padrão ASCII, conversão de bases).

  14/03/2006 -

Aula 3 - Introdução à computação (representação numérica, facilidades para realização de operações de adição e multiplicação com esta representação, papel dos compiladores na otimização, álgebra booleana, noções básicas de algoritmo, ciclo de desenvolvimento de um programa, história e características da linguagem de programação C, primeiro programa, formato de um programa).

  16/03/2006 - Aula 4 - Elementos Básicos da Linguagem C (identificadores, modificadores, variáveis, constantes, instruções, operadores, prioridade sobre operadores) e Funções Básicas de entrada/saída (printf, scanf, getchar, putchar).
  21/03/2006 - Aula 5 - Comandos de desvio (if-else-if, operador ternário, switch). Desvios simples e concatenados.
  23/03/2006 - Aula 6 - Comandos repetitivos (for, while, do-while). Repetições simples e concatenadas. Comparações entre as sintaxes repetitivas.
  28/03/2006 - Aula 7 - Vetores.
  30/03/2006 - Aula 8 - Matrizes.
  04/04/2006 - Aula 9 - Ponteiros.
  06/04/2006 - Aula 10 - Modularização. Uso de procedimentos e funções. Variáveis locais e globais. Passagem por referência e valor.
  11/04/2006 - Aula 11 - Manipulação de cadeias de caracteres (gets, puts, strcpy, strcmp, strcat).
  13/04/2006 - Feriado.
  18/04/2006 - Aula 12 - Revisão para a prova.
  20/04/2006 - Aula 13 - Primeira Prova.
  25/04/2006 - Aula 14 - Correção da prova e entrega das notas.
  27/04/2006 - Aula 15 - Registros.
  02/05/2006 - Aula 16 - Manipulação de arquivos.
  04/05/2006 - Aula 17 - Manipulação de arquivos.
  09/05/2006 - Aula 18 - Alocação dinâmica de memória (malloc, calloc, realloc).
  11/05/2006 - Aula 19 - Recursão (animação).
  16/05/2006 - Aula 20 - Recursão (mais exercícios inseridos na aula anterior).
  18/05/2006 - Aula 21 - Algoritmos de Busca (busca linear e busca binária).
  23/05/2006 - Aula 22 - Algoritmos de Ordenação (seleção, bolha, inserção). Animação.
  25/05/2006 - Aula 23 - Algoritmos de Ordenação (inserção, quicksort).
  30/05/2006 - Aula 24 - Lista Ligada.
  01/06/2006 - Aula 25 - Lista Ligada (continuação).
  06/06/2006 - Aula 26 - Revisão para a prova.
  08/06/2006 - Aula 27 - Revisão para a prova.
  13/06/2006 - Aula 28 - Revisão para a prova.
  15/06/2006 - Feriado.
  20/06/2006 - Aula 29 - Segunda Prova.
  22/06/2006 - Aula 30 - Correção da prova e entrega das notas finais .
  11/07/2006 - Aula 31 - Exame.

Calendário de Laboratórios

Aqui também estarão disponíveis as descrições dos laboratórios e as notas dos alunos em cada um deles.

  09/03/2006 - Apresentação do sistema Susy.
  16/03/2006 - Testes com o sistema Susy.
  23/03/2006 - Laboratório 1 (disponibilizado em 21/03 no SuSy para ser entregue até 28/03 às 23:59:59)
  30/03/2006 - Laboratório 2 (disponibilizado em 28/03 no SuSy para ser entregue até 06/04 às 23:59:59)
  06/04/2006 - Laboratório 3 (disponibilizado em 06/04 no SuSy para ser entregue até 25/04 às 23:59:59)
  13/04/2006 - Feriado.
  20/04/2006 - Laboratório 3
  27/04/2006 - Laboratório 4 (disponibilizado em 27/04 no SuSy para ser entregue até 04/05 às 23:59:59)
  04/05/2006 - Laboratório 5 (disponibilizado em 03/05 no SuSy para ser entregue até 18/05 às 23:59:59)
*** arquivo rankingFifa.bin disponibilizado para testes do seu programa antes de enviar para o SuSy.
  11/05/2006 - Laboratório 5
  18/05/2006 - Laboratório 6 (disponibilizado em 17/05 no SuSy para ser entregue até 25/05 às 23:59:59)
  25/05/2006 - Laboratório 7 (disponibilizado em 24/05 no SuSy para ser entregue até 01/06 às 23:59:59)
  01/06/2006 - Laboratório 7
  08/06/2006 - Laboratório 8 (disponibilizado em 03/06 no SuSy para ser entregue até 15/06 às 23:59:59)
  15/06/2006 - Feriado.
  22/06/2006 - Tira dúvidas dos laboratórios