Arquitetura SAAP: Sistema de Apoio à Aprendizagem de Programação

Tamanho: px
Começar a partir da página:

Download "Arquitetura SAAP: Sistema de Apoio à Aprendizagem de Programação"

Transcrição

1 Arquitetura SAAP: Sistema de Apoio à Aprendizagem de Programação Thais Helena Chaves de Castro 1,2, Alberto Nogueira de Castro Júnior 2, Crediné Silva de Menezes 1, Davidson Cury 1 1 Mestrado em Informática Universidade Federal do Espírito Santo (UFES) Av. Fernando Ferrari, s/n CTVII Vitória ES Brazil 2 Departamento de Ciência da Computação Universidade Federal do Amazonas (UA) Av. Rodrigo Otávio Jordão Ramos, Manaus AM - Brazil {thaish,credine,dede}@inf.ufes.br, albertoc@dcc.fua.br Abstract. This work proposes an environment to support programming learning using the multiagent paradigm. The main focus is in the interaction with the students and in the semiautomatic identification of solution patterns, in order to facilitate learning, giving appropriate feedback. Three virtual agents act as assistants in the teaching-learning process constructing student profiles, giving orientation about the submmited solutions and redirecting new solution instances to other participants. Resumo. Este trabalho propõe um ambiente de suporte à aprendizagem de programação utilizando o paradigma multiagente. O enfoque principal é na interação com os estudantes e na identificação semi-automática de grupos ou padrões de soluções, visando facilitar o aprendizado, fornecendo o feedback adequado. Três agentes virtuais atuam como intermediários no processo ensino-aprendizagem de programação, construindo perfis de estudantes, fornecendo orientações acerca das soluções submetidas e direcionando novas instâncias de soluções a outros atores. Palavras-chave. aprendizagem de programação, ambientes de aprendizagem, aprendizagem cooperativa. 1. Introdução Devido a suas particularidades, o aprendizado de programação tem se tornado desafiador em muitos cursos de graduação e muito se tem feito para estimular os estudantes a focalizarem e manterem o interesse. Com esse intuito foram realizadas várias tentativas utilizando diferentes paradigmas e pedagogias, o que tem resultado no desenvolvimento de ferramentas para apoio a diversos tipos de cursos de programação ou de linguagens específicas. A necessidade contínua de estudos para ajudar a determinar métodos efetivos de ensino e aprendizagem em programação tem sido ressaltada por estudos como [McKEOWN e FARRELL 1999], que relata uma queda acentuada no número de profissionais adequadamente qualificados em programação, num panorama sem previsão de mudanças no futuro próximo. Naquele estudo é argumentado que os

2 métodos e recursos educacionais usados hoje nos cursos de introdução à programação freqüentemente desencorajam novos estudantes. Considerando que a aquisição das habilidades necessárias para programação é difícil e demorada, faz-se necessária a participação em experiências não frustrantes com programação para que os estudantes possam desenvolver autoconfiança e construir habilidades. Neste artigo, apresentamos alguns elementos relevantes ao processo ensinoaprendizagem de programação (Seção 2), seguido de um levantamento de algumas ferramentas para apoio a tal processo, apresentando relatos de seus experimentos de utilização (Seção 3). Em seguida, apresentamos o contexto no qual o ambiente aqui proposto está inserido: uma abordagem que utiliza uma linguagem funcional e a resolução de problemas geométricos por estudantes sem nenhuma experiência anterior (Seção 4). Como contribuição para suprir a carência de ferramentas adequadas aos nossos propósitos, sugerimos, na Seção 5, uma arquitetura baseada em agentes para apoiar os estudantes na resolução de problemas de programação, através da interação com agentes reais e virtuais. Espera-se com isso proporcionar ao estudante um feedback adequado e mais rápido. 2. Elementos do Ensino-Aprendizagem de Programação A aprendizagem de conceitos e métodos para a construção de programas de computador não é trivial, pois requer o uso de habilidades de alto nível e boas doses de raciocínio abstrato. Em [DIJKSTRA 1982] é ressaltado que programar, mais que qualquer outra atividade, envolve a habilidade de raciocinar. Mas programar é também uma tarefa de engenharia, uma vez que trata da produção de artefatos que devem satisfazer requisitos de qualidade e serem passíveis de verificação. Falamos então sobre uma atividade desafiadora, que deve ser voltada para o envolvimento do estudante com a solução de problemas [GRUPO GAIA 2001]. Contudo, em [McKEOWN e FARRELL 1999] é ressaltado que nos cursos introdutórios raramente os estudantes aprendem técnicas de solução de problemas. Na maioria desses cursos os estudantes encontram uma dificuldade muito grande em aplicar suas habilidades prévias. Tal dificuldade acaba se constituindo em uma fonte de medo e frustração, o que incentiva a evasão. Dois problemas se destacam. Por um lado, pouca ênfase é dada às habilidades para entender e solucionar problemas nesses cursos. Por outro, o estudante ainda tem de transformar cada solução num conjunto de comandos executável por computador. Essa transformação é possivelmente a principal dificuldade de todo iniciante em programação. Em primeiro lugar, estudantes tendem a pensar na máquina de modo antropomórfico, isto é, dotando-a de qualidades humanas, assumindo que ela poderia entender comandos incompletos ou errôneos. A necessidade de descrever comandos com rigorosa precisão, torna-se assim uma característica muito artificial e até mesmo antipática para o estudante. São comuns também dificuldades encontradas durante a elaboração de um programa, como: quanto ao entendimento do significado de um comando enquanto componente de uma solução; a sintaxe do comando numa certa linguagem de programação; e o resultado da execução daquele comando pela máquina. Além de ter de encontrar comandos para a solução de um problema, o estudante deverá ordená-los

