2021 Q1

MCTA015-13 - Linguagens Formais e Automata

Professora: Carla Negri Lintzmayer, carla.negri@ufabc.edu.br

piadinha


🚨 Avisos importantes (fique atento sempre!)

📌 [07/06] Avisos finais:
  1. Corrigi a prova de recuperação. Se você a fez, enviei por email com alguns comentários.
  2. As notas finais estão na planilha na seção de notas.
  3. Se você deseja solicitar revisão de nota, me envie mensagem pelo Discord ou por e-mail indicando qual questão você quer que eu reveja e o motivo de você achar que a minha correção foi errada.
    Peço que isso seja feito até o dia 15/06.
[09/05] Avisos (semi-)finais importantes:
  1. Corrigi a prova 2. Se você a fez, enviei por email com alguns comentários.
  2. As notas finais (pré-rec) estão na planilha na seção de notas.
  3. A prova de recuperação pode ser realizada por qualquer aluno que ficou com conceito D ou F.
    Se você deseja fazê-la, me envie um email dizendo seu nome e O NOME DA DISCIPLINA no título, por favor.
    A PROVA SERÁ ENVIADA APENAS PARA QUEM MANIFESTAR INTERESSE.
  4. Fiz um formulário anônimo de fim de curso com perguntas específicas dessa modalidade à distância.
    Peço que você gaste mais esses minutinhos com a disciplina para me ajudar a melhorar: clique aqui.
  5. Se você deseja solicitar revisão de qualquer nota, me envie mensagem PELO DISCORD indicando qual questão você quer que eu reveja e o motivo de você achar que a minha correção foi errada.
    Prefira fazer isso amanhã (10/05), pois as notas serão lançadas no dia 11/05.
  6. Por fim, estarei disponível pelo Discord para tirar dúvidas sobre a recuperação a qualquer momento do recesso.
[25/abr] Liberei os bônus das listas 1 e 2. Qualquer dúvida, entrar em contato pelo chat do Discord.
[17/abr] Corrigi a prova 1. Se você a fez, enviei por email com alguns comentários. As notas e os critérios estão na planilha na seção de notas.
[29/mar] Com a manutenção dos calendários acadêmicos nesse período de antecipação de feriados, o cronograma de aulas e atendimentos está mantido. Veja mais no Discord.
[29/mar] Detalhes da prova 1 substitutiva na seção cronograma.
[25/mar] Atenção! Sobre o informe da reitoria, veja a seção de avisos no Discord.
[29/jan] O cronograma foi alterado para seguir o calendário de reposições. Com isso, as provas tiveram Duas datas adiadas em uma semana.
[26/jan] Leia a seção sobre 🔥🔥🔥 como será a disciplina 🔥🔥🔥 sem falta!
[26/jan] Apenas para matriculados e alunos especiais: 🔥🔥🔥 grupo no Discord 🔥🔥🔥 e formulário de início de curso.
[26/jan] Site no ar. Estude-o como se o seu conteúdo fosse ser cobrado na prova (Será que não vai? 🤔).


🙋 Como será a disciplina?

Nosso meio de comunicação principal será o grupo na ferramenta Discord.
Por favor, participe do grupo apenas se você está matriculado na disciplina ou é aluno especial (e falou comigo).
O site sempre será mantido atualizado, porém comunicados menores e atendimentos serão pelo Discord.

Aliás, o servidor no Discord pode e deve ser utilizado em qualquer horário, para atendimento assíncrono.

As videoaulas com os conteúdos da disciplina serão disponibilizadas na seção Cronograma, com antecedência de ao menos uma semana antes da data prevista.
Os conteúdos foram distribuídos da forma como eles seriam dados em um curso presencial.

Atenção! Três aulas serão dadas de forma síncrona, como pode ser visto no cronograma.
A sua participação é essencial nelas, mas elas serão gravadas e disponibilizadas logo em seguida, para quem não puder participar.

Nos horários previstos das aulas, estarei online pela ferramenta Google Meet:

