brainstormdeti.files.wordpress.com · web viewc# c# é uma das linguagens de programação .net,...

53
Sumário 1 INTRODUÇÃO................................................ 4 1.1 OBJETIVO GERAL.......................................................5 1.2 JUSTIFICATIVA........................................................5 1.3 FERRAMENTAS UTILIZADAS PARA O DESENVOLVIMENTO DO APLICATIVO..................5 2 FUNDAMENTOS TEÓRICOS......................................8 2.1 SISTEMAS TUTORES INTELIGENTES (STI’S)...................................8 2.2 ARQUITETURA CLÁSSICA DOS STIS..........................................9 2.3 O USO DE FLUXOGRAMAS COMO FERRAMENTA DE APOIO PARA O ENSINO DE PROGRAMAÇÃO....10 2.4 APLICAÇÕES MULTIMÍDIA DE INOVAÇÕES TECNOLÓGICAS NO ENSINO DE PROGRAMAÇÃO DE COMPUTADORES.............................................................10 2.5 REVISÃO E DISCUSSÃO DA NORMA ISO 5807 - 1985 (E)......................12 3 DIAGNÓSTICOS BASEADOS EM MODELOS.........................14 4 DESENVOLVIMENTO DO APLICATIVO MAGIC LOGIC................16 4.1 MÓDULO DE INTERAÇÃO COM O USUÁRIO......................................18 4.2 MÓDULOS DE AJUDA....................................................19 4.3 MECANISMOS PARA TESTE DE MESA.........................................19 4.4 MECANISMOS PARA GERAÇÃO DO CÓDIGO FONTE.................................20 5 ESTRUTURA DO APLICATIVO..................................21 5.1 MINI TUTORIAL.......................................................22 5.1.1 Help............................................................................................................................................. 32 5.1.2 Configurações do Aplicativo..................................................................................................... 32 5.1.3 Área de Trabalho....................................................................................................................... 32 5.1.4 Construção de um projeto........................................................................................................ 35 5.1.5 Recursos extras.......................................................................................................................... 38 6 CONCLUSÃO................................................ 40 Referências Bibliográficas..................................41

Upload: doque

Post on 08-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Sumário

1 INTRODUÇÃO......................................................................................................4

1.1 OBJETIVO GERAL.....................................................................................................................................51.2 JUSTIFICATIVA..........................................................................................................................................51.3 FERRAMENTAS UTILIZADAS PARA O DESENVOLVIMENTO DO APLICATIVO.............................................5

2 FUNDAMENTOS TEÓRICOS...............................................................................8

2.1 SISTEMAS TUTORES INTELIGENTES (STI’S).............................................................................................82.2 ARQUITETURA CLÁSSICA DOS STIS.........................................................................................................92.3 O USO DE FLUXOGRAMAS COMO FERRAMENTA DE APOIO PARA O ENSINO DE PROGRAMAÇÃO............102.4 APLICAÇÕES MULTIMÍDIA DE INOVAÇÕES TECNOLÓGICAS NO ENSINO DE PROGRAMAÇÃO DE COMPUTADORES..................................................................................................................................................102.5 REVISÃO E DISCUSSÃO DA NORMA ISO 5807 - 1985 (E).....................................................................12

3 DIAGNÓSTICOS BASEADOS EM MODELOS..................................................14

4 DESENVOLVIMENTO DO APLICATIVO MAGIC LOGIC..................................16

4.1 MÓDULO DE INTERAÇÃO COM O USUÁRIO.............................................................................................184.2 MÓDULOS DE AJUDA..............................................................................................................................194.3 MECANISMOS PARA TESTE DE MESA......................................................................................................194.4 MECANISMOS PARA GERAÇÃO DO CÓDIGO FONTE.................................................................................20

5 ESTRUTURA DO APLICATIVO.........................................................................21

5.1 MINI TUTORIAL......................................................................................................................................225.1.1 Help...................................................................................................................................................325.1.2 Configurações do Aplicativo.............................................................................................................325.1.3 Área de Trabalho..............................................................................................................................325.1.4 Construção de um projeto.................................................................................................................355.1.5 Recursos extras.................................................................................................................................38

6 CONCLUSÃO.....................................................................................................40

Referências Bibliográficas.........................................................................................41

Page 2: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

1 Introdução

O objetivo principal da disciplina de Lógica de Programação é o aprendizado de

técnicas para resolver problemas computacionais. Essas técnicas consistem em

encandear ações para atingir determinados objetivos. Sendo assim, o aprendizado

dessa disciplina é imprescindível para a formação de um bom programador,

constituindo-se base para o desenvolvimento do aluno em diferentes tipos de

linguagem de programação.

As disciplinas que tratam de introdução à programação, normalmente trazem

muitas dificuldades para os alunos no desenvolvimento de lógica. Os professores

percebendo essa dificuldade geralmente propõem a resolução de muitos exercícios. No

entanto, isso nem sempre é suficiente para resolver o problema.

Este projeto tem por objetivo o desenvolvimento de um ambiente automático de

apoio ao desenvolvimento da lógica de programação, pode de maneira interativa,

auxiliar os usuários a aprendizagem de Lógica de Programação, por meio de

construção de fluxogramas, realização de testes de mesa e geração de códigos fontes,

entre outros.

O aplicativo deve conter um módulo para geração de código fonte a partir de

uma estrutura lógica montada pelo aluno, utilizando os recursos do sistema. Além

disso, deve haver um módulo de ajuda para facilitar a interação, que fornece dicas,

durante o processo de construção de fluxogramas, e possibilita que o usuário teste a

lógica por meio de um módulo de teste de mesa.

4

