Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.

Slides:



Advertisements
Apresentações semelhantes
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
Advertisements

Sistemas Operacionais
Banco de Dados Aula 01: Conceitos Básicos
Técnicas e Projeto de Sistemas
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
Dicas práticas para o uso do FEMM
Técnicas e Projeto de Sistemas
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
Introdução ao Fortran 4/abril/2006. Pseudocódigo Compreensão do problema Elaboração da lógica de resolução Tradução da lógica para pseudocódigo.
Introdução à Lógica de Programação
Sistemas Operacionais
Prof. Dr. Helder Anibal Hermini. SUMÁRIO Algumas Aplicações O Treinamento da RNA Redes Neurais em Identificação e Controle de Processos Redes Neurais.
Prof. Dr. Helder Anibal Hermini
Teste Estrutural de Software
Criptografia Quântica : Um Estudo
Teste Funcional de Software
Gerência de Dados em Grades Motivação: – 1a geração de suporte a dados em Grades: ferramentas para transferência e catalogação de réplicas: Globus: GridFTP,
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker.
SECRETARIA DA EDUCAÇÃO E CULTURA x Fechar EDUCAÇÃO UM COMPROMISSO DE TODOS SEDUCSEDUC Avançar Secretaria da Educação e Cultura Maria Auxiliadora Seabra.
Algoritmos Genéticos - Capítulo 151 Algoritmos Genéticos Capítulo 15 Prof. Ricardo Linden.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
Banco de Dados I Profa. Jiani Cardoso 2/2005
Conceitos iniciais Hardware/Software
UD de Sorocaba/ Iperó UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Campus de Sorocaba UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Funções de um computador
Agregado Homogêneo e Heterogêneo
Técnicas de Amostragem
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
Adriana da Silva Jacinto CT-282 Prof. Dr.Parente Técnicas de diagnóstico 1º semestre 2005.
Modulo Especialista.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
CES-11 LAB 03 Bitmap Quadtree
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo III Comandos de Controle.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira Sala 120 – Prédio da Computação Linguagens para a Web Semântica.
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira Sala 120 – Prédio da Computação Lógica de Descrições.
Capítulo V Análise Sintática
CES-41 COMPILADORES Capítulo I Introdução.
Computação Gráfica: Possibilidades e Desafios
Mac-499 Trabalho de Formatura Supervisionado
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012.
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
Interpolação Introdução Conceito de Interpolação
Sistemas Lineares Parte 2
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Curso de Programação em C++
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Baseado no documento do Prof. Ronaldo Martins da Costa
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Programação Concorrente com Thread Java
Professor: Hyggo Almeida
Transcrição da apresentação:

Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura para representação

Construção de programas eficientes estruturas de dados eficientes Introdução (cont.) Um algoritmo é uma receita para resolver problemas cujos os passos são concretos e não ambíguos. O algoritmo deve ser correto, de tamanho finito e parar para todos os inputs. Um problema é uma tarefa a ser executada, ou uma pergunta a ser respondida. Um programa é uma instancialização de um algoritmo em uma linguagem de programação de computadores.

Algoritmo: é um método para resolver um problema. Propriedades: a. deve ser correto b. possui passos concretos c. não possui ambigüidades d. possui número finito de passos e. deve terminar Introdução (cont.)

Algoritmo - conceito intuitivo para ajudar pessoas a expressar soluções de problemas Programas - expressar algoritmos numa linguagem formalmente definida Computação Numérica x Computação Comercial computation intensive x data intensive 3a Geração - Processamento Gráfico Objetos Geométricos, Figuras Interface com usuário CAD - Proc. Imagens - Rec. Padrões Geometria Computac.

Introdução (cont.) Especificação da Estrutura de dados X Implementação Especificação concentração em descrever o funcionamento não há preocupação na implementação Análise de algoritmos comportamento do algoritmo (perfil de desempenho) medidas em termos de esforço computacional + espaço Explorar vários tipos de objetos de dados Considerar as classes de operações para cada objeto Representar objeto com suas operações eficientemente

Introdução (cont.) Tipo de dado - data type associação do tipo ao nome da variável Tipos built-in com operações - FORTRAN, C possibilidade de criar tipos (C - struct) Domínio - data object - domínio do tipo do dado refere ao conjunto de elementos (Inteiros - {... -2, -1, 0, 1, 2,...} ) pode ser finito ou infinito Estrutura de Dados - Data Structure conjunto de objetos e como eles são relacionados operações aplicadas aos elementos do objeto ex: objeto INTEGER com operações +, -, *, ÷

Uma solução é dita ser eficiente se ela resolve o problema dentro das restrições de recursos impostas O custo de uma solução é a quantidade de recursos que a solução consome. Muito freqüentemente, o custo é estimado através de um único recurso, como o tempo Introdução (cont.)

Uma estrutura de dados exige uma certa quantidade de espaço para cada item a ser armazenado, uma certa quantidade de tempo para executar uma única operação básica, e um certo esforço de programação Cada solução para um problema usa as operações básicas em alguma proporção, e a seleção de uma estrutura de dados deve levar isso em conta Introdução (cont.)

Modelos de Computação e Medidas de Complexidade Problema como achar um algoritmo eficiente de solução? Se há um algoritmo, como compará-lo com outros? Como julgar se um algoritmo é bom? O que pode ser computado ou não por um algoritmo?

Modelos de Computação e Medidas de Complexidade (cont.) Especificação de Modelo de Computação Por que? Para executar o algoritmo Não Existe um Modelo que satisfaz todas as situações Palavra com tamanho aleatório Palavra com tamanho finito Para cada problema, deve ser selecionado o Modelo de Computação mais adequado

Modelos de Computação e Medidas de Complexidade (cont.) Modelos já sugeridos por Emil Post Alan Turing Alonzo Church Sistemas de Produção Máquinas de Turing Funções Recursivas Modelos Equivalentes RAM - Random Access Memory

Modelos de Computação e Medidas de Complexidade (cont.) RAM - Random Access Memory Capacidade de Memória Ilimitada Cada célula da Memória com tamanho ilimitado Unidade aritmética

Modelos de Computação e Medidas de Complexidade (cont.) Exemplo de um Algoritmo read r1 if r1 0 then write 0 else { r2 r1 r3 r1 - 1 while r3 > 0 do { r2 r2 * r1 r3 r3 - 1 } write r2 } 3 (n - 1) O ( n )

Modelos de Computação e Medidas de Complexidade (cont.) Complexidade dá uma idéia de upper bound Por que não um lower bound? O (g)f O(g)f cresce no máximo tão rápido quanto g(x) para x (g)f (g)f cresce no mínimo tão rápido quanto g(x) para x (g)f (g)tem o mesmo crescimento de g(x) para x o(g)f o(g)f cresce mais lentamente que g(x) para x