O documento discute os desafios da Ciência da Computação em ensinar Orientação a Objetos de forma apropriada. Apresenta diferentes perspectivas sobre como o ensino ainda é influenciado por pressões comerciais em vez de inovação, e propõe uma abordagem gradual e baseada em evidências para atualizar os currículos.
2. O Mundo Ideal
“Fala o Mestre, com tom enfático e firme, depois
de 3h de aula sobre estilos arquiteturais:
- Orientação a objetos é sobre arquitetura e não
sobre algoritmos!”
Vocês Sabem Quem, 2011
Ciência da Computação
2 de 12
Rumo à Engenharia de Software
3. A Dura Realidade
MIT: Introduction to Object-oriented
Programming
(http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-
programming-fall-2008/video-lectures/lecture-14/ a partir dos 40 minutos de vídeo.)
●A idéia-chave da OOP é a criação de tipos
abstratos de dados
●Um objeto é uma coleção de dados e (sic)
funções
●A junção de dados e funções que operam
sobre eles chama-se encapsulamento
Ciência da Computação
3 de 12
Rumo à Engenharia de Software
4. O Que Fazer?
●Sentar e chorar: Alguns de nós ensinaram –
bad karma :-) Na próxima seremos suporte!
●O mundo não é justo: É justo sim, vide a lei
da gravidade. Mas os mais incomodados
que se virem. Santos Dumont não se
conformou com a lei da gravidade :-)
●Mas é tão ruim assim???
Ciência da Computação
4 de 12
Rumo à Engenharia de Software
5. Se fosse uma cirurgia...
Dr Dobbs 2010 IT Project Success Rates
(http://drdobbs.com/architecture-and-design/226500046)
●Ad-hoc projects: 49% are successful, 37%
are challenged, and 14% are failures.
●Iterative projects: 61% are successful,
28% are challenged, and 11% are failures.
●Agile projects: 60% are successful, 28%
are challenged, and 12% are failures.
●Traditional projects: 47% are successful,
36% are challenged, and 17% are failures.
Ciência da Computação
5 de 12
Rumo à Engenharia de Software
6. Se fosse uma cirurgia...
Você operaria confiante e tranquilo?
Eu não!!!
Ciência da Computação
6 de 12
Rumo à Engenharia de Software
7. Quem segura o bisturi?
“The greatest danger to good computer science
research today may be excessive relevance…
Another danger is that commercial pressure of
one sort or another will divert the attention of the
best thinkers from real innovation to exploitation
of the current fad, from prospecting to mining a
known lode.”
Dennis M. Ritchie, A Quarter Century of
Unix, 1994
Ciência da Computação
7 de 12
Rumo à Engenharia de Software
8. Quem segura o bisturi mesmo?
Gartner Identifies the Top 10 Strategic
Technologies for 2011
(http://www.gartner.com/it/page.jsp?id=1454221)
● Cloud Computing ● Social Analytics
● Mobile Applications and ● Context-Aware
Media Tablets Computing
● Social Communications ● Storage Class Memory
and Collaboration ● Ubiquitous Computing
● Video
Fabric-Based ●
● Next Generation Analytics Infrastructure and
Computers
Ciência da Computação
8 de 12
Rumo à Engenharia de Software
9. Quem segura o bisturi mesmo?
JEE, Eclipse, Enterprise Service Bus,
frameworks, XML, bla bla bla...
Ciência da Computação
9 de 12
Rumo à Engenharia de Software
10. Mudanças lentas
Thomas Kuhn, no livro “Estrutura das Revoluções
Científicas”, afirma que em determinadas ocasiões,
o paradigma não é capaz de resolver todos os
problemas, que podem persistir ao longo de anos
ou séculos inclusive, e neste caso o paradigma
gradualmente é posto em cheque, e começa-se a
considerar se é o modelo mais adequado para a
resolução de problemas ou se deve ser
abandonado. Aqui, uma crise se estabelece.
Ciência da Computação
10 de 12
Rumo à Engenharia de Software
11. Propostas
● (Yet Another) Novo currículo;
● Implementação iterativa e incremental do
currículo, possibilitando implantação gradativa e
mensuração;
● Modelo do currículo pinçado seletivamente das
melhores universidades mundiais, seguindo um
modelo teórico pré-estabelecido;
● Não descolar do mercado, mas primeiro
fundamentos, depois tecnologias. “Só há três
coisas certas: a morte, os impostos, e a mudança
tecnológica. :-)”.
Ciência da Computação
11 de 12
Rumo à Engenharia de Software