O link do Google Meet está disponível no servidor do Discord.
Esses horários devem ser usados para tirar dúvidas do conteúdo e também para discutir a solução de exercícios.

Sugestão de organização dos estudos: assista aos vídeos com atenção, sem fazer anotações. Depois, leia os materiais de apoio enquanto faz anotações. Existem mais exemplos nesses materiais e detalhes que podem passar despercebidos nos vídeos.

Idealmente, siga o cronograma: se no dia está previsto o conteúdo ×, então use o atendimento para tirar dúvidas sobre ×, mesmo que você tenha só aquele horário para assistir aos vídeos.
Mesmo que você não consiga seguir esse "comportamento ideal", não deixe de usar os horários de atendimento 🥺🙏!

Como estamos fazendo a disciplina à distância, eu preciso confiar no material que você vai me entregar.
Meu único pedido é: seja o autor das suas atividades.
Isso basicamente significa: não copie solução encontrada na internet ou feita por outra pessoa.
É claro que você pode e deve trocar ideias com os colegas, porque isso realmente ajuda no aprendizado.
Eventualmente, ver soluções já prontas também ajuda, mas apenas se você entendê-las tão bem que possa, depois, responder sozinho o mesmo problema.
Qualquer violação às regras descritas na seção sobre plágio implicará em descarte dos conceitos atribuídos a TODAS as tarefas avaliativas regulares de TODOS os envolvidos, causando assim suas reprovações automáticas com conceito F. Veja detalhes sobre a avaliação na seção Avaliação.

Por fim, o site tem bastante informação, então leia-o com bastante cuidado.
Meu objetivo aqui é que você aprenda o conteúdo dessa disciplina da melhor forma possível.
Por isso, converse comigo sempre.
Qualquer dúvida e feedback são bem vindos, de verdade.
Acho que é isso, boas aulas!

Importante!

Todas as aulas, com e sem participação dos alunos, serão gravadas e disponibilizadas online segundo a Licença Creative Commons Atribuição-Não Comercial 4.0 Internacional (CC-BY-NC).
Todos os participantes do curso dão sua tácita e irrevogável autorização para que suas imagens e falas sejam transmitidas, gravadas e editadas segundo a licença acima pelo docente responsável, sem nenhuma cobrança, para uso em distintos canais de comunicação e peças publicitárias sem fins comerciais.



🧐 Ementa da disciplina

MCTA015-13 - Linguagens Formais e Automata

Conceitos básicos. Linguagens regulares: autômatos determinísticos e não-determinísticos, expressões regulares. Linguagens livres de contexto: gramática, autômatos a pilha. Linguagens recursivamente enumeráveis: máquinas de Turing determinísticas e não-determinísticas. Indecidibilidade: o problema da parada. Complexidade: definição das classes P e NP.

Objetivos: (i) Apresentar os conceitos fundamentais da teoria da computação. (ii) Familiarizar o aluno com modelos teóricos de um computador e o tratamento formal de tais modelos. (iii) Apresentar ao aluno as diferentes classes de linguagens. (iv) Preparar o aluno para o posterior estudo de técnicas de construção de Compiladores e processamento de Linguagem Natural. (v) Refinar a habilidade do aluno para tratar com conceitos formais abstratos.



🖖 Recomendação

Para facilitar o acompanhamento do curso, é recomendado que você possua:

Preparei esse material de 🔥revisão🔥 que contém tudo que precisamos na disciplina. Também tenho vídeos com definição e exemplos de indução.

Outros materiais de apoio:



📚 Bibliografia e outros materiais

  1. [S] Sipser, M.. Introdução à teoria da computação. 2a edição. Thomson Learning. 2007. (ERRATA da versão em inglês. Tanto em inglês quanto em português, existem vários errinhos.)
  2. [HUM] Hopcroft, J. E.; Ullman, D. J.; Motwani, R.. Introdução à teoria de autômatos, linguagens e computação. 2a edição. Editora Campus. 2003.
  3. [V] Vieira, N. J.. Introdução aos Fundamentos da Computação: Linguagens e Máquinas. 1a edição. Cengage Learning. 2006.
  4. Grupo do Whatsapp criado e mantido pelos alunos.


