Uma Proposta Metodológica para o Aprendizado de Algoritmos em Grafos Via Animação Não-intrusiva de Algoritmos
|
|
- Isabela Juliana Gonçalves Beretta
- 5 Há anos
- Visualizações:
Transcrição
1 Uma Proposta Metodológica para o Aprendizado de Algoritmos em Grafos Via Animação Não-intrusiva de Algoritmos Tays C. A. P. Soares 1, Eduardo S. Cordeiro 1, Italo G. A. Stefani 1, Fabio Tirelo 1 1 Departamento de Ciência da Computação Pontifícia Universidade Católica de Minas Gerais Av. D. José Gaspar, 500 Prédio Belo Horizonte, MG escordeiro@yahoo.com, italogiovani@terra.com.br, tayscristina@yahoo.com.br, ftirelo@pucminas.br Abstract. In an attempt to diminish the difficulty found by a great number of Graph Theory students during algorithm implementation, a study methodology based on a non-intrusive algorithm animation environment is presented. The Rin G environment allows users to develop their algorithms and add them to a graphical interface, running them step-by-step in an interactive way to facilitate the understanding of applied techniques, by means of mapping the computational representations of algorithm implementations into visual abstractions of graph algorithms. Resumo. Buscando diminuir a dificuldade encontrada por grande parte dos estudantes da Teoria dos Grafos na implementação de algoritmos, apresentase uma metodologia de estudo baseada no uso de um ambiente de animação não-intrusiva de algoritmos. O ambiente Rin G permite que usuários desenvolvam seus algoritmos e os incluam em uma interface gráfica, executando-os passo-a-passo de forma interativa para facilitar a compreensão das técnicas aplicadas, por meio do mapeamento das representações computacionais de implementações de algoritmos para abstrações visuais de algoritmos em grafos. 1. Introdução Para facilitar o aprendizado de sistemas e teorias que utilizam conceitos complexos e abstratos, como sistemas operacionais, hierarquias de memória e redes de computadores, tem surgido na literatura, como metodologia didática, o fornecimento a estudantes de representações visuais em alto nível do funcionamento desses conceitos [1]. A partir de observações dentro de disciplinas de graduação, percebe-se também um melhor resultado no aprendizado por meio de atividades práticas de desenvolvimento de simuladores e ferramentas visuais didáticas de representação de conceitos abstratos [2, 3, 4]. Esse trabalho busca facilitar a sedimentação do conhecimento adquirido no estudo da Teoria dos Grafos. O ensino da Teoria dos Grafos em cursos de Ciência da Computação e Sistemas de Informação normalmente tem como um tópico importante o estudo e implementação
2 de algoritmos em grafos. Grande parte dos alunos 1 sente dificuldade na implementação desses algoritmos, devido à necessidade de um suporte para a implementação, composto por estruturas de dados e ferramentas de visualização e interação com grafos, e à diferença de níveis de abstração entre as definições teóricas dos algoritmos e representações computacionais necessárias para implementá-los. Com o objetivo de permitir que os alunos sejam capazes de focar o seu estudo e esforço no desenvolvimento e na implementação de algoritmos, propõe-se um ambiente, denominado Rin G (Reflectin Graphs) 2 [5], composto pelo suporte necessário para a implementação de algoritmos em grafos e uma interface gráfica para interação com grafos e execução de algoritmos. Ao estudarem as técnicas envolvidas na implementação de algoritmos em grafos, alunos normalmente criam, mentalmente ou através de desenhos, visualizações da execução desses algoritmos sobre grafos de exemplo, na tentativa de entender seus passos e comparar o resultado da execução com o resultado esperado dos algoritmos. Buscando aumentar o poder dessa técnica de estudo, e ainda reduzir a complexidade inerente à compreensão de algoritmos em grafos, o Rin G provê animações da execução de algoritmos desenvolvidos pelo aluno, de forma transparente e interativa, na qual um estudante pode navegar pelo funcionamento de seus algoritmos em busca do auto-aprendizado. 2. Suporte à Implementação de Algoritmos em Grafos Tipicamente, o estudo de grafos nos cursos de Ciência da Computação e Sistemas de Informação introduz, além do embasamento matemático necessário, o estudo de algoritmos que permitam a manipulação da estrutura [6, 7] para aplicações do mundo real. A implementação de algoritmos em grafos engloba, inicialmente, a implementação de uma estrutura de grafo e um ambiente para entrada dos dados dos grafos e exibição dos resultados de algoritmos. A estrutura do grafo consiste na representação computacional de vértices e arestas, além de suas propriedades, tais como cor, rótulo, peso de arestas e outras, dependentes da aplicação, além da representação das relações entre vértices e arestas. A criação e interação com grafos é normalmente realizada em uma interface gráfica, onde se desenha um grafo por meio de ferramentas de edição; deve ser também estabelecida uma maneira de configurar propriedades dos componentes do grafo nessa interface com o usuário. A execução de algoritmos sobre grafos criados pelo usuário deve permitir a exibição dos resultados desses algoritmos. Uma saída compreensível e muito utilizada em ambientes que lidam com grafos é a manipulação de propriedades de desenho do grafo, como as cores e tamanhos de vértices e arestas. Como meio de facilitar a compreensão, a execução de algoritmos deve ser mostrada passo-a-passo. Um ambiente educativo deve ser, primeiramente, de fácil aprendizado e utilização, para que o usuário não tenha sua atenção desviada, permitindo assim que o aproveita- 1 Como o ambiente foi desenvolvido para ser usado em ambientes acadêmicos, os termos estudante, aluno e usuário serão utilizados sem distinção neste artigo 2 O ambiente está hospedado como um projeto de desenvolvimento em
3 Figura 1: Interface do Rin G mento da ferramenta como recurso de aprendizado seja o melhor possível. A construção de um ambiente com uma interface amigável é uma grande preocupação no processo de desenvolvimento de software [8, 9], fato que reforça a sobrecarga de trabalho que pode ser exigida de alunos de disciplinas de grafos ao requisitar que eles implementem tal amparo. Pelo exposto, percebe-se a necessidade de fornecer aos alunos todo o amparo para a implementação e compreensão de algoritmos em grafos, facilitando assim o processo de compreensão de estudantes da Teoria dos Grafos, já que eles podem se sentir motivados pela facilidade de uso e objetividade providos pelo ambiente para o aprendizado. 3. Ambiente Proposto Além do amparo básico necessário para o estudo de algoritmos em grafos, ambientes de estudo da Teoria dos Grafos encontrados na literatura (ver Seção 7) normalmente fornecem aos seus usuários uma metodologia de estudo para facilitar o processo de assimilação do conhecimento exposto. O Rin G, como ferramenta, consiste em um ambiente de interface gráfica que permite a edição de grafos, a execução de algoritmos para geração e acompanhamento de animações e o salvamento e abertura de grafos e animações. Uma imagem da interface do Rin G pode ser vista na Figura 1. No Rin G, resolveu-se implantar, inicialmente, a metodologia de aprendizado de grafos baseado na animação não-intrusiva de algoritmos. Tal metodologia propõe que um
4 estudante implemente seus algoritmos e, de forma transparente, animações da execução desses algoritmos sejam geradas pelo ambiente de execução e exibidas ao usuário; desta forma, é possível diminuir a lacuna existente entre a representação computacional dos algoritmos e a abstração visual do seu funcionamento. Busca-se, por meio desta metodologia, reduzir a complexidade inerente à compreensão de algoritmos em grafos, sem, no entanto, exigir que o usuário desvie sua atenção da implementação natural de algoritmos. A experiência pessoal do grupo no estudo e ensino de algoritmos indica que há um maior aproveitamento no aprendizado de algoritmos em grafos quando estudantes são motivados a construir suas próprias implementações de algoritmos estudados; durante a implementação, alunos são capazes de perceber detalhes que fogem do escopo de aulas teóricas, e que, ainda assim, são importantes para a completa compreensão e assimilação das técnicas aplicadas. Para que estudantes estejam possibilitados de acompanhar animações da execução de seus algoritmos, o Rin G permite fácil inclusão e execução de algoritmos do usuário. Esses algoritmos, no entanto, são independentes do ambiente de estudo [5], e baseiam-se apenas nas estruturas de dados que representam grafos, seus componentes e propriedades. Outro aspecto do ambiente proposto para o estudante de algoritmos em grafos é que ele permite a implementação de algoritmos sem preocupação com detalhes de entrada de parâmetros e saída de resultados tais tarefas são encapsuladas pelo Rin G. Como o Rin G é um ambiente proposto para utilização em instituições de ensino, é comum que seus usuários mantenham instâncias do ambiente em localizações distintas. Para que o ambiente de estudo de um aluno seja minimamente pervasivo, é necessário que suas configurações e preferências sejam de fácil exportação e importação. A ferramenta utiliza, como base para personalização, uma pasta no sistema de arquivos que pertence ao seu usuário, onde são armazenados grafos e animações salvos, informações de preferências da interface e algoritmos já incluídos pelo usuário. A animação de um algoritmo representa uma forma de acompanhar o seu comportamento. O trabalho antes tedioso do estudo do funcionamento de um algoritmo é substituído por uma animação automática, que utiliza as representações visuais clássicas da Teoria dos Grafos, tornando o aprendizado mais motivante e prático. O ambiente permite a animação de algoritmos em dois tempos de execução: online e offline. Animação online é aquela formada e exibida durante a execução de um algoritmo, permitindo a depuração visual do seu funcionamento; ela é útil durante o processo de desenvolvimento de algoritmos, pois permite identificar o exato momento em que ocorreu um erro. Animação offline é aquela exibida após a completa execução de um algoritmo e armazenada em disco para posterior visualização, permitindo o estudo interativo da execução de algoritmos em correto funcionamento. A visualização de animações offline da execução de implementações que contenham erros pode ser inviabilizada em casos, por exemplo, da existência de loops infinitos, quando a execução jamais termina para que uma animação offline possa ser formada. 4. Metodologia de Desenvolvimento de Algoritmos O Rin G foi desenvolvido com base no framework Diamante, também criado pelo grupo com o intuito de simplificar o desenvolvimento de aplicações que utilizam grafos. Por esse
5 motivo, algoritmos implementados para utilização no Rin G devem também ser baseados no Diamante, e é nesse arcabouço que estão implementadas as estruturas e componentes de grafos e suas propriedades. O Diamante também define a estrutura das implementações de algoritmos a ser seguida. Todo o projeto do Diamante visou implementar as estruturas necessárias para o desenvolvimento de algoritmos em grafos. Dessa forma, usuários do Rin G têm uma estrutura de simples acesso para a manipulação das estruturas de grafos durante o desenvolvimento de algoritmos. Em grande parte dos ambientes propostos na literatura, o usuário é levado a aprender uma nova linguagem para usufruir de todos os recursos disponibilizados, podendo-se, assim, desviar o foco do desenvolvimento de algoritmos. No Rin G, algoritmos são implementados em Java, e a estrutura disponibilizada pelo Diamante busca garantir que essas implementações serão o máximo possível similares às definições teóricas dos algoritmos propostos, conforme mostrado na Seção 6. É importante ressaltar, sobre o desenvolvimento de algoritmos compatíveis com o Rin G, que a animação é transparente ao desenvolvedor. Comandos realizados sobre o grafo durante a execução de algoritmos são transformados, pelo ambiente, e em ordem de execução, em passos da animação do algoritmo; os comandos escolhidos para gerar passos de animação são aqueles naturais à implementação de algoritmos em grafos, como a alteração de propriedades de vértices e arestas e o teste da existência de arestas entre dois vértices. Por este motivo, a geração da animação dos algoritmos do aluno é minimamente intrusiva ou, em comparação com outros ambientes existentes na literatura, não-intrusiva. 5. Usabilidade do Ambiente O Rin G foi utilizado durante parte do 1 o semestre de 2004 por alunos da disciplina Grafos e Teoria da Complexidade do curso de Ciência da Computação da PUC Minas. Este teste foi considerado satisfatório pelo grupo, motivando a contínua melhoria e o incremento do conjunto de funcionalidades da ferramenta. Durante aulas de laboratório, algumas das quais foram monitoradas por membros do grupo, e em atividades extra-classe, alunos foram encorajados a implementar algoritmos clássicos da Teoria dos Grafos usando o ambiente, tais como a Busca em Profundidade e o Problema do Caixeiro Viajante, entre outros. Como pode ser observado nos gráficos das Figuras 2 e 3, a interface do Rin G foi avaliada, pela maioria dos alunos, como fácil ou regular, e que, apesar de considerarmos esse resultado satisfatório, o ambiente ainda precisa de melhorias para que não interfira no processo de estudo de seus usuários. Os alunos, em maioria, também avaliaram como suficiente a documentação provida para utilização do ambiente. Com base nessa avaliação, realizada em Junho de 2004, o grupo orientou seus esforços para a melhoria da interface do ambiente. Foi dada especial atenção para a interface de abertura de recursos salvos pelo usuário e na interação com propriedades de componentes do grafo, além da implementação de algumas sugestões dos usuários do Rin G; esta nova interface pode ser vista na Figura 4. O ambiente também foi transformado para ser sensível ao contexto, de modo que
6 Figura 2: Avaliação da Interface Gráfica do Rin G. Classificação qualitativa para a interface gráfica do ambiente como um todo. são exibidos ao usuário somente comandos que podem ser utilizados durante sua tarefa atual. Por exemplo, quando o usuário está desenhando um grafo, ele tem disponíveis operações para escolha de modo de desenho e ferramentas de desfazer e refazer comandos; quando a execução de um algoritmo é iniciada, a barra de ferramentas exibe controles similares aos de reprodução de mídia para interação com a execução do algoritmo a Figura 5 mostra a barra de ferramentas do Rin G em contextos diferentes. Entretanto, grande parte dos alunos avaliou como Difícil ou Regular o desenvolvimento de algoritmos compatíveis com o Rin G, conforme mostrado no gráfico da Figura 6. Segundo o mesmo questionário, 75% desses alunos não tinha contato prévio com a linguagem Java, e, portanto, avalia-se que parte da dificuldade percebida pelos alunos durante a implementação de algoritmos é oriunda desse histórico. 6. Estrutura de Algoritmos Conforme dito anteriormente, buscou-se, durante o desenvolvimento do framework Diamante, tornar a representação computacional de algoritmos em grafos o mais próximo Figura 3: Avaliação da Interface e dos Comandos de Edição de Grafos. Classificação da facilidade de identificação e uso das ferramentas de edição de grafos.
7 Figura 4: Interface de Abertura de Recursos Salvos possível das definições teóricas de algoritmos da teoria. Assim, ao utilizar o Rin G como ambiente de estudo de algoritmos em grafos, estudantes podem concentrar seu esforço no desenvolvimento de algoritmos, sem a necessidade de definir estruturas de dados ou implementar módulos de interface com o usuário. Esta Seção tem por objetivo demonstrar a construção de um algoritmo compatível com o Rin G baseada em sua definição teórica. Como exemplo, escolheu-se a Busca em Amplitude, algoritmo que, dado um vértice inicial, visita, em amplitude, todos os vértices alcançáveis por ele no grafo [10]. Este algoritmo, embora simples, é base para outros importantes, como o Algoritmo de Dijkstra, para determinação de menores caminhos em grafos valorados e o Algoritmo de Prim, para determinação da árvore geradora mínima de grafos. A Figura 7 mostra a definição em alto nível do algoritmo. Para uma definição completa da estrutura de algoritmos baseados no Diamante, veja [5]. As estruturas necessárias para a implementação da Busca em Amplitude são inicializadas conforme o código na Figura 8. Comparando o código da execução do algoritmo, mostrado na Figura 9, e a definição em alto nível do algoritmo, é possível perceber que o mapeamento é realizado de forma direta, e com poucas adaptações. Dessa maneira, diminui-se a dificuldade na implementação de algoritmos em grafos, motivando-se, assim, o estudo desse tópico. Uma adaptação de grande importância, nesse caso, é o uso dos comandos de alteração de propriedades de vértices e arestas embora esses comandos não existam na definição teórica do algoritmo, eles são a formação encapsulada de uma saída de resultado do algoritmo; embora o algoritmo possa ser implementado sem esses comandos, ele perderá seu Figura 5: Barra de Ferramentas do Rin G em Contextos de Edição e Animação
8 Figura 6: Avaliação do Desenvolvimento de Algoritmos com o Rin G. Classificação da facilidade de desenvolvimento de algoritmos compatíveis com o Rin G é importante ressaltar que 75% dos alunos não possuía contato prévio com a linguagem Java. BuscaAmplitude(v) INICIALIZE estruturas MARQUE v como visitado ENFILEIRE v ENQUANTO Fila não vazia FAÇA w = DESENFILEIRE PARA CADA z pertencente ao grafo FAÇA se existir aresta (w,z) e z não visitado COLOQUE w antecessor de z MARQUE z como visitado ENFILEIRE z Figura 7: Definição em alto nível da Busca em Amplitude valor didático se não gerar uma saída compreensível para o usuário. A ferramenta Rin G, durante a execução de algoritmos, captura os comandos e- xecutados sobre o grafo, formando passos da animação daquela execução e exibindo-os ao usuário. Esse nível de não-intrusividade permite que um estudante desenvolva seu algoritmo preocupando-se o mínimo possível com a saída do resultado, e que, ainda assim, obtenha um resultado visual de fácil compreensão que o auxilie na assimilação do funcionamento obtido. 7. Trabalhos Relacionados É possível encontrar vários trabalhos relacionados com visualização e animação de algoritmos para estudos da Teoria dos Grafos. Entretanto, cada trabalho é focado de acordo com as necessidades específicas de seus desenvolvedores e professores interessados. Analisando esses trabalhos e adicionando as experiências adquiridas em disciplinas de Grafos, definiu-se um conjunto de requisitos para um ambiente que pudesse servir como ferramenta completa para auxílio ao ensino e aprendizado. Dos trabalhos estudados podem-se destacar algumas ferramentas com a proposta
9 // vértice inicial da busca this.initial = initial; // indica quais vértices já foram visitados pela busca visited = new boolean[g.getn()]; Arrays.fill(visited,false); // fila de vértices a visitar queue = new LinkedList(); Figura 8: Inicialização de estruturas public void execute() { visited[initial] = true; queue.addfirst(new Integer(initial)); while (!queue.isempty()) { int w = ((Integer) queue.removelast()).intvalue(); // marque w no caminho percorrido g.setnodeproperty(w,"componentcolor","0,255,0"); // para cada z tal que existe e(z,w) não visitado for (int z = 0 ; z < g.getn() ; z++) { if (g.e(w,z) &&!visited[z]) { // marque aresta (z,w) no caminho percorrido g.setedgeproperty(z,w,"componentcolor","0,0,255"); } } } } visited[z] = true; queue.addfirst(new Integer(z)); Figura 9: Execução do algoritmo baseada no Diamante de representar um grafo visualmente e executar algoritmo sobre este para estudo de seu comportamento. Aqui são descritas algumas delas, o GVF (Graph Visualization Framework) [11], EVEGA [12], o DIDAGRAPH [13], o VisualGraph [14] e o DisViz [15]. Destacam-se também ferramentas interessantes para visualização genérica de programas e suas estruturas de dados, como o JEliot [16] e o Leonardo [17]. O GVF é um framework para desenvolvimento de ferramentas direcionadas para manipulação de problemas de teoria dos grafos que apresenta um bom suporte para criação de entrada e saída de dados e leiaute para de grafos. Por outro lado, não permite a inclusão de algoritmos dinamicamente ao sistema e não fornece amparo à animação de algoritmos. O GVF não fornece capacidade de expansão, já que não existe a possibilidade de inclusão de operações, componentes e propriedades de um grafo. O framework Diamante, utilizado como base para o Rin G, fornece o suporte à entrada e saída de dados e amparo à animação de algoritmos, preservando ainda a característica de flexibilidade para o
10 desenvolvimento com mais possibilidades para o desenvolvedor e usuário final. O EVEGA é uma ferramenta desenvolvida para o aprendizado de algoritmos em grafos, e fornece uma interface poderosa e de boa usabilidade para criação e edição interativa de grafos e animação de algoritmos. As execuções de vários algoritmos podem ser comparadas por meio de gráficos de desempenho gerados pela ferramenta. Um algoritmo de fluxo máximo acompanha a ferramenta para demonstração e é possível incluir no ambiente novos algoritmos. A operação do EVEGA, no entanto, para geração da animações, é feita de forma intrusiva no código do algoritmo, podendo ser necessário dividir a atenção do problema a ser solucionado com a criação da animação. A interface de animação de algoritmos é pouco intuitiva e não permite voltar a execução a passos anteriores, característica didática interessante para compreensão de algoritmos e presente no Rin G. O DIDAGRAPH permite o acompanhamento de animações da execução de algoritmos, em alto nível, por meio de uma visualização do grafo com o algoritmo em andamento e de uma descrição em linguagem de alto nível do algoritmo. Esta ferramenta, atualmente, conta apenas com poucos algoritmos; para estudar algoritmos utilizando esta ferramenta, é necessário aprender uma nova linguagem, fato que, assim como no EVEGA, pode desviar a atenção do objetivo das disciplinas de grafos. No Rin G, o aluno desenvolve o algoritmo em Java, e não precisa incluir código de visualização ou de animação na sua implementação. O VisualGraph fornece uma biblioteca para a animação de algoritmos em grafos. Essa biblioteca, no entanto, não fornece uma interface gráfica para o usuário, servindo apenas como base para a criação de grafos que possam ser utilizados em outros projetos e ambientes. Para visualizar a animação gerada por algoritmos criados com o VisualGraph, é necessário o uso de outra ferramenta. A interface do VisualGraph para criação de grafos é baseada em texto, pouco intuitiva e não representa o grafo de forma amigável ao aluno. No Rin G, o aluno utiliza somente um ambiente que integra visualização e animação do algoritmo, de forma transparente ao usuário. O DisViz foi desenvolvido para permitir o aprendizado de grafos em grupo, por meio de redes locais, em um ambiente P2P no qual é possível criar grafos de teste e animações de algoritmos que possam ser visualizadas por todos os membros da rede. Esta ferramenta, no entanto, não fornece uma maneira fácil de acoplar algoritmos desenvolvidos por usuários, de forma que alunos só podem utilizar os algoritmos já presentes. O estudo de algoritmos em grafos utilizando o DisViz é restrito aos algoritmos já implementados na ferramenta e ao acompanhamento da animação desses algoritmos. Além disso, o estudo depende da existência de uma rede local e da colaboração dos membros dessa rede, o que pode dificultar o estudo dentro e fora dos horários de aulas práticas. Com o Rin G, o aluno pode desenvolver seus trabalhos a qualquer momento sem que haja a dependência de uma rede de computadores, além de ser possível acoplar seus próprios algoritmos na ferramenta sem alterar o seu código fonte. O JEliot é uma ferramenta de visualização de programas, e exibe uma animação da execução de um programa. O código do programa é totalmente independente da ferramenta, e o usuário deve apenas indicar, na própria ferramenta, quais estruturas de dados serão animadas, e ela se encarrega da animação das operações realizadas sobre aquela estrutura durante a execução do programa. Este ambiente propõe a visualização
11 genérica de programas, e não é específica para algoritmos em grafos. Por esse motivo, as visualizações que ela gera não necessariamente correspondem às visualizações conceituais de grafos e, assim, ela ainda exige um esforço mental do programador na conversão das representações do ambiente e a representação visual clássica de grafos. O Rin G, por outro lado, é voltado para visualização de algoritmos em grafo, o que torna a visualização mais próxima do esperado por estudantes de grafos. O LEONARDO é uma ferramenta não-intrusiva para visualização gráfica de estruturas de dados, que permite ao programador observar e acompanhar a representação gráfica de variáveis e estruturas de dados pré-selecionadas no código-fonte. Além disso, o usuário dessa ferramenta é capaz de depurar seu programa passo-a-passo, tendo a opção de navegar progressiva ou regressivamente na execução. Apesar do LEONARDO não ser intrusivo, o usuário deste ambiente precisa aprender uma linguagem de descrição de variáveis e estruturas a serem integradas na animação e, assim como o JEliot, não é otimizado para a visualização de algoritmos em grafos. O Rin G não requer o aprendizado de uma nova linguagem e gera visualizações voltadas para a teoria dos grafos e suas representações gráficas, sendo mais direcionado à assimilação das técnicas envolvidas em algoritmos em grafos. 8. Avaliação Os testes de usabilidade descritos na Seção 5 foram direcionados à facilidade de uso da interface do ambiente, e à facilidade de desenvolvimento de algoritmos compatíveis com o Rin G. O resultado obtido foi satisfatório, já que se tratava da primeira versão do ambiente, e, após a reestruturação realizada com base nas opiniões dos usuários, o Rin G hoje tem uma interface intuitiva que não desvia a atenção do usuário do desenvolvimento e compreensão de seus algoritmos. Conforme comparações na Seção 7, o Rin G foi desenvolvido com enfoque no estudo de algoritmos em grafos, proporcionando ao usuário um ambiente que simplifica o processo de assimilação das técnicas aplicadas a algoritmos em grafos. Este ambiente didático fortalece a sedimentação do conhecimento adquirido por alunos em aulas e livros teóricos da Teoria dos Grafos, funcionando como recurso complementar ao estudo desse tópico. Ao gerar a animação gráfica do estado de grafos ao longo da execução de algoritmos do aluno, o Rin G realiza, de forma automática, o mapeamento entre níveis de abstração da especificação do algoritmo com a sua implementação, diminuindo, assim, a complexidade da implementação e compreensão. Como resultado, o aluno pode utilizar as metáforas visuais comuns à Teoria dos Grafos. 9. Trabalhos Futuros Durante o desenvolvimento do Rin G, o grupo percebeu que haveria vários complementos interessantes ao projeto inicial, porém que fugiriam do escopo e do tempo disponível para implementação. Assim, optou-se por desenvolver o software de forma que ele fosse extensível, podendo suportar, sem grandes alterações de estrutura, a inclusão de novas funcionalidades. Mesmo que os desenvolvedores atuais não estejam presentes em todo o
12 processo de ampliação do escopo da ferramenta, preocupou-se em tornar a documentação disponível do projeto suficiente para permitir a sua evolução contínua. Um dos trabalhos identificados, e que atualmente está em processo de desenvolvimento, é uma extensão do Rin G, que permite ao usuário visualizar os passos da execução de algoritmos em grafos por meio de uma visão do código-fonte em Java e de uma animação do algoritmo, sendo que ambas serão apresentadas simultaneamente durante a execução. Esta nova funcionalidade operará como um depurador no qual o usuário poderá perceber com mais detalhes os efeitos das construções de seu programa sobre a execução em grafos de teste. Serão incluídos os recursos tradicionais de depuração, tais como a visualização de pilhas de execução e das variáveis locais do algoritmo. A depuração da representação visual do grafo e de suas estruturas computacionais durante a execução de um algoritmo permitirá ao estudante identificar e compreender eventuais erros de forma clara e interativa, o que poderá melhorar a sua produtividade durante o desenvolvimento de algoritmos, e, conseqüentemente, a qualidade didática do sistema. Ao observar algoritmos definidos em grafos [10], percebe-se que, como essa teoria pertence à matemática discreta, grande parte dos seus conceitos e algoritmos é definida em operações e notações de conjuntos. Pretende-se, também como extensão às funcionalidades já existentes no Rin G, implementar um framework de conjuntos, para permitir a implementação direta de algoritmos da teoria dos grafos, em notação similar à teórica. Acredita-se que esta funcionalidade poderá melhorar o mapeamento entre as estruturas do código-fonte e as metáforas correspondentes. 10. Conclusões Foi apresentado neste artigo o ambiente Rin G (Reflectin Graphs), como um complemento a disciplinas de grafos em cursos de Ciência da Computação e Sistemas de Computação. A ferramenta visa permitir melhor assimilação do funcionamento de algoritmos em grafos, já que mostra em uma representação visual os passos da execução de algoritmos criados pelo usuário. O Rin G permite que estudantes se concentrem no desenvolvimento e implementação de algoritmos, sem maiores preocupações adicionais com entrada e saída de parâmetros e resultados de seus algoritmos ou interface gráfica de visualização, diminuindo assim a carga de trabalho necessária para a construção de algoritmos em grafos. Ao diminuir o número de requisitos paralelos à implementação dos algoritmos, o aluno pode focalizar sua atenção nas especificidades do problema em grafos que está sendo resolvido. O fato de o programa ser escrito em Java possibilitou o uso de recursos da linguagem necessários para as funcionalidades mais importantes do Rin G, como a inclusão de algoritmos em grafos e a animação online desses algoritmos. Pelo fato de Java ser uma linguagem popular, evitou-se que o aluno tenha que aprender uma linguagem específica para animação, como é feito em outros ambientes encontrados na literatura. Com isto, diminui-se a carga de conhecimento prévio exigida do aluno, que pode estar ainda nos estágios iniciais do curso. A ferramenta será testada e avaliada novamente ao final do segundo semestre de 2004, quando os novos alunos da disciplina Grafos e Teoria da Complexidade terão u-
13 sado a versão atual do ambiente. A partir desta experiência, o grupo pretende realizar uma análise qualitativa da influência da animação de algoritmos em um ambiente de fácil compreensão e utilização no processo de aprendizado de algoritmos em grafos. 11. Agradecimentos Este trabalho é parcialmente patrocinado pelo Programa de Bolsas de Iniciação Científica (PROBIC), da Pontifícia Universidade Católica de Minas Gerais, e contou também com o apoio das professoras Raquel Mini e Cristiane Nobre durante o desenvolvimento e os testes da ferramenta. Referências [1] C. Demetrescu and I. Finocchi. Smooth animation of algorithms in a declarative framework. Journal of Visual Languages and Computing (JVLC), 12(3), [2] Eduardo S. Cordeiro, Italo G. A. Stefani, Tays C. A. P. Soares, Carlos A. P. S. Martins. DCMSim: Didatic Cache Memory Simulator. 33rd ASEE/IEEE Frontiers in Education Conference, pages F1C 14 F1C 19, [3] Italo G. A. Stefani, Eduardo S. Cordeiro, Tays C. A. P. Soares, Carlos A. P. S. Martins. DCMSim: Uma ferramenta para simulação de memória cache. IV Workshop em Sistemas Computacionais de Alto Desempenho WSCAD 2003, pages , [4] Italo G. A. Stefani, Eduardo S. Cordeiro, Tays C. A. P. Soares, Carlos A. P. S. Martins. DCMSim: Projeto e Desenvolvimento de um Simulador Didático e Multiplataforma de Memória Cache Usando Modelo Estrutural de Cache. IV Workshop em Sistemas Computacionais de Alto Desempenho WSCAD 2003, pages , [5] Eduardo S. Cordeiro, Italo G. A. Stefani, Tays C. A. P. Soares, Fabio Tirelo. Rin G: Um Ambiente Não-intrusivo para Animação de Algoritmos em Grafos. XII WEI - Workshop de Educação em Computação, [6] Ministério da Educação do Brasil. Secretaria de Educação Superior. Diretrizes Curriculares para os Cursos de Graduação. Technical report, MEC, [7] Sociedade Brasileira de Computação. Currículo de Referência para Cursos de Bacharelado em Sistemas de Informação. Technical report, SBC, Diretoria de Educação, [8] Sidney L. Smith, Jane N. Mosier. Guidelines for Designing User Interface Software. Technical report, The MTRE Corporation, Bedford, Massachusetts, USA, [9] Purvi Saraiya, Clifford A. Shaffer, D. Scott McCrickard, Chris Norh. Effective Features of Algorithm Visualizations. SIGCSE 04 - Special Interest Group on Computer Science Education, [10] Thomas H. Cormen ET AL. Algoritmos: teoria e prática. Editora Campus, Tradução da 2 a edição americana. [11] G. Melançon M.S. Marshall, I. Herman. An Object-Oriented Design for Graph Visualization (GVF). CWI, 2003.
14 [12] Sami Khuri, Klaus Holzapfel. EVEGA: An Educational Visualization Environment for Graph Algorithms. Proceedings of ITiCSE 2001, The 6th Annual Conference on Innovation and Technology in Computer Science Education - Canterbury, UK 2001, [13] V. Dagdilelis,M. Stratzemi. DIDAGRAPH: Software for Teaching Graph Theory Algorithms. ITiCSE Integrating Technology into Computer Sciente Education.Dublin - Ireland 1998, [14] Jeffrey M. Lucas, Thomas L. Naps. VisualGraph - A Graph Class Designed For Both Undergraduate Students and Educators. SIGCSE 2003, Special Interest Group on Computer Science Education, Reno - Nevada, USA, [15] Alexander A. Sherstov. Distributed Visualization of Graph Algorithms. SIGCSE 2003, Special Interest Group on Computer Science Education, Reno - Nevada, United States, [16] Jorma Tarhio Matti Lattu, Veijo Meisalo. On using a Visualization Tool as a Demonstration Aid - Technical report, [17] P. Crescenzi, C. Demetrescu, L. Finocchi and R. Petreschi. Leonardo: a software visualization system. WAE 97, pages , 1997.
Rin G: Um Ambiente Não-intrusivo para Animação de Algoritmos em Grafos
Rin G: Um Ambiente Não-intrusivo para Animação de Algoritmos em Grafos Eduardo Santos 1, Italo Giovani 1, Tays Cristina 1, Fabio Tirelo 1 1 Departamento de Ciência da Computação Pontifícia Universidade
Leia maisUM SOFTWARE GRÁFICO EDUCACIONAL PARA O ENSINO DE ALGORITMOS EM GRAFOS*
UM SOFTWARE GRÁFICO EDUCACIONAL PARA O ENSINO DE ALGORITMOS EM GRAFOS* Rodrigo Pereira dos Santos Departamento de Ciência da Computação Universidade Federal de Lavras (DCC/UFLA) Lavras MG Brasil CEP 37200-000
Leia maisFigura 16 Niagara - Visão de grupos de notas.
Conclusão 6 Conclusão 6.1 Trabalhos Relacionados Dentre as funcionalidades fornecidas pela interface gerada pelo framework, em destaque está a possibilidade do zoom livre. Disponibilizar esta funcionalidade
Leia maisCurso online de Fundamentos em Android. Plano de Estudo
Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos
Leia maisDIFICULDADES NO ENSINO-APRENDIZAGEM DE PROGRAMAÇÃO DE COMPUTADORES: CONTRIBUIÇÕES PARA A SUA COMPREENSÃO E RESOLUÇÃO
DIFICULDADES NO ENSINO-APRENDIZAGEM DE PROGRAMAÇÃO DE COMPUTADORES: CONTRIBUIÇÕES PARA A SUA COMPREENSÃO E RESOLUÇÃO Bruno Siqueira da Silva bruno.siqueira@iffarroupilha.edu.br Universidade Regional Integrada
Leia maisA pesquisa no ensino de computação. Práticas de ensino de algoritmos (Hazzan, Cap. 4) Péricles Miranda
A pesquisa no ensino de computação Práticas de ensino de algoritmos (Hazzan, Cap. 4) Péricles Miranda Existe pesquisa na área de ensino? Existe uma variedade de tópicos Conhecimento de novatos Investiga
Leia maisFURBMOBILE: UMA APLICAÇÃO PARA VISUALIZAÇÃO E ACOMPANHAMENTO DA MATRIZ CURRICULAR
Departamento de Sistemas e Computação FURB Curso de Ciência da Computação Trabalho de Conclusão de Curso 2016/1 FURBMOBILE: UMA APLICAÇÃO PARA VISUALIZAÇÃO E ACOMPANHAMENTO DA MATRIZ CURRICULAR Acadêmico:
Leia maisImplementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.
Universidade Federal de Uberlândia - UFU Faculdade de Computação Bacharelado em Sistemas de Informação Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW. William Johnson
Leia maisAMBIENTE DIDÁTICO GRÁFICO PARA A COMPREENSÃO DE LÓGICA DE PROGRAMAÇÃO. Rodrigo Ferreira da Silva
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
Leia maisCAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES
103 CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES "A verdadeira dificuldade não está em aceitar idéias novas, mas em escapar das antigas. John Maynard Keynes A pesquisa orientada à visualização cartográfica visa
Leia mais2 O Modelo: SetModel. 2.1 Modelo de Informação
O Modelo: SetModel 2 O Modelo: SetModel 2.1 Modelo de Informação Modelo de informação é uma representação abstrata e formal de entidades incluindo suas propriedades, relações e operações que podem ser
Leia maisO Ensino-Aprendizagem de Programação de Computadores: dificuldades e ferramentas de suporte
STIN Simpósio de Tecnologia da Informação da Região Noroeste do RS 154 O Ensino-Aprendizagem de Programação de Computadores: dificuldades e ferramentas de suporte Bruno Siqueira da Silva 1, Toni Ferreira
Leia maisProjeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
Leia maisAdaptação Dinâmica desistemas Distribuídos p.1/54
Adaptação Dinâmica de Sistemas Distribuídos Francisco José da Silva e Silva Orientadores: Prof. Dr. Markus Endler Prof. Dr. Fabio Kon Instituto de Matemática e Estatística da Universidade de São Paulo
Leia maisAspectos Computacionais do Desenvolvimento de uma Biblioteca para Desenho de Redes Bayesianas
19 a 21 de mar o de 2010 102 Aspectos Computacionais do Desenvolvimento de uma Biblioteca para Desenho de Redes Bayesianas Thales Lange 1, Raimundo C. G. Teive 1 1 Mestrado em Computação Aplicada Universidade
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
Leia maisProfessora Orientadora do Departamento de Ciências Exatas e Engenharias. 4
DESENVOLVIMENTO DE OBJETO DE APRENDIZAGEM DE MATEMÁTICA VOLTADO PARA ESCOLAS DA REDE PÚBLICA UTILIZANDO SOFTWARE ADOBE FLASH PROFESSIONAL CC: UM OBJETO PARA O ENSINO DE ESTATÍSTICA 1 Diogo Rafael Silva
Leia maisRealidade Aumentada aplicada ao ensino da simetria molecular
Realidade Aumentada aplicada ao ensino da simetria molecular Matheus Gaspar Reis 1, Alan Salvany Felinto 1 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal 10.011 86057-680
Leia mais3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks
48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o
Leia mais5 Processo de Reificação e de Desenvolvimento com ACCA
Uma Arquitetura para a Coordenação e a Composição de Artefatos de Software 53 5 Processo de Reificação e de Desenvolvimento com ACCA Resumo Este capítulo visa esclarecer e descrever atividades existentes
Leia maisApresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas
Leia mais2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE
Especificação do Projeto Simulador MIPS Superescalar CES- 25 Arquiteturas para Alto Desempenho Prof. Paulo André Castro Equipe: até três alunos Última atualização: 5/junho/2018 1. Objetivo Exercitar e
Leia mais3 Uma Arquitetura Distribuída via WEB
24 3 Uma Arquitetura Distribuída via WEB Neste capítulo será apresentada a Arquitetura de Ambiente Distribuído no qual está implementado o Gerador VRML (VRMLGer) e o fluxo de dados que há entre as diferentes
Leia maisLABORATÓRIO VIRTUAL EM SISTEMAS DE CONTROLE
LABORATÓRIO VIRTUAL EM SISTEMAS DE CONTROLE Ana Cláudia Gomes 1, Agostinho Linhares Souza Folho 1, Luiz Affonso Guedes 1 Universidade Federal do Pará 1 Campus Universitário do Guamá {acgomes, affonso}@ufpa.br
Leia maisDesagregação da educação na PME 2002
SÉRIE DE NOTAS TÉCNICAS EM ECONOMIA DA UFG NT N. 04 NOTA TÉCNICA EM ECONOMIA n. 04 Publicação cujo objetivo é auxiliar na elaboração de aulas e de pesquisas do Curso de Ciências Econômicas da UFG, divulgando
Leia maisTécnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
Leia maisDesenvolvimento de Ferramentas no igeom: Utilizando a Geometria Dinâmica no Ensino
Desenvolvimento de Ferramentas no igeom: Utilizando a Geometria Dinâmica no Ensino Presencial e à Distância Seiji Isotani Orientador: Leônidas de Oliveira Brandão Defesa de Mestrado Departamento de Ciência
Leia maisTREINAMENTO PARA COMPETIÇÕES DE PROGRAMAÇÃO: Estudo de caso nas turmas do técnico em informática integrado do Câmpus Muzambinho RESUMO
TREINAMENTO PARA COMPETIÇÕES DE PROGRAMAÇÃO: Estudo de caso nas turmas do técnico em informática integrado do Câmpus Muzambinho Leonardo S. da COSTA 1 ; Tiago G. BOTELHO 2 RESUMO Competições de programação
Leia maisDESENVOLVIMENTO DE UM SISTEMA DE INFORMAÇÃO GEOGRÁFICA PARA GERAÇÃO DE MAPAS PLUVIOMÉTRICOS
DESENVOLVIMENTO DE UM SISTEMA DE INFORMAÇÃO GEOGRÁFICA PARA GERAÇÃO DE MAPAS PLUVIOMÉTRICOS Osvaldo Cesar Pinheiro de Almeida 1, Roger Cristhian Gomes 2 1 FATEC, Botucatu, SP, Brasil. E-mail cesar@fatecbt.edu.br
Leia maisUma Linha de Produto de Software para Módulos de Aprendizagem Interativa
Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Defesa de Mestrado Instituto de Matemática e Estatística - Universidade
Leia maisIntrodução a Teste de Software
Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software
Leia maisVISEDU-CG: Aplicação Didática para Visualizar Material Educacional, Módulo de Computação Gráfica
VISEDU-CG: Aplicação Didática para Visualizar Material Educacional, Módulo de Computação Gráfica James Perkison Montibeler Orientador: Dalton Solano dos Reis FURB Universidade Regional de Blumenau Grupo
Leia maisSoftware Para Geração de Consultas e Relatórios
Software Para Geração de Consultas e Relatórios Características e Funcionalidades Versão 1.1 Iniview é marca registrada da Projedata Informática Ltda. Todos os direitos reservados à Projedata Informática
Leia maisBCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 2 2 aulas teóricas e 2 aulas práticas (ambas em laboratório) Terças às 17:10, lab 22 do DECOM Prof. Túlio
Leia mais3 Arquitetura para a Coordenação e a Composição de Artefatos de Software
Uma Arquitetura para a Coordenação e a de Artefatos de 23 3 Arquitetura para a Coordenação e a de Artefatos de Resumo Este capítulo apresenta a arquitetura ACCA, que é a parte central deste trabalho. A
Leia mais7 Conclusão e Trabalhos Futuros
Conclusão e Trabalhos Futuros 123 7 Conclusão e Trabalhos Futuros Esta dissertação apresenta a linguagem X-SMIL para autoria declarativa de documentos hipermídia. Nessa direção, o primeiro passo do trabalho
Leia maisPrimeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)
Primeiro Trabalho de IA/SI: Buscas Entrega: 03/03/2019 (2 semanas) 18 de Fevereiro de 2019 Este trabalho é para ser submetido via Moodle. Será desenvolvido principalmente durante as aulas práticas, mas
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: ESTRUTURAS DE DADOS CÓDIGO: INF01203 CURSOS/PRE-REQUISITO: o Engenharia da Computação
Leia maisAtividades e Recursos. Escola Médica Virtual
Atividades e Recursos Escola Médica Virtual Atividades Escola Médica Virtual Chat O módulo de atividade Chat permite que participantes tenham discussões síncronas, ou seja, discussões que acontecem durante
Leia maisInformações Importantes! INF TURMA A
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: ESTRUTURAS DE DADOS CÓDIGO: INF01203 CURSOS/PRE-REQUISITO: o Engenharia da Computação
Leia maisDesenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa
Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Qualificação de Mestrado Instituto de Matemática
Leia maisUm Middleware de Inteligência Artificial para Jogos Digitais 105
6 Conclusão Este capítulo apresenta alguns comentários e considerações gerais sobre o trabalho de pesquisa realizado durante o desenvolvimento desta dissertação, as contribuições alcançadas e sugestões
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto
Leia maisDesign de IHC PoliFacets
1 Design de IHC PoliFacets INF1403 Introdução a IHC Aula 17 Marcelle Mota 13/05/2013 Scalable Game Design (SGD) Originado na Universidade do Colorado Objetivo: Promover a aquisição de raciocínio computacional
Leia maisBibliotecas e Componentes para Interatividade de Jogos em Flash
Bibliotecas e Componentes para Interatividade de Jogos em Flash Leonardo Serra Faria Orientador: Bruno Feijó Dept. de Informática, PUC-Rio PIBIC Programa Institucional de Bolsas de Iniciação Científica
Leia mais4 Testes e experimentos realizados 4.1. Implementação e banco de dados
32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários
Leia maisPROJETO DE PROGRAMAS. Projeto de Programas PPR0001
PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes
Leia maisMaterial Complementar de INF Engenharia Cognitiva
Material Complementar de INF 1403 2009.1 Engenharia Cognitiva Introdução A Engenharia Cognitiva foi concebida por Donald Norman em 1986 como uma tentativa de aplicar conhecimentos de Ciência Cognitiva,
Leia mais1.1. Posicionamento e Motivação
1 Introdução Os evidentes avanços computacionais têm proporcionado mudanças de paradigma na interação humano-computador. No passado, na chamada era mainframe, um computador era compartilhado por vários
Leia maisAgenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software
Reuso de Software Aula 02 Agenda da Aula Introdução a Reuso de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Introdução a Reuso de Software Abordagens de Reuso
Leia maisDesenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática
Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática 1 Victor Fernando Conti; 1 Elvio Gilberto da Silva; 1 Patrick Pedreira Silva; 1 Rosane Maria
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Aula 1: Introdução e Conceitos Básicos Professora Sheila Cáceres O que é um paradigma??? Paradigmas de Linguagens - Sheila Cáceres 2 O que é um paradigma??? Paradigmas de Linguagens
Leia maisCurso Online de E-commerce. Plano de Estudo
Curso Online de E-commerce Plano de Estudo Descrição do programa O programa oferece metodologias e técnicas necessárias para a implementação de soluções web baseadas no CMS para o suporte, estratégias
Leia maisESPECIFICAÇÃO DE SOFTWARE
ESPECIFICAÇÃO DE SOFTWARE Integrantes do grupo: Joel Edu Sánchez Castro Fernando Hattori Miguel Angel Galarreta Valverde Felipe Martins dos Santos 1 SUMÁRIO DESCRIÇÃO...3 REQUISITOS...3 REQUISITOS FUNCIONAIS
Leia maisDocumento de Requisitos do Software Tá Fazendo Quanto?
Documento de Requisitos do Software Tá Fazendo Quanto? Versão 1.0 09 15 Ficha Técnica Equipe Responsável pela Elaboração Daniel Schmid Mariotto Gustavo Romito Nogueira Vinicius Carvalho Público Alvo Este
Leia maisUML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução
UML: introdução Prof.: Clarindo Isaías Pereira da Silva e Pádua Synergia / Gestus Departamento de Ciência da Computação - UFMG UML: introdução 2 Bibliografia Rumbaugh, J.; Jacobson, I.; Booch, G., The
Leia maisANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA º PERÍODO - 7º MÓDULO AVALIAÇÃO A1 DATA 10/09/2009 ENGENHARIA DE USABILIDADE
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A1 DATA 10/09/2009 ENGENHARIA DE USABILIDADE 2009/2 GABARITO COMENTADO QUESTÃO 1: 1. Considere as afirmações a seguir:
Leia maisDesenvolvimento de um aplicativo na plataforma Android para realização de fichamento bibliográfico em dispositivos móveis: resultados iniciais
Desenvolvimento de um aplicativo na plataforma Android para realização de fichamento bibliográfico em dispositivos móveis: resultados iniciais Diogo Sebastião Silva de Lima 1 ; Mauro Daniel Castro e Silva
Leia maisEstruturas de Dados Apresentação
Estruturas de Dados Apresentação Prof. Eduardo Alchieri Objetivos Apresentar técnicas fundamentais na análise e projeto de estruturas de dados em programas computacionais Vamos aprender: Quais são as principais
Leia maisAtividades Práticas no Ensino Introdutório de Sistemas Operac
Atividades Práticas no Ensino Introdutório de Sistemas Operacionais Cassio P. de Campos Nicolas Kassalias Faculdade de Computação e Informática Universidade Mackenzie 17 de julho de 2006 Agenda 1 Introdução
Leia maisObjetivo do Curso. Introdução à Interação Humano-Computador. Professora: Raquel Oliveira Prates
Introdução à Interação Humano-Computador Professora: Raquel Oliveira Prates http://www.dcc.ufmg.br/~rprates/ihc \ Aula 1: 14/05 1 Objetivo do Curso Apresentação dos conceitos básicos da área de Interação
Leia maisLinguagens de Domínio Específico
Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Definindo DSLs Linguagem específica de domínio: uma linguagem de programação de computadores de expressividade
Leia maisCOMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1
COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1 Márcia Da Silva 2, Igor Gamste Haugg 3, Eliézer Silveira Prigol 4, Édson L. Padoin 5, Rogério S. M. Martins
Leia maisProjeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
Leia maisMiddleware é um programa de computador que faz a mediação entre outros
1 Introdução Este capítulo descreve, inicialmente, a motivação para a realização do trabalho. Posteriormente, são apresentados os objetivos traçados e, finalmente, detalhamos a organização desta dissertação.
Leia maisFerramenta de apoio aos testes baseados em requisitos
Ferramenta de apoio aos testes baseados em requisitos Acadêmico: Leandro da Cunha Orientador: Everaldo Artur Grahl Agenda Introdução Objetivos do trabalho Conceitos básicos Contexto atual do tema Especificação
Leia maisCONTEÚDO DO HP ALM 11.5 ADOPTION READINESS TOOL (ART)
CONTEÚDO DO HP ALM 11.5 ADOPTION READINESS TOOL (ART) APPLICATION LIFECYCLE MANAGEMENT 11.5 VISÃO GERAL Este conteúdo foi criado especificamente para usuários do aplicativo Application Lifecycle Management
Leia maisDesenvolvedor Android: Avançado. Plano de Estudo
Desenvolvedor Android: Avançado Plano de Estudo Descrição do programa A Certificação Android fornece as ferramentas necessárias para projetar e implementar aplicativos para dispositivos Android, com base
Leia maisMétodos Ágeis e Programação Extrema (XP)
Métodos Ágeis e Programação Extrema (XP) 1 Métodos Ágeis A insatisfação com os overheads envolvidos em métodos tradicionais de desenvolvimento levou à criação dos métodos ágeis. Esses métodos: Focam no
Leia maisAmbiente Educacional Interativo Móvel para atividade em sala de aula 1
Ambiente Educacional Interativo Móvel para atividade em sala de aula 1 Sergio Ferreira do AMARAL 2 Mirela Campos AMARAL 3 Dirceu da SILVA 4 Universidade Estadual de Campinas, SP Resumo Este artigo descreve
Leia maisMETALDIM: SOFTWARE EDUCATIVO PARA DIMENSIONAMENTO DE ESTRUTURAS METÁLICAS
METALDIM: SOFTWARE EDUCATIVO PARA DIMENSIONAMENTO DE ESTRUTURAS METÁLICAS Débora P. B. da Rocha deborapbrocha@gmail.com João V. M. de Oliveira jvo.marques@gmail.com Matheus F. C. Andrade andrade.matheusfellipe@gmail.com
Leia maisCurso online de. Formação em Front-End. Plano de Estudo
Curso online de Formação em Front-End Plano de Estudo Descrição do programa O Programa de Desenvolvimento Web lhe oferece conhecimentos para desenvolver habilidades necessárias para se tornar um Desenvolvedor
Leia maisEngenharia de Software
Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento
Leia maisUMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE
UMA INTERFACE DE GERENCIAMENTO DE REDES DEFINIDAS POR SOFTWARE Fagner Jefferson de Araújo Silva; Whasley Sousa Cardoso; Marcelo Portela Sousa. Instituto Federal de Educação, Ciência e Tecnologia da Paraíba
Leia maisIntrodução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos
Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional
Leia mais9 Conclusões e Trabalhos Futuros
9 Conclusões e Trabalhos Futuros Este capítulo apresenta as conclusões desta tese e as sugestões de trabalhos futuros. 9.1 Conclusões Esta tese endereçou um requisito de sistemas de workflow aqui chamado
Leia maisProf. Dr. Thiago Jabur Bittar
Prof. Dr. Thiago Jabur Bittar Uma representação abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produção e manutenção de
Leia maisNotas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Leia maisTOTVS - Microsiga Protheus PCO
20/07/2011 Sumário Sumário... 2 1 Conceitos Básicos... 3 1.1 Novas Funcionalidades... 3 2 Controle de Fases do Planejamento... 4 2.1 Unidade Orçamentária do Planejamento... 5 2.2 Projeto de Planejamento
Leia maisTeoria da Computação. Computabilidade
Cristiano Lehrer Introdução O objetivo do estudo da solucionabilidade de problemas é investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. Ou seja, investigar os
Leia maisFerramentas da Moodle: Atividades e Recursos
JUNV 29 Ferramentas da Moodle: Atividades e Recursos Sumário 1 - Ferramentas da Moodle: Atividades e Recursos 1.1 - Atividades e Recursos 2 - Atividades 2.1 - Base de Dados 2.2 - Base de Dados - vídeo
Leia mais7.1. Trabalhos Futuros
7 Conclusão O volume de pesquisas realizadas na área de e-learning evidencia a sua importância e o grande interesse ainda remanescente por parte de organizações e instituições acadêmicas. Certamente, esse
Leia maisSumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59
Sumário Capítulo 1 Introdução 29 1.1 O que é programação? 30 1.2 A anatomia de um computador 31 1.3 Traduzindo programas legíveis pelo homem em código de máquina 36 1.4 A linguagem de programação Java
Leia maisUniversidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Especificação da Projeto de Laboratório de Programação Parte 1 Salvador, 2009 Universidade Federal da Bahia Instituto
Leia maisIntrodução à Programação. Vanessa Braganholo
Introdução à Programação Vanessa Braganholo vanessa@ic.uff.br Processo de resolução de problemas (Princípios de Pólya) Definição dos requisitos do problema (fazer o programa certo) Entradas Cálculos Casos
Leia maisBruno da Silva de Oliveira. Hydra: Compilação Distribuída de código fonte
Bruno da Silva de Oliveira Hydra: Compilação Distribuída de código fonte Florianópolis SC Junho / 2004 Bruno da Silva de Oliveira Hydra: Compilação Distribuída de código fonte Orientador: Prof. Dr. Mario
Leia maisDesenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
Leia maisEvento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA
INTEGRAÇÃO DE APLICAÇÕES APLICADA À EXTRAÇÃO E QUALIFICAÇÃO AUTOMÁTICA DE PUBLICAÇÕES DE PESQUISADORES: UM CASO BASEADO NO CURRÍCULO LATTES 1 APPLICATION INTEGRATION APPLIED TO AUTOMATIC EXTRACTION AND
Leia maisDESENVOLVIMENTO DE UM SISTEMA ELETRÔNICO E GRÁFICO PARA O ENSINO DA ENGENHARIA DE ESTRUTURAS COM O USO DO KIT ESTRUTURAL MOLA
DESENVOLVIMENTO DE UM SISTEMA ELETRÔNICO E GRÁFICO PARA O ENSINO DA ENGENHARIA DE ESTRUTURAS COM O USO DO KIT ESTRUTURAL MOLA Natália Dias de Melo 1 ; Januário Pellegrino Neto 2 1 Aluna de Iniciação Científica
Leia mais6.1. Teste Baseado em Gramática e Outras Abordagens de Teste
6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam
Leia maisIntrodução à Computação: Máquinas Multiníveis
Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia maisConstrução de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.
Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1
Leia maisO Pronome CREATOR 4.1. O objeto criador do objeto corrente
4 O Pronome CREATOR Neste capítulo, é explorado o pronome CREATOR. Na Seção 4.1, a relação entre o objeto corrente e seu criador é explicada. Na Seção 4.2, são mostradas as transformações de código necessárias
Leia maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Leia maisCurso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML
Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do
Leia maisRAFAEL EMMENDOERFER FALCONE MAURO MARCELO MATTOS
RAFAEL EMMENDOERFER FALCONE MAURO MARCELO MATTOS PROGRAMAÇÃO Introdução e objetivos. Fundamentação teórica: sistemas dinâmicos, caos e fractais. Biblioteca Java JCCKit utilizada para desenvolvimento da
Leia maisSID - Sistema Interativo Distribuído
SID - Sistema Interativo Distribuído Proposta de projeto Sistemas de Objetos Distribuídos Prof.: Fabio Kon IME/USP Maio 2002 Aluno: OBJETIVOS DESTE DOCUMENTO...1 OBJETIVOS DO PROJETO...1 FUNCIONALIDADES
Leia maisTuring to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma
4ª Jornada Científica e Tecnológica e 1º Simpósio de Pós-Graduação do IFSULDEMINAS 16, 17 e 18 de outubro de 2012, Muzambinho MG Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre
Leia maisO Pronome PARENT 5.1. O Objeto que Declarou o Objeto Corrente da Execução
5 O Pronome PARENT Neste capítulo, é explorado o pronome PARENT. Na Seção 5.1, a relação entre o objeto corrente e o objeto que o declarou é explicada. Na Seção 5.2, são mostradas as transformações de
Leia maisSOFTWARE EDUCACIONAL PARA ELABORAÇÃO DE PROVAS E EXERCÍCIOS
SUZETE KEINER SOFTWARE EDUCACIONAL PARA ELABORAÇÃO DE PROVAS E EXERCÍCIOS CIOS Orientador: Prof.. Carlos Eduardo Negrão Bizzotto ROTEIRO Introdução Objetivos Informática na Educação Etapas de Implantação
Leia mais