Uma ferramenta de apoio ao ensino de computabilidade que facilita o entendimento Máquinas Abstratas

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

Download "Uma ferramenta de apoio ao ensino de computabilidade que facilita o entendimento Máquinas Abstratas"

Transcrição

1 Uma ferramenta de apoio ao ensino de computabilidade que facilita o entendimento Máquinas Abstratas Vitor Vieira 1,2, Vitor Marcolino 1, David Lima 1,2, Eliana Almeida 1,2 1 Centro de Pesquisa em Matemática Computacional Instituto de Computação Universidade Federal de Alagoas (UFAL) Campus A. C. Simões, BR 104-Norte, km 97, Cidade Universitária CEP: Maceió, AL Brasil 2 LCCV Laboratório de Computação Científica e Visualização Universidade Federal de Alagoas (UFAL) CEP: Maceió, AL Brasil {vitunv,vitor.marcolino,dhs.lima}@gmail.com eliana.almeida@pq.cnpq.br Resumo. Muitas disciplinas de estudo da Computação, devido a carga de abstração e conhecimento teórico, são vistas com desinteresse pelos discentes. A Teoria da Computação é inclusa nesse grupo apesar de sua clara importância na área. Com base nisto, é apresentada uma ferramenta que aborda dois modelos teóricos importantes para a computação: Máquinas Abstratas, considerando infinitos registros (MIR) e Linguagem Algorítmica Minimal (LAM). Essa ferramenta é composta por um simulador de programas em LAM e explora o mapeamento destes programas em programas em MIR. A ferramenta possui uma interface intuitiva e simples que estimula o aluno ao aprendizado destes modelos teóricos. Abstract. Many disciplines in computation study, due to quantity of abstraction and theoretical knowledge, are not seen so interesting by the students. The Theory of the Computation is in this group although is clear its importance in the area. Based on this, it is presented a tool that approaches two theoretical models that are important for the computation: Abstract Machines, considering Unlimited Register Machine (URM), and Minimal Algorithm Language (MAL). This tool is composed by a simulator of programs in MAL and explores the mapping of these programs in programs in URM. The tool possesses an intuitive and simple interface that stimulate the students to learn these theoretical models. 1. Introdução Cursos que tenham como base a Ciência da Computação requerem o ensino de conceitos formais e matemáticos sobre os limites do poder de resolução de problemas através de uma máquina, ou seja, do que é dito ser um problema computável. Portanto, para a formação básica dos discentes é necessário explorar tópicos da matemática e da própria Ciência da Computação que exijam um certo grau de abstração, mas apesar de dominar conceitos básicos da matemática dos ensinos médio e fundamental os alunos de graduação têm dificuldade de traduzí-los para instruções computacionais [Setti and Cifuentes 2007].

2 Sabe-se que raciocinar de forma algoritmica é diferente de raciocinar matematicamente, exigindo mais prática, contato com exercícios, e interação com a teoria. Por isso, ambientes de aprendizado podem ser utilizados como artifício para aproximar o aprendiz da teoria, introduzindo uma interação mais dinâmica e facilitando a visualização dos conceitos, e dessa forma melhorar a familiaridade com os mesmos. A ferramenta aqui apresentada visa facilitar o entendimento de computabilidade. Para isso, é utilizada a definição de uma linguagem de programação semelhante às linguagens imperativas mais primitivas (LAM - Linguagem Algorítmica Minimal), mostrando o modelo teórico implícito em todas as linguagens de tal natureza. Além de ser um simulador de LAM, a ferramenta aqui proposta permite transformar um programa escrito em LAM em um programa para o modelo formal de Máquinas Abstratas, fazendo uso da definição de Máquinas com Infinitos Registros (MIR). Para a melhor aprendizagem, a ferramenta introduz uma interface de usuário intuitiva e simples. Este trabalho é uma parcela importante do projeto ACARAjE (Ambiente Computacional Aplicado: Recursos de Ajuda Educacional)[Lopes and Almeida 2007], sistema constituído de módulos integrados cujo objetivo é prover um ambiente facilitador de ensino/aprendizado de conceitos teóricos de computação. O ACARAjE atualmente engloba uma ferramenta que auxilia o ensino de lógica de programação, o AmbAP (Ambiente de Aprendizado de Programação) e um conjunto de ferramentas voltadas especialmente ao entendimento das evidências da tese de Church[Lewis and Papadimitriou 1997]. Tais evidências são introduzidas por um conjunto de modelos formais explorados por [Brainerd and Landweber 1974] e [de Carvalho and de Oliveira 1998]. Dentre tais modelos destacam-se: Funções Recursivas, Linguagem Algorítmica, Máquinas com Registros, Máquinas de Turing e Algoritmo de Markov. O objetivo do projeto é abordar tais modelos juntamente com as transformações de equivalência entre os mesmos conforme a figura 1. Tais formalismos serão explorados por módulos independentes desenvolvidos individualmente ao longo do projeto. Na próxima seção, serão apresentados alguns trabalhos correlatos juntamente com os demais trabalhos realizados no projeto ACARAjE. Na seção 3, serão apresentados os conceitos teóricos relacionados. Na seção 4, a descrição da implementação da ferramenta aqui proposta será apresentada, seguida da conclusão e um panorama de trabalhos futuros. Figura 1. Modelos teóricos e suas transformações de equivalência

