Apresentação da Disciplina

Última ocorrência: 2024-03-06 em Universidade LaSalle Canoas

Posts Relacionados

Agenda

  1. Apresentação da disciplina
    1. Plano de Ensino (previsão)
    2. Avaliação
      1. Exercícios
      2. Trabalhos de implementação
      3. Provas G1 e G2
      4. Prova de substituição de grau
      5. ChatGPT e assemelhados
    3. Logística da Disciplina
      • Dinâmica das aulas
        1. Dúvidas
        2. Exibição de conteúdo e exercícios em 2 períodos (2+2 pomodoros)
        3. Intervalo de 20 minutos
        4. Chamada após o intervalo
      • Ferramentas: Computador de inteligência natural, lápis, papel e caneta
      • Outras ferramentas: Python, Git, Github
      • Mais ferramentas importantes: PLY (Python Lex-Yacc)
  2. Apresentação do Professor
  3. Apresentação dos Alunos (LEX)
    1. Em qual semestre do curso você se posiciona?
    2. Por que você escolheu esse curso?
    3. Você trabalha ou trabalhou na área de TI? Qual cargo você ocupa (ou ocupou)?
    4. Quais linguagens de programação você consegue programar?
    5. O que você espera dessa disciplina?
    6. O que te atrapalha para estudar?
    7. O que tu gosta que o professor faça em aula?
    8. O que tu não gosta que o professor faça em aula?
  4. Organize-se, você tem pouco tempo e muitas atividades!
    1. Bullet Journal
    2. TODO-list
    3. Pomodoro
    4. GTD

Compiladores

Fases de compilação

Revisão de Conteúdos

Questões

  1. Qual a diferença entre compilador e interpretador? Quais as vantagens e desvantagens de cada um?
  2. Quais as vantagens que podemos esperar ao utilizar um tradutor/transpilador?

Exercícios de Programação

  1. Implemente uma lista encadeada em Python
  2. Implemente uma árvore binária de pesquisa em Python
  3. Implemente uma função que verifique se um grafo é ou não conectado em Python
  4. Implemente um programa em Python que abra um arquivo texto e crie um histograma das palavras existentes no texto, ignorando pontuações, números de capítulos, etc. Você pode testar o programa no livro Dom Casmurro

    • Quão eficiente é o seu programa em relação ao tempo de processamento?
    • Quão eficiente é o seu programa em relação ao uso de memória?

Recomendação de leitura para esta aula

  1. Livro do Dragão, Capítulo 1
  2. Capítulo 1 do livro

Material para a próxima aula

  1. Leitura rápida sobre autômatos, expressões regulares do livro
  2. Se você não tem, crie uma conta no Github.
  3. Se você não conhece, faça pelo menos um tutorial básico do Git.

Recursos para essa disciplina

Bibliografia

  1. AHO, Alfred V.; LAM, Monica S.; SETHI, Ravi; ULLMAN, Jeffrey B. Compilers: Principles, Techniques, & Tools 2a Ed. Addisson Wesley. 2006. (Livro do Dragão Roxo)
  2. LOUDEN, Kenneth C. Compiladores : princípios e práticas. Cengage Learning, 2004.

Recursos Online

  1. The Python Tutorial
  2. PLY (Python Lex-Yacc)
  3. PLY on Github
  4. CS143 Compilers (Stanford)

Tutoriais do Git

  1. Pro Git (Tradução parcial do livro para português do Brasil)
  2. Git - Guia prático: Um guia bem direto, sem muita explicação.
  3. Github - Início Rápido
  4. Git Tutorial (W3Schools - en)

Vídeos

  1. Aula Inaugural dos Cursos de TI e Inovação Unilasalle 2022/2
  2. Motivação para Estudar - Prof. Clóvis de Barros Filho
  3. Procrastinação: sua pior inimiga (Fredrik Reed, Tchelinux 2021)