AMBIENTE DIDÁTICO GRÁFICO PARA A COMPREENSÃO DE LÓGICA DE PROGRAMAÇÃO. Rodrigo Ferreira da Silva

Documentos relacionados
Programação de Computadores

Programação de Computadores

Programação de Computadores

PROGRAMAÇÃO I. Introdução

Carga Horária: 60 h Créditos: 3 Pré-requisito: Não se aplica Professor(a): A definir Matricula: A definir Titulação: A definir

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

PORTUGOL/PLUS: UMA FERRAMENTA DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO BASEADO NO PORTUGOL

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Conceitos Básicos. Fundamentos de Programação de Computadores

UMA FERRAMENTA COMPUTACIONAL APLICADA AO ENSINO BÁSICO DE ENGENHARIA

DISCIPLINA: Programação de Computadores I

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

Introdução a Programação

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Compilador Educativo VERTO: ambiente para aprendizagem de compiladores

Algoritmos e Programação

CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES

Matriz Curricular Curso de Licenciatura em Computação Habilitação: Licenciatura em Computação

Verificação e Validação (V & V)

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Eng. Alimentos PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO CÓDIGO DISCIPLINA PRÉ-REQUISITOS

Desenvolvimento de Aplicações Desktop

Algoritmos e Programação

Introdução ao Conceito de Algoritmo e Programação Estruturada

Protótipo de Editor Gráfico de Fluxogramas para Representação de Comandos da Linguagem Portugol

Programação I Apresentação

Ferramenta de apoio ao ensino de algoritmos.

Interação Humano-Computador Interface e Estilos de Interação PROFESSORA CINTIA CAETANO

Algoritmos e Programação

Computação Eletrônica

Estruturas de Dados Apresentação

Algoritmos e Programação

Plano de Trabalho Docente

Linguagens de Programação

CONCEITO DE ALGORITMO

Programa Analítico de Disciplina TDS313 Prática de Programação Orientada a Eventos

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Algoritmos e Programação

Informática I. Aula 9. Aula 9-17/05/2006 1

Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática

Máquinas. Visão geral O que você precisa Fatores de sucesso O futuro. realizar algo, precisa que alguém m lhe indique o que fazer V.V.

Aula 1. Introdução à programação. Prof. Dr. Bruno Honda

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO

Lógica de Programação II

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

INF1013 MODELAGEM DE SOFTWARE

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Sintática: como é escrito cada elemento da linguagem de programação.

Desenvolvimento de uma ferramenta para organização e gerenciamento de atividades de docentes

1.1 Linguagens de Programação

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

3 Introdução aos algoritmos

SOFTWARE DE CHECAGEM DE CÓDIGOS DE PROGRAMAS CNC PARA EVITAR RISCOS DE COLISÃO EM MÁQUINAS DE USINAGEM (CNC)

Computação na Biologia Molecular e Bionanotecnologia: Computação Biológica

Informática I. Aula Aula 18-29/10/2007 1

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES

UMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES

Algoritmos e Programação

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS

CURSO TÉCNICO DE NÍVEL MÉDIO EM INFORMÁTICA - PLANO DE DISCIPLINA 2015 LINGUAGEM DE PROGRAMACAO 1 LP1

ENTRUST: SOLUÇÃO E APRESENTAÇÃO GRÁFICA DE FUNÇÕES 1

Introdução à Computação

Introdução à Programação. Conceitos Básicos de Programação

Algoritmos Fundamento e Prática

Algoritmos e Programação

Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR

Plano de Trabalho Docente

Apresentação da Disciplina

Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl

Ensino Técnico Integrado ao Médio

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Ricardo José Cabeça de Souza.

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Professora Orientadora do Departamento de Ciências Exatas e Engenharias. 4

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DO NORTE DE MINAS GERAIS CAMPUS JANUÁRIA

4 Caso de Uso no Ambiente Oracle

Sistemas de Informação Campus de Três Lagoas

