PANDORA: UMA LINGUAGEM COMPOSICIONAL VISUAL PARA O ENSINO DE PROGRAMAÇÃO

  • Marina Silva
  • Marina Silva da Silva
  • Ana Paula Ludtke Ferreira
Rótulo Linguagens, programação, Ensino, algoritmos, Educação, Computação, visuais

Resumo

Os primeiros semestres dos cursos de graduação na área de Computação tendem a apresentar maiores índices de reprovação e de retenção de alunos. Disciplinas de introdução à programação contribuem para esses índices. Uma das dificuldades enfrentadas pelos alunos nessas disciplinas é o foco em aspectos operacionais da solução de problemas, associado às linguagens que seguem o paradigma imperativo, gerando um excessivo esforço na correção de erros de sintaxe, em detrimento do foco na solução do problema. Adicionalmente, conceitos importantes como reuso de software que busca o aproveitamento de especificações e do código já desenvolvido e testado na solução de novos problemas acabam deixados de lado pelo foco no código e não no modelo de solução. Linguagens que facilitam a composição de artefatos de software podem ser uma solução para este problema. Linguagens funcionais têm a composição de funções como construção mais importante, mas usualmente possuem sintaxes que não favorecem o ensino. Este trabalho apresenta a linguagem Pandora, uma proposta de linguagem funcional visual composicional voltada para o ensino de programação, com foco nos aspectos semânticos da resolução de problemas e na composição de soluções a partir de soluções previamente elaboradas. Após uma revisão sistemática das linguagens visuais com foco em ensino existentes na literatura, foram concebidos os blocos que compõem a linguagem Pandora. Esses blocos, com formato associado ao seu significado no contexto de um programa, são organizados na direção horizontal e seguem um sistema de cores de acordo com o tipo de elemento representado. Para a definição sintática da linguagem foi utilizada uma gramática de grafos tipada. Gramáticas de grafos são uma generalização de gramáticas de Chomsky para reescrita de grafos. A opção por uma gramática de grafos foi devido à facilidade de representação de informações visuais, como é o caso dos blocos que compõem a linguagem Pandora. A linguagem Pandora é composta por blocos coloridos, com onze funções padrão que podem ser combinadas e encapsuladas em uma nova função criada pelo usuário, caracterizando uma linguagem Turing-completa. Funções aritméticas são representadas por blocos azuis, funções de comparação com resultado booleano são representadas por blocos verdes, funções que retornam valores constantes são representadas por um bloco rosa e a função que um teste condicional é representada por dois blocos na cor bege. As funções criadas pelo usuário são representadas por blocos roxos. Os parâmetros de entrada e de saída das funções são representados por círculos amarelos e as declarações de novas funções são representadas por retângulos roxos e brancos: na área roxa é inserido o nome da função e na área branca as funções que constituem o corpo da função definida. Todos os símbolos são conectados por setas, que representam a passagem de um valor, ou o fluxo de dados do programa. Linhas simples representam o fluxo de execução, no caso específico das funções de teste condicional. Os programas da linguagem Pandora são grafos tipados onde os nodos representam as funções e os valores, e as arestas representam os fluxos de dados e execução do programa. A gramática da linguagem Pandora é composta por vinte regras que são utilizadas para construção dos programas. É possível a construção de funções recursivas. Além da definição formal da linguagem, foi considerada uma ferramenta para facilitar a programação na linguagem Pandora. Foram elaborados protótipos de uma ferramenta que disponibilizaria o conjunto de blocos padrão da linguagem e permitiria ao usuário arrastá-los e conectá-los construindo programas e novas funções. As funções construídas pelo usuário seriam salvas e disponibilizadas em outra aba para que pudessem ser reutilizadas facilmente na construção de outras funções. A linguagem Pandora facilita o reuso de código, como toda linguagem puramente funcional, por meio da representação das funções como símbolos geométricos que contém outras funções e permitindo ao usuário adicionar as funções construídas anteriormente em novos códigos. A linguagem pode ser utilizada por alunos de diversas faixas etárias, visto ser composta por símbolos acessíveis e com pouca informação textual, o que facilita a compreensão da finalidade de cada função. A linguagem Pandora pode ser utilizada no ensino de algoritmos e lógica de programação, em atividades desplugadas voltadas para o ensino de Matemática de alunos da educação básica ou como um primeiro contato de estudantes de computação com uma linguagem funcional. Como trabalhos futuros, citam-se a definição de sua semântica formal, a construção de um ambiente de desenvolvimento e de um interpretador que permita o acompanhamento da execução dos programas pelos estudantes, bem como a inclusão de tipos abstratos de dados e de construções de orientação a objeto.

Downloads

Não há dados estatísticos.
Publicado
2021-11-16
Como Citar
SILVA, M.; SILVA DA SILVA, M.; PAULA LUDTKE FERREIRA, A. PANDORA: UMA LINGUAGEM COMPOSICIONAL VISUAL PARA O ENSINO DE PROGRAMAÇÃO. Anais do Salão Internacional de Ensino, Pesquisa e Extensão, v. 13, n. 3, 16 nov. 2021.