# Data Structures and Algorithms, 2019

In this course, students will study the main data structures (lists, trees and graphs) and their manipulation algorithms. Students will acquire the skills to design and develop the most selected data structures to solve real-life problems and develop quality software. They will also learn to analyze the algorithms from the point of view of temporal and space complexity, to be analyzed to propose the most efficient algorithms. The algorithmic strategies of recursion and divide and conquer will also be studied.

ISABEL SEGURA BEDMAR

Department of Computer Science

Area:
Computer Science

Degree:
Bachelor's Degree in Data Science and Engineering

October, 2019

Image courtesy of Gerd Altmann via [ Pixabay ]

Theorethical hours: 28 hours

Lab hours: 28 hours

Total learning time: 118 hours

#### PRERREQUISITES AND RECOMMENDED PREVIOUS KNOWLEDGE

It is recommended that students have previously followed the following courses:

- Programming

- Calculus

#### GENERAL DESCRIPTION OF THE SUBJECT

In this course, students will study the main data structures (lists, trees and graphs) and their manipulation algorithms. Students will acquire the skills to design and develop the most selected data structures to solve real-life problems and develop quality software. They will also learn to analyze the algorithms from the point of view of temporal and space complexity, to be analyzed to propose the most efficient algorithms. The algorithmic strategies of recursion and divide and conquer will also be studied.

#### OBJETIVES: KNOWLEDGE AND SKILLS

Students will work in aspects of the following competences:

• Analysis and synthesis, as well as the ability to plan and organize.

• Knowledge of the main data structures and algorithmic strategies (iteration, recursion and divide and conquer).

• Use different data structures to implement solutions to specific problems.

• Problems solving with algorithms.

• Concern for clarity, simplicity and efficiency in problem solving.

• Analyze the complexity of the algorithms.

• Discuss the different solutions for a problem.

• Teamwork.

#### TEACHING MATERIAL

For the theoretical part of the course, slides of studied topics are included as well as recommended readings.

For the exercises part of the course, a number of exercises and the corresponding solutions are included.

For the practical part, the lab assignments are including with the corresponding possible solutions.

#### ASSESSMENT ACTIVITIES OR PRACTICAL ASSIGNMENTS

Exams and possible solutions are included. At the end of the course, you should be able to perform the following tasks:

• Solve exam problems in the time indicated on them.

• Analyze the time and space complexity of an algorithm.

• Design and implement (in Python) data structures and their algorithms that solve the description of a real problem (case study type).

Citation: Bedmar, I. S. (2019, January 22). Data Structures and Algorithms. Retrieved February 25, 2020, from OCW - UC3M Web site: http://ocw.uc3m.es/ingenieria-informatica/data-structures-and-algorithms.