
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
Δ
|