3 corretamente para criar um programa e, finalmente, verificar e ajustar o funcionamento deste. 3. Ferramentas para Apoio a Cursos de Programação As dificuldades encontradas na formação de novos programadores, como as ilustradas na Seção 2, têm motivado um grande esforço de pesquisa na criação de ambientes que auxiliem estudantes iniciantes e intermediários. Muito dessa pesquisa dedica-se ao entendimento de um programa, através de ferramentas que realizam verificação léxica, sintática, semântica, de lógica de programação e pragmática. Como proposto por [DEEK 1999] as metodologias desenvolvidas são incorporadas em ferramentas que se enquadram em uma das quatro categorias: ambientes de programação, como é o caso de Online Judge [KURNIA, LIM e CHEANG 2001]; depuradores; sistemas tutores inteligentes, como é o caso do E-TCL [EL- KHOULY e KOONO 2000]; e ambientes inteligentes de programação, como é o caso do ALPUS [UENO 1996] e do DISCOVER [RAMADHAN e du BOULAY, 1995]. O foco varia de uma ferramenta para outra. No caso do DISCOVER [RAMADHAN e du BOULAY 1995], a ênfase é em estudantes com pouca ou nenhuma experiência em programação. O ambiente possui duas fases: a fase livre, em que o estudante escreve sua solução sem se preocupar muito em acertar; e a fase guiada, em que um tutor mostra os conceitos relacionados a cada comando da linguagem, monitorando a solução e mostrando a resolução de um problema semelhante. Uma outra ferramenta interessante é o E-TCL [EL-KHOULY e KOONO 2000], que apresenta três agentes inteligentes (um para o estudante - PAA-S, outro para o professor - PAA-T e o agente tutor - TA) para monitorar o aprendizado do estudante no esquema de tutoramento. O ambiente se propõe a ensinar qualquer linguagem de programação desde que um especialista (professor) inclua, através de uma interface, os comandos e as explicações referentes à linguagem. Os mesmos conceitos podem ser aproveitados para outras linguagens de programação. O estudante apresenta uma solução sobre a qual é feita uma verificação léxica. Além disso, o PAA-S identificando sua necessidade, disponibiliza o acesso a um quadro com respostas de outros estudantes. O ALPUS [UENO 1996], um módulo do INTELLITUTOR [UENO e NAKAJIMA 1993], é uma ferramenta mais abrangente capaz de estabelecer perfis de conhecimento para cada estudante do sistema e inferir certas habilidades. Aquela ferramenta tem como público alvo estudantes intermediários de graduação em Ciência da Computação. A cada estudante, o ALPUS relaciona um perfil baseado em seu diagrama inicial do problema a ser resolvido e em um dos quatro níveis de conhecimento em que se encontra. Baseado nisso, o ambiente é capaz de inferir algumas intenções do estudante, quando sua resposta diverge muito do modelo do especialista. Numa outra linha de ferramentas, há o Online Judge [KURNIA, LIM e CHEANG 2001]. Neste, há uma lista de problemas propostos para os quais o estudante pode submeter soluções para as quais a correção é verificada através de testes, pontuando as soluções corretas segundo critérios pré-definidos. Um aspecto interessante a destacar é a geração automática de dados para teste, através de scripts em C e Perl. Como descrito em [KURNIA, LIM e CHEANG 2001], uma vantagem do Online Judge

4 em relação às demais ferramentas é que se o estudante escrever uma solução diferente, não prevista anteriormente, ela será considerada da mesma forma que as demais, uma vez que o ambiente não se baseia em uma solução ideal para analisar as respostas, mas simplesmente nas condições de entrada e saída de dados. A dificuldade em qualificar essas ferramentas é devido à falta de relatos de experimentos realizados. Quando há relatos de experimentos, como é o caso do DISCOVER, os dados obtidos não são suficientes para analisar o desempenho por não terem sido conduzidos em uma variedade mais adequada e para um número maior de estudantes. 4. Aprendizagem de Programação Uma Abordagem Funcional Dentre os muitos argumentos enumerados em [GRUPO GAIA 2001] para a utilização da programação funcional num curso de introdução à programação, destacamos: (i) o paradigma funcional é baseado em conhecimento já familiar ao estudante desde o ensino médio (funções e mapeamentos entre domínios); (ii) permite concentrar a atenção na elaboração de soluções e nas descrições formais delas; (iii) o foco da atenção está em o que fazer, ao invés de como fazer ; (iv) por dispensar conhecimento dos detalhes de um computador específico, possibilita um número maior de experimentações e aumento da produtividade. No nosso caso, o público alvo são estudantes iniciantes em programação, cursando o primeiro semestre de cursos de graduação em Computação. Ao se matricularem na primeira disciplina de programação, os estudantes, em sua maioria, nunca tiveram contato com nenhuma linguagem ou sequer com conceitos associados à programação. Como esses estudantes têm um conhecimento prévio em geometria, optamos pela utilização de problemas geométricos desde o início do curso, a fim de facilitar o entendimento do modelo computacional. A linguagem adotada é Haskell [HUDAK, JONES e WADLER 1992], uma linguagem funcional pura e não restrita. Ao direcionarmos nossa classe de problemas ao domínio da geometria, reduzimos os possíveis erros de interpretação dos enunciados. Dessa forma, os erros se concentrarão em usos inadequados do modelo computacional. Isso facilita a associação de um enunciado com as possíveis soluções, corretas e incorretas. Além disso, temos observado que o uso de figuras geométricas apropriadas facilita ao estudante a identificação de abstrações significativas, em virtude de estas serem de natureza visual Exemplo de Exercício Ao longo do curso de programação funcional, disponibilizamos aos estudantes listas de exercícios, com o intuito de mantê-los em contato com os tópicos estudados. Tomemos por exemplo de exercício, com a estratégia de solução correspondente: Como podemos concluir por uma inspeção da Figura 1, não existe uma fórmula pronta para calcular sua área. Precisamos dividi-la em partes para as quais conheçamos uma maneira de calcular a área e que, além disso, conheçamos as dimensões necessárias.