1 Introdução e Conceitos básicos

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 2ª Parte Prof. Sandra Pais Soares

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Plano de Trabalho Docente Ensino Técnico

DISTRIBUIÇÃO DA CARGA HORÁRIA TEÓRICA PRÁTICA TEO/PRAT OUTRAS NÚMERO MÁXIMO DE ALUNOS POR TURMA AULAS TEÓRICAS PRÁTICAS 80 40

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Desenvolvimento de software educacional livre e inclusão de alunos com deficiência visual

Transcrição:

AMBIENTE DIDÁTICO GRÁFICO PARA A COMPREENSÃO DE LÓGICA DE PROGRAMAÇÃO Rodrigo Ferreira da Silva rodrigoferreira2002@hotmail.com Klaus Schlünzen Junior klaus@prudente.unesp.br Universidade Estadual Paulista Unesp Faculdade de Ciências e Tecnologia FCT Brasil A dificuldade encontrada por alunos iniciantes na programação de computadores é o fator que impulsiona esta pesquisa. A realidade que verificamos é que os aprendizes não entendem como é o funcionamento de alocação de variáveis e do fluxo de execução dos comandos em uma linguagem de programação. Esta investigação visa o estudo, a implementação, a depuração e a validação de um ambiente didático para visualização destes fluxos. Os testes da ferramenta estão sendo realizados pelos alunos de Licenciatura em Matemática e Engenharia da Faculdade de Ciências e Tecnologia da Universidade Estadual Paulista-Unesp - Brasil, ajudando-os na aprendizagem de programação estruturada de computadores, auxiliando-os a visualizar graficamente a execução de um código fonte de uma determinada linguagem de programação. Finalmente, estamos também trabalhando em uma versão deste ambiente para Web. 1. Introdução Uma disciplina onde os alunos dos cursos de Licenciatura em Matemática e de Engenharia da Faculdade de Ciências e Tecnologia FCT/Unesp encontram dificuldades é aquela que os capacitam para programar computadores. Nesta disciplina é escolhida uma linguagem de programação, no caso da FCT/Unesp a opção é pela linguagem Pascal (O Brien, 1993; Wirt, 1985) e o aluno, durante um ano, deve aprender a programar computadores utilizando-a na implementação de uma série de algoritmos e no desenvolvimento de um projeto final de curso. A escolha por esta linguagem se deve evidentemente não pelos recursos de programação disponíveis, mas sim por ser uma linguagem muita bem estruturada e que não permite que o aluno adote procedimentos de programação não desejáveis. Pela sua própria concepção em um ambiente acadêmico, a linguagem Pascal tem servido como um significativo instrumento de aprendizagem de iniciantes em programação em diversas e renomadas Universidades Brasileiras e permite que o aluno possa mais tarde utilizar-se de ambientes de programação mais atuais, como por exemplo, Delphi (Cantù, 2000), cujo código é baseado na linguagem Pascal. Entretanto, mesmo com uma linguagem de programação bem estruturada, os alunos iniciantes apresentam dificuldades para entender o seu funcionamento considerando a alocação de variáveis e o fluxo de execução. Não é uma tarefa fácil definir passos sem ambigüidades para a implmentação de um algoritmo codificado em um programa escrito em uma linguagem de programação. Assim, mesmo com um esforço didático, os professores das VII Congresso Iberoamericano de Informática Educativa 68

