[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Uma crítica ao enunciado do trabalho



Tá estressado, heim Tiago? :-)

Desse jeito você vai ter um ataque do coração antes de chegar nos 30...

Você pode até ter razão em algumas das coisas em que está dizendo mas a forma que você escolheu para dizer isso foi bem inapropriada.

Na aula conversamos.

[]s,
fabio.



Em 06/04/2006, às 08:09, Tiago Motta Jorge escreveu:

Caros professor e monitor,

Estou chocado com o engessamento que o enunciado do trabalho nos propõe.
Implementar várias classes pré-definidas e com interfaces pré- definidas é uma
afronta à nossa capacidade intelectual. Sinceramente, isto não passa de um
trabalho braçal que poderia ser feito por qualquer programador com um mínimo de
conhecimento de Orientação a Objetos.


Não compreendi qual foi a lógica seguida. Depois de uma aula sobre cartões
CRC, que é o primeiro passo para aprendermos a modelar sistemas, é como se
tivéssemos que esquecer tudo sobre modelagem e implementar um modelo feito por
outra pessoa.


A parte mais interessante de Orientação a Objetos é justamente modelar um
sistema. É justamente modelarmos "errado" várias vezes, até chegarmos à uma
"banda de jazz" perfeita.


Por exemplo, não gostei da classe WMGerente. No meu grupo, na aula de cartões
CRC, nós conseguimos modelar um sistema sem nenhum gerente. Os gerentes recaem
justamente no que foi dito na início da aula: "A tendência das pessoas
iniciantes na modelagem de sistemas é fazer classes que orquestram todo o
sistema...". E também foi dito que isso é uma má prática de programação OO.


Sei que ter interfaces e clases pré-definidas facilitam a vida do monitor na
hora de corrigir os trabalhos. No entanto, se a idéia do curso é ver se
conseguimos implementar um modelo feito por outra pessoa, este curso deveria ser
dado em uma universidade sem o renome do IME-USP. O que deveria ser avaliado é
justamente a qualidade da modelagem do sistema. E isto dá trabalho, com certeza.
Definitivamente.


Na ementa da disciplina diz: "Este curso visa prover os fundamentos da
programação neste paradigma [OO], tão importante para o desenvolvimento de
sistemas complexos.". A meu ver, fundamentos de programação OO é aprender a
modelar sistemas, e não a implementar sistemas pré-modelados.


Minha sugestão de enunciado para a primeira fase do projeto é a seguinte:

"O trabalho deste semestre será um pequeno cliente Web para gerenciamento de
e-mails. O cliente será multi-usuário e deve prover funcionalidades básicas para
o envio e recebimento de mensagens que contenham formas restritas de
attachments. Nesta primeira fase do projeto, vocês devem modelar o núcleo do
sistema. Neste primeiro momento, não se preocupem com a interface. O núcleo do
sistema deve ser capaz de manipular contas, usuários e mensagens de uma maneira
conveniente e elegante. [Mais alguns detalhes sobre o Maildir e cabeçalho de
e-mails]."


Espero ter iniciado um debate construtivo e que cause algum impacto, tanto no
professor, como no monitor e, principalmente, no restante da turma. Gostaria de
saber se sou o único a pensar desta maneira.



Atenciosamente, Tiago Motta Jorge <tiagoj arroba ime ponto usp ponto br>


--- Prof. Fabio Kon Department of Computer Science University of São Paulo