|
Acadêmico(a): Kim Willian Forest |
Título: Protótipo de um Sistema Tutor de Orientação a Objetos |
|
Introdução: |
O mercado de software, cada vez mais, exige uma qualidade maior em seus produtos, que estão ficando cada vez maiores e mais complexos. Essa complexidade, e tamanho, são problemas significativos para técnicas tradicionais de programação. Montenegro e Pacheco (1994) ressaltam a utilização da programação orientada a objetos (POO) para controle de complexidade e manutenção dos sistemas. O programador que está totalmente familiarizado com as técnicas de programação estruturada encontra uma certa dificuldade para fazer a mudança da forma de programar.
A atividade de desenvolvimento de software vem utilizando cada vez mais as técnicas de orientação a objetos (OO). Segundo Deitel e Deitel (2003), “orientação a objetos é um modo natural de pensar sobre o mundo e de escrever programas de computador”. O projeto orientado a objeto (OOD) modela objetos para chegar a solução de um problema. A implementação vem por meio de uma linguagem OO (por exemplo, o JAVA).
Uma linguagem OO apresenta vantagens sobre uma linguagem estruturada (como maior facilidade de manutenção e reutilização de código), mas como aprender a utilizar essas vantagens, nem sempre é fácil entender, principalmente para quem está iniciando “os primeiros passos” em lógica de programação.
Segundo Silva I. (2000), o esforço de aprendizado dos conceitos de OO deve, necessariamente, estar associado ao uso de novas técnicas de ensinar a pensar, de forma a motivar as pessoas a avançar na assimilação desses novos conceitos e identificar as diferenças em relação aos métodos estruturados ao qual essas pessoas estão familiarizadas.
Mattos (2000) afirma que os estudantes que iniciam o curso de graduação em informática, normalmente encontram dificuldades relacionadas com a disciplina de introdução a programação (ou nome similar), cujo principal objetivo é o de introduzir os conceitos básicos de lógica de programação. Segundo o autor, “os alunos encontravam dificuldades em extrair as informações necessárias para iniciar a solução de problemas (...). O aluno geralmente não vem com uma boa noção do 2º grau, e não consegue visualizar certos problemas. Transcrevê-los então fica difícil. Sem essa capacidade aprimorada não terá facilidade para solucionar alguns problemas, e então, compreender a lógica de programação” (Mattos, 2000).
Na Universidade Regional de Blumenau (FURB) a disciplina introdutória de OO (denominada Programação II) aparece no 3º semestre do curso de Ciências da Computação. Até lá os alunos são ensinados a desenvolver programas usando técnicas estruturadas. Fowler e Scott (2000) colocam que para se conseguir utilizar as vantagens da OO, tem-se que fazer a “maldita troca de paradigma” (Fowler; Scott, 2000), ou seja, aprender a pensar OO.
Mattos (2000) fez um acompanhamento entre o primeiro semestre de 1996 e segundo semestre de 1998 sobre as turmas de introdução a programação (ou nome similar). Nesse acompanhamento, constatou que os alunos poderiam ser separados em dois grupos: aqueles que haviam entendido o “como fazer” e superado as dificuldades e aqueles que não conseguiam superá-las. Verificou-se também que os alunos do segundo grupo, na grande maioria, conseguiam descrever a solução intuitivamente (sem o formalismo necessário na computação), quando induzidos a pensar sobre o problema através de perguntas direcionadas.
No trabalho de Mattos (2000) foi construído um protótipo de um tutor de algoritmos que baseado em perguntas direcionadas, conduz o aluno no processo de desenvolvimento do algoritmo desejado.
Gubler (2002) fez uma extensão ao trabalho descrito em Mattos (2000), desenvolvendo um protótipo que, além de possuir uma simples interface com o usuário (que era primitiva e de difícil entendimento no trabalho anterior), suporta as estruturas de repetição em algoritmos. Nesse trabalho, Gubler também reformulou as perguntas aplicadas em relação às utilizadas no trabalho desenvolvido em Mattos (2000).
O protótipo desenvolvido em Gubler (2002), através da interface gráfica, apresenta perguntas ao usuário (aluno de disciplina de introdução a programação) e, de acordo com as respostas, constrói um algoritmo que atenda as necessidades desse aluno. O trabalho citado atende bem as necessidades de introdução a programação, mas não atende os requisitos de OO. Este foi o ponto de partida para o presente trabalho. |
|
|