Ficha de Unidade Curricular – 1º Ciclo
Unidade Curricular / Curricular Unit
Algoritmia e Estruturas de Dados
Ciclo de Estudos / Study Cycle
Licenciatura em Engenharia Informática
Nome do Docente Responsável
Pedro Hugo Queirós Alves
Objectivos de aprendizagem (conhecimentos, aptidões e competências a desenvolver pelosestudantes)
O objectivo desta unidade curricular é introduzir os conceitos fundamentais de algoritmos e das estruturas de dados básicas, numa perspetiva de resolver problemas complexos de uma forma eficiente. O aluno deverá ser capaz de avaliar a eficiência de um algoritmo sem necessidade de o implementar ou testar. Deverá ser igualmente capaz de aplicar a estrutura de dados mais eficaz e eficiente para resolver um determinado problema. Concretamente, o aluno deverá conseguir implementar programas em Java cuja eficiência seja um critério
significativo de sucesso (ex: pesquisa, ordenação).
Learning outcomes of the curricular unit
This curricular unit aims to introduce the basic concepts of algorithms and basic data structures, through the perspective of solving complex problems in the most efficient possible way.
The student should be able to analyze the efficiency of a given algorithm without implementing or testing it. It should also be able to choose the most appropriate and efficient data structure to support the solution of a given problem. In practice, the student should be able to implement Java applications whose efficiency is a determining success factor (ex: searching, sorting).
Conteúdos programáticos
– funções recursivas, algoritmos recursivos
– algoritmos de pesquisa
– eficiência e optimização
– complexidade de algoritmos
– ordenação – bubble sort, selection sort, insertion sort, quick sort
– tipos de dados abstractos – pilhas e filas
– listas ligadas
– árvores
– hash tables
Syllabus
– recursive functions, recursive algorithms
– search algorithms
– efficiency and optimisation
– complexity of algorithms
– sorting – bubble sort, selection sort, insertion sort, quick sort
– abstract data types – queues and stacks
– linked lists
– trees
– hash tables
Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular
Os conteúdos programáticos desta UC visam dotar os estudantes de um conjunto alargado de conhecimentos sobre algoritmos, com um foco especial sobre a sua eficiência. Por outro lado, os
estudantes ficam aptos a desenhar estruturas de dados adequadas à resolução de problemas complexos como a pesquisa e a ordenação de dados. É expectável que o aluno seja capaz de conceber soluções tecnológicas com preocupações de desempenho e eficiência e que sejam capazes de as testar e validar. O projeto em grupo fomenta o desenvolvimento de competências de comunicação interpessoal e de gestão de requisitos e de tempo disponível para o seu desenvolvimento.
Demonstration of the syllabus coherence with the Curricular Unit’s objectives
The programmatic contents of this curricular unit enable students to acquire detailed knowledge of algorithms with a strong focus on their efficiency. On the other hand, the students are now able to design data structures that are adequate to the resolution of complex problems such as sorting and searching. It is expectable that the student is able to design technological solutions with a focus on performance and efficiency and that those solutions are properly optimized and tested for the specific problem they aim to solve. The project is developed in group, improving communication skills as well as time and requirements management.
Metodologias de ensino (avaliação incluída)
A disciplina é teórico-prática, havendo uma alternância entre métodos:??
Met. 1 – expositivos,
Met. 2 – demonstrativos
Met. 3 – participativos.
Avaliação Continua:
20% – Teste intermédio
20% – Teste final
15% – TPCs
45% – Projecto
Avaliação da Época de Recurso:
50% – Exame
50% – Projecto
Planned learning outcomes, teaching methods and assessment methods and criteria
The curricular unit is both theoretical and practical, switching between:??
Met. 1 – exposition,
Met. 2 – demonstration
Met. 3 – participation.
Continuous evaluation:
20% – Intermediate test
20% – Final test
15% – Homework assignments
45% – Project
Appeal evaluation:
50% – Exam
50% – Project
Demonstração da coerência das metodologias de ensino com os objectivos de aprendizagem da unidade curricular
Metodologia expositiva
Objetivos:
– Fornecer aos alunos um conjunto de conhecimentos alargados sobre algoritmos e estruturas de dados.
– Saber aplicar correctamente esses conhecimentos à linguagem Java tendo como referência os exemplos dados na aula.
Metodologia demonstrativa
Objetivo:
– Saber aplicar correctamente esses conhecimentos à linguagem Java tendo como referência os exemplos dados na aula.
Metodologia participativa
Objetivo:
– Saber aplicar correctamente esses conhecimentos à linguagem Java tendo como referência os exemplos dados na aula.
Demonstration of the teaching methodologies coherence with the curricular unit’s objectives
Exposure methodology
Goals:
1 – Provide students with knowledge about algorithms and data structures??
2 – Apply this knowledge to the Java programming language using the examples given in the course
Demonstration methodology
Goals:
– Apply this knowledge to the Java programming language using the examples given in the course ????
Participation methodology
Goal:
– Apply this knowledge to the Java programming language using the examples given in the course
Bibliografia Principal / Main Bibliography
Data structures & Algorithms in Java, Second Edition. Robert Lafore. SAMS
Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)
Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.