Ξ  

 

 SOBRE A DEFICIÊNCIA VISUAL

Siga este site no Facebook.     Siga este site no Twitter    Envie um email à Webmaster do Site

Ensino de Lógica de Programação para Cegos

Rubia Steffens; Cristiano Bertolini; Sidnei Renato Silveira; Nara Martini Bigolin

 

Diferentes softwares podem ser aplicados para apoiar os processos de ensino e de aprendizagem em diferentes áreas. Alguns softwares podem ser desenvolvidos especificamente com o fim educacional (chamados de softwares educacionais). Entretanto, outros softwares também podem ser aplicados no contexto educacional. Por exemplo, um editor de textos ou uma planilha eletrônica, apesar de não terem sido desenvolvidos especificamente para a área educacional, podem ser utilizados em diferentes níveis de ensino e/ou disciplinas, como auxiliares dos processos de ensino e de aprendizagem. Como exemplos, podemos citar a utilização de um editor de textos para propormos que os alunos escrevam uma redação e a utilização de uma planilha eletrônica nas aulas de Matemática (SILVEIRA et al., 2019).

No caso do aprendizado de lógica de programação, pode-se utilizar softwares desenvolvidos especificamente com a finalidade educacional (tais como o Ambap e o VisuAlg) ou ambientes de programação, conhecidos como IDEs (Integrated Development Environment), tais como Dev-C, Eclipse, NetBeans e Visual Studio, entre outros (ECLIPSE FOUNDATION, 2019; MICROSOFT, 2019; NETBEANS.ORG, 2019; PARREIRA et al., 2018; SOURCEFORGE.NET, 2019).

Segundo a SBC (Sociedade Brasileira de Computação), o objeto de estudo fundamental da Ciência da Computação é o algoritmo. Estuda-se o que é, como construí-lo, analisá-lo e como construir/usar máquinas para executá-lo. Para que a máquina seja capaz de executar um algoritmo, ela precisa entendê-lo, ou seja, o algoritmo precisa ser descrito na linguagem que a máquina compreende, usando as instruções que ele é capaz de executar. Um outro aspecto essencial da Computação é a investigação de técnicas para construir algoritmos: não é suficiente apenas conhecer o conjunto de instruções que a máquina entende, precisamos saber como, a partir de um problema, pode-se construir a solução, ou algoritmo, e descrever esta solução usando a linguagem adequada (SBC, 2018).

O domínio destas técnicas provê uma habilidade essencial na resolução de problemas. Além disso, a Computação investiga a natureza essencial dos problemas e dos processos mentais que usamos para solucioná-los (que pode ser compreendido em uma perspectiva construcionista de aprendizagem, de acordo com a Teoria Construtivista de Jean Piaget) (PEREIRA et al., 2017), permitindo a compreensão de quais problemas podem ou não ser resolvidos de forma algorítmica.

Os conhecimentos da área de Computação podem ser organizados em 3 eixos, como mostra a Figura 1 (Pensamento Computacional, Cultural Digital e Mundo Digital) (SBC, 2018).


Figura 1: Eixos dos Conhecimentos da Área de Computação  |  Fonte: SBC, 2018.
Audiodescrição: Imagem colorida. Um círculo central preto, com a palavra Computação dentro. Deste círculo, saem três outros círculos. Um círculo azul, à direita, com o texto Mundo Digital. Deste círculo azul, saem três outros círculos, também azuis, contendo em cada um uma palavra, sendo: Codificação, Processamento e Distribuição, respectivamente. Do círculo preto central, à esquerda, sai um outro círculo bege, contendo o texto Cultura Digital. Deste círculo bege, saem outros três círculos, cada um com uma frase, sendo: Fluência Digital, Ética Digital e Computação e Sociedade, respectivamente. Acima do círculo preto, tem um círculo verde contendo a frase Pensamento Computacional. Deste, saem três círculos verdes, cada um contendo uma palavra, sendo: Abstração, Análise e Automação, respectivamente. (Audiodescritor roteirista: Cristiano Bertolini; Audiodescritora consultora: Rubia Steffens).
 