📆 Cronograma

Aula 1 - 1/fev 🎥🎥 LIVE (aula síncrona) 🎥🎥
Aula 2 - 3/fev
  • Alfabetos e linguagens. Autômatos finitos determinísticos (AFDs). Linguagens regulares (LRs).
  • Vídeos (tempo total = 89min):
  • Quiz.
  • Referências: Seção 1.1 [S] e Seção 2.2 [HUM].
  • Material complementar: AFD (Vídeo-aulas prof. Lucrédio UFSCar).
Aula 3 - 8/fev
  • Projeto de AFDs. Simulação de AFDs. (no presencial, essa aula exige sua participação, então faça os exercícios pedidos nos vídeos antes de ver as respostas)
  • Vídeos (tempo total = 82min):
  • Quiz.
  • Referências: Seção 1.1 [S] e Seção 2.2 [HUM].
  • Material complementar: JFLAP.
Aula 4 - 10/fev
  • Autômatos finitos não determinísticos (AFNs). (fazer os exercícios da lista 1 após os vídeos)
  • Vídeos (tempo total = 65min):
  • Quiz.
  • Referências: Seção 1.2 [S] e Seção 2.3 (2.3.1 a 2.3.4 apenas) e 2.5 [HUM].
  • Material complementar: AFN (Vídeo-aulas prof. Lucrédio UFSCar), Transições epsilon.
  • Exercícios resolvidos:
15/fev (Feriado carnaval 🎉)
  • Reposição em 27/04 (terça-feira).
  • Aproveite para fazer exercícios sobre criação de AFDs e AFNs!
17/fev (Feriado carnaval 🎉)
  • Reposição em 29/04 (terça-feira).
  • Aproveite para fazer exercícios sobre criação de AFDs e AFNs!
Aula 5 - 22/fev
  • AFDs vs AFNs. Simulando AFNs. Propriedades das LRs.
  • Vídeos (tempo total = 105min - calma, cada um é curtinho :D):
  • Quiz.
  • Referências: Seção 1.1, 1.2 [S] e Seção 4.2 [HUM].
  • Material complementar: AFN vs. AFD (Vídeo-aulas prof. Lucrédio UFSCar).
  • Exercícios resolvidos:
Aula 6 - 24/fev
  • Expressões regulares. (no presencial, essa aula exige sua participação, então faça os exercícios pedidos nos vídeos antes de ver as respostas)
  • Vídeos (tempo total = 38min)
  • Quiz.
  • Referências: Seção 1.3 [S] e Seção 3.1 [HUM].
  • Material complementar: Expressões regulares (Vídeo-aulas prof. Lucrédio UFSCar).
Aula 7 - 1/mar
Aula 8 - 3/mar
  • Lema do bombeamento para LRs. Discussão final sobre LRs.
  • Vídeos (tempo total = 83min)
  • Quiz.
  • Referências: Seção 1.4 [S] e Seções 4.1 e 4.3 [HUM].
Aula 9 - 8/mar
  • Gramáticas livres de contexto (GLC). Linguagens livres de contexto (LLCs).
  • Vídeos (tempo total = 87min):
  • Quiz.
  • Referências: Seção 2.1 [S] e Seções 5.1 e 5.2 [HUM].
Aula 10 - 10/mar
  • Mais exemplos com GLCs. Autômatos com pilha (APs).
  • Vídeos (tempo total = 78min):
  • Quiz.
  • Referências: Seções 2.1 e 2.2 [S] e Seções 6.1 e 6.2 [HUM].
Aula 11 - 15/mar
  • APs vs GLCs. Simulação de GLCs e APs. Propriedades das LLCs.
  • Vídeos (tempo total = 38min):
  • Quiz.
  • Referências: Seção 2.2 [S] e Seções 6.3 e 7.3 [HUM].
