Desenvolver um raciocínio aplicado na formulação e resolução de problemas computacionais. Utilizar programação para tornar concretos alguns dos conceitos comuns em ciência da computação.
Introdução a história da computação, organização e funcionamento de computadores e programas, conceitos de linguagens de programação, estruturas básicas de um programa, e prática de programação por meio de resolução de problemas, desenvolvimento de algoritmos, e teste e depuração de programas.
1 - Breve história da computação.; 2 - Noções de organização e funcionamento de computadores e programas.; 3 - Conceitos de linguagens de programação; 3.1 Entrada e saída; 3.2 Comandos de atribuição, seleção e repetição; 3.3 Expressões aritméticas, lógica e relacionais; 3.4 Tipos de dados escalares e estruturados.; 4. Modularização de programas: 4.1 Funções e procedimentos; 4.2 Passagem de parâmetros; 4.3 Escopo de identificadores.; 5. Prática de programação por meio de resolução de problemas, desenvolvimento de algoritmos, e teste e depuração de programas.
Bibliografia Básica: A.B. Downey, "Think Phynton: How to Think Like a Computer Scientist", O'Reilly, 2012. B.W. Kernighan, D.M. Ritchie, "A Linguagem de Programação C, padrão ANSI", Campus, 1990. V. Setzer, R. Terada, "Introdução à Computação e à Construção de Algoritmos", McGraw-Hill, 1991. B. Miller, D. Ranum, J.Elkner, P. Wentworth, A.B. Downey, C. Meyers, D. Mitchell, "How to Think Like a Computer Scientist: Interactive Edition", http://interactivepython.org/ C.H. Morimoto, R. F. Hashimoto, "Introdução a Ciência da Computação em C", Publicação do Departamento de Ciência da Computação, IME-USP, 2012. Bibliografia Complementar: Não há Bibliografia Complementar.