5 a b c e d Figura 1. Um polígono irregular Podemos fazer várias tentativas, como, por exemplo, as ilustradas nas Figuras 2a, 2b e 2c para tentar descrever a área das figuras menores em cada uma delas. Em 2b e 2c, parece que precisaremos subdividir novamente. Em 2b a casinha em verde pode ser transformada em um retângulo e um triângulo. Em 2c é a casinha azul (meio telhado) que pode ser dividida em um retângulo e um triângulo. Figura 2a Figura 2b Figura 2c Figura 2d Vamos partir para a nossa solução a partir da Figura 2c. Podemos dizer que a área total pode ser obtida pela soma das áreas amarela, com área vermelha e mais a área azul. A área azul pode se subdividir em azul-claro e azul-escuro (Figura 2d). A estrutura da solução deste problema obtida pela modularização pode ser representada pelo diagrama da Figura 3. Área total Área amarela Área Área azul Área do retângulo Área do triângulo Área do triângulo Área do retângulo hipotenusa Figura 3. Árvore de Representação do Problema 5. Um Ambiente para Apoio à Aprendizagem de Programação De modo geral, ferramentas como as mostradas na Seção 3 não têm apresentado resultados significativamente relevantes para alunos com pouca ou nenhuma experiência

6 em programação. Parte do problema pode ser devido às dificuldades próprias do paradigma de programação adotado. Com o ambiente aqui apresentado pretende-se suprir as dificuldades encontradas na utilização das ferramentas mencionadas na Seção 3. O ambiente proposto baseia-se na tecnologia de agentes para auxiliar o professor na identificação dos equívocos cometidos pelos estudantes durante a construção de soluções para problemas propostos, contribuindo para a melhoria quantitativa e qualitativa do feedback. Os agentes detectam padrões de erros nas respostas e enfatizam a utilização do mínimo de recursos da linguagem, necessário para se chegar a uma solução correta. Isso é feito de acordo com o conteúdo das bases de conhecimento de padrões de problemas, de erros e de orientações para que o estudante consolide o conhecimento sobre o tópico corrente e esteja preparado para aprender outro. No cenário apresentado na seção anterior, os estudantes recebem uma lista de exercícios em sala de aula, com as devidas explicações. São assim incentivados a ler, refletir e internalizar as questões, elaborando formas para resolução, por programação, dos problemas propostos. Então, como uma próxima etapa, eles podem ir ao laboratório concentrar seus esforços na implementação em uma linguagem funcional. Nessa etapa, o estudante precisa de apoio sistemático para superar suas dificuldades. A arquitetura aqui apresentada se propõe a acompanhar essa etapa, através de agentes virtuais e reais encarregados de prover feedback em forma de orientações referentes às classes de problemas estudados, sendo capazes de identificar os principais erros na resolução desses problemas. Para identificar esses desvios, são fornecidos ao ambiente classes de problemas com seus respectivos esquemas de programa, nos moldes defendidos por Bieliková e Návrat (1998) e Gegg-Harrison (1996) Arquitetura da Proposta A Figura 4 apresenta a arquitetura proposta. O ambiente é formado por três agentes virtuais: (i) Construtor de Perfil, (ii) Assistente de Orientação e (iii) Assistente de Aprendizagem; três agentes reais: (a) Estudante representação de um estudante regularmente matriculado em um curso de Introdução à Programação, (b) Professor representação de um professor de programação, não necessariamente do curso em que o estudante está matriculado, e (c) Colaborador representação de um monitor ou outro estudante que deseje colaborar com a identificação de padrões; e ferramentas e bases de conhecimento para facilitar a troca de informações entre os atores. Ao interagir com o ambiente, o estudante tem seu perfil constantemente atualizado pelo agente (i), é capaz de interagir com o agente (ii), recebendo feedback sobre o estado de seu programa e conta com o agente (iii) para direcionar possíveis erros que ainda não tenham sido identificados para um colaborador do ambiente e armazenar novas classificações de erros para serem armazenados na base de padrões de erros. As ferramentas que compõem o ambiente são independentes e possuem as seguintes funcionalidades: Testador utiliza testes para verificar se uma solução para determinado problema apresenta resultados consistentes com as diversas circunstâncias requeridas. Esses testes são descritos por scripts com conjuntos-padrão de dados de entrada.