disciplinas de programação encontram grandes dificuldades para que os alunos consigam visualizar a dinâmica de execução de um programa. Diante deste cenário, a proposta deste artigo é de apresentar a construção um ambiente didático que permite que o aluno possa codificar e visualizar graficamente a execução de programas em Pascal, podendo acompanhar o fluxo de dados decorrente da execução de cada linha de código. A idéia foi de proporcionar ao usuário o acompanhamento visual da execução do programa com a identificação passo a passo de todos as variáveis envolvidas e dos comandos sendo executados. Para o acompanhamento do fluxo de execução, foi utilizada a representação (do código) do programa na forma de português estruturado e identado, além do próprio código fonte, o que possibilita uma identidade visual melhor e de maior facilidade de análise. Esta ferramenta foi implementada utilizando o ambiente de programação Delphi 6.0 1 (Cantù, 2000) e sua escolha é justificada pela quantidade de componentes já disponíveis que alavancaram o trabalho de implementação, considerando ainda que Delphi é um ambiente de programação pautado na linguagem Pascal. O projeto inicialmente levou em conta alguns exemplos de programas-fonte em Pascal já implementados. Também foram considerados outros sistemas semelhantes já desenvolvidos como: BALSA (Brown, 1988) e TANGO (Stasko, 1990). Entretanto, nestes sistemas, de acordo com nossa avaliação, não existem interfaces gráficas que relacionem diretamente o código escrito pelo usuário e o fluxo gráfico de sua execução, dificultando ao aprendiz acompanhar passo a passo a execução de cada linha de comando. Em uma segunda etapa, implementamos uma espécie de pré-compilador para a linguagem Pascal para geração do esquema gráfico que favorece a visualização da execução de partes dos programas pré-selecionadas pelo usuário/aprendiz. Este recurso permitiu a identificação de erros de lógica de programação, o que contribui para a sua correção em uma interface de alto nível. Estamos atualmente na fase de depuração de todo o ambiente. Neste momento, contamos com o apoio dos alunos da disciplina Introdução à Ciência da Computação da FCT/Unesp que estão podendo testar a ferramenta e analisar os primeiros resultados. 1 As licenças de uso do Delphi 6.0 foram doadas ao Núcleo de Educação Corporativa NEC/FCT/Unesp pela Borland Inc., empresa produtora do software, como forma de incentivo aos trabalhos de pesquisa que este Núcleo desenvolve. VII Congresso Iberoamericano de Informática Educativa 69

Finalmente, trabalhamos em uma versão para a Web, destacando a relevância do oferecimento de ambientes didáticos, via Internet, e a crescente demanda por ferramentas de aprendizagem à distância. 2. O Ambiente Didático O Ambiente Didático tem suporte para compilação e execução de código em Pascal, além de permitir visualizar este código em execução e os símbolos definidos como variáveis, registros, entre outros. Sua principal função é possibilitar a visualização gráfica por meio de fluxograma, oportunizando ao aluno entender melhor a lógica de programação. O programa também possui alguns recursos semelhantes ao do editor de programas Delphi como por exemplo: destaque da sintaxe, completamento de código, visualização dos símbolos definidos em tempo de projeto, depuração passo a passo, tanto via editor, quanto via fluxograma após a compilação do código fonte, entre outros. Estas são algumas vantagens identificadas sobre outros sistemas já implementados. Usando o Ambiente Didático os alunos podem compreender melhor a lógica de programação, aprender a programar e elaborar programas simples, posibilitando o entendimento do seu funcionamento passo a passo, como pode ser visto nas telas das Figuras 1 e 2. Na tela da Figura 1 encontramos uma janela com o código fonte de um programa em linguagem Pascal. Nesta janela é possível editar o programa fonte e executá-lo, acompanhando sua execução por meio da janela gráfica do Ambiente Didático com o fluxograma, apresentada na Figura 2. Nesta figura o programa fonte é apresentado na forma de fluxograma. Pode-se observar no lado direito uma área reservada para a apresentação gráfica das variáveis, na qual o aprendiz poderá acompanhar todas as suas instanciações e alocações. VII Congresso Iberoamericano de Informática Educativa 70

Figura 1: Editor de Código Figura 2: Janela gráfica com fluxograma do programa fonte VII Congresso Iberoamericano de Informática Educativa 71