3 2. Trabalhos Relacionados Nesta seção são apresentados alguns exemplos de softwares, trabalhos similares ao aqui apresentado, principalmente os que abordam ensino/aprendizado de aspectos teóricos de computação. Existem vários softwares para auxiliar a assimilação de conceitos teóricos da computação mas poucos evidenciam a Tese de Church-Turing. JFLAP [Rodger and Finley 2006] é um aplicativo que engloba simulações de diversos tipos de máquinas, como máquina de Turing clássica, máquina de Turing com múltiplas fitas, máquina de Mealy e máquina de Moore, como também faz a prova do lema do bombeamento e simula alguns tipos de autômatos e gramáticas. Porém, não trata outros formalismos teóricos importantes, como algoritmos de Markov e Funções Recursivas, por exemplo. Minerva [Estrebou et al. 2002], desenvolvido na linguagem Java, é utilizado principalmente no estudo de diversos tipos de autômatos (autômatos finitos, autômatos de pilhas e máquina de Turing) e também trata o lema do bombeamento para linguagens regulares. O Language Simulator [Vieira et al. 2003] é um simulador que abrange: autômato finito (determinístico, não determinístico e não determinístico com transição lambda), gramática regular, expressão regular e máquinas de Moore e Mealy. Possui também algumas outras funcionalidades, como a minimização de autômatos finitos determinísticos, também permite exportar os autômatos finitos como um arquivo para ser utilizado no graphviz. URM Simulator [Camacho 2009] é um simulador web de Máquina com Infinitos Registros. Também, possui algumas macros disponíveis que ajudam na elaboração algorítmo e tem como idioma o português, sendo o mais próximo da proposta aqui apresentada. Algumas ferramentas do ACARAjE foram desenvolvidas. O AmbAP (Ambiente de Aprendizado de Programação) [Almeida et al. 2002] é um ambiente para aprendizado de lógica de programação, implementado na linguagem Java, o qual faz uso de uma linguagem simples e no idioma português, demonstrada em [Evaristo and Crespo 2000]. O TOMaTE (Tutorial Otimizado de Máquinas de Turing Essenciais) [Peixoto et al. 2007] é um simulador de máquinas de Turing, construídos sobre grafos dirigidos, ele vem sendo aperfeiçoado, como pode-se constatar em [Lima and Almeida 2009]. Outro trabalho bastante importante é o SiR [Paes and Almeida 2008c, Paes and Almeida 2008b, Paes and Almeida 2008a] é ferramenta que transforma funções recursivas primitivas em um pséudo-código gerado dentro da definição de uma Linguagem Algorítmica Minimal (LAM). Também no âmbito do ACARAjE, há uma preocupação com o desenvolvimento da interface unificada do ambiente como um todo, considerando os seus módulos distintos, conforme apresentado em [Silva et al. 2009]. 3. Embasamento Teórico Segundo as evidências da Tese de Church, tudo que é computável pode ser escrito em uma linguagem algorítmica. O programa escrito em tal linguagem, assim como as linguagens de programação comumente utilizadas, são interpretadas por uma máquina que possui registros e linguagem de montagem própria. Com isso, todo pro-

4 blema computável pode ser interpretado por tal máquina [Brainerd and Landweber 1974, de Carvalho and de Oliveira 1998]. Para abordar esses conceitos, os modelos formais de Linguagem Algorítmica Minimal (LAM) e Máquinas com Infinitos Registros (MIR) são utilizados. Tais modelos serão vistos com maiores detalhes a seguir, além da transformação de programas em LAM para programas em MIR e sua consequente interpretação A Linguagem Algorítmica Minimal Para embasar o modelo abstrato de máquina, esta ferramenta aborda um modelo de linguagem algorítmica o mais simples possível para escrever os programas ditos computáveis, Linguagem Algorítmica Minimal (LAM). Segue a descrição de sua BNF, segundo [Brainerd and Landweber 1974]. < atribuicao > ::= < nome > 0 < nome > < nome > < nome > < nome > + 1 < nome > ::= < literal > < literal >< numeral > < literal > ::= < letra > < letra >< literal > < letra > ::= A B... Z < numeral > ::= < programa io > ::= < io >< programa > < io > ::= < entrada >; < saida >; < entrada > ::= INP UT INP UT < lista de nomes > < saida > ::= OUT P UT OUT P UT < lista de nomes > < lista de nomes > ::= < nome >, < lista de nomes > < nome > < programa > ::= < comando rotulado > < loop >< programa >< end > < programa >< programa > < comando rotulado > ::= < comando > < rotulo >: < comando > < rotulo >: < comando rotulado > < comando > ::= < atribuicao > GOT O < rotulo >

