ALGORITMOS E ESTRUTURAS DE DADOS I PROF. EDSON IFARRAGUIRRE MORENO
INFORMAÇÕES Horário: 3CD 6CD Créditos: 4 Carga-horária: 60 horas-aula E-mail: edson.moreno@pucrs.br Material: http://www.inf.pucrs.br/emoreno
CONTEXTO
CONTEXTO
OBJETIVOS DA DISCIPLINA O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de: Conhecer as estruturas de dados primitivas e estruturas do tipo arranjos. Indicar as estruturas de dados que melhor se adaptam para a solução de um determinado problema. Construir algoritmos estruturados que sejam soluções de um dado problema, no paradigma de programação imperativa, utilizando os conceitos de subprogramação e recursividade.
OBJETIVOS DA DISCIPLINA O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de: Analisar e verificar a correção de um algoritmo, utilizando a técnica de execução simbólica. Selecionar o algoritmo mais eficiente para a solução de um determinado problema. Familiarizar-se com o emprego da notação assintótica para análise de algoritmos.
EMENTA Análise e construção de algoritmos. Programação imperativa: algoritmos e estruturas de dados convencionais Atribuições, seleção e repetição, entrada e saída, matrizes, registros, ponteiros. Subprogramação. Recursividade.
PROGRAMA Unidade 1: Conceitos Fundamentais de Algoritmos 1.1. Conceito e características de um algoritmo 1.2. Tipos de dados 1.3. Objetos de um algoritmo: variável e constante 1.4. Estrutura de um algoritmo 1.4.1. Algoritmo principal e subalgoritmos 1.4.2. Área de declarações
PROGRAMA Unidade 2: Tipos de Algoritmos 2.1. Puramente seqüenciais 2.1.1. Expressões aritméticas 2.1.2. Operadores aritméticos 2.1.3. Prioridades 2.1.4. Instruções primitivas 2.1.4.1. Atribuição 2.1.4.2. Saída de dados 2.1.4.3. Entrada de dados
PROGRAMA Unidade 2: Tipos de Algoritmos 2.2. Com seleção 2.2.1. Expressões relacionais 2.2.2. Operadores relacionais 2.2.3. Expressões lógicas 2.2.3.1. Operadores lógicos 2.2.3.2. Tabela verdade 2.2.3.3. Prioridades 2.2.4. Tipos de instruções 2.2.4.1. Seleção simples 2.2.4.2. Seleção composta 2.2.4.3. Seleção aninhada
PROGRAMA Unidade 2: Tipos de Algoritmos 2.3. Com repetição 2.3.1. Tipos de instruções 2.3.1.1. Estrutura Enquanto 2.3.1.2. Estrutura Repita 2.3.1.3. Estrutura Para 2.3.2. Conceitos relacionados: inicialização, contadores e acumuladores 2.3.3. Consistência de dados de entrada
PROGRAMA Unidade 3: Subalgoritmos 3.1. Conceitos e vantagens da utilização 3.2. Escopo de variáveis: globais X locais 3.3. Tipos de subalgoritmos 3.3.1. Função 3.3.2. Procedimento 3.4. Parâmetros 3.4.1. Passagem por valor 3.4.2. Passagem por referência 3.5. Formas de desenvolvimento de algoritmos 3.5.1. Top Down 3.5.2. Botton Up
PROGRAMA Unidade 4: Estruturas Homogêneas 4.1. Unidimensionais: Vetores 4.1.1. Formalização e manipulação 4.1.2. Operações mais comuns 4.1.3. Pesquisas em vetores 4.1.4. Métodos simples de ordenação de vetores 4.2. Multidimensionais: Matrizes 4.2.1. Formalização e manipulação 4.2.2. Operações mais comuns 4.2.3. Pesquisas em matrizes 4.2.4. Matrizes especiais 4.2.4.1. Matrizes triangulares 4.2.4.2. Matrizes esparsas
PROGRAMA Unidade 5: Introdução à Análise de Algoritmos 5.1. Importância 5.2. Contagem de passos 5.3. Ordem de crescimento 5.3.1. Notação O(n) 5.3.2. Operando com ordens de crescimento
PROGRAMA Unidade 6: Estruturas Heterogêneas 6.1. Registros 6.2. Formalização e manipulação 6.3. Combinando com variáveis homogêneas 6.3.1. Vetores de registros 6.3.2. Registros com vetores
PROGRAMA Unidade 7: : Desenvolvimento de Algoritmos Recursivos 7.1. Conceito e exemplos de utilização 7.2. Algoritmos recursivos X iterativos 7.3. Recursividade utilizando estruturas de dados
AVALIAÇÃO Fórmula: G1 = ( 2,5*P1 + 3,0*P2 + 3,5*P3 + 1,0*TP ) 10 Onde: P1 Prova P2 Prova P3 Prova TP Média dos exercícios/trabalhos realizados ao longo da disciplina
DATAS DAS AVALIAÇÕES P1-12/09/2017 P2-17/10/2017 P3-21/11/2017 PS - 28/11/2017 G2-05/12/2017 TPs Ao longo do semestre
AVALIAÇÃO G1 >= 7: Aprovação 4 <= G1 < 7: G2 Conteúdo: TODA a matéria, média = 5,0 G1 < 4: Reprovação sem direito a G2 Menos de 75% de presença: reprovação.
AVALIAÇÃO OBSERVAÇÕES Sobre os trabalhos Como garantir nota zero Trabalhos entregues fora do prazo Encaminhamento de material corrompido Plágio Sobre as provas Entrar permitida até o primeiro aluno sair Depois disso ninguém mais entra! PS: APENAS PARA QUEM FALTOU A P1 ou a P2!
BIBLIOGRAFIA BÁSICA: 1. FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação. São Paulo, Makron Books, 2000. 2. ORTH, A. I. Algoritmos e Programação. Porto Alegre: AIO, 2001. 175 p.
BIBLIOGRAFIA COMPLEMENTAR: 1. AHO, A. V.; HOPCROFT, J. E.; ULLMAN, J. D. Data structures and algoritmos. Massachusetts, Addison-Wesley, 1987. 2. CORMEN, T.; LEISERSON, C.; RIVEST, R. Introduction to Algorithms. MIT Press, 2001. 3. FARRER, H. et alli. Algoritmos Estruturados. Rio de Janeiro, Guanabara, 1999. 4. GUIMARÃES, A. M.; LAGES, N.A.C. Algoritmos e Estruturas de Dados. Rio de Janeiro, LTC, 1994. 5. SALVETTI, D.; et al. Algoritmos. São Paulo : Makron, 1998.273 p. 6. VELOSO, Paulo et alli. Estruturas de Dados. Rio de Janeiro, Editora Campus, 1996. 7. VILLAS, Marcos V.; VILLAS BOAS, L. Programação: Conceitos, Técnicas e Linguagens. Rio de Janeiro, Editora Campus, 1988. 8. WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro, Prentice-Hall, 1999.
BOM SEMESTRE!