Post on 25-Oct-2021
Teoria da Computação(cod.14343)
Departamento de InformáticaUniversidade da Beira Interior
Figura 1: Decision Procedure
Esta página no formato pdf
1
Paper do David Hilbert sobre o seu programa para a matemática do séculoXX (“os 23 problemas”) aqui
Paper do Alan Turing introduzindo as Máquinas de Turing aquiPaper do Alonzo Church introduzindo o Cálculo Lambda aqui
1 Novidades• Mooshak configurado com os 3 problemas.
• Primeira aula, online, no Teams.
• As aulas e os dados da presente disciplina serão divulgados no MicrosoftTeams 20-21_TEORIA DA COMPUTAÇÃO.
• Regra de Ouro:
Qualquer tipo de fraude em qualquer dos itens de avaliação implica a reprovação imediata.
• O sistema mooshak será utilizado para a avaliação prática na presentedisciplina. Queira proceder ao seu registo. Aceita-se a formação degrupos de, no máximo, duas pessoas. No processo de registo, escolhe ogrupo UBI e defina o nome da equipa da seguinte forma.
Se for um grupo de um só elemento: numero de aluno + primeironome. Por exemplo, Luís com o numero 12345 tem por registo mooshak"12345Luis".
Se for um grupo de duas pessoas: numero de aluno do primeiro ele-mento (o de número mais baixo) + primeiro nome+numero de alunodo segundo elemento + primeiro nome. Assim se Luís forma grupocom o João (aluno 13245), então o grupo registra-se com o nome“12345Luis13245Joao”.
• Como colocar uma dúvida ao regente da Unidade Curricular?
1. Comparecer nas aulas e colocá-la directamente ao regente
2. Comparecer no horário de atendimento do regente e colocá-la di-rectamente
2
3. enviar um email ao regente (desousaUUU@UUUdi.ubi.pt, (retireos UUU) ) com o assunto "TC: XXXX"em que XXX é o título dadúvida em questão. Qualquer outro formato no assunto arriscacondenar o email ao esquecimento.
• Inscrição em turmas práticas: via site dos serviços académicos.
• As aulas práticas começam logo na primeira semana de aulas.
• Os alunos com estatuto de trabalhador estudante devem procurar oregente para discutir eventual adaptação dos critérios de avaliação.
• Primeira versão da página. Encontrará aqui as novidades associadasà disciplina de Teoria da Computação. A sua consulta regular énecessária ao bom funcionamento da Unidade Curricular.
Conteúdo1 Novidades 2
2 Docentes 4
3 Objectivos 4
4 Programa 44.1 Competências da UC ou Resultados da Aprendizagem . . . . . 5
5 Critérios de Avaliação 55.1 Actividades de Ensino-Aprendizagem e Metodologias Pedagó-
gicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55.2 Fraudes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65.3 Componente Prática . . . . . . . . . . . . . . . . . . . . . . . 65.4 Componente Teórica . . . . . . . . . . . . . . . . . . . . . . . 65.5 Concessão de Frequência e Avaliação Contínua . . . . . . . . . 65.6 Avaliação por Exame . . . . . . . . . . . . . . . . . . . . . . . 7
6 Datas Importantes 7
7 Horário 8
3
8 Atendimento 8
9 Material Pedagógico e Funcionamento da Disciplina 8
10 Bibliografia Principal 11
2 Docentes• Simão Melo de Sousa (regente) - Gabinete 3.17 - Laboratório Release
(6.25) - Bloco VI.
3 ObjectivosExistem limites à capacidade de resolução de problemas por um computador,mesmo na hipótese “idealista” de ausência de restrições, que sejam essas otempo (de execução) ou o espaço (memória).
Para delinear esses limites, visaremos:
1. perceber a capacidade de computação das máquinas, assim como osseus limites teóricos. Precisaremos de definir formalmente o que é e oque não é um programa, um algoritmo, ou mais genericamente o que éum tratamento efectivo;
2. perceber os conceitos que fundamentam as linguagens de programação.Precisaremos de determinar e estudar formalmente as construções quedeterminam a expressividade (ou capacidade de computação) das lin-guagens de programação assim como o comportamento dos programas.
4 Programa• Apresentação Contextual e Histórica da Teoria da computação
• Modelos da computação: dos autómatos (de estados finitos, com pilha)às máquinas de Turing.
• Modelos de computação alternativos: Funções recursivas de Kleene ecalculo lambda.
4
• Programação em modelos da computação.
• Tese de Church-Turing. Provas de equivalência de modelos.
• A não computabilidade e a indecidibilidade: Problemas indecidíveis,técnica da diagonalização, técnica da redução.
• Complexidade. Introdução: problemas tratáveis e problemas intra-táveis. Critérios de catalogação (memória, tempo, etc.). Caracteri-zação das classes NP, P e NP-Completo. Problemas NP-Completos:Exemplos. Técnica da redução polinomial para a demonstração deNP-completude.
4.1 Competências da UC ou Resultados da Aprendiza-gem
O aluno deverá ser capaz de perceber e usar a capacidade de computaçãodas máquinas, assim como os seus limites teóricos.
Deverá ser capaz de formalizar adequadamente e avaliar se determinadosproblemas tem solução computacional ou não.
Deverá perceber e saber usar modelos, técnicas e algoritmos de com-putação simbólica introduzidos na resolução de problemas informáticos dodia-a-dia.
5 Critérios de Avaliação
5.1 Actividades de Ensino-Aprendizagem e Metodolo-gias Pedagógicas
Por fim a avaliar as competências adquiridas, as actividades de Ensino-Aprendizagem avaliarão tanto a compreensão dos conceitos teóricos expostoscomo a capacidade em por estes em prática.
Assim, a avaliação será constituída por duas componentes: a componenteprática (exercícios práticos entregues à equipa docente) e a componenteteórica (provas escritas).
Mais precisamente a avaliação será realizada por uma prova escrita e poravaliação contínua baseada na resolução de exercícios práticos.
5
5.2 Fraudes
A equipa docente realça que qualquer tipo de fraude em qualquer dos itensdesta disciplina implica a reprovação automática do aluno faltoso (i.e. NãoAdmissão), podendo ainda vir a ser este alvo de processo disciplinar.
Listamos a seguir as diferentes componentes da avaliação.
5.3 Componente Prática
• Esta avaliação mede em termos práticos a aquisição dos conceitos ex-postos. Como tal é baseada na avaliação da resolução de exercíciosdurante as práticas laboratoriais.
• Os 3 exercícios avaliados são resolvidos de uma forma sequencial. Osenunciados serão publicados no inicio do semestre. As datas exactas deentrega encontram-se na secção 6. A entrega é feita de forma electrónicano site mooshak da UC.
• A Nota da Componente Prática (NCP, 20 valores) é a soma dos valoresatribuídos aos diferentes exercícios resolvidos.
5.4 Componente Teórica
A avaliação da componente teórica consiste numa única prova escrita (frequên-cia), prevista na data anunciada na secção 6.
Da avaliação qualitativa da frequência resulta a Nota da ComponenteTeórica (NCT, 20 valores).
5.5 Concessão de Frequência e Avaliação Contínua
O parâmetro de "Frequência"atribuído no final desta unidade curricular tra-duz, no contexto da avaliação contínua, a "avaliação mínima"do estudanteao longo do processo de ensino-aprendizagem no final das actividades decontacto.
Considera-se que o estudante demonstrou ter adquirido o grau de conhe-cimentos mínimos (durante o processo de aprendizagem ao longo das activi-dades lectivas) quando este demonstrou as mínimas competências em cadacomponente avaliada.
6
É assim concedido Frequência ao aluno que obteve os mínimos (6) emvigor na Universidade da Beira Interior em ambas as componentes (NCP eNCT).
No caso de Frequência, a avaliação quantitativa, designada aqui de notada avaliação contínua, é determinada da seguinte forma:
componente prática (NCP)× 0.8 + componente teórica (NCT)× 1.2
2
Se a avaliação quantitativa resultar numa nota maior ou igual a 10 entãoo aluno é dispensado de exame (Frequência com dispensa de exame).
5.6 Avaliação por Exame
• A prova escrita do exame substituirá a Nota da Componente Teóricada avaliação contínua, dando uma nova NCT.
• Assim a nota final (NFin) após exame é calculada da seguinte forma:
NFin = if (NCT ≥ 6) thenNCT × 1.2 +NCP × 0.8
2else Reprovado
6 Datas Importantes• Data da Frequência : 11 de Janeiro de 2021.
• Entrega do primeiro exercício : semana do 26 de Outubro de 2020.
• Entrega do segundo exercício : semana do dia 23 de Novembro de 2020.
• Entrega do terceiro exercício : semana do dia 4 de Janeiro de 2021.
• Exames : (conferir no site dos académicos)
7
7 Horário
Tipo de aula Horário Sala DocenteTeórica Segunda-Feira das 9h00 às 11h00 6.03 S. Melo de SousaPráticas Laboratoriais Segunda-Feira das 16h00 às 18h00 6.13 S. Melo de SousaPráticas Laboratoriais Terça-Feira das 14h00 às 16h00 6.13 S. Melo de SousaPráticas Laboratoriais Quarta-Feira das 16h00 às 18h00 6.13 TBDPráticas Laboratoriais Quinta-Feira das 16h00 às 18h00 6.13 TBDPráticas Laboratoriais Sexta-Feira das 14h00 às 16h00 6.13 TBDPráticas Laboratoriais Sexta-Feira das 16h00 às 18h00 6.13 TBD
(TBD: Por definir)
8 AtendimentoPor marcação (e.g. via email) ou
Horário DocenteSegunda-Feira das 11h00 às 13h00 S. Melo de Sousa
9 Material Pedagógico e Funcionamento da Dis-ciplina
Os Apontamentos serão atempadamente disponibilizados nas aulas e pormeios electrónicos. É esperado e assumido que o aluno tenha lido os ace-tatos referentes ao capítulo em curso antes das aulas teóricas.
Teóricas
Computação Simbólica e Programação consultar a página seguinte(link)
8
Modelos de Computação
• Aula Inaugural - O nascer de uma disciplina - Introduçãocontextual e histórica à Teoria da Computação (em forma de sebenta)
• Capítulo: complementos sobre técnicas matemáticas
– Complementos sobre técnicas matemáticas para a Teoria da Com-putação (mais detalhes sobre indução estrutural) - suporte peda-gógico auxiliar
• Capítulo: Conceitos preliminares à Teoria da Computação e à Teoriadas Linguagens Formais
• Capítulo: Autómatos Finitos
– Acetatos manuscritos "automatos" num só pdf
– Acetatos manuscritos "automatos" formato RAR
• Capítulo: Álgebras de Kleene e expressões regulares
• Capítulo: Algoritmia das strings
• Capítulo: Linguagens e Gramáticas
• Capítulo: Autómatos de Pilha e Linguagens Algébricas
• Capítulo: Bibliotecas e Ferramentas para o processamento de lingua-gems
• Capítulo: Máquinas de Turing
• Capítulo: Funções Recursivas de Kleene
Computabilidade e Teoria da Complexidade
• Capítulo: A não-computabilidade
• Capítulo: A teoria da complexidade
9
Código OCaml para suporte às aulas
• Execução genérica de autómatos finitos não determinísticos com ε-transições (em ocaml)
• Execução genérica de autómatos finitos determinísticos (em ocaml)
Práticas• Ficha: Fundamentos da Computação
• Ficha: Técnicas Matemáticas
• Ficha: Introdução às Linguagens Formais
• Ficha: Linguagens Regulares e Autómatos
• Ficha: Linguagens regulares e os seus limites
• Ficha: Gramáticas, Linguagens Formais e Linguagens Algébricas
• Ficha: Máquinas de Turing
• Ficha: Funções recursivas de Kleene
• Ficha: A não computação
• Ficha: Complexidade algorítmica
Algumas resoluções
• Zip contendo enunciados de provas de anos anteriores
• Correcção da Frequência 2011/2012
Exercícios Por EntregarPor Definir.
• Problema A: Primeiro exercício por entregar (pdf)
10
• Problema B: Segundo exercício por entregar (pdf)
• Problema C: Terceiro exercício por entregar (pdf)
10 Bibliografia PrincipalAs referencias principais são: [10, 7, 8, 12, 1] utilizaremos ocasionalmente asreferências [2, 3, 11, 9, 5, 4, 6].
Referências[1] J.B. Almeida, M.J. Frade, J.S. Pinto, and S. Melo de Sousa. Rigorous
Software Development, An Introduction to Program Verification, vo-lume 103 of Undergraduate Topics in Computer Science. Springer-Verlag, first edition, 307 p. 52 illus. edition, 2011.
[2] A. Arnold and I. Guessarian. Mathematics for Computer Science.Prentice-Hall, 1996.
[3] Olivier Carton. Langages formels, Calculabilité et Complexité. VuibertEd., June 2014.
[4] E. Chailloux, P. Manoury, and B. Pagano. Developing applications withobjective caml. http://caml.inria.fr/oreilly-book, 2003.
[5] Chris Hankin. Lambda Calculi: A Guide for Computer Scientists, vo-lume 3 of Graduate Texts in Computer Science. Clarendon Press, Ox-ford, 1994.
[6] Jason Hickey, Anil Madhavapeddy, and Yaron Minsky.Real World OCaml. O’Reilly, 2014.
[7] J.E. Hopcroft, R. Motwani, and J.D. Ullman. Introduction to automatatheory, languages, and computation. Pearson education, third edition,560 pages. edition, 2006.
[8] Dexter Kozen. Automata and Computability. Springer-Verlag, NewYork, 1997.
11
[9] Dexter Kozen. Theory of Computation. Springer, New York, 2006.
[10] Harry R. Lewis and Christos H. Papadimitriou. Elements of the Theoryof Computation. Prentice Hall PTR, Upper Saddle River, NJ, USA,1997.
[11] P. Linz. An introduction to formal languages and automata. Jones andBartlett Publisher, 2006.
[12] M. Sipser. Introducton to the Theory of Computation. PWS Publishing,2006.
Enviar comentários e dúvidas para (retire os UUU) : desousaUUU@UUUdi.ubi.pt
12