Neste artigo abordaremos o eixo ligado ao pensamento computacional. Segundo a SBC (2017), nos referenciais propostos para a Computação na Educação Básica, o Pensamento Computacional se refere à capacidade de sistematizar, representar, analisar e resolver problemas por meio da construção de algoritmos. Apesar de ser um termo recente, vem sendo considerado como um dos pilares fundamentais do intelecto humano, junto com a leitura, a escrita e a aritmética pois, como estas, serve para descrever, explicar e modelar o universo e seus processos complexos. O Pensamento Computacional envolve abstrações e técnicas diferentes das aprendidas na Matemática, necessárias para a descrição e análise de informações (dados) e processos (SBC, 2018).

O aprendizado de programação envolve sintaxe e semântica. A sintaxe consiste nas regras que devem ser cumpridas para formular uma instrução e escrever programas na linguagem de programação escolhida. A semântica envolve o sentido e é a parte criativa do processo, ou seja, a “lógica da programação”. Cada aluno (programador) pode ter uma lógica diferente e desenvolver um programa que resolve um determinado problema.

Neste contexto, este artigo apresenta um estudo comparativo, considerando aspectos de acessibilidade, de algumas IDEs selecionadas, que são utilizadas para apoiar os processos de ensino e de aprendizagem de programação. O contexto acessível é o de atender alunos cegos. Para tanto, o estudo comparativo foi realizado com a participação de uma aluna cega, que é acadêmica do Curso de Sistemas de Informação da UFSM/Frederico Westphalen-RS.


FUNDAMENTAÇÃO TEÓRICA

Quando analisamos os processos de ensino e de aprendizagem de lógica de programação e de programação de computadores (utilizando diferentes linguagens de programação), verificamos que a abordagem pode ser baseada na teoria construtivista de Piaget.

Na abordagem construtivista (construtivismo), o aluno é visto como construtor do seu conhecimento, mas que está inserido em uma sociedade, em uma determinada cultura que contribuirá na determinação do seu saber (VYGOTSKY, 2007). A construção do conhecimento, que possibilita a aprendizagem, permite que os alunos assimilem novos conhecimentos, a partir de conceitos já conhecidos. Essa construção envolve interação, estudo, experiência e erro. Neste sentido, o processo de ensino e de aprendizagem não pode envolver meramente atividades repetitivas. O professor precisa estimular os alunos a desenvolverem sua criatividade e interagirem (CARRETERO, 2002; FRANCO, 2004; GOULART, 1997, PEREIRA et al., 2017). Neste contexto cabe destacar que programar um computador é uma atividade criativa. Cada um de nós pode criar um algoritmo (ou programa) diferente para chegar à solução de um mesmo problema.

Por exemplo, se aprendermos a programar utilizando a linguagem de programação Java, cada um de nós terá um conhecimento diferente, baseado nas nossas experiências com o uso desta linguagem.

Segundo Piaget, o criador da teoria construtivista, o conhecimento não está no sujeito nem no objeto, mas ele se constrói na interação do sujeito com o objeto. Na medida em que o sujeito interage com os objetos é que ele produz a capacidade de conhecer e produz o próprio conhecimento (BRENELLI, 2005; FRANCO, 2004; SILVEIRA, 1999). A construção é realizada por meio de esquemas que cada pessoa já possui, ou seja, esquemas que foram construídos por meio da sua relação com o meio em que vive. Segundo Campos (1996, p. 19, citado por SILVEIRA, 1999): “Os esquemas (...) são as estruturas mentais ou cognitivas pelas quais os indivíduos intelectualmente organizam o meio. São estruturas que se modificam com o desenvolvimento mental e que se tornam cada vez mais refinadas à medida que a criança se torna mais apta a generalizar os estímulos (...) os processos responsáveis por essas mudanças são assimilação e acomodação”. Um esquema é um padrão de comportamento ou uma ação que se desenvolve com uma certa organização e que consiste em um modo de abordar a realidade e conhecê-la. Os esquemas relacionados ao pensamento computacional (lógica de programação, por exemplo) são esquemas complexos.