7 Autoria de Perfil captura as informações preliminares sobre os estudantes matriculados em um curso, através de interação conduzida pelos próprios estudantes. Autoria de Orientação possui uma linguagem para o professor descrever classes de problemas, relacionando-os a níveis de orientações e de tratamento (feedback), de acordo com os erros mais comuns armazenados na base de padrões de erros, já armazenados previamente pelo ambiente. Essa ferramenta tem o objetivo de fornecer ao Assistente de Orientação o feedback adequado para cada nível de erro. Autoria de Esquema possui uma linguagem para representar esquemas de programa, de forma que o professor possa descrevê-los formalmente e relacioná-los a determinadas classes de problema. Conforme um estudo comparativo que realizamos, existem diversas formas de representar esquemas. A representação que utilizaremos nesta ferramenta será de uma meta programação, em linguagem Haskell. A Figura 4, ainda, mostra a interação nesse ambiente, onde os agentes reais são representados por humanóides e os virtuais por faces com olhos e boca. Ao participar do ambiente, o ESTUDANTE, constrói seu perfil inicial através da ferramenta de Autoria de Perfil. Para cada problema proposto, o estudante utiliza seu editor de programação funcional para criar sua solução e verifica a consistência da mesma através do Testador. Uma vez verificada, envia a solução ao ASSISTENTE DE ORIENTAÇÃO. Esse assistente, baseado no perfil do estudante e na base de padrões de erros envia uma orientação ao ESTUDANTE informando se o programa contém desvios do esquema de programa (erros) existentes na base de padrões de erros. Caso seja identificado um erro, o assistente fornecerá um feedback ao estudante, sugerindo que este último repense a solução, tentando encontrar um outro caminho. Assim que o ASSISTENTE DE ORIENTAÇÃO não detectar mais nenhum erro no programa do estudante, ele o redireciona à ferramenta Testador para que seja verificada a adequabilidade da solução. Se o assistente de orientação testar a solução e a mesma não funcionar como se esperava, redireciona-a para a base de erros não identificados. O ASSISTENTE DE APRENDIZAGEM acessa essa base e envia mensagem a um COLABORADOR do ambiente para que identifique o(s) erro(s) apresentado(s). Nesse ponto, é importante elaborar mais detalhadamente o que consideramos um erro. No contexto deste trabalho, erro é uma inadequação. Por exemplo, se em uma questão da lista de exercícios houver uma descrição de um problema determinando que o mesmo deve ser resolvido sem o uso de uma determinada estrutura, como IF-THEN- ELSE, por exemplo, e o estudante apresentar uma solução que a utilize, seu programa é considerado como contendo uma inadequação, uma vez que não atendeu completamente à especificação, apesar de funcionar corretamente. Para enviar orientações adequadas a cada classe de problema, o ASSISTENTE DE ORIENTAÇÃO conta com uma base de problemas e orientações, alimentada pelo PROFESSOR, através de uma ferramenta de AUTORIA DE ORIENTAÇÃO. Vale ressaltar que os problemas são previamente classificados pelo PROFESSOR e armazenados, juntamente com um esquema de programa para cada classe, na base de problemas e esquemas de programas, sendo, posteriormente, consultado pelo ASSISTENTE DE ORIENTAÇÃO.

8 AUTORIA DE PERFIL perfil padrões de erros Construtor de Perfil erros não identificados solução Estudante orientação Assistente de Orientação Assistente de Aprendizagem solução feedback problemas e orientações AUTORIA DE ORIENTAÇÃO TESTADOR problemas e esquemas de programas AUTORIA DE ESQUEMA Professor Figura 4. Uma Arquitetura de Apoio à Aprendizagem de Programação Colaborador A cada interação com o ASSISTENTE DE ORIENTAÇÃO, o programa (parcial ou final) enviado pelo ESTUDANTE, é capturado pelo CONSTRUTOR DE PERFIL para ser acrescido ao perfil previamente fornecido pelo próprio ESTUDANTE. Desta forma o perfil do ESTUDANTE é sempre modificado, baseando-se em seu estilo de programação, de modo que se possa fornecer um feedback mais preciso, por exemplo, indicando quando o estudante estiver modificando apenas uma variável em seu programa, sem fazer maiores reflexões sobre os resultados disso. 6. Considerações Finais O levantamento das técnicas correntes para desenvolvimento de ferramentas de apoio ao aprendizado de programação fundamentou nossa proposta de uma arquitetura que refletisse as necessidades do nosso público alvo. Com o desenvolvimento dessa arquitetura, pretendemos contribuir para o aprendizado de conceitos básicos de programação, através da identificação e utilização

9 dos padrões de erros cometidos na elaboração de soluções para problemas de programação. Os estudos comparativos das várias formas de representação de esquemas de programa nos levaram a acreditar ser mais adequada a representação de esquemas próximos à linguagem de programação sendo trabalhada [BIELIKOVÁ e NÁVRAT 1997] [GEGG-HARRISSON 1991], em nosso caso, conforme tratado na Seção 5, o Haskell. No momento, estamos iniciando a prototipagem desta arquitetura, com o desenvolvimento da ferramenta Autoria de Esquema, que deverá conter uma linguagem para a descrição de esquemas com uma análise estrutural de sentenças, no estilo da utilizada em [CHAVES e CASTRO Jr. 2000]. Como parte desta investigação, utilizamos respostas às listas de exercícios de programação de várias turmas das disciplinas Programação I para Ciência da Computação e Processamento de Dados I para Engenharia da Computação, de onde foi obtido nosso conjunto inicial de padrões de solução. Novos problemas, junto com seus padrões de resposta, estão sendo propostos e serão utilizados nas próximas turmas de estudantes iniciantes, de modo a verificar o processamento semi-automático. Referências Bieliková, M. e Návrat, P. (1998). Use of Schemata in Lisp Programming: na Evaluation of its Impact on Learning. In: Informatica Journal, Volume 9, Número 1, pp Bieliková, M. e Návrat, P. (1997). A Schema-Based Approach to Teaching Programming in Lisp and Prolog. In: Proceedings of PEG 97 International Conference, pp Chaves, T. e Castro Jr., A. (2000). Elementos de um Ambiente Multiagente com Intermediação para Suporte à Aprendizagem. In: XI Simpósio Brasileiro de Informática na Educação, Maceió. Deek, F. (1999). A Framework for and Automated Problem Solving and Program Development Environment. In: Transactions of the SDPS, Volume 3, Número 3, Setembro. Dijkstra, E. (1982). On the Teaching of Programming, i.e. on the Teaching of Thinking. In: Selected Writings on Computing: A Personal Perspective. Springer- Verlag NY. El-Khouly, M.; Far, B. e Koono, Z. (2000). Expert Tutoring System for Teaching Computer Programming Languages. In: Expert Systems with Applications, Volume 18, pp Gegg-Harrison, T. (1991). Learning Prolog in a Schema-Based Environment. In: Instructional Science, Número 20, pp Grupo Gaia. (2002). Programação para Principiantes: Uma Abordagem Funcional. Fevereiro.