5 < loop > ::= LOOP < nome >; < rotulo >: LOOP < nome > < rotulo >: < loop > < end > ::= END < rotulo >: END < rotulo >: < end > Para executar um programa em LAM, devem ser satisfeitos os seguintes pontos: 1. Toda variável deve ter seu valor inicial Os passos são executados na ordem em que são dispostos. 3. A atribuição só deverá ocorrer das seguintes formas: (a) X 0, ou seja, a variável X recebe o valor 0. (b) X Y, ou seja, X deve receber o valor da variável Y, tal que X Y. (c) X X + 1, ou seja, a variável X pode ser incrementada. 4. O conjunto das variáveis de entrada não podem estar à direita do comando de atribuição. 5. O valor V inicial da variável do comando LOOP indica quantas vezes o conjunto interno de instruções dessa estrutura é repetido. Tal valor inicial é mantido mesmo que a variável seja modificada e é decrementado a cada iteração. 6. Se o valor V inicial da variável do comando LOOP for zero, o bloco da estrutura é executado 0 vezes, ou seja, o programa continuará a ser executado a partir da próxima instrução depois do comando END correspondente. 7. O comando GOT O transfere a execução do programa para a instrução com o rótulo atribuído. 8. O programa pára em duas hipóteses: caso tenha acabado de ser executada a última instrução ou se um comando GOT O apontar para um rótulo não existente no programa A Máquina Abstrata (Máquina com Registros) No modelo LAM não é considerada a representação dos dados, o que vem a ser feito pelos formalismos de máquina abstrata, que se assemelha ainda mais com as máquinas reais. A máquina aqui tratada é a máquina com infinitos registros (MIR). Em MIR, mesmo havendo infinitos registros, há um conjunto de instruções finito, que muito se assemelha às linguagens de montagem, como apresentada a seguir: Definição: Seja W i uma i-tupla que pode ser entendida como os possíveis conteúdos de um conjunto ordenado de i registros. Uma Máquina com Infinitos Registros M é um 6-upla, tal que M =, R, M, I, α r, ω s, onde: = n, tal que n > 0, é chamado de alfabeto de entrada. R é um conjunto de objetos chamados registros, onde R = {r 0, r 1,..., r i,...}. M é um conjunto de funções µ : R, denominadas configurações de memória, e µ (r) é o conteúdo do registro r.

6 I é um conjunto de funções de M em M chamadas instruções. Temos, em MIR, que I = {cortaesq (r k, δ), concdir (r k, δ), testa (r k ) k > 0 e δ }. Considerando W n o conjunto de possíveis conteúdos de n registros. α r é uma função de W r em M chamada de função de entrada, onde α r (x 1,..., x r ) = { r 0, 0, r 1, x 1,..., r r, x r, r r+1, 0,...}. ω s é uma função de M em W s chamada de função de saída, onde ω s ({ r 0, y 0, r 1, y 1,.., r s, y s, r s+1, y s+1,..}) = y 1,.., y s. Temos também que as funções de I de uma máquina MIR funcionam da seguinte forma: Em cortaesq (r, δ) (µ) = µ, temos µ (r) = S se µ(r) = δs para qualquer S ou temos um salto caso contrário. Em concdir(r, δ)(µ) = µ, temos que µ (r) = µ(r)δ. Em testa(r)(µ) = µ, temos que µ = µ se µ(r) = 0 e que ocorra um salto se µ(r) 0. Define-se uma instrução em um programa em MIR como uma tripla < l, f, l >, onde f I e l, l L, sendo L o conjunto de símbolos denominados rótulos. Observe que cada instrução, assim como algumas linguagens de baixo nível, contem um rótulo (l), um procedimento (f) e após o mesmo uma diretiva para outra instrução (l ). É possível em MIR construir programas utilizando funções constituídas por sequências de instruções básicas da máquina (I). Semelhante a idéia de funções ou rotinas definidas pelo usuário em linguagem de programação, tais funções são chamadas pelo programa. Como exemplo, podem ser definidas funções tais como limpe(r k ), que zera o conteúdo do registro r k, copie(r k, r j ), que copia o conteúdo do registro r j para r k, com k, j 0 e j k Mapeamento Programa em LAM/Programa em MIR São necessárias algumas modificações na estrutura do programa em LAM para se efetuar o mapeamento para programas em MIR. As r variáveis de entrada deverão ser substituídas por X 1,..., X r, seguidas pelas t variáveis de saída, caso existam, então substituídas por X r+1,..., X r+t. Finalmente, as k variáveis restantes, as que ocorrem no resto do programa, devem ser substituídas pelas seguintes k variáveis da mesma forma. Também, todas as instruções em LAM são acrescidas de rótulos enumerados sequencialmente, onde a primeira instrução tem rótulo 1, a segunda 2 e assim sucessivamente. O mapeamento de LAM em MIR pode ser feita em nove passos, como segue: 1. Eliminação de INP UT e OUT P UT ; 2. Estado inicial do programa em MIR é < 1, α(x 1,..., x r ) > 3. Substituição l X k 0 por l limpe(r k ); 4. Substituição l X k X k + 1 por l concdir(r k, 1); 5. Substituição l X k X j por: l copie(r k, r j ) se k j l limpe(r 0 ) se k = j 6. No comando l LOOP X k, ao encontrar o comando l END, é feita a substituição pelo comando l END l. Caso m = max{i X i ocorre no programa}, substituir o comando l LOOP X k por l copie(r m+1, r k ) l.1 testa(r m+1 ) l + 1, cortaesq(r m, 1) l + 1

