EXA045 - Técnicas de Programação

Especialização em Desenvolvimento de Sistemas de Informação – Turma 2009

Núcleo conceitual: Formação em programação

Carga Horária: 30 horas

Ementa:

Programação estruturada. Linguagens de programação. Noções de algoritmo, dado, variável, instrução e programa. Tipos e estruturas elementares de dados. Instruções condicionais, incondicionais e de repetição. Tipos definidos pelo usuário. Estruturas compostas de dados: vetores, matrizes e registros. Subprogramas: funções, procedimentos e recursividade. Noções de arquivos em programação.

Agenda:

Dia 1, 18:30-22:30, dia 23/04, quinta-feira   

Linguagem C.

Constantes, variáveis e tipos primitivos.

Entrada e saída de dados via dispositivos padrão.

Estruturas básicas de controle condicional e de repetição.

Projeto 1: Contagem de palavras em arquivos texto. (entrega 03/05)

Dia 2, 18:30-22:30, dia 24/04, sexta-feira   

Vetores e matrizes.

Cadeias de caracteres.

Registros e Enumerados.

Dia 3, 18:30-22:30, dia 29/04, quarta-feira

Modularização e passagem de parâmetros para funções.

Arquivos texto e binários.

Projeto 2: Índice de palavras para arquivos texto.

Dia 4, 18:30-22:30, dia 30/04, quinta-feira

Recursão.

Ordenação e Busca.

Dia 5,  18:30-22:30, dia 08/05, sexta-feira (alterado)

Ponteiros.

Listas ligadas.

Dia 6, 18:30-22:30, dia 14/05, quinta-feira (alterado) Local: LabRedes MP33A

Listas generalizadas.

Estruturas lineares: pilhas, filas, filas duplas.

Hashing e tabela Hash.

Projeto 3: Busca e recuperação de arquivos texto.

Dia 7, 18:30-22:30, dia 15/05, sexta-feira (alterado) Local: LabRedes MP33A

Árvores binárias: representação, percursos.

Árvores gerais, AVL e B. Árvores de Prefixos.

Dia 8, 8:00-12:00, dia 16/05, sábado (alterado) Local: LabRedes MP33A

Finalização do Projeto / Dúvidas

Slides das Aulas

Avaliação:

A avaliação será feita através da elaboração de 3 partes do projeto individual de programação e a nota final consistirá da média aritmética das notas obtidas em cada uma das 3 partes.

Para ser aprovado, é necessário ter freqüência igual ou superior a 75% da carga horária efetiva ministrada, caso contrário haverá reprovação por freqüência.

Projeto da Disciplina (Parte 1: entrega até 03/05, 18h; Parte 2: entrega até 21/05, 18h 24/05(dom), 23h (adiado); Parte 3: entrega até 27/05,18h 31/05(dom), 23h (adiado) )

Novo: Uma base de textos para teste, baseado no Reuters 21578 (reutertest.zip)

Instruções de Entrega de Trabalhos Computacionais

Bibliografia:

MANZANO, José Augusto N. G; OLIVEIRA, Jayr Figueiredo de.  Algoritmos :  logica para desenvolvimento de programacao de computadores.  11. ed Sao Paulo: Erica, 2001. 236 p ISBN 85-7194-718-X

FORBELLONE, Andre Luiz Villar; EBERSPACHER, Henri Frederico.  Lógica de programação :  a construção de algoritmos e estrutura de dados.  3. ed. São Paulo: Makron Books, 2005. 218 p. ISBN 857605024-2(broch.)

FARRER, Harry.  Programacao estruturada de computadores :  Algoritmos estruturados.  3. ed Rio de Janeiro: Livros Tecnicos e Cientificos, 1999. 284 p ISBN 85-216-1180-3 (broch.)

SCHILDT, Herbert.  C:  completo e total.  3. ed. re. atual São Paulo: Makron Books, 1996. 827 p ISBN 85-346-0595-5

MIZRAHI, Victorine Viviane.  Treinamento em linguagem C :  modulo 1.  Sao Paulo: Makron Books, c1990. 241 p ISBN 0-07-460-855-X

MIZRAHI, Victorine Viviane.  Treinamento em linguagem C :  modulo 2.  Sao Paulo: Makron Books, c1990. 273 p ISBN 0-07-460-855-X

SZWARCFITER, Jayme Luiz; MARKENZON, Lilian.  Estruturas de dados e seus algoritmos.   2. ed. rev Rio de Janeiro: Ed. LTC, 1994. 320p ISBN 852161014-4 (broch.)

CORMEN, Thomas H.,.  Algorítmos :  teoria e prática.  5. reimp Rio de Janeiro Elsevier 2002 916 p. ISBN 853520926-3

Qualquer livro sobre a linguagem C e sobre estrutura de dados pode ser útil. Veja também apostilas e textos disponíveis na WWW.