10 Hudak, P.; Jones, S. e Wadler, P. (1992). Report on the Programming Language Haskell A Non-strict, Purely Functional Language. Versão 1.2. ACM SIGPLAN Notices, Volume 27, Número 5. Kurnia, A.; Lim, A. e Cheang, B. (2001). Online Judge. In: Computers & Education, Volume 36, pp Mckeown, J. e Farrell, T. (1999). Why We Need to Develop Succcess in Introductory Programming Courses. In: CCSC Central Plains Conference, Maryville, MO. Ramadhan, H. e du Boulay, B. (1995). Programming Environments for Novices. In: Cognitive Models and Intelligent Environments for Learning Programming. Ueno, H. e Nakajima, A. (1993). INTELLITUTOR: Integrated Intelligent Programming Environment for Novices. In: Applications of Supercomputers in Engineering III. Elsvier Applied Science, pp Ueno, H. (1996). Concepts and Methodologies for Knowledge-Based Program Understander ALPUS. In: Proceedings of PPPIG.

Uma Arquitetura de Tutor Inteligente que Provê Suporte ao Diálogo com o Aluno Iniciante em Linguagem de Programação

Uma Arquitetura de Tutor Inteligente que Provê Suporte ao Diálogo com o Aluno Iniciante em Linguagem de Programação Uma Arquitetura de Tutor Inteligente que Provê Suporte ao Diálogo com o Aluno Iniciante em Linguagem de Programação Renato de M. Santos 1, Crediné Silva de Menezes 1, Davidson Cury 1 1 Programa de Pós-Graduação

Leia mais

DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹

DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹ DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹ ¹ Universidade Federal do Pampa (UNIPAMPA) Bagé RS Brasil RESUMO Este trabalho

Leia mais

Uma ontologia para modelagem de conteúdo para Ensino a Distância. An ontology for modeling distance learning contents

Uma ontologia para modelagem de conteúdo para Ensino a Distância. An ontology for modeling distance learning contents SEMINÁRIO DE PESQUISA EM ONTOLOGIA NO BRASIL 11 E 12 de Agosto Universidade Federal Fluminense Departamento de Ciência da Informação Niterói Rio de Janeiro Brasil Esta comunicação está sendo submetida

Leia mais

Linguagens de Domínio Específico

Linguagens de Domínio Específico Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Por que DSLs? Melhorar a produtividade dos programadores input =~ /\d{3}-\d{3}-\d{4}/ Facilitar a escrita e

Leia mais

Xadrez, do Real ao Virtual

Xadrez, do Real ao Virtual Xadrez, do Real ao Virtual José Francisco de Magalhães Netto Orivaldo Lira Tavares Crediné Silva de Menezes Porto Alegre, 25 Nov 2005 Roteiro da Apresentação Introdução A Arquitetura O AVAX Conclusões

Leia mais

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

UMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES WAlgProg / 2016 UMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES Marina Gomes Érico Amaral Roteiro

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 5ª. Série Programação Distribuída A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido

Leia mais

Paradigmas de Linguagens

Paradigmas 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 mais

Seiji Isotani CURRICULUM VITAE

Seiji Isotani CURRICULUM VITAE Seiji Isotani CURRICULUM VITAE São Paulo 2004 1. Dados Pessoais Nome: Seiji Isotani Data e Local de Nascimento: 09/09/1979, Osasco/SP - Brazil Endereço Atual : Osasco, SP Brazil Telefone: (11) 3609-1033

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

Utilizando Programação Funcional em Disciplinas Introdutórias de Computação

Utilizando Programação Funcional em Disciplinas Introdutórias de Computação Utilizando Programação Funcional em Disciplinas Introdutórias de Computação Thais Helena Chaves de Castro 1,2, Alberto Nogueira de Castro Júnior 2, Crediné Silva de Menezes 1, Maria Cláudia Silva Boeres

Leia mais

LOLGICA: UMA PLATAFORMA DE ENSINO VOLTADA PARA LÓGICA E LINGUAGENS DE PROGRAMAÇÃO

LOLGICA: UMA PLATAFORMA DE ENSINO VOLTADA PARA LÓGICA E LINGUAGENS DE PROGRAMAÇÃO LOLGICA: UMA PLATAFORMA DE ENSINO VOLTADA PARA LÓGICA E LINGUAGENS DE PROGRAMAÇÃO Alberto Elias Do Amaral Júnior 1 Leonardo Amorim Sena 2 Luiz Otávio Andrade Soares 3 Willyan Michel Ferreira 4 Eduardo

Leia mais

Revisão/Mapeamento Sistemático

Revisão/Mapeamento Sistemático Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação SSC0572 - Computadores, Sociedade e Ética Profissional Revisão/Mapeamento Sistemático Prof. Dr. José Carlos Maldonado PAE: Pedro

Leia mais

Linguagens de Programação

Linguagens de Programação Visão Geral Faculdade de Computação - UFU Agosto - 2009 1 Princípios 2 O que é uma linguagem de programação? Linguagens naturais facilitam a expressão e o intercâmbio de idéias entre as pessoas. Assim

Leia mais

A 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 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 mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

132 6 Conclusão 6.1. Contribuições da Tese

132 6 Conclusão 6.1. Contribuições da Tese 132 6 Conclusão Esta tese teve como objetivo principal o estudo da aplicação de transformações para manter a rastreabilidade de um sistema de software. Esta abordagem permite a captura automática das informações

Leia mais

Desenvolvimento de Ferramentas no igeom: Utilizando a Geometria Dinâmica no Ensino

Desenvolvimento 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 mais

TREINAMENTO 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 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 mais

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema. Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Ciclo de Vida - Fluxos Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

Implementando o Agente de Base de Domínio do Sistema Tutor Inteligente PAT2Math