7 7. Substituição l END l por l limpe(r 0 ) l.1 8. Sendo m maior rótulo do programa, substituir comando l GOT O l por l limpe(r 0 ) l se l m ou por l limpe(r 0 ) m + 1 se l > m 9. Sendo m maior rótulo do programa, adicionar seguinte seqüência que prepara as saídas do programa: m + 1 copie(r 1, r r+1 ) m + 2 copie(r 2, r r+2 )... m + s copie(r s, r r+s ) m + s + 1 fim 4. Implementação A ferramenta em questão foi desenvolvida na linguagem Java 1, assim como o projeto ACARAjE vem sendo desenvolvido. O padrão de projetos e estilo arquitetural MVC (Model-View-Controller) foi utilizado para prover a separação de interesses dos componentes do código, tornando o código flexível e promovendo a possibilidade de reusabilidade dos componentes para o projeto. A ferramenta faz uso da API Swing 2 para a interface gráfica. A figura 2 apresenta a execução de um programa escrito em LAM demonstrando a tabela de símbolos, variáveis de entrada e saída juntamente com as do corpo do programa (heap). Ao iniciar o programa, é feita uma consulta de qual são as variáveis de entrada para o mesmo. O programa passa pelo analisador léxico, sintático e um programa em Máquinas com Registros é gerado e interpretado de forma a obter os resultados tanto em LAM quanto em MIR, como mostrado na figura 3. Ou seja, é demonstrado a execução do programa em MIR através dos dois modelos. Também, o programa demonstra o passo-a-passo da transformação entre os modelos como é demonstrado na figura 4. Assim o aprendiz pode visualizar a transformação e perceber a relação entre eles. 1 Ver site: 2 Ver site:

8 Figura 2. Execução do programa em LAM Figura 3. Correspondência em MIR e disposição dos valores nos registros

9 Figura 4. Tradução das instruções LAM para MIR 5. Considerações Finais O próximo passo será incorporar este trabalho ao ambiente ACARAjE e acoplá-lo ao módulo que concerne à transformação do modelo formal de funções recursivas. Como este último gera a partir de um programa em funções recursivas seu correspondente em LAM, sua utilização possibilitará abordar os três formalismos. Através da ferramenta aqui abordada, pretende-se que os alunos de Teoria da Computação tenham um recurso dinâmico e interativo para auxiliar à aprendizagem da disciplina, especialmente no entendimento de modelos teóricos computacionais, que evidenciam a tese de Church, além do entendimento da tese em si. A consolidação da ferramenta só se dará depois de um feedback mais efetivo por parte dos usuários. Referências Almeida, E. S., Costa, E. B., Silva, K. S., Paes, R. B., Almeida, A. A. M., and Braga, J. D. H. (2002). Ambap: Um ambiente de apoio ao aprendizado de programação. In XXII Congresso da Sociedade Brasileira de Computação X WEI, Florianópolis SC (Brasil). Brainerd, W. S. and Landweber, L. H. (1974). Theory of Computation. John Wiley & Sons. Camacho, P. (2009). URM simulator. a /urm. php, acesso em 16 de outubro de de Carvalho, R. L. and de Oliveira, C. M. G. M. (1998). Sistemas Formais. Imprinta Gráfica e Editora Ltda. Modelos de Computação e

