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.