Por exemplo, se analisarmos a criação de um algoritmo ou programa: à medida que o programador desenvolve o código-fonte vai assimilando o conteúdo, isto é, vai se apropriando dele e procurando entendê-lo conforme o que conhece sobre este assunto (assimilação). Ao mesmo tempo, a construção do programa vai determinando alterações na organização do seu conhecimento sobre o assunto (acomodação).

A assimilação é a incorporação de novas informações aos esquemas já existentes. A acomodação envolve a modificação destes esquemas. A relação entre assimilação e acomodação é altamente interativa. Desta forma, o conhecimento não é uma qualidade estática e, sim, uma relação dinâmica. A forma de um indivíduo abordar a realidade é sempre uma forma construtiva e tem a ver com sua disposição, com o seu conhecimento anterior e com as características do objeto. Uma “coisa” só é um objeto de conhecimento quando existe interação entre ela e o organismo cognitivo que a constitui como objeto.

Neste contexto, para que você possa construir seu próprio conhecimento, espera-se que os professores partam do seu nível de desenvolvimento, assegurando a construção de aprendizagens significativas, permitindo que você modifique seus esquemas de conhecimento e estabeleça relações ricas entre o novo conhecimento e os esquemas de conhecimento já existentes (CARRETERO, 2002). O professor deve levar em consideração o que o aluno já sabe sobre o conteúdo que será ensinado, visto que o novo conhecimento se assentará sobre o velho. Segundo Ausubel (citado por CARRETERO, 2002), a aprendizagem deve ser uma atividade significativa para a pessoa que aprende e tal significação está diretamente relacionada com a existência de relação entre o conhecimento novo e o que o aluno já possui.

Para Franco (2004, p. 56), “...o papel do professor não pode ser nem de um ‘expositor’ nem de um ‘facilitador’, mas sim de um problematizador. Isto significa que o professor está ali para organizar as interações do aluno com o meio e problematizar as situações de modo a fazer o aluno, ele próprio, construir o conhecimento sobre o tema que está sendo abordado”. Brenelli (2005) coloca que o professor precisa criar situações-problema que desencadeiem a atividade espontânea do sujeito, para que as estruturas cognitivas se desenvolvam. A atuação como problematizador faz com que o professor tenha um trabalho maior na preparação de suas aulas. Além disso, os alunos precisam estar motivados para atuarem como sujeitos ativos no processo de aprendizagem, não apenas como meros expectadores de aulas expositivas tradicionais. Esta problematização é comumente utilizada em aulas que envolvem o pensamento computacional. O aprendizado de programação baseia-se na resolução de problemas, propostos pelo professor.
 

METODOLOGIA E CONTEXTO

A metodologia proposta neste artigo consiste em: (i) selecionar softwares utilizados nas disciplinas que compreendem estudos nas áreas de lógica de programação e de programação de computadores do curso de Sistemas de Informação; (ii) criar cenários de uso; (iii) dado os cenários uso criados, verificou-se o que é possível fazer em cada um dos softwares. Os cenários foram executados com e sem assistência de um vidente e, então, realizou-se uma análise do que a aluna cega conseguiu ou não fazer utilizando a IDE.

Os softwares selecionados foram as IDEs NetNeans, Eclipse, Visual Studio Community e VisuAlg. O ambiente onde os softwares foram instalados e executados foi o Sistema Operacional Microsoft Windows 10 de 64 bits, utilizando o NVDA (Non Visual Desktop Access) que consiste em um leitor de tela gratuito e de código aberto (Open-Source). O leitor de tela permite que alunos cegos possam utilizar as IDEs por meio de áudio.
 

CENÁRIOS DE USO