Na Figura 3 observa-se novamente a janela de edição de código mas com um outro exemplo. Neste caso, o programa possui procedimentos onde uma janela de informações aparece logo após a digitação de uma função com parâmetros, apresentando-os com seus respectivos tipos. Um exemplo de um programa em execução passo a passo no modo fluxograma é apresentado na Figura 4. Podemos verificar que um dos comandos está destacado em azul e o outro em vermelho, significando que a execução está parada neste comando (o de cor azul) a espera do usuário dar um comando para continuidade (no Delphi esta opção é conhecida como Step Over ou Trace Into). O comando em vermelho indica que se ele for executado, antes será feita uma pausa na execução do programas (conhecido como Breakpoint no ambiente Delphi). Todos estes recursos são comuns nos ambientes de depuração existentes hoje. Figura 3: Um exemplo de programa com procedimentos VII Congresso Iberoamericano de Informática Educativa 72

Figura 4: Exemplo de um programa compilado em execução O ambiente está em fase de testes com a sua utilização pelos alunos dos cursos de Licenciatura em Matemática e Engenharia Cartográfica da FCT/Unesp - Brasil. Além de toda essa funcionalidade apresentada pelo Ambiente Didático, estamos implementando uma outra funcionalidade, ou seja, a possibilidade de gerar o código fonte em Pascal através do fluxograma cronstruído pelo aprendiz/usuário. 3. Considerações Finais Construir um ambiente computacional didático para ajudar alunos na aprendizagem da programação estruturada de computadores, capaz de permitir visualizar graficamente a execução de um código fonte de uma determinada linguagem de programação, foi o objetivo principal desta pesquisa. Cabe destacar que este código é construído pelo aluno e pode abranger os algoritmos mais diversos possíveis dentro de programas que utilizem estruturas básicas de programação, variáveis estáticas estruturadas, sub-rotinas e definição de tipos. Para tanto, foi necessário um estudo com profundidade dos aspectos sintáticos e semânticos da linguagem Pascal e do ambiente de programação Delphi 6.0, incluindo o conjunto de componentes já disponíveis neste ambiente. Em seguida, conseguimos VII Congresso Iberoamericano de Informática Educativa 73

implementar um protótipo do ambiente de visualização considerando um conjunto de exemplos pré-definidos. Além disso, a experiência de mais de quinze anos em ensino de linguagens de programação por parte do professor da disciplina envolvida, permitiu identificar a relevância deste ambiente para o aprendizado em programação de computadores. Isto possibilitou o teste do ambiente em um contexto real, onde os alunos puderam utilizar a ferramenta e compreender o fluxo de execução de um algoritmo, bem como, aspectos que dificultam o entendimento sobre alocação e uso de variáveis, redefinição do fluxo de execução do programa com chamadas a sub-rotinas, visualização de instanciação de variáveis locais, globais e parâmetros de procedimentos e funções. Nossa meta final e com a qual estamos trabalhando atualmente é a definição e implementação de uma versão para a Web do ambiente de visualização, o que possibilitará disponibilizarmos seus recursos e potencialidades para um número maior de usuários aprendizes. 4. Agradecimentos Os autores agradecem a Fundação de Amparo à Pesquisa do Estado de São Paulo Fapesp pelo suporte financeiro, o que viabilizou a realização desta pesquisa. A Borland Software Corp. pela doação do software Delphi 6.0 para o desenvolvimento do projeto. 5. Referências Bibliográficas Brown, M. H. (may, 1988). Exploring Algorithms using Balsa. Computers, 21(5), 14-36. Cantù, M. (2000). Dominando o Delphi 5: A bíblia. São Paulo: Makron Books. O Brien, S. (1993). Turbo Pascal 6: Completo e Total. São Paulo: Makron Books. Stasko, J.T. (september, 1990). TANGO: A Framework and System for Algorithm Animation. Computer, 23(9): 27-39. Wirt, N. (1985). Programação Sistemática em Pascal. Rio de Janeiro: Campus. VII Congresso Iberoamericano de Informática Educativa 74