sexta-feira, 22 de março de 2013

Ensino da linguagem de programação Java utilizando o paradigma Orientado a Objeto


UNIVERSIDADE FEDERAL DA PARAÍBA
CENTRO DE CIÊNCIAS APLICADAS E EDUCAÇÃO
DEPARTAMENTO DE CIÊNCIAS EXATAS
LICENCIATURA EM CIÊNCIA DA COMPUTAÇÃO



Projeto de Educação a Distância




Ensino da linguagem de programação Java utilizando o paradigma Orientado a Objeto.





Gérison Figueirêdo
Kaouê Pinheiro





Flávia Veloso
Orientadora Acadêmica




Sumário




1. Introdução


Na tentativa de minimizar os problemas de aprendizagem das linguagens de programação modernas devido à constante evolução tecnológica, os pesquisadores estão buscando novas alternativas ao modelo tradicional de ensino de programação.
Acredita-se que o paradigma orientado a objeto seja apropriado em disciplinas introdutórias de programação, visto que é um conceito bastante amadurecido no meio acadêmico. Sendo assim, a linguagem Java apresenta grande destaque por possibilitar implementação orientada a objetos com classes executáveis em várias plataformas, além de possuir ferramentas básicas de desenvolvimento gratuitas.
Entretanto, existem duas questões importantes ao utilizar Java como linguagem introdutória: (a) o que ensinar? e (b) como ensinar? Há problemas significantes em sua utilização como linguagem de programação introdutória, mas, esses problemas podem ser reduzidos através do ocultamento de algumas complexidades de Java. Assim, é possível permeia conhecimentos básicos da linguagem ao discente, dando a este base para aprimorar sua capacidade lógica de solucionar problemas e, também, encaminhamento para adquirir novos conhecimentos técnicos sobre a linguagem que possibilitaram ao discente conceber novas aplicações.
O curso dará aparato para que o aluno adquira conhecimentos básicos sobre a linguagem de programação Java, utilizando o paradigma orientado a objetos, com carga horária de 60h (sessentas horas). A plataforma do curso será o Joomla.

2. Trabalhos Relacionados


Os cursos de Tecnologia da Informação mostram-se entre os mais concorridos segundo observa-se pela concorrência elevada em processos seletivos. Entretanto, vencido o obstáculo da fase de seleção, inicia-se a fase universitária e logo vem o contato com as disciplinas básicas de áreas específicas da computação, e isso pode gerar tanto afinidade quanto repulsão, segundo JÚNIOR e RAPKIEWICZ (2004).
Na literatura são observados autores que trabalham a temática de expor os problemas quanto ao ensino de programação, traçando perfil do egresso, avaliando ferramentas educacionais que auxiliam no ensino da programação, entre outros aspectos.
FARIA e COELLO apud JÚNIOR et al. (2005),
“foi proposto o uso de uma abordagem de aprendizagem baseada na colaboração. Esta abordagem colaborativa parte do princípio de que o conflito sócio-cognitivo entre os aprendizes pode melhorar o seu aprendizado. Para suportar o aprendizado colaborativo, foi desenvolvido um avaliador de programas em C, chamado Verificador de Diferenças Significativas entre Programas – VDSP. O VDSP avalia os programas dos alunos, pontuando-os. A pontuação é utilizada para montar grupos de alunos que deverão refazer o programa, trocando pontos de vista e considerações. O VDSP foi experimentado com alunos do curso de Sistemas de Informação da PUC Minas Arcos, especificamente, alunos da disciplina Algoritmos e Estruturas de Dados, com resultados positivos em relação à formação de grupos de trabalho homogêneos e heterogêneos sob mediação do professor em detrimento de um trabalho individual.”
Para RAABE e SILVA apud JÚNIOR et al. (2005),
“o aprendizado de algoritmos é considerado desafiador pelos estudantes de cursos tecnológicos. Os principais motivos para este fato são: o alto nível de abstração do conteúdo e a dificuldade dos docentes em detectar e atender as dificuldades de aprendizagem dos alunos. Dessa forma, propuseram um ambiente que auxilia no atendimento às dificuldades de aprendizagem da disciplina de Algoritmos utilizando o paradigma de Assistentes Inteligentes de Ensino. Estes assistentes auxiliam o professor em sua tarefa de monitorar, assistir e analisar os alunos. Os resultados da utilização do ambiente apontam para a viabilização da tarefa de acompanhamento individualizado dos alunos e uma maior eficiência na identificação e atendimento às dificuldades de aprendizagem.”
BORGES e FILHO apud JÚNIOR et al. (2005),
“discute-se que grupos de estudo têm surgido como uma alternativa para complementar os conteúdos vistos em sala de aula e desenvolver/aprimorar habilidades. Neste contexto, apresentaram a importância dos grupos de estudo na formação dos futuros profissionais da área de computação. Relataram a experiência com o grupo de estudos de Java da Universidade Luterana do Brasil (ULBRA). Ao contrário do que se possa imaginar, a diferença de nível entre os alunos não constituiu obstáculos para o andamento dos trabalhos. Observou-se uma forte interação entre os componentes do grupo e o prazer em dividir o conhecimento adquirido. Relações se estabeleceram a partir da experiência de pesquisar, aprender e resolver problemas juntos.”