Implementando o Agente de Base de Domínio do Sistema Tutor Inteligente PAT2Math Programa de Pós-Graduação em Computação Aplicada Implementando o Agente de Base de Domínio do Sistema Tutor Inteligente PAT2Math Bolsistas: Gabriel E. Chites de Mello Geiseane Lacerda Rubi (Ciência da

Leia mais

COMPUTADORES NA EDUCAÇÃO MÉDICA

COMPUTADORES NA EDUCAÇÃO MÉDICA CI242 - TÓPICOS DE PESQUISA EM INFORMÁTICA CURITIBA, 24 DE ABRIL DE 2017 COMPUTADORES NA EDUCAÇÃO MÉDICA HAYANNA K. F. SANTOS NICOLE C. KERKHOVEN 1 O PAPEL DOS COMPUTADORES NA EDUCAÇÃO MÉDICA OBJETIVOS:

Leia mais

Pontifícia Universidade Católica de São Paulo Programa de TIDD

Pontifícia Universidade Católica de São Paulo Programa de TIDD Disciplina: 2854 - Sistemas Inteligentes e Ambientes Virtuais Turma A Área de Concentração: Processos Cognitivos e Ambientes Digitais Linha de Pesquisa: Inteligência Coletiva e Ambientes Interativos Professor:

Leia mais

Uso de Lógica Fuzzy no Auxílio ao Acompanhamento Automático de Alunos utilizando um Ambiente de Aprendizagem

Uso de Lógica Fuzzy no Auxílio ao Acompanhamento Automático de Alunos utilizando um Ambiente de Aprendizagem Uso de Lógica Fuzzy no Auxílio ao Acompanhamento Automático de Alunos utilizando um Ambiente de Aprendizagem Práticas de ensino de algoritmos Péricles Miranda Resumo Os professores enfrentam diversos desafios

Leia mais

Análise e projeto de sistemas

Análise e projeto de sistemas Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 02 Algoritmos e Ciclo de Desenvolvimento Edirlei Soares de Lima Modelo de um Computador Linguagem de Máquina Um processador executa instruções de máquina.

Leia mais

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

INFORMÁTICA APLICADA AULA 02 ALGORITMOS UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 ALGORITMOS Profª ª Danielle Casillo ALGORITMOS Um algoritmo é uma sequência de instruções

Leia mais

APRENDENDO PROGRAMAÇÃO COM BATALHAS DE ROBÔS. Instituto Federal Catarinense, Blumenau/SC

APRENDENDO PROGRAMAÇÃO COM BATALHAS DE ROBÔS. Instituto Federal Catarinense, Blumenau/SC APRENDENDO PROGRAMAÇÃO COM BATALHAS DE ROBÔS Braga, Paulo André de Melo 1 ; Bueno, Mateus Moraes 2 ; Stumm Júnior, Valdir 1 Instituto Federal Catarinense, Blumenau/SC INTRODUÇÃO Cursos da área de informática,

Leia mais

ANÁLISE E IMPLANTAÇÃO DE FERRAMENTAS PARA CORREÇÃO AUTOMATIZADA DE ALGORITMOS RESUMO

ANÁLISE E IMPLANTAÇÃO DE FERRAMENTAS PARA CORREÇÃO AUTOMATIZADA DE ALGORITMOS RESUMO ANÁLISE E IMPLANTAÇÃO DE FERRAMENTAS PARA CORREÇÃO AUTOMATIZADA DE ALGORITMOS Douglas Castilho 1 ; Alysson Eduardo 2 RESUMO O processo de aprendizagem de linguagens de programação depende, dentre outras

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia de Computação Profa. Claudia Boeres

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia de Computação Profa. Claudia Boeres Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia de Computação Profa. Claudia Boeres Considere o esboço do estado do ES e n cidades enumeradas de 1, 2,..., n.

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Paradigma Simbólico Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2) Revisão da aula anterior: definição de IA Podemos associar o termo IA com: Parte da ciência da computação

Leia mais

AMBIENTE 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 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 mais

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional. Unidade V Evolução de Sofware - Engenharia Reversa - Profa. Dra. Sandra Fabbri Fases Genéricas do Ciclo de Vida Engenharia Sistemas Análise Projeto Codificação Manutenção Teste Sistema Requisitos Desenvolvimento

Leia mais

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS 8ª. Série Computação Gráfica Ciência da Computação A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem desenvolvido por meio

Leia mais

Nota Técnica da Sociedade Brasileira de Computação sobre a BNCC- EF e a BNCC- EM

Nota Técnica da Sociedade Brasileira de Computação sobre a BNCC- EF e a BNCC- EM A Sociedade Brasileira de Computação (SBC) vem a público manifestar sua discordância e suas críticas às versões homologada da Base Nacional Comum Curricular do Ensino Fundamental e entregue ao Conselho

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento 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 mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação 2 O que é um algoritmo? É um caminho para a solução de um problema. Problema Algoritmo Solução 3 No contexto computacional... É um conjunto finito de regras, bem definidas, para

Leia mais

O Ensino de Ciência da Computação. Práticas de ensino de algoritmos (Hazzan, Cap. 3 / EAD Cap. 2) Péricles Miranda

O Ensino de Ciência da Computação. Práticas de ensino de algoritmos (Hazzan, Cap. 3 / EAD Cap. 2) Péricles Miranda O Ensino de Ciência da Computação Práticas de ensino de algoritmos (Hazzan, Cap. 3 / EAD Cap. 2) Péricles Miranda O Que é Ciência da Computação? Analise os argumentos abaixo: 1. Ciência é a observação,

Leia mais

Introdução aos Algoritmos

Introdução aos Algoritmos Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado

Leia mais

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores CONSIDERAÇÕES INICIAIS Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Página da Disciplina O material será disponibilizado por meio

Leia mais

Sistemas Especialistas (SE)

Sistemas Especialistas (SE) Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Sistemas Especialistas (SE) Inteligência Artificial Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Capítulo 5 Modelação do Sistema 1

Capítulo 5 Modelação do Sistema 1 Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos

Leia mais

PROJETO: CONFERÊNCIA ACADÊMICA. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

PROJETO: CONFERÊNCIA ACADÊMICA. 2. Informações Básicas sobre o Sistema a ser Desenvolvido Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri PROJETO: CONFERÊNCIA

Leia mais

Workshop de Ambientes de apoio à Aprendizagem de Algoritmos e Programação (SBIE 2007) Instituto de Ciências Matemáticas e de Computação ICMC-USP

