Apresentar a programação para computadores como disciplina autônoma, como uma metodologia do raciocínio construtivo aplicável a todos os problemas susceptíveis de uma solução algorítmica. Familiarizar o estudante com linguagens algorítmicas de alto nível, especialmente Python e ferramentas de programação associadas. O aluno aprenderá a desenvolver programas utilizando técnicas básicas de programação estruturada, bem como algoritmos de busca e ordenação relevantes e o conceito de tipos de dados, com ênfase em aplicações em Física e Bioinformática.
Noções básicas de sistemas de computação e programação; Introdução à linguagem Python; Algoritmos.
Conceitos básicos: (2 semanas) 1. Noções básicas de sistemas de computação. 2. Introdução à teoria dos algoritmos. 3. Introdução às estruturas básicas de programação algorítmica. 4. Construção de algoritmos por refinamentos sucessivos. Introdução à linguagem Python. 1. Tipos de dados simples: inteiro, caracter, booleano e real. (0.5 semana) 2. Estrutura de um programa. (0.5 semana) 3. Estruturas de seleção e repetição. (1 semana)] 4. Tipos de dados estruturados: cadeias de caracteres, listas, tuplas, dicionários, vetores, matrizes. (2 semanas) 5. Entrada e saída de dados por arquivos. (1 semana) 6. Procedimentos e funções. (2 semanas) 7. Recursão. (1 semana) 8. Módulos. (1 semana) 9. Introdução a bibliotecas científicas de Python (NumPy, SciPy, Matplotlib). (2 semanas) Algoritmos de busca e ordenação. (2 semanas) Exemplos incluindo aplicações em Física e manipulação de dados biológicos. (Atividades práticas, ao longo do semestre.) A indicação da sequência e do tempo para cumprimento do conteúdo tem caráter apenas sugestivo.
[1] Zelle, John M., Python Programming: An Introduction to Computer Science. Franklin Beedle & Associates, 2010. [2] Stewart, John M., Python for Scientists. Cambridge University Press, 2014. [3] Downey, Allen B., Think Python, O’Reilly, 2012.