10 Estrebou, F., Lanza, M., Mauco, V., Barbuzza, R., and Fabre, L. (2002). Minerva: Una herramienta para un curso de lenguajes formales y autómatas. In Latin American Informatics conference (CLEI). Evaristo, J. and Crespo, S. (2000). Aprendendo a programar - programando numa linguagem algorítma executável ILA. Book Express. Lewis, H. R. and Papadimitriou, C. H. (1997). Elements of the Theory of Computation. Prentice Hall International, 2 edition. Lima, D. H. S. and Almeida, E. S. (2009). Aprendendo máquina de turing atraves de um ambiente gráfico de simulação. In IX Escola Regional Bahia - Alagoas - Sergipe, Workshop de Educação em Computação e Informática. Lopes, B. and Almeida, E. (2007). Um simulador para ilustrar graficamente a execução de programas e as noções de computabilidade. In Anais da 59 a reunião da SBPC. Paes, A. and Almeida, E. (2008a). Transformando funções recursivas em programas através de uma ferramenta gráfica de simulação. In 8 o Encontro Regional de Matemática Aplicada e Computacional - VIII ERMAC. Paes, A. and Almeida, E. S. (2008b). Gerando pseudo - código a partir de funções computáveis utilizando uma ferramenta de simulação. In Fortaleza. Anais do XIX Simpósio Brasileiro de Informática na Educação, Paes, A. and Almeida, E. S. (2008c). Um ambiente para execução de funções computáveis através de uma ferramenta gráfica de simulação utilizando o conceito de grafo de dependências e linguagens de programação. In VIII Escola Regional Bahia - Alagoas - Sergipe, Workshop de Educação em Computação e Informática, pages Peixoto, M., Vieira, B. L., and Almeida, E. S. (2007). Construindo uma ferramenta para transpor paradigmas de interface em máquinas de turing - TOMaTE. In São Paulo. Anais do XVIII Simpósio Brasileiro de Informática na Educação, Rodger, S. and Finley, T. (2006). JFLAP - An Interactive Formal Languages and Automata Package. Jones and Bartlett. Setti, M. G. and Cifuentes, J. C. (2007). O pensamento matemático elementar como um obstáculo epistemológico para o pensamento computacional. Simpósio Nacional de Tecnologia e Sociedade, 1:1 7. Silva, E. R., Lobo, V. T. C., Lima, D. H. S., and Almeida, E. S. (2009). Construindo uma interface para um ambiente educacional de apoio ao aprendizado dos aspectos formais da computação. In IX Escola Regional Bahia - Alagoas - Sergipe, Workshop de Trabalhos de Iniciação Científica e Graduação. Vieira, L. F. M., Vieira, M. A. M., and Vieira, N. J. (2003). Language emulator, uma ferramenta de auxílio no ensino de teoria da computação. In XIII Workshop sobre Educação em Computação - XXV Congresso da Sociedade Brasileira de Computação.

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

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

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

Introdução às Linguagens de Programação

Introdução às Linguagens de Programação Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador

Leia mais

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

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos 1. INTRODUÇÃO A ALGORITMOS O uso de algoritmos é quase tão antigo quanto a matemática. Com o passar do tempo, entretanto, ele foi bastante esquecido pela matemática. Com o advento das máquinas de calcular

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Outras Máquinas de Turing

Outras Máquinas de Turing Capítulo 10 Outras Máquinas de Turing 10.1. Pequenas variações da TM padrão 10.2. MT s com dispositivos de armazenamento mais complexos 10.3. MT s não-determinísticas 10.4. A Máquina de Turing Universal

Leia mais

Autómatos Finitos Determinísticos

Autómatos Finitos Determinísticos Ficha 2 Autómatos Finitos Determinísticos 2.1 Introdução Se olharmos, de forma simplificada, para um computador encontramos três componentes principais: a) A unidade de processamento central b) As unidades

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

Linguagem Formais e Autômatos

Linguagem Formais e Autômatos Linguagem Formais e Autômatos Apresentação da disciplina, metodologia de ensino, conteúdos, avaliações e bibliografia Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos

Leia mais

COMPILADORES E INTERPRETADORES

COMPILADORES E INTERPRETADORES Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

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

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

Leia mais

Programação para Computação

Programação para Computação Universidade Federal do Vale do São Francisco Programação para Computação Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Ementa Conceito de algoritmo. Lógica de programação e programação

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto APRESENTAÇÃO Os computadores chegaram aos diversos níveis das organizações Nestes contexto: Que linguagem entendem? Que produtos podem usar? Dúvidas

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos SLIDE 1 Professor Júlio Cesar da Silva juliocesar@eloquium.com.br site: http://eloquium.com.br/ twitter: @profjuliocsilva facebook: https://www.facebook.com/paginaeloquium

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

