TEORIA DA COMPUTAÇÃO - ufersa.edu.br · Teoria da Computação -Aula 01 7. PROGRAMA DA DISCIPLINA...
Transcript of TEORIA DA COMPUTAÇÃO - ufersa.edu.br · Teoria da Computação -Aula 01 7. PROGRAMA DA DISCIPLINA...
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDOCURSO: CIÊNCIA DA COMPUTAÇÃO
Prof.ª Danielle Casillo
Aula 01 Aula 01 –– Apresentação da Apresentação da DisciplinaDisciplina
PLANO DE ENSINOPLANO DE ENSINO
� Nome: Teoria da Computação� Créditos: 4 – 60 horas� Período: 2011.1� Horário: terça das 20:30 às 22:20 e quinta das
18:40 às 20:3018:40 às 20:30� Professora: Danielle S. S. Casillo� Página: www.ufersa.edu.br� Sigaa: www.sig.ufersa.edu.br� Contato: [email protected]
Teoria da Computação - Aula 01 2
OBJETIVOS GERAISOBJETIVOS GERAIS
� Os alunos serão preparados para o estudo eaprofundamento da semântica e lógica dacomputação do ponto de vista decomputação do ponto de vista decomputabilidade; observando as linguagenscomo modelos computacionais e examinando asua expressividade.
Teoria da Computação - Aula 01 3
OBJETIVOS ESPECÍFICOSOBJETIVOS ESPECÍFICOS
� Serão fornecidos os fundamentos matemáticosde dois importantes paradigmas deprogramação: lógica e funcional.
� No aspecto prático, orientar-se-á aoestudante no tratamento de problemas simplese na implementação das soluções com técnicaslógicas e funcionais.
Teoria da Computação - Aula 01 4
METODOLOGIA DIDÁTICAMETODOLOGIA DIDÁTICA� Ensino:
◦ Aulas teóricas, estudos individuais e em grupo, resolução de exercícios.
� Avaliação:◦ Provas escritas;◦ Trabalhos realizados individualmente e/ou emgrupo;grupo;
◦ Seminários.� Data das avaliações:
◦ 14/04/2011 - 1ª avaliação◦ 24/05/2011 - 2ª avaliação◦ 28 a 30/06/2011 - Seminários◦ 05/07/2011 – Reposição◦ 07/07/2011 - 4ª avaliação
Teoria da Computação - Aula 01 5
PROGRAMA DA DISCIPLINAPROGRAMA DA DISCIPLINA
� Primeira Unidade:◦ Introdução e Conceitos Básicos◦ Programas◦ Máquinas◦ Computações e Funções Computadas◦ Computações e Funções Computadas◦ Equivalência de Programas e Máquinas◦ Verificação da Equivalência de Programas
Teoria da Computação - Aula 01 6
PROGRAMA DA DISCIPLINAPROGRAMA DA DISCIPLINA
� Segunda Unidade:◦ Máquinas Universais
� Codificação de Conjuntos Estruturados� Máquina de Registradores NORMA� Máquina de Turing� Máquina de Post� Máquina de Post� Máquina com Pilhas� Autômatos com Duas Pilhas
◦ Linguagem Lambda
Teoria da Computação - Aula 01 7
PROGRAMA DA DISCIPLINAPROGRAMA DA DISCIPLINA
� Terceira Unidade:◦ Seminários
Teoria da Computação - Aula 01 8
BIBLIOGRAFIABIBLIOGRAFIA
� BÁSICA:◦ Notas de Aula – Profª Danielle.◦ Teoria da Computação – MáquinasUniversais e Computabilidade.Tiarajú Asmuz Diverio e Paulo BlauthMenezes. 2ª Edição. Ed. Bookman.Menezes. 2ª Edição. Ed. Bookman.2008.
� COMPLEMENTAR:◦ Introdução à Teoria daComputação. Michael Sipser. 2ªEdição. Ed. Thompson. 2007.
Teoria da Computação - Aula 01 9
CIÊNCIA DA COMPUTAÇÃO CIÊNCIA DA COMPUTAÇÃO X X
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO� A importância da Teoria para a Prática é imensa!� A teoria para esta ciência se faz necessário para“iluminar o caminho” dos cientistas da“iluminar o caminho” dos cientistas dacomputação (práticos), dos engenheiros emcomputação, dos analistas de sistemas, em fim detodos os profissionais que usem a computação comoobjeto de estudo ou de trabalho. Mas antes deentender o que seria uma teoria para a ciência dacomputação vamos entender o que seria Ciência daComputação.
Teoria da Computação - Aula 01 10
CIÊNCIA DA COMPUTAÇÃOCIÊNCIA DA COMPUTAÇÃO
� Computação: tudo o que um computadorpode realizar.
� Mas o que é um computador?◦ Hardware e tecnologia.◦ Hardware e tecnologia.◦ Ex: calculadora, elevador, máquina de venderrefrigerante, CD player, impressora, ....
� A teoria nos fornece conceitos e princípios paranos ajudar entender a natureza geral daCiência do Computador.
Teoria da Computação - Aula 01 11
CIÊNCIA DA COMPUTAÇÃOCIÊNCIA DA COMPUTAÇÃO
� Definição: é o estudo dos algoritmos, suasaplicações e de sua implementação, naforma de software, bem como das estruturasmatemáticas indispensáveis à formulaçãoprecisa dos conceitos fundamentais da teoriaprecisa dos conceitos fundamentais da teoriada computabilidade e da computaçãoaplicada.
Teoria da Computação - Aula 01 12
CIÊNCIA DA COMPUTAÇÃOCIÊNCIA DA COMPUTAÇÃO
� Antes de 1920: computador era um termoassociado a pessoas que realizavam cálculos.
� Após 1920: a expressão máquina computacionalcomeçou a ser usada para referir-se a qualquermáquina que realize o trabalho de um profissionalcomputador.computador.
� O termo máquina computacional acabou perdendoespaço para o termo reduzido computador em1940. Alan Turing, conhecido como pai da Ciênciada Computação, inventou a Máquina de Turing,que posteriormente evoluiu para o computadormoderno.
Teoria da Computação - Aula 01 13
CIÊNCIA DA COMPUTAÇÃOCIÊNCIA DA COMPUTAÇÃO
“Ciência da computação tem tanto a vercom o computador como a Astronomia com otelescópio, a Biologia com o microscópio, ou aQuímica com os tubos de ensaio. A Ciência nãoestuda ferramentas, mas o que fazemos e oestuda ferramentas, mas o que fazemos e oque descobrimos com elas.”
Edsger Dijkstra
Teoria da Computação - Aula 01 14
O QUE É COMPUTAÇÃO?O QUE É COMPUTAÇÃO?
�� ComputaçãoComputação pode serdefinida como a solução deum problema ou,um problema ou,formalmente, o cálculo deuma função, através de umalgoritmo.
Teoria da Computação - Aula 01 15
A DISCIPLINA: A DISCIPLINA: TEORIA DA TEORIA DA COMPUTAÇÃOCOMPUTAÇÃO
� O campo dessa disciplina inclui um vasto lequede tópicos especiais, desde projetos demáquinas até programação.
� Para estudar os princípios básicos dacomputação, construiremos modelos abstratosde computadores e computação, estes modeloscontém as características importantes que sãocomuns tanto ao hardware quanto aosoftware.
Teoria da Computação - Aula 01 16
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO� A área de TC (Teoria da
Computação) procurafornecer fundamentosmatemáticos rigorosospara as diversas áreasda computação.da computação.
Teoria da Computação - Aula 01 17
• Conhecimento não “amarrado” à tecnologia
• Ferramentas matemáticas e métodos formaispara modelar fenômenos da computação
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO
• A TC introduz conceitos fundamentais que sãodesenvolvidos em outras áreas. A abordagemde reconhecimento de linguagens é a base detodo o estudo das Linguagens Formais,Semântica Formal, Compiladores, e todo o
Teoria da Computação - Aula 01 18
Semântica Formal, Compiladores, e todo oconjunto de disciplinas que tratam deLinguagens de programação.
O QUE É O QUE É TEORIA DA TEORIA DA COMPUTAÇÃOCOMPUTAÇÃO??
� A teoriateoria dada computaçãocomputação, um subcampo daciência da computação e matemática, buscadeterminar quais problemas podem sercomputados em um dado modelo decomputados em um dado modelo decomputação.
� Existem 3 áreas centrais da Teoria daComputação:◦ Autômatos◦ Computabilidade◦ Complexidade
Teoria da Computação - Aula 01 19
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO
� Estas áreas são interligadas pela seguintequestão: Quais são as capacidades elimitações fundamentais doscomputadores?
� Para cada uma das três áreas – autômatos,computabilidade e complexidade – essaquestão é interpretada diferentemente.
Teoria da Computação - Aula 01 20
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO� Teoria da Complexidade:
◦ Os problemas computacionais vem em diferentesvariedades: alguns são fáceis e outros difíceis.� Ex: Problema da ordenação – Fácil
Criptografia – Difícil◦ O que faz alguns problemas computacionalmente◦ O que faz alguns problemas computacionalmentedifíceis ou fáceis?� Entender qual o aspecto do problema é a raiz da
dificuldade;� Encontrar soluções que se aproximam da solução
perfeita;� Alguns problemas são difíceis somente na situação do
pior caso.
Teoria da Computação - Aula 01 21
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO
� Teoria da Computabilidade:◦ Classifica os problemas por meio da separaçãoentre os que são solúveis e os que não o são.� Ex: determinar se um enunciado matemático é
verdadeiro ou falso.
� As teorias da computabilidade e complexidade� As teorias da computabilidade e complexidadeestão intimamente relacionadas.◦ Na teoria da complexidade, o objetivo éclassificar os problemas como fáceis ou difíceis;
◦ Na teoria da computabilidade a classificação éfeita por meio dos problemas que são solúveis ounão.
Teoria da Computação - Aula 01 22
TEORIA DA COMPUTAÇÃOTEORIA DA COMPUTAÇÃO
� Teoria dos Autômatos:
◦ Lida com as definições e propriedades de modelosmatemáticos de computação.� Autômatos finitos: usados em processamento de
textos, compiladores e projeto de hardware.� Gramática livre-do-contexto: usado em linguagem de
programação, inteligência artificial.
Teoria da Computação - Aula 01 23
TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO HISTÓRICO:HISTÓRICO:
� A TTeoriaeoria dada ComputaçãoComputação teve início nosprimeiros anos do século XX, antes da invençãodos modernos computadores eletrônicos.
� Naquela época, os matemáticos estavamtentando descobrir quais problemastentando descobrir quais problemasmatemáticos poderiam ser resolvidos por ummétodo simples, e quais não poderiam. Oprimeiro passo estava em definir o significadode um "método simples" para resolver oproblema. Em outras palavras, eles precisavamde um modelo formal da computação.
Teoria da Computação - Aula 01 24
TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO HISTÓRICO:HISTÓRICO:
� Na década de 1920, computador era associado apessoas que realizavam cálculos;
� O termo máquina computacional referia-se aqualquer máquina que realize cálculos;qualquer máquina que realize cálculos;
� Os fundamentos matemáticos da ciência dacomputação moderna começaram a ser definidospor Gödel com seu Teorema da Incompletude,que mostra que existem limites no que pode serprovado ou desaprovado em um sistema formal.
Teoria da Computação - Aula 01 25
TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO HISTÓRICO:HISTÓRICO:
� Diversos modelos diferentes da computaçãoforam propostos pelos primeiros pesquisadores.
◦ Máquina de Turing: propunha a construção deuma máquina universal, executando auma máquina universal, executando aprogramação que lhe for passada;
◦ Funções Recursivas: compostas para operardiretamente sobre os números;
◦ Cálculo-Lambda: similar às Funções Recursivas.
Teoria da Computação - Aula 01 26
� Todos estes formalismos são equivalentes emtermos de poder computacional, ou seja,qualquer computação que possa ser realizadacom um modelo pode ser realizada comqualquer um dos outros modelos.
TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO HISTÓRICO:HISTÓRICO:
qualquer um dos outros modelos.
� As questões relativas à possibilidade de realizarcertos tipos de computação em determinadostipos de máquinas são estudadas pela Teoriada Computabilidade.
Teoria da Computação - Aula 01 27
� Alan Turing propôs, em 1936 um formalismopara representação de procedimentos efetivos.A intenção do modelo de Turing, denominado“Máquina de Turing”, foi simular, tanto
TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO HISTÓRICO:HISTÓRICO:
“Máquina de Turing”, foi simular, tantoquanto possível, as atitudes humanasrelacionadas à computação.
� Foi o primeiro trabalho a identificar programasescritos para uma “máquina computável”.
Teoria da Computação - Aula 01 28