Algorithms and Data Structures
Objectives
Knowledge: Basic techniques for solving problems: fundamental abstract data types (list, set, stack, queue, dictionary, ordered dictionary) and abstract data types of the problem domain; basic algorithm design techniques: fundamental data structures (vector, single and double linked list, hash table, binary trees); basic techniques of algorithm analysis: spatial and temporal complexity.
Know-how: Model programs using abstract data types; define and implement abstract data types in the problem domain; calculate the spatial and temporal complexity of algorithms; implement fundamental abstract data types, using the most adequate data structures; design and implement efficient solutions to concrete problems.
Soft-skills: Ability to evaluate solutions; ability to select the suitable techniques to solve a problem; skills in writing communication: reports of discipline projects.
General characterization
Code
3742
Credits
6.0
Responsible teacher
Carmen Pires Morgado, Luís Manuel Marques da Costa Caires
Hours
Weekly - 5
Total - 84
Teaching language
Português
Prerequisites
Available soon
Bibliography
Available soon
Teaching method
There are one lecture and a lab session each week.
In the lectures, all course contents are presented using concrete practical examples. In the laboratory, students design, analyse and implement programs for specific problems by applying the knowledge gained.
Students will be evaluated by practical works and a test.
Evaluation method
Available soon
Subject matter
- Modeling programs, using abstract data types
- Method for the analysis and design of a solution
- Definition and implementation of abstract data types in the problem domain
- Introduction to Algorithm Analysis
- Formal specification of abstract data types:
- Queue (LIFO)
- Stack (FIFO)
- List
- Set
- Dictionary
- Ordered Dictionary
- Study of the fundamental data structures, including the analysis of the algorithmic in the best, worst and expected case:
- Circular Vector,
- Singly and Doubly Linked Lists,
- Open and Closed-Hash Tables,
- Search Trees and Binary Trees.
Programs
Programs where the course is taught: