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
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.