Aula 12 - 17/mar
  • Lema do bombeamento para LLCs. Discussão final sobre LLCs.
  • Vídeos (tempo total = 51min):
  • Quiz.
  • Referências: Seção 2.3 [S] e Seções 7.2 e 7.4 [HUM].
Aula 13 - 22/mar 🎥🎥 LIVE (aula síncrona) 🎥🎥
  • Checkpoint: revisão e dúvidas para prova.
  • Vídeo (tempo total = 110min):
Aula 14 - 💥💥PROVA 1💥💥 - 24/mar
  • Das 20h do dia 24/mar às 21h do dia 27/mar - Detalhes serão enviados por e-mail
  • Lembre-se de entregar as suas respostas das listas 1 e 2 até as 20h do dia 24/mar.
Aula 15 - 29/mar
  • Máquinas de Turing (MTs).
  • Vídeos (tempo total = 93min):
  • Quiz.
  • Referências: Seção 3.1 [S].
Aula 16 - 31/mar
  • Variações de MTs. MTs e algoritmos. Tese Church-Turing.
  • Vídeos (tempo total = 70min):
  • Quiz.
  • Referências: Seções 3.2, 3.3 [S], Seção 8.6 [HUM].
Aula 17 - 5/abr
Aula 18 - 7/abr
  • Problemas Turing-Reconhecíveis e Turing-irreconhecíveis. O método da diagonalização.
  • Vídeos (tempo total = 56min):
  • Quiz.
  • Referências: Seção 4.2 [S].
Aula 19 - 12/abr
  • Redução: introdução informal e formal.
  • Vídeos (tempo total = 49min):
  • O quiz dessa aula está junto com o da aula 20.
  • Referências: Capítulo 5 [S].
Aula 20 - 14/abr
  • Exemplos de redução para provar indecidibilidade e irreconhecibilidade.
  • Vídeos (43min):
  • Quiz.
  • Referências: Capítulo 5 [S].
Aula 21 - 19/abr
  • Teoria da complexidade: tempo de execução e notação assintótica.
  • Vídeos (tempo total = 68min):
  • Quiz.
  • Referências: Capítulo 7 [S].
21/abr (Feriado Tiradentes 🦷)
  • Reposição em 7/05.
Aula 22 - 27/abr (na terça-feira às 21h, por ser reposição)
  • Teoria da complexidade: classes P, NP, NP-completo. Problemas NP-completos.
  • Vídeos (tempo total = 53min):
  • Quiz.
  • Referências: Capítulo 7 [S].
Aula 23 - 29/abr 🎥🎥 LIVE (aula síncrona) 🎥🎥 (na quinta-feira às 19h, por ser reposição)
  • Checkpoint: revisão e dúvidas para prova.
  • Vídeo (tempo total = 123min):
💥💥PROVA 1 SUB💥💥 - 30/abr
  • Das 20h do dia 30/abr às 21h do dia 3/mai - Detalhes serão enviados por e-mail
  • Para os alunos que indicaram interesse em fazê-la via e-mail, quando houve o informe da reitoria sobre antecipação de feriados e proibição de atividades avaliativas entre 27/março a 4/abril.
Aula 24 - 💥💥PROVA 2💥💥 - 4/mai
  • Das 20h do dia 4/mai às 21h do dia 7/mai - Detalhes serão enviados por e-mail
  • Lembre-se de entregar as suas respostas das listas 3 e 4 até as 20h do dia 4/mai.
RECUPERAÇÃO - 26/mai (quadrimestre seguinte)
  • Das 18h do dia 26/mai às 20h do dia 29/mai - Detalhes serão enviados por e-mail


👎 Plágio



🏋 Listas de exercícios



🎓 Critérios de avaliação



💯 Notas



💪 Mecanismo de recuperação



🤒 Mecanismos de avaliação substitutivos




Carla Negri Lintzmayer - carla.negri@ufabc.edu.br