Page 3: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

1.1 Objetivo Geral

Este projeto tem por objetivo a construção de um sistema interativo para apoio

ao processo ensino-aprendizagem de fundamentos da Lógica de Programação,

utilizando representação gráfica (fluxograma).

O aplicativo pode servir de suporte tanto a professores quanto a alunos.

1.2 Justificativa

A aprendizagem da lógica para resolução de um problema é uma etapa

importante para a formação de um profissional da área de informática.

Acreditamos que quando um aprendiz pode visualizar a lógica de resolução para

um problema computacional, essa pode auxiliar a sua aprendizagem. Portanto, uma

ferramenta que fornece elementos gráficos pode, por sua vez, auxiliar esse processo.

1.3 Ferramentas utilizadas para o desenvolvimento do Aplicativo

Os símbolos utilizados para construção de fluxograma são baseados na norma

da ISO 5807:1985 (Revisão e Discussão da Norma ISSO 5807, 1985). O sistema será

desenvolvido em linguagem C# , pois trata-se de uma linguagem simples que é

derivada da linguagem C, portanto dependerá de instalação do Framework 2.0.

Para o desenvolvimento do MiniTutorial, foi utilizado o Flash para

desenvolvimento do projeto utilizamos os controles do Visual Studio, e

axShockwaveFlash, que serão explicados a seguir:

Microsoft Visual Studio 2005 Express Edition

O Microsoft Visual Studio é um conjunto de ferramentas utilizadas para

desenvolvimento de software, de uso tanto por amadores como para corporações.

5

Page 4: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

A versão utilizada no projeto: Microsoft Studio 2005 Express Edition é

recomendada para o uso por desenvolvedores iniciantes e também casuais.

Adobe Flash MX

Adobe Flash, é um software primariamente de gráfico vetorial, utilizado

geralmente para a criação de animações interativas e profissionais.

Os arquivos feitos em Flash são comumente utilizados para propaganda

animada (banners), jogos e apresentações dos mais variados tipos utilizando a

tecnologia. Isso graças aos avanços na linguagem ActionScript, que é a linguagem de

programação utilizada em aplicações de arquivos flashes (.swf).

XML (eXtensible Markup Language)

O XML (eXtensible Markup Language) é um padrão W3C para representar a

informação, provendo facilidade de conversão para outros formatos e a separação

entre a estrutura, o conteúdo e a apresentação.

Documentos XML são documentos de texto Unicode estruturadas de maneira

hierárquica a partir de uma raiz.

C#

C# é uma das linguagens de programação .NET, uma linguagem simples,

moderna e orientada a objeto derivada da linguagem C e C++, combinando a alta

produtividade do Visual Basic e do poder do C++.

.NET

A plataforma .NET é uma especificação aberta desenvolvida pela Microsoft, que

permite rodar as aplicações não apenas no ambiente Windows, mas também em outros

6

Page 5: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

dispositivos mediante a instalação do Framework.net. O responsável por esta

portabilidade é o CLR (Common Language Runtime), que funciona como a máquina

virtual do Java.

As linguagens .NET entre outras características: possuem , em teoria, o mesmo

código IL (Intermediate Language) após compilado, sendo fortemente tipadas e

possuindo uma forma única de acesso a dados.

7

Page 6: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

2 Fundamentos Teóricos

2.1 Sistemas Tutores Inteligentes (STI’s)

O desenvolvimento deste projeto leva em consideração os fundamentos teóricos

dos STI’s, principalmente os STI’s voltados para programação, os quais serão descritos

a seguir.

O estudo e o desenvolvimento de ferramentas computacionais voltadas para

educação vêm sendo realizados desde a década de 50 quando foram apresentados os

softwares educacionais chamados Instruções Assistidas por Computador (CAI).

(Pianesso, A.C.F, Castanho, 2003)

Esses sistemas pertencem à categoria de softwares educacionais, que se

baseiam na aprendizagem interativa. Nessa categoria, o centro do processo ensino-

aprendizagem é o aluno que passa do papel passivo para o ativo. Sendo assim, o

desenvolvimento de STI's capazes de interagir com o aluno, é fundamental, pois a

partir dessa interação será possível selecionar e aplicar técnicas pedagógicas mais

adequadas.

Os primeiros sistemas educacionais que apresentaram certo grau de

"inteligência" foram chamados “CAI’s” Inteligentes ou “ICAI”, do inglês. Os ICAI’s são

sistemas que possuem uma rica representação do seu domínio de conhecimento e

permitem utilizá-los de acordo com as características do aluno, os sistemas são

capazes de personalizar a instrução, tornando a apresentação apropriada ao seu nível

de conhecimento e com o seu modo de aprendizagem. (Chaiben, H., 2002)

8

Page 7: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

O estudo de STI’s ganhou novo fôlego por serem ferramentas que podem ser

utilizadas também para ensino a distância e transmitir conhecimento via Internet.

Constituem-se de ferramentas que podem acrescentar mais valias ao processo de

ensino. (Sistemas Tutores Inteligentes Uma Visão Geral)

A Internet é um local ideal para disponibilizar os sistemas tutores, e proporcionar

a educação a distância por computador. Como foi dito anteriormente a característica

que aumenta a eficiência do ensino com STI’s é a sua adaptação ao utilizador, no caso

o aluno. Esta operação é feita sobre um domínio de incerteza, não se sabe ao inicio, o

que o utilizador sabe, nem quais as suas preferências. A Inteligência Artificial desde

cedo tenta tratar esse problema da incerteza: As possíveis soluções são sistemas

especialistas, planejamento, redes bayesianas, entre outros.

