António Manso, Luís Oliveira, Célio Gonçalo Marques



Documentos relacionados
ENSINO DA PROGRAMAÇÃO ATRAVÉS DA LINGUAGEM ALGORÍTMICA E FLUXOGRÁFICA.

Ambiente de Aprendizagem de Algoritmos Portugol IDE

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Programa de Unidade Curricular

Metodos de Programação

APRENDENDO LÓGICA DE PROGRAMAÇÃO VIA WEB

1.1. Organização de um Sistema Computacional

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Sistema Inteligente Não-Linear de Apoio à Aprendizagem 1 Rangel RIGO, Ana Paula Laboissière AMBRÓSIO

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: URL:

Resolução de problemas e desenvolvimento de algoritmos

Dadas a base e a altura de um triangulo, determinar sua área.

Engenharia de Software Sistemas Distribuídos

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Rock In Rio - Lisboa

Portugol IDE Uma ferramenta para o ensino de programação

Suporte Técnico de Software HP

Psicopedagogia Institucional

Informática II Cap. 3

Cadeira de Tecnologias de Informação. Conceitos fundamentais de sistemas e tecnologias de informação e de gestão do conhecimento.

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Modos Diferenciados de Ensinar e Aprender no Ambiente Virtual

Introdução à Lógica de Programação (cont.)

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Algoritmos Computacionais ( Programas )

Sistemas de Bases de Dados

Dossier Pedagógico da Disciplina de Programação e Computadores 1 (PC1)

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA

PHC dteamcontrol Externo

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO Ano Lectivo 2013/2014

Desenvolvimento de Interfaces Prototipação

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

15 Computador, projeto e manufatura

Engenharia de Requisitos Estudo de Caso

Orientação a Objetos

Manual de utilização do Moodle

PERGUNTAS MAIS FREQÜENTES FEITAS PELO ALUNO. 1. O que são as Atividades Complementares de Ensino do NED-ED?

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

QUALIDADE E EXCELÊNCIA NA SOCIEDADE DA INFORMAÇÃO. Manuel Antunes

Guião de Introdução ao Eclipse IDE Índice

RELATÓRIO ANUAL DE ACTIVIDADES

Aprend.e Sistema integrado de formação e aprendizagem

Modelo Cascata ou Clássico

Tema Objetivos Conteúdos

A plataforma. Sistemas de Gestão de Aprendizagem. Carlos Nunes

Universidade Anhanguera Uniderp Centro de Educação a Distância

Tutorial exe elearning XHTML editor (versão 1.0x)

Análise de Sistemas. Conceito de análise de sistemas

Engenharia de Software

Estudo de Remuneração 2015

PRÁTICAS DE AVALIAÇÃO COMO UM MEIO DE MOTIVAÇÃO. Celina Pinto Leão Universidade do Minho

Algoritmos. Cláudio Barbosa

ALGORITMOS E FLUXOGRAMAS

Projeto de Sistemas I

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

5. Métodos ágeis de desenvolvimento de software

... Calendarização: 2 blocos de 90 m Metas/Objetivos Descritores Conceitos/Conteúdos Estratégias/Metodologias Avaliação

Reengenharia de processos no IPN com recurso ao Sistema de Informação Carlos Lopes. Gestor de projectos

Introdução à Computação

PORTO EDITORA AREAL EDITORES LISBOA EDITORA. Manual do Utilizador. Aluno.

Plano Curricular TIC - 1º Ciclo -

Será a Internet/Intranet uma plataforma viável em sala de aula? Luís Manuel Borges Gouveia. lmbg@ufp.pt

e à Linguagem de Programação Python

Introdução à Programação. João Manuel R. S. Tavares

VM Card. Referência das Definições Web das Funções Avançadas. Manuais do Utilizador

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Algoritmos e Linguagem de Programação I

Plataforma de Gestão de Actualizações de Software Descrição do Problema

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

A SÈTIMA. O nosso principal objectivo