Nesta seção são apresentados os cenários de uso que foram executados pela aluna cega nos softwares selecionados. Todos os cenários foram realizados utilizando um programa simples de computador chamado “Olá Mundo”. Quando iniciamos a aprendizagem de uma nova linguagem de programação, geralmente criamos um primeiro programa, chamado de Olá mundo. O programa, uma vez executado, mostra a mensagem “Olá Mundo”. Também foi utilizado um programa “Olá Mundo” com um erro de sintaxe. Observa-se que os softwares de programação (IDEs) identificam e apontam erros de sintaxe, assim facilitando a correção de erros pelos programadores. Os cenários utilizados neste estudo comparativo foram:

  • Cenário 1. Abrir o Software: consiste em abrir o software e entender as opções que são apresentadas na interface do mesmo;

  • Cenário 2. Abrir um programa de computador: consiste em já ter o programa de computador salvo em um arquivo em uma linguagem suportada e então abrir o programa e conseguir ler todo ele;

  • Cenário 3. Executar um programa: consiste em executar o programa de computador e ler o resultado da execução do mesmo;

  • Cenário 4. Editar um programa, salvar e executar: consiste em mudar a mensagem “Olá Mundo” para “Olá Brasil”, salvar as alterações e executar o programa;

  • Cenário 5. Corrigir um erro em um programa: consiste em abrir o programa “Olá Mundo” com um erro, entendê-lo e corrigi-lo. Após salvar e executá-lo para verificar se o erro foi realmente corrigido.
     

COMPARATIVO DE FERRAMENTAS PARA PROGRAMAÇÃO COM A APLICAÇÃO DOS CENÁRIOS DE USO

Foram considerados os cenários descritos anteriormente, para cada uma das ferramentas selecionadas no estudo. No entanto, alguns dos cenários não foram possíveis de serem executados, devido a limitações das ferramentas e/ou do leitor de telas utilizado. São apresentadas as principais observações de cada uma das ferramentas analisadas em termos de acessibilidade:

Netbeans (NETBEANS.ORG, 2019): Assim que o programa é aberto, o leitor de telas lê apenas Netbeans 10.0. O usuário não consegue utilizar os menus e opções do Netbeans por meio do teclado. Apenas com assistência visual e usando teclas de atalho do Netbeans, é possível se acessar as opções do menu. Entretanto, após serem abertas as outras telas, o leitor não lê e não é possível continuar. Por exemplo: criando um novo arquivo, é possível acessar usando o atalho Ctrl + N, porém, uma vez aberta a tela de novo arquivo, não é possível fazer mais nada, pois o leitor não identifica o que está na tela;

Eclipse (ECLIPSE FOUNDATION, 2019): Quando esta IDE é executada, é possível ao usuário ler os menus e saber o que está na tela com o leitor. Não é necessária assistência para iniciar e abrir um arquivo. O leitor consegue ler todo o programa, mas não identifica os números das linhas.

No entanto, consegue ir até uma determinada linha desejada usando a tecla de atalho Ctrl+L. Quando o programa é executado, o resultado aparece em uma outra janela que não é lida pelo leitor. Quando um erro é inserido, não é possível identificar, sem assistência visual, se existem erros e onde os mesmos estão. O usuário cego precisa de assistência para, com o mouse, abrir a janela onde aparecem os erros e em quais linhas estão localizados. Uma vez corrigido esse erro, foi possível executar, mas novamente é necessária a assistência com o mouse para identificar o resultado.

Visual Studio Community (MICROSOFT, 2019): O usuário cego, assim que o programa é executado, consegue ler os menus, criar, abrir e editar projetos. Para a edição do programa, o leitor identifica as linhas no código, o que facilita bastante a edição. A tela de saída com o resultado é compreendida e é possível voltar para o programa e acessar os menus. Não foram encontradas dificuldades com relação à acessibilidade. Sendo assim, tudo que é mostrado na tela é lido pelo leitor e é possível navegar por todo o programa;

VisuAlg (PARREIRA et al., 2018): Utilizando o VisuAlg, o usuário cego consegue abrir o programa e ler os menus apenas com o uso do teclado. Na edição do programa, o leitor identifica as linhas no código. No entanto, não é possível editar o programa plenamente, pois o leitor não reconhece algumas palavras reservadas do VisuAlg, bem como não lê algumas frases e palavras no código. A tela de saída é compreendida apenas com o auxílio de um addon do leitor de telas NVDA, chamado Virtual Review. Ele é, basicamente, uma janela de revisão virtual que permite que o usuário revise o conteúdo de uma determinada janela em uma caixa de texto.


RESULTADOS

