# data[].attributes.attachment_caption
Representação gráfica da máquina de Turing M1 

# data[].attributes.body
Pilhas e as Filas são duas estruturas de dados fundamentais que usamos para organizar informações de forma específica.

Funcionalidades:

Pilhas - criar uma função de desfazer ações.

Filas - organizar processos.

# data[].attributes.attachment_link.description
Pilhas e Filas (Estruturas de Dados, Tipos de Filas, Filas (Queue), Exemplo de Uso)

# data[].attributes.attachment_caption
Computabilidade e Decidibilidade de números primos.

# data[].attributes.body
Final do hackathon!!

Mas o professor também disponibilizou a primeira prova do semestre.

# data[].attributes.body
Hoje tivemos uma revisão da primeira prova do semestre e tivemos contato com alguns conceitos de haskell uma linguagem de programação funcional pura, baseada em matemática. Embora tenha achado uma linguagem um pouco complexa gostei do conceito que ela tem de nos forçar a pensar em "o que fazer" e não "como fazer".

Mapa mental criado pelo chatGPT

# data[].attributes.attachment_link.description
Haskell (Fundamentos, Estrutura do Código, Sistema de Tipos, Recursos Avançados, Casos de Uso),

# data[].attributes.body
O professor demonstrou na prática o LaTeX usando na criação e apresentações de slides, abordando o conteúdo de árvores de sintaxe.

Tentamos usar  um site relacionado a árvores de sintaxe. Árvores de sintaxe são representações gráficas da estrutura sintática de sentenças ou expressões, frequentemente usadas em linguística computacional e processamento de linguagem natural.

Árvores de análise sintática, também conhecidas como árvores sintáticas ou árvores de parse, são representações gráficas da estrutura gramatical de uma frase ou expressão. Elas são amplamente utilizadas em linguística computacional, processamento de linguagem natural e na análise de linguagens de programação.

# data[].attributes.attachment_link.description
Árvore sintática (Estrutura, Utilidade, Mostra como uma frase é dividida em seus componentes gramaticais, de acordo com as regras da gramática da língua em questão., Auxilia na análise e interpretação de código em linguagens de programação)

# data[].attributes.body
Atividade de autômatos finitos.

# data[].attributes.body
Autômatos:

Um autômato é um modelo matemático usado para descrever e analisar sistemas que seguem um conjunto específico de regras. É uma máquina abstrata que pode estar em um de vários estados e que muda de estado em resposta a entradas de acordo com regras definidas.

Sistemas de Estados Finitos:

Os sistemas de estados finitos são uma classe geral de modelos usados para descrever sistemas que podem estar em um número finito de estados distintos e mudar entre esses estados de acordo com regras predefinidas. Esses sistemas são amplamente usados na teoria dos autômatos, bem como em várias áreas da engenharia e ciência da computação, como design de circuitos digitais e modelagem de processos.

# data[].attributes.attachment_link.description
Estados Finitos (Estados: São as condições ou situações em que o sistema pode estar em um determinado momento. O número de estados é finito., Transições: São as mudanças de um estado para outro, geralmente desencadeadas por algum evento ou entrada., Estado Inicial: É o estado em que o sistema começa sua operação., Estados Finais (ou de Aceitação): São os estados que indicam que uma sequência de entradas foi aceita pelo autômato (nem todos os SEF têm estados finais)., Alfabeto de Entrada: O conjunto de símbolos ou eventos que o sistema pode processar., Autômatos Finitos Determinísticos (AFD): Para cada estado e símbolo de entrada, há exatamente uma transição para o próximo estado., Autômatos Finitos Não-Determinísticos (AFN): Podem ter múltiplas transições possíveis para um dado estado e símbolo de entrada, ou transições sem consumir entrada (ε-transições).)

# data[].attributes.body
Correção da atividade de linguagens formais.

# data[].attributes.body
Palmas Summit!

# data[].attributes.body
As linguagens formais estudam sistemas de símbolos e regras para criar e interpretar uma linguagem. Ela aborda como construir e analisar linguagens de forma precisa e rigorosa.

Aqui vou citar os tópicos que achei mais importante e que não foram muito aprofundados no Coogglet It.

Operações:

Complementação - Uma linguagem sobre a outra.

Reverso – O reverso de uma sentença corresponde ao reverso da segunda sentença.

Quociente – Cria uma nova Linguagem através do antigo quociente.

Substituição - Substitui os elementos da segunda sentença por meio de um mapeamento.

Relacionamento:

Alfabeto (conjunto de símbolos) -> Símbolos (elemento do alfabeto e item da cadeia) -> Cadeia (sequência de símbolos) -> Elemento da linguagem (conjunto de cadeias).

Representação:

Gramáticas - regras .

Reconhecedores - especificações de cadeias.

Enumerações - relacionam as cadeias pertencentes a uma linguagem.

# data[].attributes.attachment_link.description
Linguagens Formais (Sintaxe correta, Cadeia (palavras), Concatenação , Fechamento reflexivo e transitivo, Operações, Representações , Uma forma de expressar as linguagens computacionais)

# data[].attributes.body
Regras dos conjuntos:

Definição: Um conjunto é uma coleção de objetos distintos (chamados de elementos), sem ordem específica. É representado por uma letra maiúscula, e um elemento por uma letra minúscula.

Notações:

Por Extensão: Lista todos os elementos entre chaves.

Ex: V={a,e,i,o,u} V = \{a, e, i, o, u\} V={a,e,i,o,u}.

Por Compreensão: Define os elementos com base em uma propriedade.

Ex: P={n∣n eˊ um nuˊmero par}P = \{n \mid n \text{ é um número par}\}P={n∣n eˊ um nuˊmero par}.

Conjunto Universo e Vazio:

Universo (U): Conjunto de todos os elementos em consideração.

Vazio (∅ ou {}): Conjunto sem elementos.

Cardinalidade: Número de elementos de um conjunto, denotado por ∣A∣|A|∣A∣.

Pertinência: Verifica se um elemento pertence a um conjunto. Ex: a∈Va \in Va∈V e h∉Vh \notin Vh∈/V.

Continência e Subconjunto:

Subconjunto (⊆): AAA é subconjunto de BBB se todos os elementos de AAA estão em BBB.

Subconjunto Próprio (⊂): AAA é subconjunto próprio de BBB se A⊆BA \subseteq BA⊆B e A≠BA \neq BA=B.

Igualdade de Conjuntos: Dois conjuntos são iguais se contêm exatamente os mesmos elementos.

Ex: {a,b}={b,a}\{a, b\} = \{b, a\}{a,b}={b,a}.

Operações sobre Conjuntos:

União (∪): Conjunto de todos os elementos que estão em AAA ou em BBB.

Intersecção (∩): Conjunto de elementos que estão em ambos AAA e BBB.

Diferença (−): Conjunto de elementos que estão em AAA mas não em BBB.

Complemento (∼): Conjunto de todos os elementos que não estão em AAA.

Conjunto das Partes (2^A ou P(A)): Conjunto de todos os subconjuntos de AAA.

Produto Cartesiano (×): Conjunto de todos os pares ordenados (a,b)(a, b)(a,b) onde a∈Aa \in Aa∈A e b∈Bb \in Bb∈B.

Propriedades:

Idempotência: A∪A=AA \cup A = AA∪A=A e A∩A=AA \cap A = AA∩A=A.

Comutativa e Associativa: Ordem das operações não altera o resultado.

Distributiva: Relaciona operações de união e intersecção.

Duplo Complemento: ∼(∼A)=A\sim(\sim A) = A∼(∼A)=A.

Leis de DeMorgan: Relacionam operações com complementos.

Comando para o chat: faça um resumo das regras de conjuntos dessa aula

# data[].attributes.attachment_link.description
Conjuntos - Coggle Diagram: Conjuntos (Conjuntos (A), Notações, Conjunto Universo (U), Relacionamento - conjunto e elemento, Tuplas (Uma sequência ordenada de n componentes), Relações, Operações sobre os conjuntos)

# data[].attributes.body
Linguagens é o meio de comunicação usado na troca de informações. Para que as informações sejam transmitidas de forma eficaz ela deve ser passada dentro de um contexto, como foi exemplificado na aula. Já as linguagens dentro da programação tem o papel de comunicação entre a máquina, o usuário e principalmente o desenvolvedor.

Linguagens formais – o estudo de modelos matemáticos para reconhecimento de uma linguagem.

Sintaxe e semântica dentro das linguagens formais:

Sintaxe – regras da linguagem.

Semântica - o sentido/significado da linguagem.

Análise léxica - os componentes da linguagem.

Paradigmas de programação:

Diferentes estilos ou abordagens para resolver um problema usando a programação.

Imperativo – como fazer.

Declarativo – o que fazer.

# data[].attributes.attachment_link.title
Paradigmas de Programação - Coggle Diagram

# data[].attributes.attachment_link.description
Paradigmas de Programação - Coggle Diagram: Paradigmas de Programação