Skip to main content

ISLA Santarém 18752

Algorithms and Data Structures

Computer Engineering
  • ApresentaçãoPresentation
      
  • ProgramaProgramme
    1. Concepts of Algorithms and Data Structures: Analysis of algorithm efficiency. Asymptotic notations. 2. Dynamic data structures: Vectors and Matrices. Stacks, Queues, Lists. Trees and Graphs. Operations with structures (Insert, change, delete and sort). 3. Sorting and Search: Sorting: Bubble Sort, Quick Sort, Selection Sort, Insertion Sort, Shell Sort, Merge Sort. Search: sequential, binary, hashing; Comparison of algorithms. 4. Recursion: Basic concepts. Factorial Function, Fibonacci, Tail Recursion, other functions. Classic problems of recursive functions. 5. Implementation in Java: Layered model; Files, streams and serialization; Applications with database; Error handling.
  • ObjectivosObjectives
    O1. Introduce and develop fundamental algorithmic strategies. O2. Analyze the performance of iterative and recursive algorithms in terms of their algorithmic complexity. O3. Apply systematic debugging strategies, failure management and implementation of algorithms and data structures with correctness and robustness. Competences: C1. Implement the most relevant data structures, namely arrays, matrices, lists, stacks, queues and trees. C2. Use algorithmic techniques, such as search and sorting. C3. Implement recursive programming techniques. C4. Use the Java language to implement structures and algorithms.
  • BibliografiaBibliography
    Campesato, O. (2023). Data Structures in Java. Stylus Publishing, LLC. Malhotra, D., & Malhotra, N. (2020). Data Structures and Program Design Using Java: A Self-Teaching Introduction. Mercury Learning and Information. La Rocca, M. (2021). Advanced Algorithms and Data Structures. Manning Publications. Rocha, A. M. A. (2014). ESTRUTURAS DE DADOS E ALGORITMOS EM JAVA, FCA, 2011 Wengrow, J. (2020). A Common-Sense Guide to Data Structures and Algorithms. Pragmatic Bookshelf.
  • MetodologiaMethodology
    Synchronous distance learning: 1. Theoretical classes exposing content using the expository method, complemented by interrogative and interactive methods to consolidate the knowledge acquired through questioning and carrying out small exercises. Face to face: 2. Practical application of content through exercises and assignments. Thus, each topic studied is reinforced through practical exercises. Autonomous: 3. Resolution of additional exercises proposed by the teacher.   The teacher provides feedback (Tutorial Guidance - OT) on the results obtained by the student in solving the proposed problems, in person in a classroom context or remotely in asynchronous mode via the Moodle platform.
  • LínguaLanguage
    Português
  • TipoType
    Semestral
  • ECTS
    6
  • NaturezaNature
    Mandatory
  • EstágioInternship
    Não
  • AvaliaçãoEvaluation

    Avaliação Curricular (contínua):

    A1. Portfólio de trabalhos/exercícios de aula.

    A2. Trabalho prático (relatório e projeto).

    A3. Teste final prático.

    A classificação final é calculada através da fórmula Classificação Final = 0,2*A1+0,4*A2+ 0,4* A3.

    O estudante é aprovado se obtiver classificação igual ou superior a 9,5 valores.

    Avaliação Final (A): O estudante realiza o exame de cariz eminentemente prático (A=100%) e é aprovado se obtiver uma classificação igual ou superior a 9,5 valores em 20.

    Avaliação em Época de Recurso e Época Especial (A): O estudante realiza o exame de cariz eminentemente prático (A=100%) e é aprovado se obtiver uma classificação igual ou superior a 9,5 valores em 20.