Com essa análise, percebemos que a IDE Netbeans foi a ferramenta que menos possui acessibilidade no que diz respeito a usuários cegos, já que só é possível utilizá-la por meio do mouse. A IDE Eclipse, por sua vez, possibilita que o usuário crie e edite um programa, mas não permite que ele tenha acesso ao resultado, bem como seus possíveis erros e soluções.

Com o VisuAlg, a maior dificuldade que o usuário tem é na edição e correção de possíveis erros, visto que o programa não permite a leitura completa do código dentro da ferramenta. Assim, uma solução encontrada para contornar esse problema foi copiar o código para outro editor e, depois de editado, novamente copiar para o VisuAlg, fazendo assim com que o usuário tenha um pouco mais de trabalho ao criar um determinado programa.

Por fim, o Visual Studio Community foi a ferramenta que apresentou menos limitações com relação à acessibilidade. Com o uso desta IDE o usuário cego pode criar, editar e executar um determinado programa, sendo possível acessar todas as opções da ferramenta.


TRABALHOS RELACIONADOS

Barbosa et al. (BARBOSA et al., 2013) apresentam um estudo sobre a utilização de leitores de telas por deficientes visuais (cegos e pessoas com baixa visão). Foram utilizados os leitores Dosvox e NVDA em um grupo de deficientes visuais. No estudo realizado observou-se que a utilização de leitores de tela promove independência e possibilita a inclusão social. No nosso trabalho utilizamos o leitor de tela NVDA por ser mais utilizado atualmente e comparamos softwares específicos empregados na programação de computadores.

Barros et al. (BARROS et al., 2017) apresentam um ambiente de criação de linguagens, que permite a professores criarem linguagens simples de programação. Este ambiente é totalmente acessível e permite que deficientes visuais utilizem a plataforma para aprender programação utilizando-se conceitos de robótica. O trabalho não propõe nenhum ambiente novo mas, sim, a utilização de ambientes de programação populares, tanto no ensino de lógica de programação quanto no desenvolvimento de software em empresas.


CONCLUSÃO

O ensino da programação não é uma tarefa fácil e, devido a isso, muitas universidades discutem com frequência seus currículos em busca de alternativas para diminuir o índice de evasões dos cursos superiores da área de Informática. É comum observarmos pesquisas que apontam o grande número de evasões neste curso, fato que tem relação com as dificuldades de aprendizagem (GARLET et l., 2018). No estudo aqui apresentado destacamos, além da dificuldade no aprendizado de programação, as questões que envolvem a acessibilidade de pessoas cegas no uso de ferramentas para apoiar os processos de ensino e de aprendizagem da programação de computadores.

Os processos de ensino e de aprendizagem da Lógica de Programação não são triviais, pois exigem que se tenha conhecimento de uma linguagem específica e da lógica envolvendo os programas. O que ocorre, na maioria das vezes, é que alunos acabam desistindo dos cursos superiores da área de Informática devido às dificuldades encontradas no aprendizado da lógica de programação, fazendo com que os mesmos sejam reprovados, diminuindo sua autoestima, gerando uma aversão diante do conteúdo ensinado. Problemas como estes fazem parte dos grandes desafios da Educação em Informática (GARLET et al., 2018). Estes desafios também envolvem as questões de acessibilidade das IDEs que serão utilizadas pelos cegos nos processos de ensino e de aprendizagem e, também, no mundo do trabalho, quando os mesmos forem atuar profissionalmente como desenvolvedores de software.

Por fim, percebemos com este estudo que a ferramenta menos acessível é a IDE Netbeans. Ou seja, não é possível que uma pessoa cega tenha autonomia para trabalhar com esta IDE, uma vez que essa ferramenta não possui nenhuma forma de acessibilidade via teclado. Por outro lado, o Visual Studio Community foi a ferramenta em que foram encontradas menos dificuldades com o uso por meio do leitor de telas, sendo possível iniciar, editar e finalizar um programa com esta IDE. Como trabalhos futuros, pretende-se investigar outras soluções (formas alternativas de uso) que possam melhorar a acessibilidade dessas ferramentas.


