Segundas-feiras às 21h (CB10) e quartas-feiras às 19h (CB07).
Professor: Quartas-feiras, das 18h às 19h, na sala 23, do IC-1.
Monitor: Segundas-feiras, das 18h às 19h, na sala 74, do IC-2.
Na ausência de alunos, o horário de atendimento se encerrará às 18h:30h. Caso deseje usar o horário de atendimento, compareça à sala indica até às 18:30h.
Não haverá horário de atendimento nas semanas das provas nem do exame.
As dúvidas devem, preferencialmente, ser sanadas em sala de aula ou pessoalmente nos horários de atendimento. Use o atendimento via email apenas como último recurso.
Caso necessite enviar um email com questões relativas à disciplina, este deve ser enviado simultaneamente ao professor e ao monitor e deve conter no subject/assunto o texto “[MC336]” seguido do motivo da mensagem. Exemplos:
Em caso de problemas relacionados a códigos de programas, a mensagem deve conter a explicação completa do problema, a indicação do trecho do código onde aparentemente encontra-se o problema e o programa deve ser enviado em anexo.
Todas as mensagens de alunos devem ser assinada com nome completo e RA.
Mensagens que atendam todas as especificações acima serão respondidas em até 48h, respeitando o horário comercial, de segunda a sexta, das 8h às 18h.
Não haverá atendimento via mensagens instantâneas (MSN, Gmail Talk, etc).
Ementa
Visão comparativa de paradigmas de programação. Programação funcional, lógica e orientada a objetos.
Programa
Referências básicas:
Livros:
Outras referências:
ANSI Common Lisp - Paul Graham. Online chapter: Basic Concepts
Common Lisp the Language, 2nd Edition - Guy L. Steele Jr.
Guide to Prolog Programming - Roman Barták (online tutorial)
Adventure in Prolog (online tutorial)
The Java Tutorials (online tutorial)
Java - How to Program Fifth Edition - Deitel & Deitel
Clique aqui.
Listas de exercícios serão sugeridas nesta página 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 em Prolog, Lisp e Java, que se enfrentarão em campeonatos.
O campeonato oficial de cada linguagem é um período de 8 dias consecutivos onde serão realizados tantos campeonatos quanto possível (veja datas abaixo). As submissões de jogadores estarão liberadas pelo menos 2 semanas antes do início do campeonato oficial. Cada aluno poderá realizar quantas submissões desejar, antes e até mesmo depois do ínicio do campeonato oficial. Não serão aceitas submissões após o encerramento dos campeonatos oficiais.
A nota do campeonato será dada de acordo com o desempenho dos jogadores em todas as partidas campeonato oficial, sendo assim, para concorrer a nota máxima, os alunos devem submeter seus jogadores antes do início do campeonato oficial.
Ao final do semestre será disputado um “Mega-Campeonato” com os jogadores implementados nas três linguagens. A nota de cada aluno neste último campeonato será dada pela média geométrica das notas obtidas por cada um dos seus 3 jogadores (em Prolog, Lisp e Java). A nota obtida no “Mega-Campeonato” será utilizada como bônus (B) ao fim do semestre. Não haverá submissões específicas para o “Mega-Campeonato”, ou seja, apenas os jogadores submetidos para os campeonatos de Prolog, Lisp e Java poderão participar deste último campeonato.
Veja maiores informações sobre o jogo e o campeonato.
A nota de cada linguagem será dada pela fórmula: Li = (2Pi + Ci)/3, para 1 ≤ i ≤ 3
A nota final antes do exame (N) será calculada pela média geométrica simples das três linguagens utilizando-se a seguinte fórmula: N = (L1 x L2 x L3) 1/3
Se N < 5, o aluno terá direito a fazer o exame. O exame será composto de duas partes. A primeira parte será composta por 3 questões, onde serão solicitadas implementações de predicados, funções e classes, respectivamente, em Prolog, Lisp e Java. A primeira parte do exame terá peso 2/3 e sua nota será calculada pela média geométrica simples entre as três primeiras questões. A segunda parte do exame terá peso 1/3 e será composta de uma ou mais questões, sendo que sua nota será calculada pela média aritmética simples entre as questões da segunda parte.
A nota final da disciplina (F) após o exame (E) será calculada pela fórmula:
Observações:
Consulte as notas aqui.
Prolog | Lisp | Java | Exame | |
Prova | 16/09/2009 | 04/11/2009 | 09/12/2009 | 21/12/2009 |
Campeonato Oficial |
19/09/2009 26/09/2009 |
31/10/2009 07/11/2009 |
05/12/2009 12/12/2009 |
15/12/2009 22/12/2009 |
Notas | 28/09/2009 | 16/11/2009 | 14/12/2009 | 23/12/2009 |
As notas das provas e dos campeonatos serão divulgadas no site da disciplina.
Após corrigidas, as provas poderão ser consultadas nos horários de atendimento do professor, até no máximo duas semanas após a divulgação das notas.
As provas corrigidas não serão levadas a sala de aula.
Não haverá aulas na semana de 28/09/2009 a 02/10/2009, devido as festividades de 40 anos do Instituto de Computação da Unicamp.
Verifique os demais dias sem aulas no Calendário Oficial da Unicamp.