Workshop de Ambientes de apoio à Aprendizagem de Algoritmos e Programação (SBIE 2007) Instituto de Ciências Matemáticas e de Computação ICMC-USP Camila K. D. Corte, Ana C. Riekstin Marco Aurélio G.Silva Ellen F. Barbosa, José C. Maldonado camila, claudiar, magsilva, francine, jcmaldon@icmc.usp.br Workshop de Ambientes de apoio à Aprendizagem de

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Slides N. 2 E / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO

Leia mais

Paradigmas de Linguagem de Programação. Aspectos Básicos

Paradigmas de Linguagem de Programação. Aspectos Básicos Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga

Leia mais

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software INTRODUÇÃO AO SWEBOK Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Origens do corpo de conhecimentos da Engenharia de Software: Engenharia da Computação Ciência da

Leia mais

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Programação de Computadores Fabricação Mecânica Introdução à Programação de Computadores Fabricação Mecânica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 06 - Introdução a algoritmos Roteiro Algoritmos Formas

Leia mais

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia Elétrica Profa. Maria Cristina Rangel

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia Elétrica Profa. Maria Cristina Rangel Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia Elétrica Profa. Maria Cristina Rangel Considere o esboço do estado do ES e n = 30 cidades enumeradas de 1, 2,...,

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Desenvolvimento 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 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 mais

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

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1 ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA - 2008/1 DC 9481 03/10/07 Rev. 00 1. Dados Legais Autorizado pelo Parecer 278 do Conselho

Leia mais

Informática Aplicada à Engenharia Florestal INTRODUÇÃO

Informática Aplicada à Engenharia Florestal INTRODUÇÃO Informática Aplicada à Engenharia Florestal INTRODUÇÃO Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Vamos aprender a fazer programas! 2/34 Questão Fundamental

Leia mais

Apresentaçã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: 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 mais

5º Congresso de Pós-Graduação

5º Congresso de Pós-Graduação 5º Congresso de Pós-Graduação UMA FERRAMENTA PARA GERAÇÃO AUTOMÁTICA DE DIAGRAMA DE CLASSES A PARTIR DA ESPECIFICAÇÃO DE REQUISITOS EM LINGUAGEM NATURAL Autor(es) Orientador(es) LUIZ EDUARDO GALVÃO MARTINS

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Lógica de Programação Conceitos Algoritmos Conjunto predeterminado e bem definido de regras e processos destinados a solução de um problema, com um número finito de etapas. 2 1

Leia mais

TÍTULO: TRATAMENTO NÃO FARMACOLÓGICO DE IDOSOS PORTADORES DE ALZHEIMER UTILIZANDO A FERRAMENTA EXPERT SINTA - IA

TÍTULO: TRATAMENTO NÃO FARMACOLÓGICO DE IDOSOS PORTADORES DE ALZHEIMER UTILIZANDO A FERRAMENTA EXPERT SINTA - IA TÍTULO: TRATAMENTO NÃO FARMACOLÓGICO DE IDOSOS PORTADORES DE ALZHEIMER UTILIZANDO A FERRAMENTA EXPERT SINTA - IA CATEGORIA: CONCLUÍDO ÁREA: CIÊNCIAS EXATAS E DA TERRA SUBÁREA: Computação e Informática

Leia mais

UMA PROPOSTA PARA O ESTUDO DOS PRODUTOS NOTÁVEIS NO ENSINO FUNDAMENTAL, 7ª SÉRIE (8º ANO) ASSOCIADOS AOS CÁLCULOS DE ÁREAS DE FIGURAS

UMA PROPOSTA PARA O ESTUDO DOS PRODUTOS NOTÁVEIS NO ENSINO FUNDAMENTAL, 7ª SÉRIE (8º ANO) ASSOCIADOS AOS CÁLCULOS DE ÁREAS DE FIGURAS UMA PROPOSTA PARA O ESTUDO DOS PRODUTOS NOTÁVEIS NO ENSINO FUNDAMENTAL, 7ª SÉRIE (8º ANO) ASSOCIADOS AOS CÁLCULOS DE ÁREAS DE FIGURAS Elvys Wagner Ferreira da Silva Universidade Estadual do Maranhão elvys.wagner@ibest.com.br

Leia mais

Material Complementar de INF Engenharia Cognitiva

Material 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 mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS Serviço Social 4ª Série Fundamentos das Políticas Sociais A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem desenvolvido

Leia mais

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO LINGUAGEM E TECNICAS DE PROGRAMAÇÃO Aula 03 Lógica Entrada de dados Lógica Lógica, no seu sentido mais amplo, está presente em todos os passos de nossas vidas, servindo de base para resolução de nossos

Leia mais

Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

Uma 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 mais

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 09289 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 3. Especificação e Análise de Requisitos

Leia mais

Projeto de Interface Homem- Máquina

Projeto de Interface Homem- Máquina Projeto de Interface Homem- Máquina PCS 013 Profa. Lúcia V. L. Filgueiras Profa. Selma S. S. Melnikoff Projeto de Interface- Homem- Máquina Em geral, esta atividade é realizada na fase de análise ou de

Leia mais

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade

Leia mais

PLANEJAMENTO E AUTOMAÇÃO DE SOFTWARE PARA UTILIZAÇÃO NA DISCIPLINA DE CÁLCULO DIFERENCIAL E INTEGRAL

PLANEJAMENTO E AUTOMAÇÃO DE SOFTWARE PARA UTILIZAÇÃO NA DISCIPLINA DE CÁLCULO DIFERENCIAL E INTEGRAL PLANEJAMENTO E AUTOMAÇÃO DE SOFTWARE PARA UTILIZAÇÃO NA DISCIPLINA DE CÁLCULO DIFERENCIAL E INTEGRAL Prof. Dr. José Gabriel Maluf Soler orientador Autarquia Municipal de Ensino de Poços de Caldas Faculdade