2.2 Arquitetura Clássica dos STIs A Arquitetura Clássica dos STI’s é formada pelos seguintes módulos: modelo do

especialista, modelo do estudante, modelo pedagógico e modelo da interface

(Sistemas Tutores Inteligentes Uma Visão Geral).

Modelo especialista: armazena o conhecimento a ser apresentado, ou seja,

contem as informações de um determinado domínio que representa o

conhecimento de um especialista. Também é utilizado como padrão para

avaliar o desempenho do estudante;

Modelo do Estudante: contém os conhecimentos e as capacidades do

conhecimento do estudante, ou seja, o comportamento de aprendizado do

aluno;

9

Page 8: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Modelo Pedagógico: é o módulo responsável pela estrutura didática e

pedagógica dos STIs, ou seja, este módulo contém o conhecimento

necessário para tomar decisões sobre qual ou quais maneiras de ensino

deverão ser utilizadas nos STI’s;

Modelo de Interface: este módulo é a comunicação entre o sistema e o

estudante. A interface deve ser inteligente e capaz de adaptar-se às

diferentes necessidades de cada usuário.

2.3 O uso de fluxogramas como ferramenta de apoio para o ensino de

Programação

Uma ferramenta de apoio para o ensino de Programação tem por objetivo o

desenvolvimento do aluno no que se refere à capacidade de análise e resolução de

problemas descrevendo-os em algoritmos.

Como a lógica de programação tem um alto grau de abstração, muitas vezes os

alunos não conseguem visualizar o comportamento do seu algoritmo, ou seja, como ele

seria executado no computador. Sendo assim, os fluxogramas podem auxiliar o

entendimento do aluno, pois fluxogramas fazem uso de símbolos geométricos que

representam estruturas de programas e são conectados entre si por arestas dirigidas.

2.4 Aplicações Multimídia de Inovações Tecnológicas no Ensino de

Programação de Computadores

No Brasil, a educação para a programação de computadores tem sido realizada

nos cursos superiores na área de computação, cursos médios e profissionalizantes,

ensino informal de Informática e por iniciativas próprias de pessoas para aprenderem

10

Page 9: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

sozinhas. Mesmo com todas essas modalidades, programar bem ainda é uma atividade

executada por pouquíssimas pessoas.

O uso da multimídia pode ajudar a melhorar o argumento didático,

proporcionando maior produtividade ao aluno nas práticas laboratoriais, eliminando

assim as chamadas barreiras de aprendizagem (RIBEIRO, Pedro, 2002 ).

Entre as vantagens na melhoria do ensino com o uso de inovações tecnológicas,

podemos citar:

O princípio do pensamento sócio-construtivista deve ser aplicado já que tem

como essência o uso do concreto para facilitar a abstração e a participação

ativa do aluno na construção do pensamento;

As operações realizadas por um computador são invisíveis ao olho humano

e por isso utiliza-se a multimídia para criar ambientes de aprendizagem;

A construção de algoritmos computacionais requer base de conhecimento

sobre o principio de funcionamento do computador durante a execução de

um programa;

Os recursos audiovisuais e a multimídia exercem forte influencia no processo

de aquisição de conhecimento;

A melhoria de qualidade do ensino requer a utilização de metodologias e

inovação tecnológica com multimídia;

Os fatores que influenciam a evasão na disciplina têm como principal

responsável a pratica pedagógica. (Aplicações Multimídia em Inovações

Tecnológicas [2]).

11

Page 10: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

2.5 Revisão e Discussão da Norma ISO 5807 - 1985 (E)

A norma ISO 5807-1985 (E) para a definição e elaboração de diagramas de

fluxos para a área de desenvolvimento e projeto de software é a consolidação de

duas normas anteriores: ISO 1028 e ISO 2636 (ISO 5807, 1985, p.1), ambas

publicadas em 1973.

Segundo informações da própria norma ISO 5807-1985 (E), a definição e

elaboração de diagramas para a representação gráfica da linha de raciocínio lógico

a ser adotada não devem restringir o uso de aplicações ou soluções particulares,

uma vez que pode ocorrer a existência de vários tipos de soluções para os vários

problemas de processamento de informação (ISO 5807, 1985, p.1).

Os símbolos gráficos utilizados com os diagramas de fluxo de programa e

diagrama de fluxo de dados possuem como característica demonstrar de forma clara

a linha de raciocínio lógico utilizada por um programador de computadores, de forma

que seja fácil a quem não efetuou a tarefa de programação entender o que se

pretende que aquele programa faça.

Um dos pontos que pode gerar conflito de definição entre os profissionais de

desenvolvimento de software no nível de programação de computadores e no nível

de análise de sistemas é o fato de utilizar o termo fluxograma para generalizar o uso

de toda e qualquer forma de representação gráfica de atividades relacionadas ao

projeto de software.

No contexto prático das atividades de documentação gráfica da linha de

raciocínio lógica de um programa, ocorre o fato de parte dos símbolos existentes

para cada categoria de diagramas serem naturalmente utilizados em conjunto.

12

Page 11: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Dessa forma, fica um pouco difícil no projeto lógico de um programa de computador

diferenciar as categorias de símbolos em separado, pois além de estabelecer uma

seqüência de operações a ser executado, um programa necessita efetuar o

tratamento dos dados de entrada e saída.

Os símbolos: dados, processamento, linha, conector são categorizados

segundo a norma da ISSO 5807-1985 (E) como símbolos para a utilização em

diagramas de fluxo de programas e diagrama de fluxo de dados.

13

Page 12: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

3 Diagnósticos baseados em modelos

Existem duas diferentes categorias de sistemas para a correção automática de

