Baixe o app para aproveitar ainda mais
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 pseudocó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 symbolmanipulating, calculating arguments is that their design is much better teachable than the design of verbal/pictorial arguments. Largescale 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 [18791955]) 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
Compartilhar