3. Fundamentação Teórica


Sabe-se que o desenvolvimento das tecnologias de informação e comunicação está diretamente atrelado a evolução que se iniciou por meio dos correios, passando aos programas de rádio e TV, vídeos, computadores e chegando até as sofisticadas transmissões e conferências via satélite, e a Educação a Distância tende a se apoiar cada vez mais em tecnologias emergentes que facilitam o seu acesso e aceitação (TAVERES, 2007). Entretanto, utilizar da tecnologia para ensinar a tecnologia ainda é algo pouco difundido no processo de ensino, tornando-se mais um desafio para aplicar novas práticas de processo de ensino-aprendizagem.
Os cursos a distância que utilizam ambientes on-line tendem a seguir, no processo ensino-aprendizagem, a lógica “bancária” e linear de transmissão de conteúdos. Encontram-se páginas na web com conteúdos seqüenciais que, em alguns casos, oferecem um “hipertexto fechado” no qual o aluno não tem a possibilidade de participar e intervir nem se perder na Internet (ARAUJO, 2007).
O processo de aprender uma linguagem de programação é árduo e difícil para a maioria dos discentes, mesmo que sejam trabalhados apenas conceitos básicos e resolução de problemas triviais, visto que os problemas reais, que os formandos irão encontrar no mercado de trabalho, são complexos e exigem um esforço muito maior. Segundo MENDES apud PEREIRA (2007) programar é um processo difícil para a maioria dos estudantes mesmo com a aprendizagem de conceitos básicos e aplicação destes na resolução de problemas concretos, ainda há um alto grau de dificuldade à compreensão daqueles. Assim, observa-se que é necessário procurar estratégias e materiais nessas dificuldades sentidas pelas discentes.
Para PEREGO (2002), a linguagem Java enfatiza ideias de flexibilidade, dinamismo e segurança. A flexibilidade é notada nos diversos tipos de aplicações que podem ser desenvolvidas; o dinamismo deve-se a sua filosofia de implementação e pela sua carga dinâmica de componentes em sua Máquina Virtual de Execução, independente de plataforma de hardware; e a segurança observa-se pela obrigatoriedade de inspeção de código carregado pela JVM.
Entretanto, para possibilitar a aprendizagem à distância, independente da disciplina, é necessário averiguar e planejar como isso deve ser feito. Para isso, existem tecnologias que possibilitam criar sítios na web que possibilitam um ambiente propicio a aprendizagem. Uma daquelas é o Joomla. Este é um grande exemplo de Sistema de Gerenciamento de Conteúdo (CMS), possibilitando a gestão de conteúdos web e a criação de portais educativos. Joomla é uma das ferramentas CMS mais utilizadas devido sua facilidade de uso, as características profissionais e a interface intuitiva que contribuem para sua aceitação por instituições empresariais e educacionais (RAHMEL apud COELHO et al., 2011), além de proporcionar uma “variedade de interfaces personalizadas fáceis de serem usadas e seus suportes adicionais tais como: fóruns, comunidades online, chats, artigos, vídeos e redes sociais. Tudo isso é disponibilizado gratuitamente e não há a necessidade de um programador” (RAHMEL apud COELHO et al., 2011).
Pode-se verificar que ao longo do tempo os web sites evoluíram no nível de layout das páginas, na estruturação da informação e integração de ferramentas de comunicação e edição colaborativa online. Essa evolução fez com que as instituições adotassem táticas de gestão da informação e dos conteúdos produzidos (COELHO et al., 2011).
Diante desses aspectos elencados, pode-se observar uma aprendizagem cooperativa, o trabalho em conjunto entre professores e alunos próximos fisicamente ou virtualmente. Uma das formas mais interessantes de se trabalhar hoje colaborativamente é criar uma página dos alunos, ou um espaço virtual de referência, onde vai-se construindo e colocando o que acontece de mais importante no curso, os textos, os endereços, as análises, as pesquisas. O importante é combinar o que se pode fazer melhor em sala de aula com o que se pode fazer a distância, utilizando todos os recursos, todas as técnicas possíveis, integrando dinâmicas sociais com as inovadoras, a escrita com o audiovisual, o texto seqüencial com o hipertexto, o encontro presencial com o virtual (MORAN et al., 2000).

