Você trabalha ou trabalhou na área de TI? Qual cargo você ocupa (ou ocupou)?
Quais linguagens de programação você consegue programar?
O que você espera dessa disciplina?
O que te atrapalha para estudar?
O que tu gosta que o professor faça em aula?
O que tu não gosta que o professor faça em aula?
Organize-se, você tem pouco tempo e muitas atividades!
Bullet Journal
TODO-list
Pomodoro
GTD
Qual é o teu objetivo?
O que tu faz para atingir o teu objetivo?
Compiladores
Tipos de ferramentas para criação de programas
Compiladores
Interpretadores
Transpiladores (Tradutores)
Bytecode
Linguagens de Programação
Linguagens imperativas
Linguagens orientadas a objetos
Linguagens de programação lógica
Linguagens funcionais
Linguagens específicas de domínio
Arquiteturas de Computadores
monoprocessamento, time sharing, processamento concorrente, processamento distribuído
x86, ARM, Power, microcontroladores…
cache, persistência
máquinas de registradores ou de pilhas
bare metal, máquinas virtuais, sistemas embarcados
Processo de execução de um programa
Dados devem estar em memória
Dados devem estar no processador (CPU ou ULA)
Em geral, usam o conceito de fetch, execute, store
Loader, Linker
Fases de um compilador
Revisão de Conteúdos
Processamento de Arquivos
Expressões Regulares e Linguagens Regulares
Gramáticas Livres de Contexto
Recursão
Árvores
Grafos
Mapas
Questões
Qual a diferença entre compilador e interpretador? Quais as vantagens e desvantagens de cada um?
Quais as vantagens que podemos esperar ao utilizar um tradutor/transpilador?
Exercícios de Programação
Implemente uma lista encadeada em Python
Implemente uma árvore binária de pesquisa em Python
Implemente uma função que verifique se um grafo é ou não conectado em Python
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?