Página actualizada às . Comentários para mc@dsi.uminho.pt

Porquê o livro "Objects First"?

Miguel Calejo
Departamento de Sistemas de Informação da Universidade do Minho

O quê?

"Objects First" (este link dá acesso a alguns capítulos online), por David J. Barnes & Michael Kölling, Prentice Hall / Pearson Education (este é o link para comprar em Inglaterra), 2003 ISBN 0-13-044929-6. 

História

No verão de 2003 fui convidado a reger a disciplina anual "Linguagens de Programação", do segundo ano da Licenciatura em Informática de Gestão da Universidade do Minho. Como é normal nestas situações planeei uma actualização à estrutura da disciplina, e no processo reavaliei ambientes de programação disponíveis para Java, no sentido de dotar os alunos de uma boa ferramenta para o segmento inicial da disciplina (durando um semestre e algumas semanas), dedicado ao paradigma de programação orientada por objectos; o restante tempo é dedicado a outros paradigmas, com ênfase na programação em lógica. Como muitos outros colegas também eu já tinha olhado para o BlueJ anos atrás, e tinha-o retido como "mais um" - um ambiente "cute", com um editor com colorização sintáctica e uma gestão de projecto simples com uns diagramazitos "UML-light" - mas "so what"? 

Ora eu ensino e pratico programação orientada por objectos "on and off" há alguns anos, do Appkit do NeXTStep até ao Swing de Java actual, e ano sim ano não trocava impressões com algum colega mais experiente, e a conversa era sempre algo do estilo: "era giro ensinarmos programação focada nos objectos desde o início...pois era, mas é muito radical, sabe-se lá no que poderia dar". E sempre todos de acordo que é muito difícil fazer o "upgrade" do paradigma "estruturado" na cabeça dos alunos para POO (ou nos tempos que correm, mesmo um "clean install"...), e que deveria haver uma maneira melhor.

Por grande sorte minha (e dos meus alunos) esta minha revisita ao BlueJ foi precedida em alguns meses pela publicação do excelente livro "Objects First", co-autorado pelo autor principal do BlueJ. E tornou-se subitamente evidente que por um lado a ferramenta tem mais algumas características que me tinham escapado, "cute" mas fundamentais, e nada evidentes para quem esperava apenas uma ferramenta como as outras... mas sobretudo que era um meio para servir algo mais profundo: uma filosofia de ensino de programação orientada por objectos "radical" - objectos primeiro! 

Assim os alunos podem agora criar objectos, bisbilhotar as suas variáveis, aprender herança, invocar métodos, desenvolver classes testá-las etc, num ambiente gráfico com uma lógica de utilização simples e natural, sem nunca ter que escrever (e perceber prematuramente) o sacramental cabeçalho public static void main(String[] args) ou mesmo System.out.println(...). Em suma, recomendo o livro e a ferramenta sem reservas :-)


Os slides

Abaixo estão os slides que fiz para acompanhar o livro (os capítulos finais aparecerão aqui ao longo de Novembro), e que podem usar-se em qualquer contexto académico ou comercial, desde que se mantenha a indicação neles contida de copyright Universidade do Minho, e se indique a sua proveniência

Cada apresentação PowerPoint apresenta a matéria de um capítulo. As nossas teóricas têm 50 minutos, e normalmente "passam" um capítulo ou meio capítulo, dependendo da sua densidade - o ritmo exacto que tenho usado com os meus alunos está documentado na página da disciplina. Uso o BlueJ em todas as teóricas para demonstrar programas e ver seu código fonte, e incentivo os alunos a seguirem a teórica nos seus portáteis.

Capítulo Slides PowerPoint (html)
1 Objectos e Classes (html)  
2 Definições de Classe (html
3 Interacção entre objectos (html)
4 Introdução a colecções e arrays (html)
5 Mais colecções e outras classes da biblioteca Java. Visibilidade e abstracção. Como ler e produzir documentação (html
6 Objectos bem comportados: testes e debugging (html)
7 Sobre a arte de bem desenhar classes (html)
8 Herança (html)
9 Mais herança (html)
10 Classes abstractas e interfaces (html)
11 Tratamento de erros (html)
12 Desenho de aplicações (brevemente)
13 Caso de estudo: não vão ser feitos, ultrapassa o curriculum da disciplina

Página actualizada em . Comentários para mc@dsi.uminho.pt