1. Algorithms Analysis: the efficiency of an algorithm.
a. Algorithm basic notions.
b. Complexity Measurement: temporal and spatial costs.
c. Case Analysis: best, worst and average cases.
d. Asymptotic Notation.
e. Analysis of control structures.
2. Algorithms Design:
a. Recursion vs. Iteration.
b. When to use the recursion.
c. Simple examples of recursion.
e. Examples: factorial, Fibonacci
3. Linear Abstract Data Types: Lists
a. Logical description of list ADT.
b. List Types: sorted, generic, stacks, queues, deques, and cyclic lists.
c. Different representations of lists ADT:
i. Sequential/linked Representation
ii. Static/dynamic representation
d. Implementation through the use of vectors and pointers.
e. Operations on lists (creation, search, insertion, etc.).
f. Examples of lists applications.
4. Hierarchic Abstract Data types: Trees
a. Logical description of the tree structure. Graphic representation.
b. Types of trees: general trees, binary trees.
c. Binary tree ADT.
d. Operations in binary trees.
e. Tree Traversal: pre-order, in-order, post-order.
f. Variants of binary trees.
g. Binary Search Trees.
h. AVL Trees.