Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Claor Édino Bauer
Título: Ferramenta para auxílio no ensino de orientação a objetos
 
Introdução:
Segundo Kolling (2011, p. 1), a Orientação a Objetos (OO) tem, nos últimos anos,
tornado-se o paradigma de programação mais utilizado. Ela é amplamente utilizada na
educação e na indústria e quase toda universidade ensina Orientação a Objetos em algum
ponto do seu currículo. A comunidade de software em geral concorda que ensinar OO é
benéfico, pois ela suporta os conceitos que têm sido ensinados por muitos anos, tais como
programação estruturada, modularização e design de programas.
A OO também suporta técnicas para resolver problemas que apenas mais
recentemente entraram no currículo: programação em times, manutenção de grandes
sistemas e reutilização de programas. Em resumo, Orientação a Objetos aparenta ser
uma boa ferramenta para ensinar as metodologias de programação que se
consideram importantes (KOLLING, 2011, p. 1).
Ao observar a forma como a análise e o projeto de sistemas vêm sendo ensinados e
praticados em muitos lugares, pode-se verificar que muitos profissionais simplesmente
adotam uma linguagem orientada a objetos, ou algum fragmento de processo orientado a
objetos, sem ter realmente muita noção do que estão fazendo (WAZLAWICK, 2004, p. 18).
Ainda segundo Wazlawick (2004, p. 18), de nada adianta realizar pesados investimentos em
ferramentas CASE orientadas a objetos sem que se compreenda com clareza a forma de
pensar desse modelo de programação.
Desde 1989, Beck e Cunningham (1989, p. 1) já citavam as dificuldades no ensino da
Orientação a Objetos, afirmando que “o problema mais difícil em ensinar programação
orientada a objetos é fazer com que o estudante desista da ideia de controle global que é
possível com programação procedural, e agregar a ideia de objetos cumprindo suas tarefas”.
Programadores novatos se confundem com regressões a pensamentos globais: acesso a
variáveis globais, ponteiros desnecessários e dependência inadequada sobre a execução de
outros objetos. Quinze anos depois, Galhardo (2004, p. 2), afirmou que, normalmente, o
percurso a ser percorrido pelo aluno durante o ensino da programação, inicia-se com a
aprendizagem da programação imperativa, pois a mesma possibilita que a lógica de
programação possa ser explorada com maior facilidade. Quando o aluno começa a ter contato
com uma linguagem orientada a objetos, ele sente dificuldades em transpor as barreiras que
diferenciam os estilos de programação imperativa e orientada a objetos.
Tendo-se em mente essa dificuldade no ensino de Orientação a Objetos, foi
desenvolvido neste trabalho uma ferramenta para auxiliar professores e alunos no ensino do
paradigma de Orientação a Objetos. A ferramenta permite aos usuários acompanhar a
execução de código orientado a objeto em um ambiente interativo, onde vários alunos podem participar de um grupo (sala de estudos), desenvolvendo classes, criando os respectivos
objetos e fazendo-os interagir.
A ferramenta foi desenvolvida para smartphones por estes serem mais acessíveis em
comparação com um computador desktop ou notebook. O próprio usuário ou aluno já possui o
dispositivo ao invés de a instituição ter de fornecer o equipamento. Isso, por sua vez, também
possibilita a utilização da ferramenta em sala de aula, sem a necessidade de levar os alunos
para um laboratório, além de permitir acesso ao ambiente (sala de estudo) em qualquer lugar,
desde que possua conexão com o servidor, esteja ele conectado em uma rede local ou
hospedado na internet.
O Windows Phone foi escolhido como a plataforma alvo de desenvolvimento desta
ferramenta. Conforme pode ser visto nas estatísticas dos últimos anos em Statista (2015), o
Windows Phone vem assumindo uma parcela cada vez maior do mercado de smartphones.
Além disso, este sistema operacional ainda foi pouco explorado em trabalhos acadêmicos. Por
este motivo, foi escolhido desenvolver esta ferramenta para Windows Phone utilizando a
linguagem C#.
Durante o desenvolvimento da ferramenta foram utilizados os conceitos de Test Driven
Development (TDD), que é uma técnica de desenvolvimento em que apenas se escreve código
funcional após ter escrito um teste automatizado. Isso faz com que o código escrito tenha alta
coesão e um baixo nível de acoplamento entre os componentes do programa, pois somente
assim ele poderá ser facilmente testado (BECK, 2002, p. 8).