PLANO DE ENSINO. Período/ Fase: 1º Semestre: 1º Ano: 2011 Disciplina: Programação de Computadores I (PGC21) Carga Horária: 72 horas/aula

PLANO DE ENSINO. Período/ Fase: 1º Semestre: 1º Ano: 2011 Disciplina: Programação de Computadores I (PGC21) Carga Horária: 72 horas/aula PLANO DE ENSINO 1. DADOS DE IDENTIFICAÇÃO Instituição: Universidade Alto Vale do Rio do Peixe Curso: Sistemas de Informação Professores: Carlos Alberto Zorzo zorzo@uniarp.edu.br Período/ Fase: 1º Semestre:

Leia mais

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

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

Conceitos Importantes:

Conceitos Importantes: Conceitos Importantes: Variáveis: Por Flávia Pereira de Carvalho, 2007 i O bom entendimento do conceito de variável é fundamental para elaboração de algoritmos, consequentemente de programas. Uma variável

Leia mais

1 Máquina URM, comandos e programas URM

1 Máquina URM, comandos e programas URM 1 Máquina URM, comandos e programas URM Definição 1 : Máquina URM (Unlimited Register Machine) Uma máquina URM é constituída por uma sucessão de registos 2 < R i > i IN. Cada registo pode conter um valor

Leia mais

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens

Leia mais

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria

Máquinas de Turing. Juliana Kaizer Vizzotto. Disciplina de Teoria da Computação. Universidade Federal de Santa Maria Universidade Federal de Santa Maria Disciplina de Teoria da Computação Roteiro Definição Formal de Máquina de Turing Mais exemplos Definição Formal de Máquina de Turing Uma máquina de Turing é uma 7-upla,

Leia mais

Utilização de Hipermídia para Criação de Help: Estudo de Caso Software para Auxílio no Ensino de Linguagens Regulares

Utilização de Hipermídia para Criação de Help: Estudo de Caso Software para Auxílio no Ensino de Linguagens Regulares Utilização de Hipermídia para Criação de Help: Estudo de Caso Software para Auxílio no Ensino de Linguagens Regulares Juliana Leontina da Silva 1, Frederico Coelho 1 1 Departamento de Ciência da Computação

Leia mais

Banco de Dados BrOffice Base

Banco de Dados BrOffice Base Banco de Dados BrOffice Base Autor: Alessandro da Silva Almeida Disponível em: www.apostilando.com 27/02/2011 CURSO TÉCNICO EM SERVIÇO PÚBLICO Apostila de Informática Aplicada - Unidade VI Índice Apresentação...

Leia mais

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

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP Algoritmos e Programação Ricardo Argenton Ramos Baseado nos slides do professor Jadsonlee da Silva Sá Ementa Conceito de algoritmo. Lógica de programação e programação estruturada. Linguagem de definição

Leia mais

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis Ciência da Computação Arq. e Org. de Computadores Máquinas Multiníveis Prof. Sergio Ribeiro Computador digital máquina que resolve problemas executando uma série de instruções. Programa conjunto de instruções

Leia mais

Pró-Reitoria de Ensino de Graduação P L A N O D E E N S I N O

Pró-Reitoria de Ensino de Graduação P L A N O D E E N S I N O Pró-Reitoria de Ensino de Graduação P L A N O D E E N S I N O Curso: Ciência da Computação Unidade Curricular: Linguagem Formais e Autômatos Modalidade: Presencial (X ) Semipresencial ( ) Período: 4º Ano/

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

2. Objetivos do Sistema

2. Objetivos do Sistema Desenvolvimento de Um Programa Interpretador e Resolvedor para Máquinas de Estado Finito Adriana Postal 1, Ana Paula Fredrich 1, Cassiano Cesar Casagrande 1, Evaristo Wychoski Benfatti 1, Josué Pereira

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

ICC Introdução para JavaScript

ICC Introdução para JavaScript ICC Introdução para JavaScript Arquitetura Genérica de um Computador Máquina de Von Neumann Diagrama conhecido como Máquina de Von Neumann (grande nome da informática) A finalidade de um computador é receber,

Leia mais

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Introdução Hardware X Software Corpo Humano Parte Física Componentes 18 Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Hardware Introdução Parte física: placas, periféricos,

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto

Leia mais

Os limites da computação algorítmica

Os limites da computação algorítmica Capítulo 12 Os limites da computação algorítmica 12.1. Problemas que não podem ser resolvidos pelas MT. 12.2. Problemas indecidíveis para LRE 12.3. Problema da correspondência de Post 12.4. Problemas indecidíveis

