The aim is to provide students with skills in the context of design and analysis of computer algorithms, and in particular:
- Fundamentals of static and dynamic data structures
- Sorting and searching algorithms
- Generic programming
Applying knowledge and understanding:
- Design and development of algorithms in C++ language
- Use of basic data structures for problem solving
- Analyze and describe the complexity of algorithms
Adequate knowledge of C++ is recommended.
Course contents summary
This course introduces the fundamental concepts about algorithms and data structures in C++
Part A (42 hours):
Introduction to C++ language. (12 hours)
Array and pointers. (2 hours)
Lists. (10 hours)
Stacks. (3 hours)
Queues. (3 hours)
Recursion. (2 hours)
Sorting algorithms. (6 hours)
Exercises on part A (4 hours)
Part B: (30 hours)
Symbol tables and binary trees. (8 hours)
Priority queues and heap. (6 hours)
Binary search trees. (8 hours)
Graphs. (8 hours)
Robert Sedgewick, Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition.
Clifford A. Shaffer, Data Structures and Algorithm Analysis Edition 3.2 (C++ Version)
The course material is available through the Elly portal.
Assessment methods and criteria
The exam consists of a laboratory examination in C++ (3 hours).
There will be two midterm examinations only for students at the first year:
Midterm 1) topics: part A.
Incidence on the final vote: 50%.
Midterm 2) topics: part B, only after sufficient evaluation of the first Midterm exam. Incidence on the final vote: 50%
The laboratory examinations consist on exercises and quizzes.