MAB124 – Computação I (E) Ementa (comentada) Introdução: História da computação. O impacto do computador no trabalho do engenheiro. Citar aplicações tais como cálculo estrutural, simulação física, CAD, CAM, projeto de circuitos, matemática simbólica, etc. Componentes básicos de um computador Memória, CPU, periféricos, barramento, etc. Introdução à Lógica de Programação: Linguagens de programação. Linguagem de máquina, linguagem de montagem, linguagens de alto nível. Compiladores, interpretadores e esquemas híbridos. Informação e Dados Noção de dado como informação codificada Bits e bytes Codificação de números (sistemas de numeração) Codificação de caracteres e cadeias de caracteres Lógica, seqüência lógica e instruções. Conceito de algoritmos como sequências de instruções Organização de dados: noção de estrutura de dados Programa = Algoritmos + Estruturas de dados Elementos de programação O computador como calculadora (usando Python em modo de avaliação imediata) Tipos básicos numéricos (inteiros, ponto-flutuante, complexos) Expressões aritméticas Uso de funções matemáticas usuais (sin, cos, sqrt, etc) Noção de variável e comando de atribuição Programa armazenado (usando editor de texto para confecção de programas fonte) Programas simples (sem entrada e saída) Uso de comentários e strings de documentação Como executar um programa armazenado Comandos de entrada e saída (input e print) Programas que realizam cálculos simples Condições Predicados e valores booleanos Operadores relacionais Operadores booleanos Ordem de precedência e parênteses O comando if If simples (sem “else”) Uso de indentação Cláusula else Cláusula elif Algoritmos e estruturas de dados sequenciais O comando while Conceito de iteração Uso de break e continue Listas Construção de listas Iteração e busca Operações sobre listas (concatenação, fatiamento, ordenação) Matrizes O comando for Noção de variável de controle A função range Strings e tuplas Construção de tuplas e strings Operações sobre tuplas e strings Dicionários Busca por valor versus indexação Construção e exemplos de uso Arquivos Arquivos “default” Criação e acesso a arquivos Comandos de entrada e saída Considerações a respeito do sistema operacional Programação estruturada Subrotinas (funções) Parâmetros Valores de retorno Escopo (variáveis locais e globais) Aninhamento de funções Recursão Analogia entre recursão e indução Casos base e caso geral Exemplos clássicos (busca, funções combinatórias, torre de Hanói) Estruturas de dados abstratas Especificação, interface e implementação Exemplos Módulos e bibliotecas Construção e importação de módulos Módulos hierárquicos Bibliografia: Aprendendo Python David Ascher & Mark Lutz, Editora Bookman, 2ª edição, 2007, 566 páginas. Beginning Python from Novice to Professional Magnus Lie Hetland, Apress, 2005, 640 pages. Python Programming, an Introduction to Computer Science John Zelle, Franklin, Beedle, & Associates, 517 pages. Programming Python Mark Lutz, O'Reilly, 2001, 1255 pages. Python Cookbook Alex Martelli & David Ascher, O'Reilly, 2002, 575 pages. Rapid GUI Programming with Python and Qt Mark Summerfield. Prentice Hall, 2007, 584 pages.