4. Proposta

Esse projeto propõe aos alunos dos cursos de Tecnologia de Informação conceitos básicos sobre a linguagem de programação Java utilizando o paradigma Orientado a Objeto no desenvolvimento de aplicações Java, promovendo uma quebra de conceitos enraizados (estruturados) e desenvolvimento lógico de programação.


4.1 – Requisitos

É desejável que o discente possua os seguintes conhecimentos:
·         Lógica de algoritmos de programação;
·         Lógica em programação estruturada;

4.2 – Metodologia do curso


No ensino de qualidade, não se deve existir diferença entre as metodologias do ensino presencial e à distância. As metodologias mais eficientes no ensino presencial são, também, as mais eficientes no ensino à distância (HAGUENAUER, 2005). Assim, o curso propõe metodologia que possibilite ao aluno a construir seus conceitos sobre o paradigma Orientado a Objetos e linguagem Java equiparável a forma presencial, utilizando das tecnologias emergentes como facilitadora do processo de ensino-aprendizagem.
A resolução de problemas é uma forma de aprendizagem interessante porque se aprende mais profundamente técnicas para resolver problemas que são importantes, questionando, buscando respostas em diferentes fontes, considerando diversas perspectivas, trocando visões com outros e construindo seu próprio conhecimento (KAY apud BORGES, 2002). A programação de computadores emergiu dessa necessidade: solucionar problemas, ou seja, capacitar o computador a resolver problemas reais, a automatizar tarefas. Logo, percebe-se que o discente não deve encarar o professor como única fonte de conhecimento, ou seja, o professor (tutor) é apenas um facilitador, um guia de qual o melhor caminho a ser seguido na busca do conhecimento e uma fonte de apoio em casos de dificuldades. Portanto, a metodologia de ensino-aprendizagem adotada é construtivista, pois a meta é uma exploração ativa, onde se constrói o conhecimento, ao invés de instruir através de aulas e leituras estáticas.
Espera-se do professor uma participação ativa nos fóruns de discussão e também respostas às mensagens eletrônicas enviadas pelos alunos (BORGES 2002). Além da participação diária, o professor participará de no mínimo mais duas horas semanais em chats, e consumir pelo menos mais cinco horas semanais na avaliação da participação dos alunos e na proposição e correção dos desafios. Ou seja, em teoria, de quatro horas semanais, ela exige muito mais do professor, tanto em quantidade de horas, quanto na exigência de disponibilidade integral, sete dias por semana, nos horários mais variados (BORGES 2002).


