TEORIA DA COMPUTAÇÃO
Motivação
Licenciatura em Ciência e Tecnologia da
Computação
Licenciatura em Engenharia Informática e de
Computadores (Prep.)
1
TEORIA DA COMPUTAÇÃO

CIÊNCIAS DA COMPUTAÇÃO
Processamento da informação
 Processos de informação
 Estruturas de informação e respectivos
procedimentos de representação
 Implementação de sistemas
 ...

2
PRINCIPAIS ÁREAS DE ESTUDO DAS CIÊNCIAS DA
COMPUTAÇÃO

Concepção

Formulação

Implementação em computador

Análise

Avaliação de algoritmos
3
RELAÇÃO DAS CIÊNCIAS DA COMPUTAÇÃO COM OUTRAS
CIÊNCIAS

MATEMÁTICA

ENGENHARIA

LINGUÍSTICA

BIOLOGIA

ETC.
4
QUESTÕES FUNDAMENTAIS NAS CIÊNCIAS DA
COMPUTAÇÃO

O que é que pode ser automatizado de
forma eficiente?

Pode um problema ser resolvido por um
computador? É possível escrever o
respectivo programa? O programa estará
correcto? É eficiente?

Como garantir a correcção de programas?

Como compor sistemas?
5
ALGORITMO
Noção que está no centro da Ciência
da Computação
 É um método para desempenhar uma
operação de forma mecânica
 Os primeiros algoritmos (informais)
surgiram no tempo da Grécia Antiga
 A formulação precisa do conceito de
algoritmo só surgiu no século XX

6
Estudos actualmente desenvolvidos em
torno da noção de algoritmo:







Limitações do método algorítmico
(computabilidade e decidibilidade)
Eficiência (complexidade)
Correcção (verificação)
Linguagens de programação (sintaxe e
semântica)
Modelos de dados (teorias de tipos de
dados)
Paradigmas da programação (imperativo,
declarativo, etc.)
...
7
Alguns modelos alternativos no
estudo da computabilidade






Turing : Máquina de Turing (1936);
Church: Funções definidas por termos  (1936);
Gödel e Kleene : Funções (parciais) recursivas
(1936);
Post : Sistemas de derivação de Post (1943)
Markov : Algoritmos de Markov(1951)
Shepherdson e Sturgis : Máquina URM (1963)
Todas estas abordagens definem a mesma classe de
funções.
Máquinas Físicas versus Máquinas Abstractas
8
Postulado de Church- Turing

A classe intuitiva e formal das funções
efectivamente computáveis coincide com a classe
das funções computáveis pela máquina URM.

Diversas propostas para a formulação precisa do
conceito de função efectivamente computável têm
conduzido à mesma classe de funções.

Todas as funções efectivamente computáveis
conhecidas são computáveis pela máquina URM
(Turing,...).

Ainda não foi encontrada uma função
intuitivamente computável que não seja
computável pela máquina URM (Turing,...).
9
“Mapa” dos principais conceitos associados a programa
Matemática
discreta
Arquitectura de
Computadores
Álgebra Especificações
Estruturas de
Informação
Controlo
Processadores
de linguagens
Abstracções
Processo
Computacional
Linguagem
Programa
Estudo de
linguagens
formais
Complexidade
Computacional
Algoritmo
Computabilidade
Fundamentos
Teoria da
Computação
Adaptado de “Programação em Scheme”, J. Pavão Martins e Mª dos Remédios Cravo, IST Press, 2004
10
“Mapa” dos principais conceitos associados a programação
Arquitectura de Programas
Programação
imperativa
Inteligência
artificial
Interfaces
gráficas
Técnicas
Programação
Paradigmas
Programação
funcional
Programação
com objectos
Bases de Dados
Programação
em Lógica
Sistemas operativos
Arquitectura de Computadores
Adaptado de “Programação em Scheme”, J. Pavão Martins e Mª dos Remédios Cravo, IST Press, 2004
11
“Os especialistas de informática, na vida de todos
os dias, devem ser capazes de traduzir
problemas reais em abstracções baseadas no
uso de modelos formais, para manipular essas
descrições formais e para raciocinar acerca das
suas propriedades de modo rigoroso. Esta
atitude muito particular distingue o especialista
de informática da maior parte dos técnicos
profissionais...
Os tópicos teóricos não devem ser considerados
como opções a serem mais tarde acrescentadas
aos currículos. Deviam antes ser vistos como a
base que inspirará e informará todos os
currículos, e, em especial, todos os outros
cursos práticos"
In Theoretical Foundations of Computer Science
Mandrioli e Ghezzi
John Wiley, 1987
12
Download

ciências da computação