REFERÊNCIAS

  • BARBOSA, A. F.; MARTINS, R. O.; SANTOS, H. R. M. Uma experiência no Ensino de Informática para deficientes Visuais no Município de Garanhuns-PE. WIE, 2013.
  • BARROS, R. P.; BURLAMAQUI, A. M. F.; AZEVEDO, S. O.; SA, S. T. L.; GONÇALVES, L. M. G.. CardBot - Assistive Technology for Visually Impaired. In: Educational Robotics: Experiments and Results. IEEE Latin America Transactions. Volume: 15 , Issue: 3 , March 2017.
  • BRENELLI, R. P. O Jogo como Espaço para Pensar: a construção de noções lógicas e aritméticas. Campinas, São Paulo: Papirus, 2005.
  • CARRETERO, M. Construtivismo e Educação. Porto Alegre: Artes Médicas, 2002.
  • ECLIPSE FOUNDATION. Download Eclipse. Disponível em: <https://www.eclipse.org/downloads/>. Acesso em: 13 abr. 2019.
  • FRANCO, S. R. K. O Construtivismo e a Educação. 4. ed. Porto Alegre: Mediação, 2004.
  • GARLET, D.; BIGOLIN, N. M.; SILVEIRA, S. R. Ensino de Programação de Computadores na Educação Básica: um estudo de caso. Resiget – Revista Eletrônica de Sistemas de Informação e Gestão Tecnológica, v.9, n.2, 2018. Disponível em: <http://periodicos.unifacef.com.br/index.php/resiget/article/view/1604/1144>. Acesso em: 13 abr. 2019.
  • PEREIRA, A. S.; PARREIRA, F. J.; SILVEIRA, S. R.; BERTAGNOLLI, S. C. Metodologia da Aprendizagem em EaD. Santa Maria: UAB/NTE/UFSM, 2017.
  • MICROSOFT. Visual Studio Community. Disponível em: <https://visualstudio.microsoft.com/pt-br/vs/community/?rr=https%3A%2F%2Fwww.google.com%2F>. Acesso em: 13 abr. 2019.
  • NETBEANS.ORG. NetBeans. Disponível em: <https://netbeans.org/>. Acesso em: 13 abr. 2019.
  • SBC. Sociedade Brasileira de Computação. Diretrizes para o Ensino de Computação Básica. Documento Interno da Comissão de Educação Básica da SBC, 2018.
  • SBC. Sociedade Brasileira de Computação. Referenciais de Formação em Computação: Educação Básica. 2017. Disponível em: <http://www.sbc.org.br/documentos-da-sbc/send/131-curriculos-de-referencia/1166-referenciais-de-formacao-em-computacao-educacao-basica-julho-2017>. Acesso em 2 nov. 2018.
  • SILVEIRA, S. R. Estudo de uma Ferramenta de Autoria Multimídia para a Elaboração de Jogos Educativos. Dissertação (Mestrado em Ciência da Computação) – Instituto de Informática, UFRGS, Porto Alegre, 1999.
  • SILVEIRA, S. R.; PARREIRA, F. J.; BIGOLIN, N. M.; PERTILE, S. L. Metodologia do Ensino e da Aprendizagem em Informática. Santa Maria: UAB/NTE/UFSM, 2019. No prelo.
  • SOURCEFORGE.NET. Download do Dev-C++. Disponível em: <https://sourceforge.net/projects/orwelldevcpp/>. Acesso em: 13 abr. 2019.
  • VYGOTSKY, L. A Formação Social da Mente. São Paulo: Martins Fontes, 2007.

 

ϟ


Ensino de lógica de programação para cegos
autores
Rubia Steffens | Acadêmica do Curso de Bacharelado em Sistemas de Informação - UFSM – Campus Frederico Westphalen/RS
Cristiano Bertolini | Professor Doutor da UFSM - Campus Frederico Westphalen/RS
Sidnei Renato Silveira | Professor Doutor da UFSM - Campus Frederico Westphalen/RS
Nara Martini Bigolin | Professora Doutora da UFSM - Campus Frederico Westphalen/RS
FACOS-UFSM 2019
in AFIRMATIVASFACOS - UFSM
 

Δ

24.Jul.2020
Maria José Alegre