MC600 - Estudo Comparativo de Linguagens de Programação
Novidades
Programação
-
| Turma A | Turma B
|
---|
Março, Abril
| Lisp, Prolog (Prof. Jacques Wainer)
| Java (Prof. João Meidanis)
|
Maio, Junho
| Java (Prof. João Meidanis)
| Lisp, Prolog (Prof. Jacques Wainer)
|
Horário e Local
- Terças e quintas, das 14:00 às 16:00
- Turma A: Sala PB-03, prédio novo do básico
- Turma B: Sala PB-02, prédio novo do básico
Livros
Critério de Avaliação
- As notas e freqüências serão dadas separadamente para a
parte de Java e para a parte de Lisp+Prolog. A nota final será
a média das duas notas. A freqüência final será a soma das duas
freqüências.
- Java.
- Haverá duas provas e um projeto de
programação valendo nota. A nota desta parte do curso será a
média das notas da prova e do projeto, com pesos iguais.
- Datas das provas: 28/03 e 25/04 (Turma B)
- Datas das provas: 30/05 e 15/06 (Turma A)
Programa
- Java. Durante o primeiro mês definiremos o
projeto (que será a implementação de um jogo), e ao fim do mês
teremos gerenciadores implementados. No segundo mês serão
implementados os jogadores, e ao fim do mês acontecerá o
campeonato. Ao longo dos dois meses, teremos aulas sobre a
linguagem.
Projetos
A data de entrega será algum dia desta semana. Fique atento.
Houve alterações no projeto. As principais mudanças são:
- Não haverá mais uma porta fixa para cada aluno. Haverá um
intervalo fixo de portas a serem usadas. O programa
de cada aluno, ao executar, pegará a primeira porta livre deste
intervalo.
- O gerenciador não mais receberá como parâmetros quais
hosts/portas jogarão. Ele simplesmente consultará todas as
portas do intervalo fixo no host em que estiver rodando.
Aquelas ativas (isto é, que derem resposta válida)
participarão.
- O gerenciador será executado em intervalos definidos, por
exmeplo, a cada meia hora. Os resultados dos campeonatos serão
disponibilizados num diretório html, onde ficarão todos os
campeonatos.
- Haverá um limite de tempo imposto aos jogadores para
garantir que um campeonato não ultrapsse o tempo previsto.
- Nada impede que os alunos rodem o gerenciador em outras
máquinas. Tenham em mente, porém, que cada porta pode suportar
apenas um jogo por vez.
Eis aqui a concepção original:
- O jogo a ser implementado é o popular jogo dos pontinhos.
Inicia-se com 36 pontos num arranjo quadrado 6x6. Cada jogada
consiste em ligar dois pontos consecutivos, vertical ou
horizontalmente. Se a ligação completar um quadrado, o jogador
ganha um ponto e joga de novo. Caso contrário, é a vez do
adversário. O jogo acaba quando não houver mais ligações a
fazer. Ganha quem tiver mais pontos no final. Há um total de
25 pontos (quadrados) em uma partida.
- O professor
disponibilizará uma máquina onde serão rodados os programas.
Cada aluno deverá escrever uma aplicação em Java que será um
servidor de jogos. Mediante um certo protocolo, este servidor
manterá jogos com parceiros que conectarem na porta correta.
Cada aluno escutará numa porta fixa.
- Haverá um programa
gerenciador de campeonatos, que, munido de uma lista de
endereços do tipo host/port, executará um campeonato com os
servidores que estiverem escutando nos endereços dados. Todos
jogarão contra todos, uma vez começando e a outra sendo o
segundo a jogar. Vitória vale 1 e derrota vale 0 (zero). O
gerenciador manterá o total de pontos e os divulgará no final.
Servidores que cometerem jogadas inválidas em mais de 10% das
partidas serão desclassificados.
- O gerenciador será
implementado por alunos do curso durante o mês de março,
juntamente com alguns servidores simples, para teste do
gerenciador. Assim que estiver pronto, o código do gerenciador
será distribuido a todos os alunos, para que possam testar seus
programas. Logo que os primeiros servidores estiverem
disponíveis, serão colocados para rodar na máquina
disponibilizada pelo professor, e poderão ser usados pela
classe, juntamente com o gerenciador, para teste dos demais
servidores. Para deixar seu servidor disponível para teste,
basta logar na máquina disponibilizada pelo professor e disparar
seu servidor. Cada aluno terá sua porta específica, de modo a
evitar conflitos entre servidores.
- Para testar seu
programa, não é preciso logar na máquina do professor. De posse
do gerenciador, basta dar os endereços host/port. Tipicamente,
todos os endereços menos um serão na máquina do professor, e
este último será o programa ou versão nova que está sendo
testada.
- Haverá um controle do tempo usado para cada
jogada (ou para a partida inteira) de modo a permitir que os
campeonatos rodem rápido. Em condições normais, foi observado
que é importante o aluno ter feedback rápido para qualquer
alteração feita no programa.
Home page -
Meidanis
E-mail -
Meidanis
Last modified: Sun Feb 6 16:13:29 EDT 2000
by JM