Introdução à Programação
As aulas de reposição acontecerão nos dias abaixo, sempre às 8:00hs:
- 23/02 (sábado)
- 09/03 (sábado)
- 23/03 (sábado)
- 20/04 (sábado)
Período letivo 2012.2:
Avaliações:
Material didático:
- Slides
- Exercícios:
- Exemplos
- "Simple Computer Simulator": um applet Java que simula um computador com apenas 13 instruções e 100 posições de memória (descompactar a pasta e abrir o documento html contido nela).
- Simulador de um computador antigo com cartão perfurado que faz pesquisas no Google
- "GCC": antigo "GNU C Compiler" e atual "GNU Compiler Collection", um compilador gratuito para várias linguagens, incluindo C, C++, Java, Fortran e Ada:
- Compilador online de C e outras linguagens de programação
- Bibliografia:
- Algoritmos, lógica de programação e exercícios:
- Fundamentos da programação de computadores
- Cap.01 (Conceitos básicos)
- Cap.02 (Estrutura seqüencial)
- Cap.03 (Estrutura condicional)
- Cap.04 (Estrutura de repetição)
- Cap.05 (Vetores)
- Cap.06 (Matrizes)
- Cap.07 (Funções de tratamento de caracteres)
- Cap.08 (Registros)
- Cap.09 (Arquivos)
- Cap.10 (Sub-rotinas)
- Conceitos de linguagens de programação:
- Conceitos de linguagens de programação
- Cap.01 (Aspectos preliminares)
- Cap.05 (Nomes, vinculações, verificação de tipos e escopos)
- Cap.06 (Tipos de dados)
- Cap.07 (Expressões e instruções de atribuição)
- Cap.08 (Estruturas de controle no nível da instrução)
- Cap.09 (Subprogramas)
- Linguagem C:
- C completo e total
- Cap.01 (Uma visão geral de C)
- Cap.02 (Expressões em C)
- Cap.03 (Comandos de controle do programa)
- Cap.04 (Matrizes e strings)
- Cap.05 (Ponteiros)
- Cap.06 (Funções)
- Cap.07 (Estruturas, uniões, enumerações e tipos definidos pelo usuário)
- Cap.08 (E/S pelo console)
- Cap.09 (E/S com arquivo)
- C a linguagem de programação padrão ANSI
- Cap.01 (Uma introdução através de exemplos)
- Cap.02 (Tipos, operadores e expressões)
- Cap.03 (Fluxo de controle)
- Cap.04 (Funções e estrutura de programa)
- Cap.05 (Apontadores e vetores)
- Cap.06 (Estruturas)
- Cap.07 (Entrada e saída)
- Técnicas de programação:
- Livro História da Computação, de Cléuzio Fonseca Filho (download gratuito)
- Livro Só por prazer - Linux, bastidores da sua criação, de Linus Torvalds
- Artigos históricos importantes sobre programação estruturada:
- "Flow Diagrams, Turing Machines
And Languages With Only Two
Formation Rules", por C. Böhm e G. Jacopini (Maio de 1966)
- "Böhm and Jacopini's Reduction of Flow Charts", por D. C. Cooper (Agosto de 1967)
- "Goto statement considered harmful", por E. W. Dijkstra (Março de 1968)
- "Notes on structured programming", por E. W. Dijkstra (Abril de 1970)
- "The translation of 'goto' programas to 'while' programs", por E. Ashcroft e Z. Manna (Janeiro de 1971)
- "Program development by stepwise refinement", por N. Wirth (Abril de 1971)
- "Structured Programming", por O.-J. Dahl, E. W. Dijkstra e C. A. R. Hoare (1972)
- "Structured programming with goto statements", por D. E. Knuth (Dezembro de 1974)
- "On the composition of well-structured programs", por N. Wirth (Dezembro de 1974)
- "On Folk Theorems", por D. Harel (Julho de 1980)
- Web - Lógica de programação:
- Web - Linguagem C:
- Dos criadores da linguagem C, Dennis Ritchie e Brian Kernighan:
- Livros:
- Referências online:
- Material em português:
- Veja também:
Aulas ministradas:
Aula 01 - 13/12 - Apresentação da disciplina. História do computador.
Aula 02 - 18/12 - História do computador.
Aula 03 - 20/12 - Processo de desenvolvimento de software e modelo de von Neumann.
Aula 04 - 24/01 - Simple Computer Simulator, apresentação, exemplo e exercício.
Aula 05 - 05/02 - História e características da linguagem C. Estrutura de programa, declarações, variáveis, tipos, expressões e comando de atribuição.
Aula 06 - 07/02 - Sinaxe e semântica dos comandos básicos. gcc e DOS. Exercício Hello World e cálculo de ração.
Aula 07 - 12/02 - Declarações de variáveis. Tipos int e float. Expressões aritméticas. Comando de atribuição. Exercícios 06, 13, 15, 17, 19, 21, 24 e 25 (página 39-40 do livro Fundamentos da Programação de Computadores)
Aula 08 - 14/02 - Continuação dos exercícios.
Aula 09 - 19/02 - Continuação dos exercícios.
Aula 10 - 21/02 - Execução condicional. Conceitos, comando if, sintaxe e semântica. Programação estruturada. Exercícios 1, 2, 4, 5, 7, 8, 9, 14 e 23 (páginas 72-77).
Aula 11 - 23/02 - Continuação dos exercícios.
Aula 12 - 26/02 - Continuação dos exercícios.
Aula 13 - 28/02 - Execução iterativa. Conceitos, exemplos e exercícios (1 e 2, página 124).
Aula 14 - 05/03 - Exercícios (determinar se um nº é primo, 3, 8, idêntico ao 8 com número indeterminado de leituras, 9 (0 a 9, as 4 operações), 10 (0 a 9, as 4 operações), 21, -1/2!+2/4!+3/6!-..., 22, 25, 28, 32, 34 e 38, páginas 124-129).
Aula 15 - 07/03 - Continuação dos exercícios.
Aula 16 - 09/03 - Continuação dos exercícios.
Aula 17 - 12/03 - Continuação dos exercícios.
Aula 18 - 14/03 - Prova 1.
Aula 19 - 19/03 - Vetores: conceitos, sintaxe, semântica, exemplos. Exercícios 4, 1, 12, 1+2-3+4-5... (com 10 nºs), 18, 25, 3, 5, 19 (página 163)
Aula 20 - 21/03 - Continuação dos exercícios.
Aula 21 - 23/03 - Continuação dos exercícios.
Aula 22 - 26/03 - Continuação dos exercícios. Matrizes. Exercícios 1, 3, 5, 7, 11, 16 e 24 (capítulo 6)
Aula 23 - 02/04 - Continuação dos exercícios.
Aula 24 - 04/04 - Continuação dos exercícios.
Aula 25 - 09/04 - Ponteiros e vetores. Exercícios do site.
Aula 26 - 11/04 - Continuação dos exercícios.
Aula 27 - 16/04 - Funções. Exercícios do site.
Aula 28 - 18/04 - Continuação dos exercícios.
Aula 29 - 20/04 - Strings e cadeias de caracteres. Exercícios do site.
Aula 30 - 23/04 - Continuação dos exercícios.
Aula 31 - 25/04 - Prova 2.
Aula 32 - 30/04 - Agregados heterogêneos (structs) e alocação dinâmica (malloc e free).
02/05 - Prova final.