programas: Tutores Inteligentes de Programação e Sistemas de Depuração de

Programas.

Para o nosso projeto, é aplicável o conceito dos Tutores Inteligentes de

Programação, pois os Tutores Inteligentes de Programação trabalham com programas

escritos por estudantes considerados programadores iniciantes. Geralmente os

programas que são analisados são pequenos e escritos em uma linguagem reduzida.

Para estes sistemas, é feita a suposição de que o aprendizado acontece na interação

do tutor com o estudante no processo de depuração do programa.

Este processo de depuração que permite se obter o diagnóstico de forma

automática do programa construído pelo aluno é uma tarefa complexa e essencial. A

proposta mais utilizada nestes casos é analisar o programa em relação a modelos de

resolução de problemas pré-existentes. Outra proposta é modelar o programa incorreto

do aluno e fazer inferências sobre ele.

As seguintes técnicas são utilizadas pelos Tutores Inteligentes de Programação

para obter diagnóstico quanto à corretude dos programas:

Verificação com respeito à especificação: Compara o programa real com

uma especificação formal existente (supondo que a intenção do

programador foi a de implementar a especificação em referência).

Verificação com respeito ao conhecimento da linguagem: O conhecimento

é geralmente com relação às restrições da linguagem. Este tipo de

14

Page 13: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

depuração procura um pedaço de código que não obedece algum

conhecimento da linguagem de programação

O problema das técnicas descritas anteriormente é que as mesmas são

aplicáveis somente a pequenos programas nos quais o custo da implementação não

fique muito alto em termos computacionais.

15

Page 14: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

4 Desenvolvimento do Aplicativo Magic Logic

Para a construção desse aplicativo, serão construídos módulos integrados que

devem cobrir todo o processo de construção de um programa: montagem de

fluxograma, realização de testes de mesa e geração do código fonte. Além disso, o

aplicativo contém um Mini Tutorial para o aluno.

Após a construção do fluxograma, esse pode ser testado, utilizando um Teste de

Mesa, que significa seguir as instruções do fluxograma de maneira precisa para

verificar se o procedimento utilizado está correto ou não, a Figura 1 ilustra a tela do

aplicativo Magic Logic com todos os seus componentes.

Figura 1:Aplicativo Magic Logic

A primeira questão que o grupo pensou para o desenvolvimento do aplicativo foi:

Qual seria uma forma alternativa de ensinar a lógica de programação?

Normalmente, a lógica é ensinada a partir de algoritmos, mais simples até os

mais complexos, de forma gradual. Existem várias ferramentas para ensinar lógica de

programação, tais como português estruturado, fluxograma, linguagem de

16

Page 15: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

programação específica, entre outros. Para uso em nosso aplicativo, escolhemos o

fluxograma, pois acreditamos que suas formas gráficas podem facilitar a visualização e

conseqüentemente a aprendizagem. O uso de fluxogramas exige o conhecimento de

cada um de seus símbolos, porém, isso pode ser menos complexo do que a sintaxe de

uma linguagem de programação específica, por exemplo, a linguagem C, pois uma

linguagem de programação específica para o aprendizado de algoritmos pode, muitas

vezes, ser um obstáculo, pois exige o conhecimento de sua sintaxe.

É importante salientar que por um lado, o aprendizado de lógica de programação

é diferente do aprendizado de uma linguagem de programação e o uso de uma

linguagem de programação para aprendizado da lógica de programação pode causar

essa confusão. Por outro lado, o aprendizado da lógica utilizando uma linguagem de

programação específica pode apresentar vantagens, como por exemplo, o aprendizado

de linguagem como efeito colateral do aprendizado de lógica.

Pensando nisso, desenvolvemos uma funcionalidade de geração do código fonte

na linguagem C, que é uma das linguagens mais utilizadas no ensino de linguagens de

programação. Com essas funcionalidades, o usuário pode visualizar o código em C

gerado a partir do fluxograma que foi desenvolvido.

Diante dessa circunstância, surgiu a seguinte questão:

Quais recursos de interação disponibilizam essas formalidades?

A princípio, quando iniciamos o desenvolvimento do aplicativo, pensávamos em

colocar um recurso de áudio como um dos pontos principais de interação com o

usuário, ele seria usado tanto no desenvolvimento do fluxograma quanto no acesso à

ajuda e também poderia ser habilitado ou não, conforme o usuário desejasse.

17

Page 16: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Com o trabalho já em desenvolvimento, percebemos que o recurso de áudio

ficaria redundante1, pois o local de aplicação desse recurso dentro do sistema acabaria

poluindo o mesmo e tirando a atenção do usuário.

Optamos então em retirar esse recurso do aplicativo e manter a ajuda interativa

(mensagens durante a construção do fluxograma) e as legendas sobre as

funcionalidades da ferramenta de forma a facilitar a usabilidade sem poluir o ambiente

para que o aluno possa concentrar-se nos objetivos principais.

4.1 Módulo de interação com o usuárioOs mecanismos de interação com o usuário, que são as formas pelas quais o

sistema reagirá às suas solicitações, foram planejados para ter uma boa usabilidade,

deixando o sistema simples e completo.

Ao iniciar o aplicativo, o usuário tem todas as ferramentas necessárias ao seu

alcance, sem precisar abrir várias janelas para obter o resultado esperado.

Um dos pontos chaves na construção do aplicativo foi a forma como o usuário

deve construir o fluxograma na tela e de que forma restringir o seu campo de trabalho

para evitar erros. Com esse objetivo em mente, retiramos possibilidades que levavam a

muitos cliques, por exemplo: a idéia inicial era o usuário adicionar um símbolo com o

