Please enable JavaScript.
Coggle requires JavaScript to display documents.
A Teoria da Computação e o profissional de informática (Conveniência do…
A Teoria da Computação e o
profissional de informática
Introdução
Como vivemos em um mundo imediato nos dias de hoje, varias profissões foram questionadas por sua adequação, como também a necessidade de se estudar e dominar assuntos abstratos
Tendencias tecnológicas
Cultivo da formação científica
(Re)aproveitamento de produtos
Motivação
No currículos de formação dos profissionais da área, nao falta:
Justificativa para a adoção de critérios cada vez mais restritivos
ao desenvolvimento de pesquisa em todas as universidades do mundo
Argumentos de apoio ao progressivo esvaziamento de conteúdo , de disciplinas enfraquecidas
Os Aspectos Teóricos da
Computação
A área mais extensa do conhecimento que se refere ao estudo da informação, é a informatica
Ciência da Computação, importante membro da informática
A Informática
George Boole idealizou funções que tornou possivel criar modelos precisos
A industrialização se enforteceu graças a modernidade, onde as maquinas resolvem os problemas de produção
Importantes nomes que contribuiram para a informatica no inicio: Gödel e Church
Informática e a Ciência da
Computação
A informática, com o auxilio de computadores digitais, estuda o processamento logico e automática da informação
Manifesta principalmente em desenvolvimento de computadores, programas, componentes mecânicos e eletrônicos
A Computação
O uso de algoritmo para resolver problemas, designa-se computação
Modelos computacionais pioneiros que se equiparam uns aos outros
As Funções Recursivas
Utilizada em matemática desde a muito tempo, foi inspirada pela a ciência como modelo computacional
As Gramáticas Gerativas
Permitem a representação de linguagens através do uso de regras de substiruição
O Calculo Lambda
Formalismo que foi empregado na representação de programas desenvolvidos segundo o paradigma de programação adotado pelas linguagens funcionais
Os Dispositivos Adaptativos
Baseados em autômatos, são modelos de computação capazes de representar fenômenos computacionais
Maquina de Turing
Modelo universal de computação que trabalha com operadores básicos
Ciência da Computação
Estuda os fundamentos e as práticas da computação e por meio de algorítimos, explora estruturas matemáticas que modelam fatos do mundo real
Para alcançar esse objetivo, é oferecido ao profissonal uma série de contribuiçao teóricas:
Base em Teoria dos Autômatos
Base em Complexidade Computacional
Base em Linguagens Formais
Teoria da Computação
Um dos grandes destaques da Ciência da Computação
Notável importância como sustentáculo conceitual de todas as matérias
Teoria dos conjuntos e lógica matemática funcionam como alicerces para muitas áreas da computação
Conveniência do Estudo de
Teoria
De acordo com Beckman, o campo de software básico, surgiu a partir da soma de esforços esparsos de profissionais
Segundo Greenlaw, o conhecimento da teoria auxilia o profissional até mesmo em aspectos da natureza humanistica
Utilização das técnicas de criptografia
Com a mudança frenquente de emprego no inicio da carreira, especialmente da area de computação, necessita-se de uma base conceitual sólida, afirma Reynolds
Temas-chave da Teoria da
Computação
Matemática discreta, teoria dos grafos, teoria dos conjuntos e teoria das funções recursivas;
Máquinas finitas sequenciais com entrada e saída, transdutores, máquinas de Mealy e de Moore;
Complexidade, intratabilidade;
Lógica matemática, gramáticas formais, modelos matemáticos, teoremas;
Máquinas universais, computabilidade, algoritmos;
Aspectos teóricos subjacentes a redes neurais, computação evolutiva e sistemas nebulosos.
Linguagens formais e autômatos;
Outros grandes destaques:
Expressões regulares
Formas gramáticas muito populares de descrição de linguagens regulares
Autômatos, transdutores e outras máquinas de estados clássicas
Se formulam com base em estados internos , função de transição e função de saída
Gramáticas gerativas
Propostas para aplicações em linguísticas
A teoria das relações e a álgebra relacional
Constituem fundamentos teóricos nos quais se baseiam muitas técnicas e métodos hoje disponíveis
A teoria da complexidade computacional e de algorítomos
Estuda os problemas que permitem a obtenção de soluções algorítmicas
A álgebra booleana e a teoria das máquinas sequenciais
Descrevem muitos fenômenos computacionais
Adaptatividade
Grande poder computacional que pode proporcionar, e pela compatibilidade que apresenta com os formalismos clássicos estudados na Teoria da Computação
As teorias dos conjuntos difusos
Contribuem para os fundamentos da inteligencia artifical moderna
Linguagens Formais e Autômatos
A importância do estudo desse assunto se manifesta de várias maneiras:
Sólido lastro para o desenvolvimento de inúmeras aplicações computacionais, entre as quais o processamento de linguagens, o reconhecimento de padrões e a modelagem de sistemas;
Determina um forte elo entre a teoria e a prática computacional;
Fundamentos teóricos para a área, através do estudo de assuntos tais como decidibilidade, computabilidade e complexidade computacional;
Possibilita que os conceitos e os resultados da teoria referente às linguagens, seus geradores, reconhecedores e analisadores possam ser aplicados de forma rígida;
Visão panorâmica das bases científicas da computação;
É o tema mais eclético e menos divorciado dos demais assuntos estudados na Teoria da Computação.
Linguagem de Programação
Temas teóricos mais relevantes relacionados com linguagem de programação são:
• A Lógica de Floyd-Hoare
A relativamente recente Teoria de Objetos, estabelecida por Abadi e Cardelli
O Cálculo Lambda e a Teoria dos Combinadores
As Semânticas Formais clássicas
Razões para a necessidade de um conhecimento profunda da teoria das linguagens de programação
Para o desenvolvimento de softwares de segurança
Todo sistema de software que oferece a seus
usuários uma interface
A necessidade crescente do desenvolvimento de sistemas de software de grande porte torna cada vez mais difícil as especificações dos programas
Estão presentes os sistemas que utilizam extensivamente de conceitos e conhecimentos teóricos relativos
As linguagens de programação modernas incorporam inúmeros conceitos não-triviais
A radicalização da aplicação do conceito de reaproveitamento de código tende a afastar os programadores das atividades mais criativas
Ciência da Programação
Outro argumento é ser dificil e até inviavel o emprego de tecnicas rigorosas para desenvolver e implementar programas de grande porte
Profissionais da área alegam ser muito mais importante que se disponha de uma especificação bastante precisa para um software a ser desenvolvido do que o correspondente programa estar correto
Argumentam que em vista a demora do prévio preparo de um profissional cuja esta apto a usa-los fluentemente, se torna lícito aceitar como satisfatória a qualidade de programas resultantes de desenvolvimentos artesanais
Alguns alegam que o mundo real dispensa provas formais
Pessoas que tem dificuldade na convivência com notações matemáticas, formalismos, técnicas rigorosas e provas formais, colocam objeções injustificativas de seu uso
Computabilidade
A Teoria da computabilidade abrange entre muitos outros assuntos:
Programas recursivos
Regras de prova para propriedades dos programas
Semântica denotacional
Auto-referência em computabilidade e teorema da recursão
Metodologia de programação e prova de correção de programas
Conjuntos, conjuntos recursivos, conjuntos recursivamente enumeráveis, teorema de Gödel
Técnicas de computabilidade e estado computável de problemas
Máquina de Turing e formulações alternativas da teoria da computabilidade
Estudo da enumeração e da universalidade das funções computáveis
Automatização da prova de teoremas
Aspectos da sintaxe e da semântica de lingua-gens de programação
Complexidade computacional
O estudo da Complexidade Computacional
exige a compreensão de fenômenos não triviais
Objeto de estudo
Variados formalismos estão disponíveis para sua modelagem e estudo
Uma vez abstraído e formalizados, podem ser analisados de maneira independente do particular formalismo com o qual foram representados
Os pesquisadores buscam para eles soluções que preferencialmente sejam ao mesmo tempo rápidas e compactas
São consideradas particularmente convenientes aquelas que apresentem requisitos polinomiais em suas exigências de área de trabalho e de tempo de resposta
as soluções mais adequadas na prática são
aquelas que apresentam comportamento polinomial de ordem
baixa
Tópicos dentro da temática da Complexidade Computacional
Lógica booleana e Lógica de Primeira Ordem: Estas formulações permitem criar sistemas de provas gerais e compreensíveis
O estabelecimento de Classes de Complexidade e sua inter-relação é um assunto complexo e com inúmeros pontos ainda em aberto o que motivou diversos trabalhos na área
Algoritmos: modelos de computação conhecidos podem ser convertidos algoritmicamente uns nos outros
Reduções e completude: Através das técnicas de redução, se torna possível estabelecer pontos em comum acerca da dificuldade apresentada pelos problemas pertencentes a toda uma classe de complexidade
A dificuldade apresentada por determinados problemas pode demonstrar-se útil e não indesejável como ocorre na maioria dos casos práticos
Máquina de Turing: Computabilidade e Decidibilidade: a Máquina de Turing mostra-se capaz de representar algoritmos sem significativa perda de eficiência
Computação paralela é uma área de interesse na qual se mostra mais necessário e mais árduo o estudo da complexidade computacional
Formação dos profissionais
da área
Como se formam os profissionais que trabalham com com putação
Tem-se observado uma queda cada vez mais pronunciada na qualidade da formação dos futuros profissionais da Computação no que tange à concepção e à implementação de programas
Nesses casos, sua formação é negligenciada
adoção de métodos baseados em formulações teóricas na qualidade dos produtos gerados pelos profissionais de computação
Tais formulações constituem, na prática, um grande desafio, representando um importante auxílio a atividades de projeto, e podem ser exploradas no estabelecimento de métodos de avaliação objetivos.
Principais metas que se costuma perseguir quando se utilizam tais métodos:
Alta qualidade técnico-científica para os produtos desenvolvidos;
Anteposição de um planejamento científico à aplicação de práticas tecnológicas;
Fundamentação científica para as decisões tomadas;
Expurgo conseqüente da prática de reaproveitamento míope de peças pré-fabricadas no desenvolvi-mento de produtos de software de alta qualidade.
Embasamento matemático sólido para os modelos desenvolvidos;