2022 Q1

MCTA015-13 - Linguagens Formais e Automata

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

piadinha


🚨 Avisos importantes (fique atento sempre!)

📌 [20/06] Avisos finais:
  1. Corrigi a prova de recuperação. Se você a fez, enviei no Moodle sua prova com 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 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 25/06.
[23/05] Avisos (semi-)finais importantes:
  1. Corrigi a prova 2 e a lista 4. Alguns comentários foram enviados no Discord.
  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.
    A prova ficará disponível no Moodle na data e horário descritos no cronograma.
  4. 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.
    Faça isso até o final desta semana.
  5. Por fim, estarei disponível pelo Discord para tirar dúvidas sobre a recuperação a qualquer momento do recesso.
[05/05] Aumentei o prazo de entrega da lista 4. Por causa da prova, ainda é no dia 12.
[22/04] A lista 4 está disponível.
[18/04] Corrigi a prova 1. Se você a fez, veja os comentários no seu PDF, que estão disponíveis no Moodle. As notas e os critérios estão na planilha na seção de notas. Em caso de problemas ou dúvidas, mande mensagem privada no Discord!
[06/04] A lista 3 está disponível.
[28/03] Corrigi a lista 1 e enviei as anotações no Moodle. As notas estão na planilha na seção de notas. Veja o Discord se você não enviou a lista, também deixei informações lá.
[01/03] A lista 2 está disponível.
[17/02] Atenção! Você deve marcar horário de atendimento individual com pelo menos 4 (quatro) horas de antecedência! Organize-se para não perder as oportunidades.
[05/fev] Leia a seção sobre 🔥🔥🔥 COMO SERÁ A DISCIPLINA 🔥🔥🔥 sem falta e com atenção!
[05/fev] Apenas para matriculados: 🔥🔥🔥 servidor no Discord 🔥🔥🔥 e formulário de início de curso.
[05/fev] Site no ar. Estude-o como se o seu conteúdo fosse ser cobrado na prova.


🙋 Como será a disciplina?

Nosso meio de comunicação principal será pelo servidor na ferramenta Discord (baixe o aplicativo e crie uma conta).
Por favor, participe do grupo apenas se você está matriculado na disciplina.
O site sempre será atualizado com avisos, 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.
Eu certamente responderei dentro de 24h, exceto talvez pelos finais de semana.

Usaremos também o Moodle, mas apenas para entrega das atividades.

As videoaulas com os conteúdos da disciplina serão disponibilizadas apenas aqui no site, na seção Cronograma.
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.

Em vários dias, estarei online pela ferramenta Google Meet para atendimento:

A maioria desses encontros são às sextas-feiras, porém em abril teremos um em uma quarta-feira.
As datas exatas estão no cronograma.

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: veja o conteúdo no dia previsto e tire dúvidas naquela mesma semana.
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.


📆 Cronograma



Acesse aqui um calendário resumido das atividades.

Aula 1 - 15/fev
Aula 2 - 18/fev
  • Conteúdo: Alfabetos e linguagens. Autômatos finitos determinísticos (AFDs). Linguagens regulares (LRs).
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • 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 - 22/fev
  • Conteúdo: 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)
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 82min):
  • Quiz.
  • Referências: Seção 1.1 [S] e Seção 2.2 [HUM].
  • Material complementar: JFLAP.
Aula 4 - 25/fev
  • Conteúdo: Autômatos finitos não determinísticos (AFNs). (fazer os exercícios da lista 1 após os vídeos)
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • 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:
01/mar (Feriado Carnaval)
  • Reposição em 11/mai (quarta-feira).
Aula 5 - 04/mar
  • Conteúdo: AFDs vs AFNs. Simulando AFNs. Propriedades das LRs.
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • 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 - 08/mar
  • Conteúdo: Expressões regulares. (ATENÇÃO! No presencial, essa aula exige sua participação, então faça os exercícios pedidos nos vídeos antes de ver as respostas)
  • Formato: videoaulas (aula assíncrona)
  • 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 - 11/mar
  • Conteúdo: Expressões regulares vs. autômatos. Algoritmos de conversão.
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • Vídeos (tempo total = 57min)
  • Quiz.
  • Referências: Seção 1.3 [S] e Seção 3.2 [HUM].
  • Material complementar: Expressões vs. autômatos, Expressões regulares na prática (Vídeo-aulas prof. Lucrédio UFSCar).
  • Exercícios resolvidos:
Aula 8 - 15/mar
  • Conteúdo: Lema do bombeamento para LRs. Discussão final sobre LRs.
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 83min)
  • Quiz.
  • Referências: Seção 1.4 [S] e Seções 4.1 e 4.3 [HUM].