Leia mais

Tipos para uma Linguagem de Transformação

Tipos para uma Linguagem de Transformação Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto

Leia mais

Prof. Esp. Fabiano Taguchi

Prof. Esp. Fabiano Taguchi UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com UML COMPETÊNCIA: Conhecer e desenvolver estudos de caso usando modelagem orientada a objeto. HABILIDADE: Conhecer

Leia mais

1. INTRODUÇÃO Motivação

1. INTRODUÇÃO Motivação 1. INTRODUÇÃO Neste capítulo serão apresentados os problemas que motivaram a escolha da pesquisa da tese, os objetivos a serem atingidos durante o seu desenvolvimento, as contribuições relevantes à área

Leia mais

2

2 ANÁLISE DE SISTEMAS (processo de desenvolvimento de sistemas) por Antônio Maurício Pitangueira 1 2 Levantamento de requisitos Análise de requisitos Projeto Implementação Testes Implantação Foco da disciplina

Leia mais

M Y C H E L L I N E S O U T O H E N R I Q U E P A T R Í C I A C. A. R. T E D E S C O

M Y C H E L L I N E S O U T O H E N R I Q U E P A T R Í C I A C. A. R. T E D E S C O M Y C H E L L I N E S O U T O H E N R I Q U E P A T R Í C I A C. A. R. T E D E S C O AGENDA Definição do Problema Objetivo Procedimentos Metodológicos Resultados Conclusões e Trabalhos Futuros 2 Definição

Leia mais

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Introdução à Programação Aula 04 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL LINGUAGEM IREMOS ESTUDAR? 2 Introdução à Programação Linguagens

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA

Leia mais

OS HÁBITOS DE USO DAS TDIC POR ESTUDANTES UNIVERSITÁRIOS NO CONTEXTO EDUCACIONAL

OS HÁBITOS DE USO DAS TDIC POR ESTUDANTES UNIVERSITÁRIOS NO CONTEXTO EDUCACIONAL OS HÁBITOS DE USO DAS TDIC POR ESTUDANTES UNIVERSITÁRIOS NO CONTEXTO EDUCACIONAL Vivian Timbó Magalhães Martins, Universidade Federal do Ceará (UFC); RESUMO Esse artigo expõe sobre os hábitos de uso das

Leia mais

Engenharia de Controle e Automação

Engenharia de Controle e Automação ATIVIDADES PRÁTICAS SUPERVISIONADAS 2ª Série Cálculo I Engenharia de Controle e Automação A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido por meio de um conjunto

Leia mais

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, 1 Introdução Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, os desafios encontrados durante o desenvolvimento

Leia mais

Sistemas de Computação e de Informação

Sistemas de Computação e de Informação Sistemas de Computação e de Informação SLIDE 9 Professor Júlio Cesar da Silva juliocesar@eloquium.com.br site: http://eloquium.com.br/ twitter: @profjuliocsilva Linguagens de Programação Os computadores

Leia mais

Identificando as Expectativas de Alunos de Graduação sobre a Disciplina Introdutória de Engenharia de Software

Identificando as Expectativas de Alunos de Graduação sobre a Disciplina Introdutória de Engenharia de Software Identificando as Expectativas de Alunos de Graduação sobre a Disciplina Introdutória de Engenharia de Software Yandson de Jesus Saraiva Costa 1, Jéssica Costa Mendes 1, Geraldo Braz Júnior 1, Luis Jorge

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação

Leia mais

INFORMÁTICA NA EDUCAÇÃO. A Informática e a Era do Conhecimento INFORMÁTICA NA EDUCAÇÃO

INFORMÁTICA NA EDUCAÇÃO. A Informática e a Era do Conhecimento INFORMÁTICA NA EDUCAÇÃO INFORMÁTICA NA EDUCAÇÃO A Informática e a Era do Conhecimento Prof. Gláucya Carreiro Boechat E-mail:glaucyacboechat@yahoo.com.br Disciplina: Informática Aplicada à Educação Segundo MEC: é a integração

Leia mais

4 Caso de Uso no Ambiente Oracle

4 Caso de Uso no Ambiente Oracle 4 Caso de Uso no Ambiente Oracle No capítulo anterior foi definido o processo para definição de uma estratégia de rastreabilidade. Neste capítulo será realizada uma instanciação do processo em um ambiente

Leia mais

Introdução à Computação: Máquinas Multiníveis

Introduçã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 mais

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Análise Semântica Disciplina: Compiladores Equipe: Luiz Carlos dos Anjos Filho José Ferreira Júnior Compiladores Um compilador

Leia mais

Compiladores. Introdução

Compiladores. Introdução Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios

Leia mais

Agentes Pedagógicos Emocionais em Sistemas Tutores Inteligentes. Patricia A. Jaques (PhD)

Agentes Pedagógicos Emocionais em Sistemas Tutores Inteligentes. Patricia A. Jaques (PhD) Agentes Pedagógicos Emocionais em Sistemas Tutores Inteligentes Patricia A. Jaques (PhD) pjaques@unisinos.br Temas de Pesquisa Inteligência Artificial aplicada à Educação Sistemas Tutores Inteligentes

Leia mais

Design de IHC PoliFacets

Design 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 mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO Sistema de Sumarização Automática de Textos Baseado em Classes de Documentos PROPOSTA DE TRABALHO DE GRADUAÇÃO

Leia mais

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software Engenharia de Software Aula 03 Perguntas da Aula 2 Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 12 Março 2012 Inconsistente: perguntei laranjas, respondeu

Leia mais

Aula 1.7 Introdução a APOO e UML

Aula 1.7 Introdução a APOO e UML APOO Aula 1.7 Introdução a APOO e UML Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Possuir um lápis e uma régua não te tornam um arquiteto 2 Você pode conhecer toda a API Java, C++ ou qualquer LPOO. 3 Mas

Leia mais