Buscar

Estruturas de Dados - Computação (Dibio)

Prévia do material em texto

dibio@unb.br
Roteiro
 Computação (Processo ­­> Formalização)
 Texto: (E. Dijkstra)
 Complexidade de Problemas
 Abstração por procedimentos (e.g. Funções)
 Abstração por dados
 Tipos de Dados e Operações 
 Simples 
 Compostos (homogêneos, heterogêneos)
 Texto: (Pair Programming)
 Lab: Projeto 1
dibio@unb.br
Afinal, o que é computação?
● Máquinas para computar
● O imaginário e o computador
● Esquema e componentes típicos de um 
computador
dibio@unb.br
Processo computacional para 
solução de problemas
● 1o. passo: Construir um modelo formal (conhecer 
e especificar o problema nos elementos essenciais)
(ALGORITMO INFORMAL)
● 2o. passo: Descrição sequencial em pseudo­código
(TIPOS ABSTRATOS DE DADOS)
● 3o. passo: Descrição em uma linguagem de 
programação 
(ESTRUTURAS DE DADOS)
­­­> PROJETO ­­­> REFINAMENTO
dibio@unb.br
“Yes, I share your concern: how to program well —though a 
teachable topic— is hardly taught. The situation is similar 
to that in mathematics, where the explicit curriculum is 
confined to mathematical results; how to do mathematics 
is something the student must absorb by osmosis, so to 
speak. One reason for preferring symbol­manipulating, 
calculating arguments is that their design is much better 
teachable than the design of verbal/pictorial arguments. 
Large­scale introduction of courses on such calculational 
methodology, however, would encounter unsurmountable 
political problems.”   Edsger Dijkstra (2000)
dibio@unb.br
O imaginário  e o computador
dibio@unb.br
O imaginário  e o computador
dibio@unb.br
Na verdade, sistema típico...
dibio@unb.br
Memória, endereços, instruções
dibio@unb.br
Exemplos
● Estão em toda parte (automóveis, celulares, 
aparelhos de tevê, eletrodomésticos, trânsito, 
telecomunicações, bancos, bolsas de valores, 
hospitais, fábricas, escolas, corpo 
humano(próteses eletrônicas), aviões, espaço, etc)
dibio@unb.br
Processo computacional
Entrada
Saída
Algoritmo (sequência precisa de atividades
a serem executadas, e que transformam o conjunto de entrada 
na saída desejada)
dibio@unb.br
O que seria computável?
● Processos com algoritmos conhecidos, os quais 
param (terminam) em tempo finito.
● Buscamos então descobrir, estudar, analisar 
ALGORITMOS, para resolver problemas, e 
depois transferir as soluções (algoritmos) para que 
o computador faça de maneira diligente e 
repetitiva
dibio@unb.br
Métodos para resolução de 
problemas, computáveis...
● ESTRUTURAR (expressões, instruções, 
procedimentos (funções) independentes)
● “Dividir e conquistar”, refinamentos sucessivos a 
partir do ciclo (entrada, solução, saída) buscando 
com que partes (procedimentos) repetitivas sejam 
identificadas e isoladas;
● O mesmo conjunto de instruções, na mesma 
ordem, deve produzir sempre a mesma saída a 
partir de entradas iguais. 
dibio@unb.br
Complexidade de Problemas
● Abstrações por procedimentos (modularização, 
funções, encapsulamento)
● Abstrações por dados (organização de conjuntos 
de dados por semântica, operações e operadores, 
encapsulamento)
dibio@unb.br
Como projetar fluxo e prioridades 
em junções de tráfego?
dibio@unb.br
Dados simples
● Dados numéricos (e.g. inteiro, real)
● Dados simbólicos (e.g. caracteres)
dibio@unb.br
Dados Compostos
● Homogêneos (e.g. vetor, matriz, cadeia de 
caracteres (“string”))
● Não necessariamente homogêneos (e.g. Estrutura)
● Conjuntos, formas de inclusão, acesso, 
organização, algoritmos eficientes para uso em 
conjuntos e organizações diversas. (e.g. 
Sequências, prioridade, hierárquicos, fluxos) 
dibio@unb.br
Estruturas de Dados
● Formas/Métodos conceituais e concretos de 
organizar dados para armazenamento e 
manipulação eficientes 
dibio@unb.br
Problemas a lidar
● Como compactar grandes quantidades de dados? 
Dados heterogêneos
● Como encapsular, acessar, buscar, processar esses 
dados?
● Como organizar prioridade em acesso, processos, 
fluxos?
● Como comparar grande quantidade de dados?
● Como representar e processar jogos, estratégias, 
processos em automação, tempo real?
dibio@unb.br
Aprender
"The important thing is not to stop questioning. 
Curiosity has its own reason for existing. One 
cannot help but be in awe when he [or she!] 
contemplates the mysteries of eternity, of life, of 
the marvelous structures of reality. It is enough if 
one tries merely to comprehend a little of this 
mystery every day. Never lose a holy curiosity." 
(Albert Einstein [1879­1955]) 
dibio@unb.br
Práticas/Labs
● Sobre “Pair Programming”
● Projeto 1
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes