ISMAT 13558
Algorithms and Data Structures
IT Engineering
-
ApresentaçãoPresentationIn programming, the themes are repeated and the solutions too, so it is essential to understand and know how to apply the studied methods that present the best solution to well-known problems. The UC Algorithms and Data Structures addresses the study of fundamental data structures and classic algorithms, used in programming. The correct use of algorithms and data structures allows to obtain programs written in a better way, with fewer errors and optimized the execution time and allocated memory.
-
ProgramaProgrammeS1. Sequential search. S2. Binary search. S3. Fundamentals of algorithm analysis. Analysis of the best case, worst case, average case. Growth of functions. Asymptotic complexity. Notations. Recurrences and respective resolution. Recursion trees. Master method. S4. Review of simple sorting methods: selection, insertion and bubble. S5. Sorting methods merge sort and quicksort (recursive). S6. Division and conquest. S7. Heapsort ordering method. Min and Max-heap. S8. Linear time ordering methods. Counting sort, Radix sort, Bucket sort. S9. Algorithm design strategies. Division and conquest (revisited). "Greedy" algorithms. Dynamic programming. S10. Amortized Analysis. S11. Advanced Data Structures. Priority Queues (Min and Max-Priority) Binary Search Trees. Balanced BSTs. Graphs. Hashing.
-
ObjectivosObjectivesLO1. Understand and apply the methods of analysis of iterative and recursive algorithms. LO2. Understand and identify essential strategies for the design of algorithms. LO3. Master advanced data structures and fundamental algorithms on them. LO4. Understand the influence of the design / choice of an algorithm and / or data structure on the performance of solving a problem. LO5. Know and identify intractable problems, as well as algorithms that present an approximate solution to them.
-
BibliografiaBibliographySedgewick R., Wayne K. (2011). Algorithms. Addison-Wesley.
-
MetodologiaMethodologyThe content taught is applied using programming. Active, problem-solving-oriented methodologies (PBL) are used. At the end of each part, projects are developed integrating all the content taught.
-
LínguaLanguagePortuguês
-
TipoTypeSemestral
-
ECTS6
-
NaturezaNatureMandatory
-
EstágioInternshipNão