duplo clique em uma lista e o sistema o posicionaria automaticamente na tela. A idéia

parecia boa, mas esbarramos no momento em que o usuário tivesse de excluir ou

adicionar um novo controle: seria necessário mover manualmente muitas peças nessa

lista, o que causaria muitos cliques e possivelmente até uma lentidão devida à

quantidade de operações necessárias a cada clique. Portanto optamos por usar

1 Resultar; reverter; sobrar.

18

Page 17: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

recursos mais simples como o arrastar e soltar dos símbolos, assim o usuário

consegue o mesmo efeito de forma mais livre e sem complicação.

4.2 Módulos de ajuda

Para facilitar o uso da ferramenta pelo usuário desenvolvemos mecanismos de

ajuda. O mecanismo de ajuda envolve legendas sobre cada um dos símbolos do

fluxograma até mensagens de alerta e a parte da ajuda estática, nomeada mini

tutoriais, na qual são encontrados conceitos utilizados fluxograma, algoritmos e da

linguagem C.

Além disso, o sistema possui uma ajuda para que o usuário utilize como guia,

quando precisar relembrar para que utilizar um botão, por exemplo.

4.3 Mecanismos para teste de mesa

O teste de mesa é utilizado para testar um algoritmo passo a passo para saber

se a sua execução atinge o objetivo esperado.

Para esse teste, escolhemos a maneira habitual que é a conferência dos valores

das variáveis a cada passo da execução do algoritmo.

O aplicativo utiliza-se de recursos gráficos durante esse processo para que o

usuário possa acompanhar o que está ocorrendo no andamento do programa por ele

escrito.

Antes de dar inicio ao teste de mesa o aplicativo faz a verificação de erros na

construção do fluxograma, de tal forma que os problemas ai encontrados já são

notificados ao usuário que deve corrigi-los antes de poder iniciar o teste de mesa.

19

Page 18: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

A Figura 2 ilustra um exemplo de teste de mesa que se encontra disponível em

um dos mini tutoriais, assim o aluno pode entender como funciona e assimilar com o

seu fluxograma.

Figura 2.: Ajuda – Teste de mesa

4.4 Mecanismos para geração do código fonteMagic Logic permite a geração de código fonte em linguagem C por meio de um

fluxograma desenhado dentro das regras básicas de construção, tais como não existir

um símbolo sem ligações.

Enquanto o usuário vai construindo o fluxograma o sistema armazena os dados

que necessita para gerar o código em classes bem definidas.

Essas classes armazenam as características dos símbolos, tais como

posicionamento na tela, propriedades (operação, se é inicio ou fim, mensagem de

exibição), comentários a serem inseridos no código fonte, entre outras.

Armazenam as variáveis utilizadas no decorrer do algoritmo. Armazenam,

também, a estrutura de ligação entre os controles de origem e destino, da seguinte

maneira:

20

Page 19: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Símbolo de Inicio: Da origem a apenas um símbolo e não pode ser

destino de outros símbolos.

Símbolo de Fim: Pode ser destino de diversos símbolos e não pode ser

origem de nenhum símbolo.

Símbolo de Entrada Manual, Saída de Dados, Processo e Loop: Pode ser

destino de mais de um símbolo e só dá origem a um símbolo.

Símbolo de Decisão: Pode ser destino de mais de um símbolo e pode dar

origem a dois símbolos (SIM e NÃO).

Sempre que o usuário tentar realizar alguma ligação invalida o sistema exibe

uma mensagem informativa de erro.

Por meio dessa estrutura o sistema consegue mapear onde inicia e onde termina

o código fonte do fluxograma.

5 Estrutura do Aplicativo

De acordo com as discussões feitas no Capítulo 3, foi elaborada uma estrutura

para o aplicativo Magic Logic. O aplicativo é descrito a seguir.

A Figura 3 mostra a tela inicial do aplicativo Magic Logic. Enquanto ele aparece,

o sistema está carregando informações necessárias tais para a sua execução.

21

Page 20: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Figura 3.: Abertura

5.1 Mini TutorialO mini tutorial contém como conteúdo informações referentes a disciplina de

introdução à lógica de programação.

As figuras 4 e 5 ilustram a tela inicial de ajuda e o menu inicial, respectivamente.

Nesse sub menu pode-se visualizar textos explicativos sobre algoritmo, fluxograma e

linguagem C.

Figura 4: Tela inicial Ajuda Figura 5.: Menu inicial Ajuda

Após a escolha de um assunto, uma outra tela será exibida e nela será

apresentada os pontos principais desse tema, conforme exibido nas Figuras 6 e 7.

22

Page 21: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Figura 6: Menu Algoritmo Ajuda Figura 7: Item inicial ajuda

A seguir, é mostrado o conteúdo explicativo de alguns itens presentes no Mini

Tutorial:

Algoritmo

Um algoritmo é formalmente uma seqüencia finita de passos que levam à

execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma

seqüencia de instruções que dão cabo de uma meta específica.

Como exemplos de algoritmos, podemos citar os manuais de aparelhos

eletrônicos, como um videocassete, que explicam passo-a-passo como, por exemplo,

gravar um evento. Até mesmo as coisas mais simples, podem ser descritas por

seqüencias lógicas.

Regras para construção de algoritmos

Para escrever um algoritmo, é necessário descrever a seqüencia de instruções

de maneira simples. Essas instruções não podem ser redundantes nem subjetivas na

sua definição, devem ser claras e precisas. Para isso tem-se as seguintes regras:

o Usar somente um verbo por frase

o Usar frases curtas e simples

23

Page 22: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

o Imaginar que se está desenvolvendo um algoritmo para pessoas