Algoritmos e Programação de Computadores I. Prof. Eduardo

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Guia de Estudo Folha de Cálculo Microsoft Excel

NCE/12/00971 Relatório final da CAE - Novo ciclo de estudos

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Introdução a Algoritmos Parte 04

TÉCNICAS DE PROGRAMAÇÃO

Wilson Moraes Góes. Novatec

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Linguagem algorítmica: Portugol

PHC Formacão CS. Controlo da área administrativa de um centro de formação

Os desafios da gestão de processos numa Instituição Financeira

Programa de Parcerias e Submissão de Propostas 2014/15

PLANO DE ESTUDOS DE T.I.C. 7.º ANO

Comunicação e Educação na Formação de Professores (um estudo de caso)

AMBIENTE DE PROGRAMAÇÃO PYTHON

Estruturas de Repetição Parte II PARA-ATÉ

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO À PROGRAMAÇÃO Ano Lectivo 2014/2015

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

AULA TEÓRICA 10 Tema 9. Introdução à programação. Desenho de Algoritmos

O que é a ciência de dados (data science). Discussão do conceito. Luís Borges Gouveia Universidade Fernando Pessoa Versão 1.

Transcrição:

Capítulo 15 Ensino da Programação Através da Linguagem Algorítmica e Fluxográfica Title Teaching Programming using Algorithmic Language and Flowcharts. Abstract Teaching of programming is the keystone of every engineering course and particularly computer science courses. The failure rates observed in the programming module of the Computer Engineering course offered by the Escola Superior de Tecnologia de Tomar of the Instituto Politécnico de Tomar led to the development of a tool Portugol IDE with the propose to motivating the students and facilitating the learning of programming. This tool allows algorithms to be coded in algorithmic language or in flowchart language and its automatic execution. This paper presents the rules of translation between both languages and describes the way it is executed. Keywords Programming, Portugol, Flowchart, Algorithms, Teaching and learning. Resumo O ensino da programação é considerado uma pedra basilar nos cursos de engenharia e em especial dos cursos de informática. O insucesso demonstrado pelos alunos do curso de Engenharia Informática nas disciplinas de programação de nível introdutório na Escola Superior de Tecnologia de Tomar do Instituto Politécnico de Tomar levou ao desenvolvimento de uma ferramenta Portugal IDE com o objectivo de motivar os alunos e facilitar a aprendizagem da programação. Esta ferramenta permite a codificação dos algoritmos em linguagem algorítmica ou em linguagem fluxográfica e a sua execução automática. Neste trabalho são apresentadas as regras de tradução entre as duas linguagens e descrita a forma como a sua execução é feita. Este trabalho foi apresentado originalmente em CISTI'2009-4ª Conferência Ibérica de Sistemas e Tecnologias de Informação. António Manso é professor no Departamento de Engenharia Informática do Instituto Politécnico de Tomar, Quinta do Contador, Estrada da Serra, 2300-313 Tomar, Portugal (telefone: +351 249328100; fax: +351 249328189 e- mail: manso@ipt.pt). L. Oliveira é assistente no Departamento de Engenharia Informática do Instituto Politécnico de Tomar, Quinta do Contador, Estrada da Serra, 2300-313 Tomar, Portugal (telefone: +351 249328100; fax: +351 249328189 e- mail: loliveira@ipt.pt). C. G. Marques é professor do Instituto Politécnico de Tomar, Quinta do Contador, Estrada da Serra, 2300-313 Tomar, Portugal (telefone: +351 249328100; fax: +351 249328136; e-mail: celiomarques@ipt.pt). Palavras-chave Programação, Portugol, Fluxogramas, Algoritmos, Ensino, Aprendizagem. 105 I. INTRODUÇÃO 05 ONHECER uma linguagem de programação é diferente de Csaber programar. Conhecer uma linguagem de programação implica conhecer um conjunto de palavras reservadas e uma sintaxe. Saber programar está relacionado com a capacidade de resolver problemas cuja solução pode ser encontrada através da execução de um algoritmo computacional. A definição do algoritmo é o primeiro passo para a construção de um programa. Depois de definido, testado e optimizado, o algoritmo pode ser codificado numa linguagem de programação. As unidades curriculares de programação de nível introdutório são caracterizadas por terem taxas elevadas de reprovação [1] [2] [3] e as disciplinas de programação de nível introdutório da Escola Superior de Tecnologia de Tomar (ESTT) do Instituto Politécnico de Tomar (IPT) não são excepção. A causa principal do insucesso está relacionada com a dificuldade sentida pelos alunos em analisar um problema e definir o algoritmo que o resolve devido ao elevado nível de abstracção que esta actividade envolve e não com aspectos próprios de uma ou outra linguagem de programação. Têm sido criadas várias ferramentas com o objectivo de auxiliar os alunos a adquirirem competências na resolução de problemas através da definição de algoritmos. Segundo [4] e [5] há um conjunto de requisitos que uma boa ferramenta de desenvolvimento de algoritmos deve ter: i) ser interactiva de forma a que o aluno tenha um papel activo durante o processo de aprendizagem; ii) ser configurável, para que possa ser usada na resolução de vários problemas, recorrendo a várias soluções; iii) permitir representações alternativas, para estimular o aluno a observar o problema sob diferentes pontos de vista; iv) ser animada, para possibilitar ao aluno acompanhar a execução do algoritmo; v) ser simples óbvia e intuitiva; vi) ser portável, para ser independente do hardware e do software onde vai ser executada; e por fim vii) ser económica, para alcançar o maior número de alunos. O Carlos Vaz de Carvalho, Ricardo Silveira, Manuel Caeiro Rodriguez, editores TICAI2009: TICs para a Aprendizagem da Engenharia. ISBN 978-972-8688-70-7. Pags.105-110 IEEE, Sociedade de Educação: Capítulos Espanhol e Português

