[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
- Subject: Re: Uma crítica ao enunciado do trabalho
- From: Fabio Kon <kon*ime:usp:br>
- Date: Thu, 6 Apr 2006 09:28:22 -0300
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