Learning objectives
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
Prerequisites
Adequate knowledge of C++ is recommended.
Course unit content
This course introduces the fundamental concepts about algorithms and data structures in C++
Full programme
Part A:
Introduction to C++ language.
Array and pointers.
Lists.
Stacks.
Queues.
Recursion.
Sorting algorithms.
Part B:
Symbol tables and binary trees.
Priority queues and heap.
Binary search trees.
Graphs.
Introduction to Standard Template Library (STL) in C++
Bibliography
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)
Teaching methods
Classroom lectures (34 hours).
Classroom exercises (18 hours).
Laboratory lectures (20 hours).
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.
Other information
- - -
2030 agenda goals for sustainable development
- - -