Leia mais

ALP Algoritmos e Programação. . Linguagens para Computadores

ALP Algoritmos e Programação. . Linguagens para Computadores ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos

Leia mais

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Computabilidade 2012/2013 Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto Capítulo 1 Computabilidade 1.1 A noção de computabilidade Um processo de computação

Leia mais

A função do primeiro grau

A função do primeiro grau Módulo 1 Unidade 9 A função do primeiro grau Para início de conversa... Já abordamos anteriormente o conceito de função. Mas, a fim de facilitar e aprofundar o seu entendimento, vamos estudar algumas funções

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

Leia mais

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

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

CURSO: TÉCNICO EM INFORMÁTICA NA MODALIDADE EAD

CURSO: TÉCNICO EM INFORMÁTICA NA MODALIDADE EAD LÓGIC DE PROGRMÇÃO CURSO: TÉCNICO EM INFORMÁTIC N MODLIDDE ED Disciplina: Lógica de Programação Profa. Jaqueline F. Domenciano Meu nome é Jaqueline F. Domenciano. Sou Especialista em Educação à Distância,

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada

Leia mais

V Semana de Ciência e Tecnologia IFMG - campus Bambuí V Jornada Científica 19 a 24 de novembro de 2012

V Semana de Ciência e Tecnologia IFMG - campus Bambuí V Jornada Científica 19 a 24 de novembro de 2012 LEARN IN SQL FERRAMENTA DE AUXÍLIO NO ENSINO-APRENDIZAGEM DE SQL/BANCO DE DADOS Junio MOREIRA 1 ; Silas ANTÔNIO CEREDA DA SILVA 2 ; Marcos VINÍCIUS DE CASTRO SILVA 4 ; Samuel DE OLIVEIRA PERFISTER 5 ;

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

SOFTWARES LIVRES: UMA REDE PARA O ENSINO E APRENDIZAGEM DE MATEMÁTICA NA REGIÃO CARBONÍFERA

SOFTWARES LIVRES: UMA REDE PARA O ENSINO E APRENDIZAGEM DE MATEMÁTICA NA REGIÃO CARBONÍFERA SOFTWARES LIVRES: UMA REDE PARA O ENSINO E APRENDIZAGEM DE MATEMÁTICA NA REGIÃO CARBONÍFERA Ms. Jeferson Fernando de Souza Wolff RESUMO O computador, como ferramenta pedagógica para ensino e aprendizagem

Leia mais

2 echo "PHP e outros.";

2 echo PHP e outros.; PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais

Manual. Formações Modulares Certificadas. A Relha Cooperativa de Serviços CRL. Formador/a: Ricardo Cabral. Data: 05/2013. N.

Manual. Formações Modulares Certificadas. A Relha Cooperativa de Serviços CRL. Formador/a: Ricardo Cabral. Data: 05/2013. N. Manual Formador/a: Ricardo Cabral Data: 05/2013 Formações Modulares Certificadas Área de Formação: Ciências Informáticas UFCD: 0755 Funcionalidades Avançadas N.º Horas: 25 A Relha Cooperativa de Serviços

Leia mais

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Síntese das discussões do fórum Livro-APF: Julho/2010

Síntese das discussões do fórum Livro-APF: Julho/2010 Síntese das discussões do fórum Livro-APF: Julho/2010 Assunto: Estimativa de Aumento de Produtividade Data: 01/07/2010 Link: http://br.groups.yahoo.com/group/livro-apf/message/2577 Dúvida: Existe alguma

Leia mais

Ensino de Programação nas Escolas Públicas: Criando. Novos Gênios

Ensino de Programação nas Escolas Públicas: Criando. Novos Gênios Ensino de Programação nas Escolas Públicas: Criando Novos Gênios BELIZARIO, B. N; AFONSO JUNIOR, O. P; OLIVEIRA, J. V. S; 1 Ensino de Programação nas Escolas Públicas: Criando Novos Gênios Orlando Pereira

Leia mais

Curso Técnico em Redes

Curso Técnico em Redes Curso Técnico em Redes Prof. Airton Ribeiro - 2012 Histórico das Linguagens de Programação O que é? É um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas

Leia mais

Programação Orientada a Objeto

Programação Orientada a Objeto Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso

Leia mais

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

Aula 01. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios Aula 01 Slide 1 BIBLIOGRAFIA SCHILDT H. C Completo e Total, Makron Books. SP, 1997. Curso de linguagem C da UFMG. ZIVIANI,

Leia mais

UFRPE Prof. Gustavo Callou gcallou@gmail.com

