MC336 - Paradigmas de Programação

Turma A - Primeiro Semestre de 2008

Conteúdo desta página


Avisos Importantes

  1. [09/07/2008] Divulgadas as notas finais, incluindo o Mega-Campeonato e o Exame.
  2. [05/07/2008] Divulgados os dados tabulados do segundo questionário (avaliação didática).
  3. [02/07/2008] Divulgadas as notas das provas e do campeonato de Java.
  4. [18/06/2008] Disponibilizada nova lista teórica sobre Orientação a Objetos e Java no Ensino Aberto (menu “Atividades”).
  5. [12/06/2008] Divulgadas alterações no pacote catlib (ver instruções para a implementação do jogador em Java).
  6. [09/06/2008] Disponibilizadas listas teórica e prática sobre Orientação a Objetos e Java no Ensino Aberto (menu “Atividades”).
  7. [06/06/2008] Divulgadas as instruções para a implementação do jogador em Java.
  8. [31/05/2008] Disponibilizado material didático (transparências e livro sobre Java) elaborado pela professora Cecília Mary Fischer Rubira através do site Ensino Aberto (menu “Material de Apoio”).
  9. [27/05/2008] Divulgadas as notas das provas e do campeonato de Lisp.
  10. [28/03/2008] Divulgada a Lista de Exercícios de Lisp.
  11. [18/04/2008] Divulgados os dados tabulados do primeiro questionário.
  12. [14/04/2008] Divulgadas as notas das provas e do campeonato de Prolog.
  13. [01/04/2008] Divulgados novos exercícios de Prolog (veja a Lista de Exercícios de Prolog atualizada).
  14. [28/03/2008] Divulgados novos exercícios de Prolog (veja a Lista de Exercícios de Prolog atualizada).
  15. [26/03/2008] Divulgada a Lista de Exercícios de Prolog.
  16. [14/02/2008] Notas de aulas do Prof. João Meidanis sobre Lisp e Prolog disponíveis no Xerox da Mara, no Instituto de Artes, Departamento de Dança (prédio ao lado do Instituto de Computação).
  17. [13/02/2008] Campeonato oficial no ar.
  18. [06/02/2008] Salas de aulas alteradas. Veja as novas salas.
  19. [01/02/2008] A primeira aula do curso será 04/03/2008, terça-feira.

Docente e Monitores

Observação: qualquer mensagem enviada para o professor ou para os monitores deve conter no subject/assunto o texto “[MC336]” seguido do motivo da mensagem. Ex.: “[MC336] Correção da Primeira Prova”, “[MC336] Problema com Jogador em Prolog”, etc.


Dias, Horários e Local das Aulas

Terças-feiras no CB-01 e quintas no CB-02, sempre às 10h.


Dias, Horários e Local de Atendimento

Não haverá horário de atendimento nas semanas das provas nem do exame.


Ementa e Programa

Ementa

Visão comparativa de paradigmas de programação. Programação funcional, lógica e orientada a objetos.

Programa

  1. Programaçãoo Lógica (Prolog): fatos, regras, inferência. Modelo de execução. Listas, operadores e predicados primitivos para números e listas. Cut. Estruturas de controle. Outras linguagens lógicas.
  2. Programação Funcional (Lisp): ênfase em recursão e modularidade; ausência de atribuições, efeitos colaterais em geral e controle de fluxo. Escolha de uma linguagem funcional para ilustrar suas características em relação a tipos, modo de avaliação de expressões e argumentos, operações primitivas, estruturas de dados, funções de funções, entrada e saída de dados.
  3. Programação Orientada a Objetos (Java): abstração de dados, objetos, classes e tipos, herança, hierarquias de generalização/especialização, hierarquias de agregação/decomposição, polimorfismo, classes abstratas, interfaces, pacotes/módulos, tratamento de exceções, metaclasses.

Referências Bibliográficas

Referências básicas:

  1. Lisp + Prolog (Notas de Aulas, João Meidanis)
  2. Introdução a Programação Orientada a Objetos usando Java (Notas de Aulas, Cecília Mary Fischer Rubira)

Livros:

  1. Programming in Prolog: Using the ISO Standard, W.F. Clocksin, C.S. Mellish; Springer, 5th edition (2003)
  2. Practical Common Lisp, Peter Seibel; Apress, 1st edition (2005)
  3. Head First Java, Kathy Sierra & Bert Bates; O’Reilly Media, 2nd edition (2005)
  4. Beginning Programming with Java For Dummies, Barry Burd; For Dummies; 2nd edition (2005)
  5. Java How to Program, Harvey M. Deitel & Paul J. Deitel; Prentice Hall, 7th edition (2007)

Outras referências:

  1. ANSI Common Lisp - Paul Graham. Online chapter: Basic Concepts
  2. Common Lisp the Language, 2nd Edition - Guy L. Steele Jr.
  3. Guide to Prolog Programming - Roman Barták (online tutorial)
  4. Adventure in Prolog (online tutorial)
  5. The Java Tutorial (online tutorial)
  6. Java - How to Program Fifth Edition - Deitel & Deitel

Jogo e Campeonato

Clique aqui.


Listas de Exercícios

Listas de exercícios serão sugeridas ao longo do semestre. Além de servir para maior fixação do material apresentado em classe, o conteúdo dos exercícios é considerado parte integrante do material visto e será assumido como parte da matéria coberta. Como as listas não farão parte da avaliação, suas soluções não serão coletadas. Os alunos são encorajados a resolver todos os exercícios individualmente e, só posteriormente, realizar discussão em grupo. Quaisquer dificuldades devem ser prontamente discutidas com o professor ou com o monitor nos horários de atendimentos. Dúvidas não sanadas geram mais dúvidas.

Veja os exercícios recomendados.


Material Didático

Recomenda-se o estudo do programa da disciplina através do material didático preparado pelo professor Cid Carvalho de Souza especialmente para esta disciplina (slides em formato PDF).


Downloads


Avaliação

O curso será dividido em três linguages: Prolog (L1), Lisp (L2), e Java (L3).

A avaliação de cada linguagem será constituída de uma prova (P) e de um projeto baseado em campeonato (C).

Ao longo do curso deverão ser implementados jogadores do jogo “Catch the Cat” em Prolog, Lisp e Java, que se enfrentarão em campeonatos. Veja maiores informações sobre o jogo e o campeonato.

A prova terá peso 6 e o projeto terá peso 4, ou seja, a nota de cada linguagem será dada pela fórmula:

A nota final antes do exame (N) será calculada pela média geométrica das três linguagens, ou seja, utilizando-se a fórmula:

Se N < 5, o aluno terá direito a fazer o exame. A nota final da disciplina (F) após o exame (E) será calculada pela fórmula:

Observações:

  1. Não haverá provas ou projetos substitutivos.
  2. As provas e o exame terão 2h de duração e serão realizados sem consulta a qualquer material.
  3. Qualquer tentativa de fraude nas provas, nos projetos ou no exame implicará em média final N = 0 (ZERO) para todos os envolvidos, sem prejuízo de outras sanções.
  4. Não será cobrada presença em sala de aula.

Notas

Consulte as notas aqui.


Datas Importantes

Prolog Lisp Java Exame
Prova 08/04/08 20/05/08 26/06/08 08/07/08
Projeto 05-12/04/08 17-24/05/08 21-28/06/08 -
Notas 15/04/08 27/05/08 01/07/08 15/07/08

Verifique os dias sem aulas no Calendário Oficial da Unicamp.