Aula 9 - 18/mar
  • Conteúdo: Gramáticas livres de contexto (GLC). Linguagens livres de contexto (LLCs).
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • Vídeos (tempo total = 87min):
  • Quiz.
  • Referências: Seção 2.1 [S] e Seções 5.1 e 5.2 [HUM].
21/mar: Data de entrega da Lista 1.
Aula 10 - 22/mar
  • Conteúdo: Mais exemplos com GLCs. Autômatos com pilha (APs).
  • Formato: videoaulas (aula assíncrona)
  • 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 - 25/mar
  • Conteúdo: APs vs GLCs. Simulação de GLCs e APs. Propriedades das LLCs.
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • Vídeos (tempo total = 38min):
  • Quiz.
  • Referências: Seção 2.2 [S] e Seções 6.3 e 7.3 [HUM].
Aula 12 - 29/mar
  • Conteúdo: Lema do bombeamento para LLCs. Discussão final sobre LLCs.
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 51min):
  • Quiz.
  • Referências: Seção 2.3 [S] e Seções 7.2 e 7.4 [HUM].
Aula 13 - 01/abr
  • Checkpoint: revisão e dúvidas para prova.
  • Formato: aula síncrona das 10h às 12h.
  • Vídeo (tempo total = 101min):
04/abr: Data de entrega da Lista 2.
Aula 14 - 05/abr
  • Prova 1
  • Das 08h do dia 04/abr às 10h do dia 07/abr
  • Detalhes no Moodle.
Aula 15 - 08/abr
  • Conteúdo: Máquinas de Turing (MTs).
  • Formato: videoaulas (aula assíncrona)
  • Vídeos: em breve
  • Vídeos (tempo total = 93min):
  • Quiz.
  • Referências: Seção 3.1 [S].
Aula 16 - 12/abr
  • Conteúdo: Variações de MTs. MTs e algoritmos. Tese Church-Turing.
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 70min):
  • Quiz.
  • Referências: Seções 3.2, 3.3 [S], Seção 8.6 [HUM].
15/abr (Feriado Sexta-Feira Santa)
  • Reposição em 16/mai (segunda-feira).
Aula 17 - 19/abr
  • Conteúdo: Decidibilidade. O problema da Parada.
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 8h às 8h40 (link no Discord); atendimento individual das 8h40 às 10h30 (inscrição pelo link disponível no Discord).
  • Vídeos (tempo total = 40min):
  • Quiz.
  • Referências: Capítulo 4 [S].
  • Extras: A história da indecidibilidade (inglês).
Aula 18 - 22/abr
  • Conteúdo: Problemas Turing-Reconhecíveis e Turing-irreconhecíveis. O método da diagonalização.
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 56min):
  • Quiz.
  • Referências: Seção 4.2 [S].
Aula 19 - 26/abr
  • Conteúdo: Redução: introdução informal e formal.
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 49min):
  • O quiz dessa aula está junto com o da aula 20.
  • Referências: Capítulo 5 [S].
Aula 20 - 29/abr
  • Conteúdo: Exemplos de redução para provar indecidibilidade e irreconhecibilidade.
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • Vídeos (43min):
  • Quiz.
  • Referências: Capítulo 5 [S].
02/mai: Data de entrega da Lista 3.
Aula 21 - 03/mai
  • Conteúdo: Teoria da complexidade: tempo de execução e notação assintótica.
  • Formato: videoaulas (aula assíncrona)
  • Vídeos (tempo total = 68min):
  • Quiz.
  • Referências: Capítulo 7 [S].
Aula 22 - 06/mai
  • Conteúdo: Teoria da complexidade: classes P, NP, NP-completo. Problemas NP-completos.
  • Formato: videoaulas (aula assíncrona); atendimento para todos das 10h às 10h40 (link no Discord); atendimento individual das 10h40 às 12h30 (inscrição pelo link disponível no Discord).
  • Vídeos (tempo total = 53min):
  • Quiz.
  • Referências: Capítulo 7 [S].
Aula 23 - 11/mai (na quarta-feira às 8h, por ser reposição)
  • Checkpoint: revisão e dúvidas para prova.
  • Formato: aula síncrona - das 8h às 10h.
12/mai: Data de entrega da Lista 4.
Aula 24 - 13/mai
  • Prova 2
  • Das 10h do dia 13/mai às 12h do dia 16/mai
  • Detalhes no Moodle.
RECUPERAÇÃO - 10/jun (quadrimestre seguinte)
  • Prova de recuperação para os alunos que ficaram com conceito D ou F.
  • Das 8h do dia 10/jun às 10h do dia 13/jun
  • Detalhes no Moodle.


👎 Plágio



🏋 Listas de exercícios



🎓 Critérios de avaliação



💯 Notas

Acompanhe aqui as notas das atividades.

💪 Mecanismo de recuperação



🤒 Mecanismos de avaliação substitutivos




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