UFRPE Prof. Gustavo Callou gcallou@gmail.com UFRPE Prof. Gustavo Callou gcallou@gmail.com 1 Algoritmos Representação Exercícios Linguagens de Programação Compilador Interpretador Ambiente de Desenvolvimento Python Característica Para que serve Onde

Leia mais

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso

Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso Análise qualitativa do processo de workflow da ouvidoria do IFMG campus Bambuí: um estudo de caso Estefânia Paula da SILVA¹; Lígia Maria SOARES PASSOS² ¹ Aluna do curso de Engenharia de Produção do IFMG

Leia mais

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar

Leia mais

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Problemas & Algoritmos Para resolver um problema através dum computador é necessário encontrar em primeiro lugar uma maneira de descrevê-lo

Leia mais

O que há de novo. Audaces Idea

O que há de novo. Audaces Idea O que há de novo Audaces Idea Com o propósito de produzir tecnologia de ponta, o principal requisito da Política de Qualidade da Audaces é buscar a melhoria contínua de seus produtos e serviços. Inovadora

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS 6ª Série Teoria da Computação Ciência da Computação A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido por meio de um conjunto

Leia mais

Projeto CONDIGITAL Mergulhando na Função Guia do Professor

Projeto CONDIGITAL Mergulhando na Função Guia do Professor Projeto CONDIGITAL Mergulhando na Função Guia do Professor Página 1 de 5 Caro(a) professor(a) Guia do Professor A utilização de jogos digitais como objetos de aprendizagem tem sido difundida atualmente

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES

UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas

Leia mais

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003. UFRN/DIMAp/DIM0330 Linguagens formais http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.1/dim0330 1/36 Autômatos a pilha David Déharbe UFRN/DIMAp Campus Universitário, Lagoa Nova, 59072-970 Natal,

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação O que é lógica? Conjunto de regras e princípios que orientam, implícita ou explicitamente, o desenvolvimento de uma argumentação ou de um raciocínio, a resolução de um problema, etc.

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB 18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ

Leia mais

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE CURSO: CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMPILADORES PROFESSOR: JOHNI DOUGLAS MARANGON Back-End Compilação 1. Compilação etapa Back-end

Leia mais

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS

CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS 92 CAPÍTULO 6 CIRCUITOS SEQUENCIAIS IV: PROJETO DE REDES SEQUENCIAIS Sumário 6.. Introdução... 94 6... Máquina de Estados de Moore... 94 6..2. Máquina de Estados de Mealy... 95 6.2. Projeto de Redes Sequenciais...

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

Análise de Dados do Financeiro

Análise de Dados do Financeiro Análise de Dados do Financeiro Introdução Para reunir em um só local as informações de contas a pagar e receber cadastradas e/ou geradas no sistema TTransp existe a interface de análise de dados do financeiro.

Leia mais

CLUBE DE PROGRAMAÇÃO NAS ESCOLAS: NOVAS ERSPECTIVAS PARA O ENSINO DA COMPUTAÇÃO. IF Farroupilha Campus Santo Augusto; e-mail: joaowinck@hotmail.

CLUBE DE PROGRAMAÇÃO NAS ESCOLAS: NOVAS ERSPECTIVAS PARA O ENSINO DA COMPUTAÇÃO. IF Farroupilha Campus Santo Augusto; e-mail: joaowinck@hotmail. CLUBE DE PROGRAMAÇÃO NAS ESCOLAS: NOVAS ERSPECTIVAS PARA O ENSINO DA COMPUTAÇÃO WINCK, João Aloísio 1 RISKE, Marcelo Augusto 2 AVOZANI, Mariel 3 CAMBRAIA, Adão Caron 4 FINK, Marcia 5 1 IF Farroupilha Campus

Leia mais

Criando um script simples

Criando um script simples Criando um script simples As ferramentas de script Diferente de muitas linguagens de programação, você não precisará de quaisquer softwares especiais para criar scripts de JavaScript. A primeira coisa

Leia mais

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010

Construção de Compiladores. Construção de Compiladores. Motivação. Motivação. Contexto Histórico. Classificações: Gerações 09/03/2010 Construção de Compiladores Prof. Raimundo Santos Moura (http://www.ufpi.br/rsm) Construção de Compiladores Livro-Texto: AHO, Alfred V.; ULLMAN, Jeffrey D.; SETHI, R. Compiladores: princípios, técnicas

Leia mais

12 EXCEL MACROS E APLICAÇÕES

12 EXCEL MACROS E APLICAÇÕES INTRODUÇÃO O principal objetivo deste livro é auxiliar o leitor na sua aprendizagem sobre os recursos avançados do Excel em especial na interligação com o Visual Basic for Applications (VBA). Pretende-se

Leia mais