TEORIA DA COMPUTAÇÃO - ufersa.edu.br · Teoria da Computação -Aula 01 7. PROGRAMA DA DISCIPLINA...

29
TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Aula 01 Aula 01 – Apresentação da Apresentação da Disciplina 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

� Assim, define-se programa como sendo umprocedimento efetivo, que permite descrevertodos os procedimentos possíveis que podemser executados em um computador.

TEORIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO HISTÓRICO:HISTÓRICO:

ser executados em um computador.

Teoria da Computação - Aula 01 29