Lógica de Programação
Descrição da Disciplina
O curso de lógica de programação tem como objetivo introduzir os principais conceitos de computação e de programação na resolução de problemas práticos. A abordagem é feita através de uma linguagem em específico da escolha do instrutor. São abordados temas como tipos de variáveis, estruturas de dados, listas, tuplas, recursão, funções, etc. O aluno deve ter um computador com acesso a internet e o Python 3 (em sua versão mais estável) instalados em seu computador. Neste curso abordamos os todos conceitos teóricos de programação com exemplos práticos na linguagem Python.
Duração
80 horas.
Programa do Curso
- Dia 1: Introdução à programação de computadores.
- Dia 2: Operações básicas, strings, booleanos.
- Dia 3: Estrutura básica de um programa: variáveis, atribuições, expressões, objetos.
- Dia 4: Expressões: lógicas, condicionais, relacionais.
- Dia 5: Laços (aninhados e não aninhados).
- Dia 6: Listas, tuplas, conjuntos, dicionários e outros objetos.
- Dia 7: Funções, módulos, classes e objetos.
- Dia 8: Recursões e sequências (Fibonacci, fatorial, Torre de Hanoi, etc).
- Dia 9: Eficiência em programação.
- Dia 10: Fechamento do curso: estudo de caso.
Dia 1: Introdução à programação de computadores
- Computação e alguns de seus paradigmas.
- Programação orientada a objetos.
- Problemas do tipo computacionais.
- Linguagens de programação.
- Revisão básica de pré-requisitos.
Dia 2: Operações básicas, strings, booleanos
- Sintaxe básica: operações matemáticas.
- Sintaxe básica: lógica booleana.
- Strings, operações e um pouco de regex.
- Tipos de variáveis.
- Tipos de comparações.
- Padrões e boas práticas de programação.
- Algumas bibliotecas Python.
Dia 3: Estrutura básica de um programa: variáveis, atribuições, expressões, objetos
- Paradigmas de programação orientada a objetos.
- Tipos de objetos e suas aplicações.
- O que são variáveis e como utilizá-las.
- Tipos de atribuições.
- O que são expressões.
- O que são funções.
- O que são classes.
- Classes e heranças.
Dia 4: Expressões: lógicas, condicionais, relacionais
- Revisão de lógica e matemática básica.
- Operadores lógicos.
- Expressões lógicas.
- Operadores matemáticos.
- Expressões matemáticas.
- Expressões condicionais.
- Expressões relacionais.
Dia 5: Laços (aninhados e não aninhados)
- O que são algoritmos.
- Estruturas de repetição.
- Representação em fluxograma.
- Tipos de comandos de repetição.
- Repetição: loops usando “while”.
- Repetição: loops usando “for”.
- Aplicações de repetições.
Dia 6: Listas, tuplas, conjuntos, dicionários e outros objetos
- Listas.
- Tuplas.
- Conjuntos.
- Dicionários.
- Vetores.
- Matrizes.
- Algoritmos de busca e ordenação.
Dia 7: Funções, módulos, classes e objetos
- Ponteiros e passagem por parâmetros.
- Alocação dinâmica de memória.
- Definição matemática de funções e representações.
- Funções em Python.
- Lambdas.
- Módulos.
- Classes.
- Heranças.
Dia 8: Recursões e sequências (Fibonacci, fatorial, Torre de Hanoi, etc)
- Revisão matemática: Funções e funcionais.
- Revisão matemática: Sequências.
- Equações funcionais.
- Recursões.
- Exemplos de recursões.
- Algoritmo recursivo de ordenação.
Dia 9: Eficiência em programação
- Complexidade de algoritmos.
- Notação Big “Oh”.
- Classes de complexidade.
- Complexidade de cada caso.
Dia 10: Fechamento do curso: estudo de caso
- Estudo de caso.
Bibliografia do curso
- Guttag, John V. Introduction to computation and programming using Python. Mit Press, 2013.
- Python Tutorial – Python documentation (https://docs.python.org/3/tutorial/)
- Sedgewick, Robert, Kevin Wayne, and Robert Dondero. Introduction to programming in Python: An interdisciplinary approach. Addison-Wesley Professional, 2015.
- Graham, R. L., Knuth, D. E., Patashnik, O. (1989). Concrete Mathematics: A Foundation for Computer Science. Reading: Addison-Wesley.