4.3 – Materiais didáticos

Sabe-se que a produção de materiais didáticos é um trabalho que envolve diferentes tipos de conhecimento e profissionais, pois se trata de algo que aborda conceito, linguagem, metodologia e planejamento em sua concepção. Portanto, o processo de produção de material didático na Educação à Distância não se dá de forma trivial, sendo necessário, além dos aparatos tecnológicos, momentos de planejamento, envolvimento entre especialistas e recursos didático-pedagógicos que vão de encontro às necessidades dos alunos. Assim, este curso irá abranger diversos tipos de materiais instrucionais a fim de aprimorar o processo de ensino-aprendizagem. Dentre esses estão: hipertextos, vídeos, texto impresso e, vídeo-conferência.



4.4 – Módulos

Neste subitem os módulos serão organizados em tabelas para melhorar o entendimento e detalhar o conteúdo, objetivo de aprendizagem, papeis, atividades, avaliação e duração, que cada módulo propõe.

 

 

Módulo 1 – Fundamentos de programação Java

Conteúdos
Objetivo de aprendizagem
Papeis
Atividades
Avaliação
Duração
1.   Histórico;
2.   Introdução;
3.   Plataforma Java;
4.   Ambiente de Desenvolvimento;
5.   Compilação;
6.   Execução de um programa.


·  Analisar as características das linguagens orientadas a objetos;
·  Motivar a adoção deste paradigma de programação;
·  Desenvolver aplicações usando alguma linguagem de programação orientada a objeto;
·  Declaração de variáveis / tipos primitivos;
·  Os três comandos: entrada, saída, atribuição;
·  Condicional (IF, switch)
·  Estruturas de repetição (for, while);
·  String;
·  Arranjos (Arrays);
·  Mecanismo de referências (tipo primitivo x variáveis de referências);
·    Tutor: sanar dúvidas;
·    Aluno: Buscar conteúdo.




 

Módulo 2 – Objetos e Classes

Conteúdo
Objetivo de aprendizagem
Papeis
Atividades
Avaliação
Duração
1.   Métodos;
2.   Paradigma de Programação Orientada a Objetos;
3.   Desenvolvimento de Classes (Atributos e Métodos)
4.   Uso de Objetos;
5.   Programação Java;
6.   Construtor.






Módulo 3 – Orientação a Objetos

Conteúdo
Objetivo de aprendizagem
Papeis
Atividades
Avaliação
Duração
1.  Diagramas de classes;
2.  Diagramas de objetos;
3.  Troca de mensagens entre objetos;
4.  Encapsulamento;
5.  Herança;
6.  Hierarquia de classes;
7.  Sobreposição de métodos;
8.  Classes abstratas;
9.  Interfaces;
10.         Polimorfismos;





 




 

5. Considerações Finais

Espera-se, ao final, que os discentes deste curso carreguem consigo uma visão aprimorada sobre o pensamento lógico de programação e possuam base para conceber tecnologias emergentes que utilizam a linguagem Java como base e, ainda, quebrar o paradigma de programação estruturando, possibilitando novas concepções sobre como solucionar problemas complexos.
“As inovações tecnológicas utilizadas hoje podem não resolver os problemas da educação, sociedade, política e ideológica, mas, com certeza, se utilizada como suporte ao sistema de ensino atual, pode melhorar a qualidade do mesmo e, consequentemente, qualificar melhor os alunos e a sociedade na busca da perfeição educacional” (COELHO et al., 2011).

Referências

PEREGO, Cássia Alves. JEduc: reflexão sobre a Linguagem Java na Educação. Porto Alegre/RS: PPGC da UFRGS, 2002.
TAVARES, Valéria Ribeiro de Carvalho. O ambiente inovador da EaD como agente de mudanças e transformações das práticas pedagógicas. 2007. Acesso em 27/02/2013. Disponível em: <http://www.senado.gov.br/sf/senado/unilegis/asp/AR_Artigos4.asp>


Nenhum comentário:

Postar um comentário