que não trabalham com informática.

A Figura 8 ilustra um exemplo de algoritmo que é utilizado no mini tutorial para o

melhor entendimento do conceito explicado nos demais itens do menu.

Figura 8: Exemplo de algoritmo

Fluxograma

Fluxograma é um tipo de diagrama e pode ser entendido como uma

representação esquemática de um processo, muitas vezes feito utilizando-se gráficos

que ilustram de forma descomplicada a transição de informações entre os elementos

que o compõem. Podemos entendê-lo, na prática, como a documentação dos passos

necessários para a execução de um processo qualquer. É uma das Sete Ferramentas

da Qualidade. Muito utilizada em fábricas e indústrias para a organização de produtos e

processos.

Fluxograma serve para demonstrar os seguintes aspectos:

24

Page 23: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

o Quais operações são realizadas

o Onde são realizadas as operações

o Quem as executa

o Quais as entradas e saídas

o Qual o fluxo das informações

o Quais os recursos empregados

o Quais os custos totais e parciais

o Qual o volume de trabalho

o Qual o tempo de execução: parcial e total

A Figura 9 ilustra detalhadamente como fica um fluxograma completo, com seus

principais símbolos como entrada de dados, decisão e exibição em vídeo dos valores

resultantes da operação realizada.

25

Page 24: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Figura 9: Exemplo de fluxograma

Simbologia

Não há um consenso para todos os símbolos aplicados na elaboração de

fluxogramas, mas o mais comum é utilizar a simbologia ANSI desenvolvida para

Análise de Sistemas. Na Tabela 1 encontram-se os símbolos para cada fase, operação

ou objeto encontrados em um fluxograma. Quando aparecem mais de um símbolo

significa que são variantes aceitáveis para o mesmo significado, porém a ordem em

que se apresentam indica sua adequação ou seja, o símbolo que aparece primeiro (à

esquerda) é mais adequado ou mais utilizado.

26

Page 25: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Tabela 1: Simbologia do fluxograma.

27

Page 26: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Teste de Mesa

Após o desenvolvimento de um algoritmo ele deverá sempre ser testado. Esse

teste é chamado teste de mesa, que significa seguir as instruções do algoritmo de

maneira precisa para verificar se o procedimento utilizado está correto ou não.

O teste de mesa é descrito como uma lição ao aluno, na qual é possível ver,

passo a passo, as alterações nos valores das variáveis durante a execução de um

algoritmo, conforme mostra a Figura 10.

Figura 10: tela do teste de mesa do mini tutorial

Linguagem C

As linguagens surgem e desaparecem, mas a linguagem C permanece. Foi o

coração do desenvolvimento do sistema operacional UNIX nos anos 70, foi centro da

revolução dos microcomputadores nos anos 80 e, quando surgiram a linguagem C++,

Delphi, Java e muitas outras, a linguagem C continuou fiel à sua própria natureza.

Operadores

Operadores Relacionais

o Maior que (>)

28

Page 27: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

o Menor que (<)

o Maior ou Igual (>=)

o Menor ou Igual (<=)

o Igual (=)

o Diferente (!=)

Operadores Aritméticos

o Adição (+)

o Subtração (-)

o Multiplicação (*)

o Divisão (/)

Operadores Especiais

o % = Devolve o resto da divisão entre 2 números inteiros

Operadores Lógicos

o E (&&) = Devolve verdadeiro se ambas as partes forem

verdadeiras

o OU (||) = Basta que uma parte seja verdadeira para retornar

verdadeira

o NÃO (!) = Inverte o estado de verdadeiro passa para falso e vice-

versa

29

Page 28: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Variáveis

Variáveis são endereços de memória destinados a armazenar informações

temporariamente.

Variáveis de entrada: Armazenam informações fornecidas por um meio externo,

normalmente usuários ou discos. Variáveis de saída: Armazenam dados processados

como resultados.

O nome das variáveis pode ser qualquer palavra que não seja uma palavra

chave da linguagem.

o É possível conter um número na palavra: Casa1

o Não é aceitável iniciar com um número: 1casa (errado)

