O Regente PLANO ANALÍTICO DA DISCIPLINA DE ESTRUTURA DE DADOS E ALGORÍTMOS Curso: Licenciatura em Informtica Ano: 2º Semestre: 3º Docente: Arlete Ferrão/Calisto Comé Monitor: Edson Pessane Ano Lectivo: 2014 Carga Horria Semanal: 4 horas Avaliação Final: Exame Final Créditos: 4 Horas: 100 (64 de contacto + 36 de estudo) Competências Aplica técnicas clssicas de desenho de ; Distingue iterativos dos recursivos; Implementa computacionalmente diferentes. OBJECTIVOS ESPECÍFICOS No final da disciplina, os estudantes deverão ser capazes de: Saber calcular a complexidade de polinomiais ou exponenciais, iterativos ou recursivos. Saber organizar programas em torno de tipos abstractos de dados. Saber escolher, comparar, conceber e utilizar estruturas de dados adequadas ao problema a resolver. Saber implementar estruturas de dados, em particular, recorrendo a gestão dinâmica de memória. 1
Contacto Estudo Semanas #horas Unidade Temtica Conteúdos Estratégias metodológicas Actividades de Estudo Bibliografia Recomendada I 03/03-08/03 II 10/03-15/03 III 17/03-21/03 IV 24/03-29/03 V 31/03-05/04 VI 07/04-12/04 4 4 Conceitos bsicos 4 4 Complexidade Algorítmica 4 4 Complexidade Algorítmica 4 4 Tipos Abstractos de Dados (TAD) 4 4 Tipos Abstractos de Dados (TAD) Estrutura de dados Algoritmo Tipos de estrutura de dados Avaliação de Algoritmos Notações O-Grande, Omega e Theta Crescimento Assimptótico de Funções Principais Classes de Complexidade Anlise da Complexidade de Algoritmos Regras para a Anlise de Algoritmos classificar e calcular a complexidade de Classificar e calcular a complexidade de Fazer a avaliação dos de classes de Ficha de Exercícios 1 Aula laboratorial 1, 3, 4 Listas Ligadas Representação na memória Percurso e pesquisa numa LL Alocação da memoria Inserir e apagar numa LL Listas ligadas com cabeçalho Duplamente ligadas Listas Circulares Implementação de listas resolver ; percorrer e pesquisar numa lista ligada Aulas laboratoriais sobre tipos abstractos de dados sobre tipos abstractos de dados 1, 2 1, 2 1, 3 4 2, 3, 4 2
VII 14/04 19/04 1ª Avaliação VIII 21/04 26/04 IX 28/04 03/05 X 05/05 10/05 XI 12/05 16/05 XII 13/05 18/05 XIII 20/05 25/05 4 4 Pilhas Conceito Representação usando de arrays Representação usando de listas 2 2 Pilhas Implementação com arrays Implementação com listas Aplicação de pilhas: Quicksort 2 4 Filas Conceito Representação com uso de arrays Representação com uso de listas 2 Filas Implementação com arrays Implementação com listas Filas com prioridade Implementação 2ª ficha de 2ª Avaliação 2 Árvores Avores binrias Representação na memória Percurso numa rvore binria Algoritmo de percurso com uso de pilhas Nós cabeçalho: Threads no quadro pilhas no quadro filas no quadro filas Aulas laboratoriais sobre representação de rvores na memória e percursos em relativos implementação e ordenação rpida de pilhas relativos implementação de filas relativos implementação de filas Resolução de sobre de percurso em rvores 3, 4 3. 4 3
XIV 27/05 02/06 XV 04/06-06/06 Árvores Árvores Árvores binrias de pesquisa Pesquisa, inserção e remoção numa ABP Árvores de pesquisa AVL Inserção e remoção numa AVL Árvores B Pesquisa, inserção e remoção Heap: Heapsort Árvores genéricas Exercicios Ficha 4 XVI Grafos Representação Sequencial Algoritmo de Washall s Operações em grafos rvores binrias representação de rvores de pesquisa AVL sobre rvores genéricas Aulas laboratoriais Aulas em forma de conferência sobre rvores de pesquisa AVL e rvores B sobre rvores genéricas sobre a teoria sobre a teoria de grafos 4, 5 4, 5 ESTRATEGIAS METODOLÓGICAS As aulas desta disciplina serão de caracter teorico, teorico prtico e laboratoriais, o ensino ser centrado no aluno, por forma a capacita-los incitando-os a investigação como um metodo de captação de conhecimento, nas aulas prticas serão antecedidas da distribuição de fichas que servirão de guia para a aprendizagem, deverão ser elaborados programas a serem realizados e deverão estar a funcionar. 1. MEIOS DE ENSINO Condição fundamental para a realização com sucesso a esta disciplina é o uso do computador com o sistema operativo Windows/Linux e Java, que servirão de suporte das aulas prticas, serão usadas fichas de apoio elaboradas pelo regente, bem como material referenciado na bibliografia que poder ser obtido na biblioteca da instituição, a avaliação ser contínua, deverão ser usados outros tipos de meios mais comuns como régua, borracha, calculadoras, etc. 4
2. AVALIAÇÃO No decurso da disciplina serão realizados 2 testes teórico-prticos (T1 e T2 ), com ou sem consulta, e um projecto de programação. Todas as notas são atribuídas dentro da escala de zero a vinte valores. A nota de frequência (Nf) da disciplina ser calculada segundo a fórmula: Nf T1 T 2 P1 0, 4 0,6 Serão admitidos a exame os estudantes que obtiverem nota de frequência igual ou superior a dez valores e serão dispensados do exame os estudantes que obtiverem nota de frequência igual ou superior a 14 valores. No caso do aluno dispensar do exame a nota final (NF) ser igual à nota de frequência, caso contrrio a nota final ser calculada através da seguinte fórmula, onde Ex representa a nota do exame: NF ( 0,25)* Ex (0,75)* Nf 2 Em todos os casos se cumprir o estabelecido no regulamento pedagógico em vigor na instituição. Bibliografia 1. MARK ALLEN WEISS. Data Structures and Algorithms Analysis (2nd Ed)1994 2. MARK ALLEN WEISS. Data Structures and Algorithm Analysis in C. The Benjamim / Cummings, 1995. 3. SEYMOUR LIPSCHUTZ, G. A. VIJAYALAKSHMI PAI. Data Structures. Tata McGraw-Hill Publishing Company Limited. New Delhi, 2006. 4. Projecto de Algoritmos com Implementação em Java e C++. Nivio Ziviani 2006. Editora Thomson, ISBN 8522105251. 5. Estruturas de Dados Usando C. Aaron Ai Tenenbaum, Yedidyah Langsam, Moshe J. Augenstein. Copyright. 1995 da MAKRON Books do Brasil Editora. São Paulo. 5