Algoritmos e estrutura de dados Prof. Luiz Gonzaga da Silveira Jr [email protected] Quem sou EU? • Hummm...de onde eu venho?! • Por onde passei? • Por que eu vim pra cá? Estratégias de Ensino - Aprendizagem • Aulas expositivas • Atividades práticas realizadas individualmente (lab) • Exposição/discussão de problemas • Fechamento das aulas • Entrega de atividades - listas (lab) Avaliação • Prova: • Quantidade: 1 • Individual • Listas de exercícios (/aula) • mlistas = (L1+L2+L3+L4)/4 • Média: • Média final = (prova*.6+mlistas*.4) • Aprovação : Média final >= 7.0 Conteúdo • Conceitos básicos de programação; • Linguagem de programação: ambiente, ferramentas (e.g. GNU GCC); • Elementos da linguagem: tipos de dados, operadores, comandos; • Declaração de variáveis: locais, globais, estáticas, dinâmicas, tipos simples e tipos definidos pelo usuário; • Sub-rotinas: declaração, passagem de parâmetros (por valor e por referência), retorno de valores; • Entrada e saída: comandos, uso de arquivos; • Listas lineares (seqüenciais): vetores com alocação estática; • Implementação de rotinas para manipulação de estruturas de dados usando listas lineares: fila, pilha e deque; • Listas encadeadas: ponteiros e alocação dinâmica de memória; • Implementação de rotinas para manipulação de estruturas de dados usando listas encadeadas: fila, pilha, deque e árvores; • Algoritmos de pesquisa em estruturas de dados (e.g. pesquisa binária); • Algoritmos de ordenação de dados. Objetivo principal Apresenta conceitos básicos de algoritmos e de estruturas de dados através de listas lineares, árvores e algoritmos de busca. Vamos lá! • Java, C, C++, Lua?! • Editores, IDE, SDK? Onde me encontrar? • Sala 6B413 (marcar antes) • [email protected] • Aulas: • Sala de aula • Laboratório