Skip to main content

IPLUSO 18752

Algorithms and Data Structures

Computer Applications for Data Science
  • ApresentaçãoPresentation
    Many programming projects involve solving complex computational problems, for which simplistic or naive solutions may not be efficient enough. The focus of this course is on how to design good algorithms, and how to analyze their correctness and efficiency. This is among the most basic aspects of good programming which has progressively become a major concern. This is therefore a particularly relevant CU for the the studies’ cycle.
  • ProgramaProgramme
    CP1: Complexity, classes, typical functions and algorithm analisys; CP2: Complexity and recursivity (set of recursive problems); CP3: Sorting and selection algorithms; CP4: Sorting algorithms: Insertion Sort, Selection Sort, Merge Sort and Quicksort; CP5: Compare the complexity of sorting algorithms (Quicksort programming); CP6: Abstract data types: Stack and Queue; CP7: Circular arrays, simple lists and linked lists; CP8: Implementing Queue and List (programming using arrays and lists); CP9: Using Dictionaries and Sets; CP10: Binary Trees; CP11: Progrmming binary trees; CP12: Basic notions of graphs.
  • ObjectivosObjectives
    The students that successfully finish this curricular unit will be able to: OA1. Know, understand and use fundamental algorithms and data structures; OA2: Analyze e design recursive algorithms; OA3. Analyze the correctness, complexity and performance of simple algorithms; OA4. Make a reasoned choice of the best suited data structures to each problem and apply them to its resolution; OA5. Design linked data structures and algorithms for it's manipulation  
  • BibliografiaBibliography
    Cormen, Thomas H. - Algorithms Unlocked. Cambridge, Massachusetts: MIT Press, 2013. Tamassia, Roberto, Goldwasser, Michael H., Goodrich, Michael  T. - Data Structures and Algorithms in Python. First Edition. USA: Wiley, 2013  
  • MetodologiaMethodology
    Use of ecercise-based learning methodology through which students are encouraged to autonomously develop solutions for problems that are posed to them, and that address most of the topics taught.  
  • LínguaLanguage
    Português
  • TipoType
    Semestral
  • ECTS
    5
  • NaturezaNature
    Mandatory
  • EstágioInternship
    Não