[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”).
[27/05/2008] Divulgadas as notas das provas e do campeonato de Lisp.
[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).
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
Professor: Quintas-feiras, das 16h às 17h, na sala 23, do IC-1.
Monitores: Terças-feiras, das 18h às 19h, na sala 86 IC-2.
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
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.
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.
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.
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.
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).
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:
Li = (6Pi + 4Ci)/10, para 1 ≤ i ≤ 3
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:
N = (L1 x L2 x L3) 1/3
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:
F = (N + E)/2, se N < 5 e o aluno compareceu ao exame
F = N, caso contrário
Observações:
Não haverá provas ou projetos substitutivos.
As provas e o exame terão 2h de duração e serão realizados sem consulta a qualquer material.
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.