o Não se pode utilizar: { ( + - * / ; . , ?, entre outros

As seguintes palavras, conhecidas como palavras reservadas, já têm um

significado na linguagem C e por esse motivo não podem ser utilizadas como nome de

variáveis:

auto double int struct

break enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Tipos de Variáveis

30

Page 29: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

TIPO VALOR ARMAZENADO INTERVALO TAMANHO (bytes)

int números inteiros positivos e negativos -32.768 a 32.767 2

char caracteres e números inteiros positivos e negativos -128 a 127 1

floatnúmeros em ponto flutuante positivos e negativos com precisão simples

3.4E-38 a 3.4E+38 4

doublenúmeros em ponto flutuante positivos e negativos com precisão dupla

-1.7E-308 a 1.7E+308 8

unsigned int números inteiros positivos 0 a 65.535 2

unsigned char caracteres e números inteiros positivos 0 a 255 1

long int números inteiros positivos e negativos

-2.147.483.648 a 2.147.483.647 4

unsigned long int números inteiros positivos 0 a 4.292.967.265 4

Estruturas de Controle

Os comandos de controle de fluxo são utilizados para definir o fluxo de execução

do programa e podem ser agrupados em comandos de laço e de decisão

o if – A expressão, na condição, será avaliada. Se ela for falsa (F),

a declaração não será executada. Se a condição for verdadeira (V) a

declaração será executada.

o else – Podemos pensar no comando else como sendo um

complemento do comando IF. O comando IF completo tem a seguinte forma

geral:

Sintaxe: if (condição) comando;

else comando;

31

Page 30: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

o switch – Substitui o aninhamento IF-else-if. O computador testa

uma variável sucessivamente contra uma lista de valores. Sintaxe:

switch (variável) {Case constante1:

Sequência de comandosbreak;

Case constante2:Sequência de comandosbreak;

Default:Sequência de comandos

}

o for – faz o incremento um número determinando de vezes e de

acordo com determinadas condições. Sintaxe:

for (inicialização; condição; incremento)Comando

o while – enquanto uma condição ocorre, repete. Sintaxe:

while (condição)Comando;

o do – while – repete algo enquanto uma condição ocorre.

Sintaxe:

do{Comando;} while (condição);

5.1.1 Help

O help é utilizado para apoio ao usuário na utilização da ferramenta Magic Logic.

Esta tela apresenta explicações interativas sobre os itens do sistema, tais como

botões, menus e funcionalidades, alem de simular graficamente a utilização de alguns

itens.

32

Page 31: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

5.1.2 Configurações do Aplicativo

A configuração do aplicativo permite que o usuário personalize algumas

características da apresentação do sistema da forma que lhe agradar. Segue algumas

das opções disponibilizadas para personalização do usuário:

Fonte dos objetos da área de trabalho;

Cor dos textos;

Cores de fundo;

Cor dos controles no teste de mesa;

Ativar / desativar as legendas dos símbolos;

Habilitar / desabilitar mensagens de alerta.

5.1.3 Área de Trabalho

Após a abertura essa é a área de trabalho do usuário, onde será criado o

fluxograma, conforme Figura 11.

Figura 11.: Área de trabalho

A tela inicial do aplicativo é composta por:

33

Page 32: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Barra de Menu

A Barra de menu possui os controles para a utilização da ferramenta Magic

Logic, conforme ilustrado na Figura 12. Com os controles podemos criar um novo

projeto, salvar o projeto, gerar código fonte, entre outros.

Figura 12.: Barra de menu

Caixa de Controles

Na área de controles estão dispostos os símbolos que permitem a construção do

fluxograma, cada um destes símbolos possuem legendas que possuem uma definição

sobre eles. Para criar um novo símbolo no fluxograma é preciso que o usuário clique

sobre o símbolo que irá utilizar e arraste até a área de construção do fluxograma. A

Figura 13 ilustra os símbolos para a criação do fluxograma.

Figura 13.: Controles

Caixa de Propriedades

Na área de propriedades o usuário pode alterar as propriedades de um símbolo

selecionado, excluir uma conexão entre dois símbolos e realizar a exclusão de um

símbolo, conforme mostra a Figura 14. Cada símbolo possui as suas propriedades em

particular, mas todas compartilham uma propriedade em comum que é o comentário. O

comentário que o usuário informar é "escrito" no código fonte.

34

Page 33: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Figura 14: Propriedades

Declaração de Variáveis

Na declaração das variáveis, é permitido declarar as variáveis utilizadas no

fluxograma, para cada variável é associado um tipo de dado que pode ser: caractere,

texto, inteiro, decimal ou lógico, como está exemplificado na Figura 15. No momento da

declaração é exibida para o usuário uma mensagem de forma a orientar a melhor

maneira de se declarar uma variável.

Figura 15.: Variáveis

Teste de Mesa

O controle de teste de mesa, conforme a Figura 16, é utilizado para gerenciar a

execução do teste de mesa no fluxograma. Este painel é composto de uma tabela com

duas colunas: a coluna variável, que são as variáveis que foram declaradas pelo

usuário e a coluna valor, que representa o valor da variável em um determinado

instante da execução.

Figura 16.: Teste de mesa

35

Page 34: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

5.1.4 Construção de um projeto

Ao escolher um novo projeto são habilitadas algumas opções do menu e da área

de trabalho, tais como Controles, Propriedades, Declaração de Variáveis, Teste de

Mesa, entre outros.

Para iniciar a construção do projeto pode-se utilizar a caixa controles para iniciar

o desenho do fluxograma. Para isso é preciso que o usuário clique sobre o símbolo que

irá utilizar e arraste até a área de trabalho do fluxograma ilustrada na figura 17.

Figura 17.: Exemplo de construção de um fluxograma

Após iniciar a construção do projeto, que pode ser alterado durante o

desenvolvimento do algoritmo, o usuário pode definir as variáveis que serão utilizadas

tanto na geração do código como no próprio preenchimento das propriedades dos

símbolos do fluxograma, conforme ilustra a figura 18

36

Page 35: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Figura 18.: Preenchendo as variáveis e as propriedades do fluxograma

A Figura 18 ilustra também o momento em que o usuário seleciona um dos

símbolos já colocados no ambiente do fluxograma e altera as suas propriedades. Veja

que as variáveis devidamente preenchidas na caixa de variáveis já aparecem na lista

do símbolo de entrada manual. A variável escolhida será utilizada para armazenar a

informação recebida via entrada de teclado no algoritmo.

Com o fluxograma já estruturado é possível que seja feito o Teste de Mesa para

executar o fluxograma passo-a-passo possibilitando a validação da lógica construída.

Ao clicar na opção teste de mesa, o sistema faz validações no fluxograma como,

por exemplo, a verificação da existência de um símbolo inicial e um símbolo final, a a

não existência de poço sem fundo ou geração espontânea nos símbolos do

fluxograma. Se o fluxograma apresentar esses erros o sistema não permite iniciar o

teste de mesa até que o usuário faça as devidas correções.

Caso o fluxograma atenda as regras mínimas para inicio do teste de mesa são

carregadas todas as variáveis que foram declaradas no painel teste de mesa, e sçao

associadas estas variáveis a variáveis auxiliares do aplicativo que permitirão a

37

Page 36: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

execução dos passos do fluxograma. O sistema posiciona no símbolo inicial do

fluxograma, que é o símbolo de inicio.

Durante a execução do teste de mesa a coluna valor da variável não pode ser

alterada pelo usuário somente quando o passo da execução do teste de mesa seja

uma entrada de dados manual, neste caso a variável indicada pelo símbolo torna-se

disponível para preenchimento pelo usuário.

Para permitir as opções de avançar, recuar foi preciso guardar no aplicativo

informações para saber quem é a origem e o destino de cada um dos símbolos do

fluxograma.

Figura 19 : Exemplo de teste de mesa

A medida que o teste de mesa avança os símbolos que já foram testados ficam

destacados em azul, conforme ilustra a figura 19, quando se posiciona o teste de mesa

em um determinado símbolo o aplicativo verifica o tipo de símbolo para determinar que

ação que irá ser tomada.

38

Page 37: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

É possível ao usuário a geração do código fonte na linguagem C que será

apresentado em um bloco de notas, onde fica fácil para o usuário salvar em outras

extensões ou copiar.

Para isso, para cada símbolo do fluxograma são lidos os dados armazenados

nas classe do no aplicativo, estes dados são convertidos para a sintaxe da linguagem

C de forma a construir cada linha do código.

5.1.5 Recursos extras

O aplicativo Magic Logic conta com recursos extras conforme descrito abaixo:

Permite a criação de um novo projeto conforme descrito no item 3.2.5.

Permite abrir um projeto existente, salvo em um arquivo. Para abrir o

projeto, existe uma rotina que faz a leitura do arquivo do projeto, e a partir dos dados

lidos carrega as informações das variáveis declaradas e dos símbolos utilizados e

realiza, a construção do fluxograma salvo.

Permite salvar o projeto em um arquivo. Os dados do projeto são salvos

em um arquivo XML, que por sua estrutura permite uma organização de forma a

facilitar a recuperação dos dados.

Iniciar o aplicativo Bloco de Notas do Windows. Este aplicativo está a

disposição com o objetivo de possibilitar acesso rápido ao usuário, durante a

construção do fluxograma, para possíveis anotações.

39

Page 38: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Iniciar o aplicativo Calculadora do Windows. Este aplicativo está a

disposição com o objetivo de possibilitar acesso rápido ao usuário, durante a

construção do fluxograma, para possíveis cálculos.

40

Page 39: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

6 Conclusão

Com o avanço da Tecnologia da Informação nos últimos tempos, tornou-se

possível o seu uso na área da educação, que é um setor que está, atualmente,

explorando com mais intensidade essas tecnologias. Com isso, os estudos voltados

aos softwares educacionais começaram a evoluir, permitindo que o aluno tenha um

papel mais ativo na interação com o sistema.

Com o desenvolvimento do aplicativo Magic Logic, os alunos iniciantes na área

de Programação, poderão desenvolver com maior facilidade o entendimento de cada

passo feito para a construção de um determinado programa.

41

Page 40: brainstormdeti.files.wordpress.com · Web viewC# C# é uma das linguagens de programação .NET, uma linguagem simples, moderna e orientada a objeto derivada da linguagem C e C++,

Referências Bibliográficas

1 - Ferramentas que auxiliam o desenvolvimento da lógica de programação. Disponível em: http://www.inf.furb.br/seminco/2003/artigos/118-vf.pdf. Acesso em 24/3/2008.

2 - Aplicações Multimídia em Inovações Tecnológicas no Ensino de Programação de Computadores; Pedro Ribeiro Barbosa e Alexsandra Félix De Brito 3 - Construção de Abstrações em Lógica de Programação; Mauro M. Mattos, MSc

4 - Revisão e Discussão da Norma ISO 5807 - 1985 (E) Proposta para Padronização Formal da Representação Gráfica da Linha de Raciocínio Lógico Utilizada no Desenvolvimento da Programação de Computadores a ser Definida no Brasil.; José Augusto Navarro Garcia Manzano. Disponível em http://www.manzano.pro.br/alunado/navarro.pdf Acessado em 15/02/2008 5 - Sistemas Tutores Inteligentes Uma Visão Geral; 6 - Aprender a Aprender Sistema tutor Inteligente; Hugo Gamboa 7 - Ferramenta para Apoio ao Ensino de Introdução à Programação; Karly Schubert Vargas e Joyce Martins. Disponível em http://www.inf.furb.br/seminco/2005/artigos/107-vf.pdf Acessado em 20/03/2008. 8 - Experiências no Aprendizado de Algoritmos utilizando um ambiente de aprendizagem; Fabrício Viero de Araújo e Gilse A. Morgental Falkembach. Disponível em http://www.furb.br/seminco/2005/artigos/107-vf.pdf Acessado em 20/03/2008.

9 - Apostila da Disciplina de Algoritmos e Programação; Prof. João Carlos Gluzhttp://www.eraldoluis.pro.br/disciplinas/material_comum/alg_apostila_c_uergs.pdf Acessado em 20/03/2008.

10 – Visual Studio 2005. Disponível em: http:// www.microsoft.com/express/2005. Acessado em 11/08/2008.

11 – Código fonte – Wikipédia, enciclopédia livre. Disponível em: http://pt.wikipedia.org. Acessado em 17/08/2008.

12 – DELGADO, Karina Valdivia. Diagnóstico Baseado em Modelos num Sistema Tutor Inteligente para Programação com Padrões Pedagógicos. Dissertação (Mestrado em Ciência da Computação) – Universidade de São Paulo, São Paulo, 2005.

42