106 Portugol IDE foi especificado para responder a todas as características anteriormente definidas e assim contribuir para a melhoria da aprendizagem de algoritmos nas disciplinas de programação de nível introdutório na ESTT. Este ambiente é constituído por uma interface que manipula duas linguagens de programação (linguagem algorítmica e linguagem fluxográfica), permitindo ao aluno representar e executar os algoritmos nas duas linguagens. O Portugol IDE distingue-se das ferramentas analisadas: SICAS [5] [6], MiniJava [7], BlueJ [8], Karel the Robot [9], Jeliot [10], Ambap [11]; por possuir uma linguagem fluxográfica que se aproxima da execução computacional do algoritmo e uma linguagem de programação que se aproxima das linguagens de programação de alto nível. Esta característica permite fazer a ponte entre a execução computacional dos algoritmos e a expressão textual dos programas. II. LINGUAGEM ALGORÍTMICA A linguagem algorítmica é inspirada na linguagem de especificação de algoritmos conhecida como português estruturado ou portugol. A linguagem algorítmica suporta um conjunto de operações que permitem que seja utilizada para aprender as técnicas básicas da construção de algoritmos computacionais de entre as quais salientamos a: Definição de tipos de dados; Entrada e saída de dados; Estruturas de decisão condicional; Estruturas de iteração. A linguagem tem definido como básicos os tipos inteiros, real, lógico, carácter e texto. Sobre estes tipos de dados estão definidos um conjunto de operadores e funções que permitem a construção de expressões computacionais. O tipo texto foi definido como básico para poder ser manipulado com os operadores relacionais e o operador de concatenação (+), tal como acontece nas linguagens mais recentes (C# e Java), bem como ser lido e escrito directamente na consola. A linguagem permite ainda a definição e a manipulação de estruturas homogéneas multidimensionais de dados através do operador de indexação ([ ]). As estruturas para a manipulação de dados são as definidas no portugol e podem ser consultadas em [12]. III. LINGUAGEM FLUXOGRÁFICA A linguagem fluxográfica foi especificada com dois objectivos muito concretos: fazer a prototipagem rápida de algoritmos nas primeiras etapas do ensino da programação e fazer a representação e execução visual da linguagem algorítmica. A grafia da linguagem fluxográfica foi inspirada nos fluxogramas, depois de feitas as devidas adaptações para a tornar computacionalmente executável. Os símbolos definidos na linguagem e a sua sintaxe estão especificados na tabela I. Através destes símbolos é possível descrever os blocos básicos dos algoritmos computacionais, e o seu reduzido número possibilita uma fácil compreensão das suas TABELA I SÍMBOLOS E SINTAXE DA LINGUAGEM FLUXOGRÁFICA Simbolo Descrição Terminal Marca o início/fim do algoritmo. Ler Lê uma variável da consola. Escrever - Escreve a expressão na consola. Processo - calcula o valor de uma expressão. Decisão - Desvia a fluxo através do valor da condição Conector - Unificação de Fluxo funcionalidades para o desenho de algoritmos. Definição de tipos de dados A linguagem fluxográfica não possui nenhum símbolo gráfico que permita fazer implicitamente a declaração de variáveis. Esta característica permite que se faça uma prototipagem rápida de um algoritmo sendo as variáveis implicitamente definidas pelos símbolos de ler e de processo. Quando é executada uma leitura ou um processamento o sistema verifica se já existe uma variável com o mesmo nome no programa; caso não exista, o sistema define a variável e deduz o tipo através do tipo de dados resultante da leitura ou do cálculo da expressão. Entrada e saída de dados A simbologia dos fluxogramas prevê apenas um símbolo para a entrada e saída de dados e o utilizador decide em cada caso qual o tipo de operação a executar. Para tornar a execução automática procedeu-se à introdução de dois símbolos distintos para cada uma das operações: ler e escrever. Estruturas de decisão A linguagem algorítmica tem duas estruturas de decisão: a decisão simples (se-então-senão) [tabela II], e a decisão em alternativa (escolhe-caso) [tabela III]. TABELA II ESTRUTURA SE-ENTÃO-SENÃO Se <condição> então 1 Senão 2 Fim se

Ensino da Programação Através da e Fluxográfica 107 A decisão simples tem uma transcrição imediata para a linguagem fluxográfica através de um símbolo de decisão que desvia o fluxo para a esquerda caso a condição seja falsa ou para a direita caso a condição seja verdadeira. O símbolo conector unifica o fluxo ramificado pela decisão. Escolhe <var> caso valor1: 1 caso valor2: TABELA III ESTRUTURA ESCOLHE-CASO para-próximo com incrementos de uma unidade à variável de iteração. A tradução completa desta estrutura para linguagem fluxográfica é composta de várias excepções devido ao facto da estrutura iterar com incrementos positivos e negativos não unitários, e a sua explicação pormenorizada escapa ao âmbito desta comunicação. Nas estruturas de decisão com controlo final o bloco começa com um símbolo de conexão de fluxo seguido do bloco de iteração e do símbolo de decisão. Se o fluxo regressa ao símbolo de conexão através do fluxo gerado pelo TABELA V ESTRUTURA PARA-PRÓXIMO COM INCREMENTOS POSITIVOS. 2 Defeito: 3 Fim escolhe A decisão em alternativa é transposta para a linguagem fluxográfica através de decisões condicionais encadeadas na parte esquerda (Falso) dos símbolos de decisão. Estruturas de iteração As estruturas de iteração são um conjunto de instruções que formam ciclos controlados por símbolos de decisão. A linguagem algorítmica tem dois tipos de estruturas de iteração: as estruturas de iteração com controlo inicial (enquanto-faz e para-próximo) [tabela IV] e [tabela V], e as estruturas com controlo final (faz-enquanto e repete-até) [tabela VI]. Para var de v1 ate v2 próximo valor verdadeiro da condição estamos na presença de uma estrutura faz-enquanto caso contrário estamos na presença de uma estrutura do tipo repete-até. TABELA VI ESTRUTURA REPETE-ATÉ E FAZ-ENQUANTO. TABELA IV ESTRUTURA ENQUANTO-FAZ. Repete Até <condição> Enquanto <condição> faz Fim enquanto A estrutura enquanto-faz é traduzida para fluxograma utilizando um símbolo de decisão para o controlo da iteração, em que a parte direita aponta paro o bloco a iterar e recebe o fluxo que sai do último símbolo. A codificação fluxográfica da estrutura para-próximo é feita através da sua transcrição para a estrutura enquanto-faz. O bloco começa com um símbolo de processo que inicializa a variável de iteração seguido de um símbolo de decisão condicional com a expressão lógica de término da iteração. O fluxo originado pela condição com o valor verdadeiro aponta para a bloco a iterar que por sua vez aponta para um bloco de processo que actualiza a variável de iteração e regressa ao símbolo de decisão. Na tabela V é apresentada a tradução de uma estrutura Faz Enquanto <condição> IV. CONVERSÃO ENTRE AS LINGUAGENS ALGORÍTMICA E FLUXOGRÁFICA Através das regras enunciadas no ponto anterior, a linguagem algorítmica pode ser traduzida pelo Portugol IDE em linguagem fluxográfica de uma forma simples e directa. A conversão da linguagem fluxográfica para a linguagem

108 algorítmica é um processo mais complexo devido a não haver uma correspondência unívoca entre símbolos e instruções. Os símbolos adquirem um significado na linguagem algorítmica através do contexto do fluxograma. Por exemplo, o símbolo de decisão pode corresponder a uma estrutura enquanto-faz ou se-então-senão. Por outro lado a estrutura em grafo do fluxograma dificulta o processamento das estruturas computacionais uma vez que é necessário identificar onde as estruturas começam e terminam. Para a resolução deste problema utilizaram-se agentes inteligentes que navegam no fluxograma e que identificam as estruturas e o significado de cada símbolo no fluxograma. Após a identificação do significado de cada símbolo a tradução para a linguagem algorítmica baseia-se nas regras definidas no ponto anterior. A linguagem algorítmica obriga à definição explícita dos dados antes da sua utilização e esta norma não se aplica á linguagem fluxográfica pois os dados são deduzidos implicitamente. Quando o utilizador executa o fluxograma os Fig. 2. Execução do algoritmo com a visualização da linguagem fluxográfica, o estado da memória e a consola. como as instruções/símbolos afectam o seu estado. VI. UTILIZAÇÃO DO PORTUGOL NO ENSINO SUPERIOR O Portugol é freeware e open source estando a versão 2.3 disponível para download em [12] [fig. 3]. Desde que a ferramenta foi disponibilizada foram chegando várias reacções da comunidade que se podem enquadrar em dois campos: desenvolvimento e utilização. Fig. 1. Execução do algoritmo com a visualização da linguagem algorítmica, as instruções executadas e a consola. tipos de dados são deduzidos e a conversão para a linguagem algorítmica gera um algoritmo executável. Caso contrário, o sistema identifica as variáveis mas não consegue deduzir o seu tipo e a definição destas variáveis fica com um tipo de dados indefinido, o que obriga o aluno a definir o tipo de dados na linguagem algorítmica. V. EXECUÇÃO DO ALGORITMO O Portugol IDE permite que a execução do algoritmo seja independente da linguagem onde o algoritmo foi escrito/desenhado. A execução do algoritmo na linguagem algorítmica permite ao aluno visualizar a sequência de instruções executadas pelo algoritmo, [fig. 1] enquanto que a execução em forma gráfica permite que o aluno siga o fluxo de execução do algoritmo e veja graficamente as estruturas de decisão e execução [fig. 2]. A execução do algoritmo em modo de depuração permite a visualização do estado da memória do algoritmo e a forma Fig. 3. Web site do Portugol. No campo do desenvolvimento temos assistido à criação de projectos paralelos (é usado o núcleo do portugol, mas são adicionadas outras funcionalidades), temos recebido pedidos de ajuda para a criação de projectos similares e temos ainda tido diversas ofertas de colaboração no projecto. No campo da utilização temos recebido críticas muito positivas, pedidos de ajuda para codificação de algoritmos em Portugol, bem como pistas para a evolução do Portugol. Actualmente o Portugol está a ser utilizado nas unidades curriculares de Introdução à programação nos cursos de engenharia da ESTT, nos Cursos de Especialização Tecnológica de Desenvolvimento de Produtos Multimédia e Tecnologias de Programação e Sistemas de Informação do Instituto Politécnico de Tomar e em várias instituições de Ensino Superior no Brasil, entre elas, o UDF - Centro Universitário.

Ensino da Programação Através da e Fluxográfica 109 Num estudo realizado em 2009 com 32 alunos do 1.º ano do curso de Engenharia Informática da ESGT constatou-se que a ferramenta Portugol é fácil e agradável de utilizar, é eficiente e fácil de lembrar. Na opinião dos alunos o módulo de escrita e execução em fluxograma, a visualização do estado das variáveis a ajuda na correcção de erros são úteis. Os alunos referem ser fácil codificar algoritmos e corrigir erros quando é usada esta ferramenta. VII. CONCLUSÃO Programar é uma tarefa difícil que é aprendida gradualmente através da introdução de novos conceitos e técnicas. Nesta aprendizagem consideramos que o passo mais difícil é o desenvolvimento do raciocínio algorítmico, o primeiro passo da programação e a base de todos os conceitos. A linguagem fluxográfica é uma linguagem simples de aprender devido ao seu pequeno número de símbolos e permite a criação de algoritmos de uma forma simples e imediata o que a torna adequada à iniciação do estudo da programação. Com base nestes pressupostos foi desenvolvido o Portugol IDE, com o objectivo de melhor a aprendizagem da programação. Esta ferramenta utiliza duas linguagens de programação: a algorítmica e a fluxográfica. Através de agentes inteligentes, permite a execução dos algoritmos em linguagem fluxográfica e a sua tradução para uma linguagem próxima das linguagens de programação tradicionais com a grande vantagem de utilizar a língua materna dos alunos. O suporte da ferramenta em ambiente Web é um dos principais aspectos que se encontram em desenvolvimento. Através da Web pretende-se disponibilizar dois serviços: i) um repositório de problemas e ii) um avaliador automático que permite validar, quase de imediato, os algoritmos submetidos pelos alunos. Estes dois serviços têm como principal objectivo fomentar o trabalho autónomo dos alunos. BIBLIOGRAFIA [1] [1] Butler, M., & Morgan, M., Learning challenges faced by novice programming students studying high level and low feedback concepts. In ASCILATE 2007 Singapore. 2007, p. 99-107. [2] [2] Lahtinen, E., Mutka, K., & Jarvinen, H.. A Study of the difficulties of novice programmers. In Proc. of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer ITiCSE 05, 2005, p. 14-18. [3] [3] Jenkins, T. On the difficulty of learning to program. In Proc. of the 3rd Annual Conference of the LTSN Centre for Information and Computer Science, 2002, p. 27-29. [4] [4] Mendes, A. J, Software Educativo para apoio à aprendizagem de programação. In J. Sánchez (Ed.), Taller Internacional de Software Educativo. Universidad de Chile: Santiago, 2001. [5] [5] Marcelino, M; Mihaylov, T., & Mendes, A.. H-SICAS, a Handheld Algorithm Animation and Simulation Tool To Support Initial Programming Learning. In 38th ASEE/IEEE Frontiers in Education Conference. Saratoga Springs, NY, 2008. [6] Gomes, A., & Mendes, A. Suporte à aprendizagem da programação com o ambiente SICAS. Actas do V Congresso ibero-americano de informática educativa, Viña del Mar, Chile, 2000. [7] Roberts, E. An overview of MiniJava. In Proceedings of the 32nd SIGCSE Technical Symposium on Computer Science Education, 2001, p. 1 5. [8] Kolling, M., & Rosenberg, J., Guidelines for teaching object orientation with Java, In Proceedings of the 6th Annual Conference on Innovation and Technology in Computer Science Education, 2001, p. 70 74. [9] Pattis, R., Karel the robot: A gentle introduction to the art of programming. John Wiley & Sons, 1981. [10] Haajanen, J., Pesonius, M., Sutinen, E., Tarhio, J., Teräsvirta, T., & Vanninen, P., Animation of user algorithms on the Web. In: Proc. VL '97, IEEE Symposium on Visual Languages, IEEE 1997, p. 360-367. [11] Ambiente de Aprendizado de Programação, http://www.ufal.br/tci/ambap/ (Março de 2009) [12] Manso, A. & Oliveira, L.. Portugol IDE (2009). Portugol IDE, http://orion.ipt.pt/~manso/portugol/ (Março 2009) António Manso Nasceu em Frieira (Portugal) a 13/07/1971. Possui um mestrado em Inteligência Artificial Aplicada, pela Universidade Nova de Lisboa (2002) e uma licenciatura em Engenharia Informática pelo Instituto Politécnico da Guarda(1996) e aluno do doutoramento em informática na Faculdade de Ciências da Universidade de Lisboa. A sua área de investigação centra-se na computação evolutiva e no ensino de programação. É professor do departamento de Engenharia Informática do Instituto Politécnico de Tomar, onde lecciona disciplinas de programação, engenharia de software e inteligência artificial. É membro do LabMag - Laboratório de Modelação de Agentes desde 2005 e membro do IEEE desde 2010. Luís M. L. Oliveira nasceu em Torres Novas (Portugal) a 05/10/1973. É mestre em Engenharia Electrónica e de Telecomunicações pela Universidade de Aveiro (2004) e é aluno do doutoramento em engenharia informática na Universidade da Beira Interior. É membro do grupo de redes e multimedia no Instituto de Telecomunicações desde 2001. A sua area de investigação está relacionada com as rede de sensores em malha e com o multicast e a moblidade em redes IPv6. Está envolvido quer em parcerias públicas, quer em parcerias com a indústria, salientando-se a participação em projectos europeus relacionados com a temática da "Future Internet", nomeadamente: EU ICT FP7 NoE Euro-NF. É assistente no Departamento de Engenharia Informática da Escola Superior de Tecnologia de Tomar, onde lecciona as unidades curriculares de Redes de Dados, Gestão e Segurança de Redes de Computadores, de Projecto de Redes e de Introdução à Programação. Célio G. Marques nasceu em Tomar (Portugal) a 24/06/1975. Possui uma Licenciatura em Informática e Gestão na Escola Superior de Gestão de Santarém, Portugal (1999), um Mestrado em Comunicação Educacional Multimédia na Universidade Aberta em Lisboa, Portugal (2003), uma Pós-Graduação em Técnicas e Contextos de e-learning na Universidade de Coimbra, Portugal (2003) e encontra-se a fazer Doutoramento em Ciências da Educação, Área de TECNOLOGIA EDUCATIVA na Universidade do Minho em Braga, Portugal. Ele é PROFESSOR da Área de Tecnologias de Informação e Comunicação da Escola Superior de Gestão do Instituto Politécnico de Tomar. Esteve envolvido em projectos relacionados com a informática na educação, entre eles, o Programa Internet na Escola e prestou consultoria informática a várias empresas. É autor de diversas publicações, entre elas, o livro Os Hipermédia no Ensino Superior (Cartaxo: T-Media, 2005), o software Arquitectura de Computadores (Cartaxo: T-Media, 2005), e o capítulo e- QUAL: A Proposal to Measure the Quality of e-learning Courses do livro Advances in e-learning: Experiences and Methodologies (Hershey, New York: Information Science Reference, 2008). A sua investigação tem-se centrado na concepção, desenvolvimento e avaliação de ambientes de aprendizagem interactivos; concepção, desenvolvimento e avaliação de objectos de aprendizagem; utilização da Web 2.0 em contexto educativo; e ensino a distância (e-learning e b-learning).

110