Créditos
6
Tipos
Obligatoria de especialidad (Computación Avanzada)
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
CS
Mail
duch@cs.upc.edu
This course explores selected topics on fundamental data structures that may be multidimensional, metric, geometric, kinetic, self-adjusting, concurrent, distributed, etc.
The tour covers, for each topic, major results and characteristic ways of analysis as well as possible directions of research.
Profesorado
Responsable
- Amalia Duch Brown ( duch@cs.upc.edu )
Otros
- Conrado Martínez Parra ( conrado@cs.upc.edu )
Horas semanales
Teoría
4
Problemas
0
Laboratorio
0
Aprendizaje dirigido
0.16
Aprendizaje autónomo
7.84
Competencias
Advanced computing
Genéricas
Uso solvente de los recursos de información
Razonamiento
Básicas
Objetivos
-
Become acquainted with main and classical data structures of central areas of computer science and with their major properties.
Competencias relacionadas: CB8, CB9, CTR4, -
Become familiar with the mathematical tools usually used to analyze the performance of data structures.
Competencias relacionadas: CG3, CEE3.1, CEE3.2, CB9, CTR6, -
Examine ideas, analysis and implementation details of data structures in order to assess their fitness to different classes of problems.
Competencias relacionadas: CG1, CG3, CEE3.1, CEE3.2, CB6, CB8, CB9, CTR4, CTR6, -
Select, design and implement appropriate data structures to solve given problems.
Competencias relacionadas: CG1, CG3, CEE3.1, CEE3.2, CB6, CB9, CTR4, CTR6,
Contenidos
-
Preliminares
Review of required previous knowledge: asymptotic notation, basic algorithm analysis, arrays, linked lists, stacks and queues, basics of hashing, binary search trees, AVL trees, red-black trees, heaps. -
Techniques.
Techniques: Experimental algorithmics. Probabilistic analysis of algorithms. Amortized analysis. -
Disjoint Sets.
Disjoint Sets: Union-find data structures (a.k.a. merge-find sets). Union by weight. Path compression heuristics. Applications. -
Priority Queues.
Priority Queues: Heaps. Binomial queues. Fibonacci heaps. -
Data Structures for Strings
Data Structures for Strings: Tries. Patricia tries. Suffix trees and suffix arrays. -
Self-adjusting data structures.
Self-adjusting data structures: List updates, Splay trees. -
Randomized data structures.
Randomized data structures: randomized BSTs, treaps. -
Multidimensional and metric data structures, searching in metric spaces, associative retrieval and object representation.
Multidimensional and metric data structures, searching in metric spaces, associative retrieval and object representation: grid files, kd trees, point quad trees, PR quad trees, octrees. -
Geometric and kinetic data structures.
Geometric and kinetic data structures: interval, segment and partition trees, sweep lines.
Data structures for points in motion. -
External memory / cache oblivious.
External memory / cache oblivious: models, B-trees, ordered-file maintenance, van Emde-Boas layout. -
Succinct Data Structures.
Succinct rank and select operations. -
Miscellaneous.
Miscellaneous: concurrent, distributed, augmented, persistent data structures.
Actividades
Actividad Acto evaluativo
Development of syllabus topics.
Development of syllabus topics.Objetivos: 1 4 3 2
Contenidos:
- 1 . Preliminares
- 2 . Techniques.
- 4 . Priority Queues.
- 6 . Self-adjusting data structures.
- 7 . Randomized data structures.
- 8 . Multidimensional and metric data structures, searching in metric spaces, associative retrieval and object representation.
- 9 . Geometric and kinetic data structures.
- 5 . Data Structures for Strings
- 10 . External memory / cache oblivious.
- 12 . Miscellaneous.
Teoría
42h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
42h
Reading of research papers.
Reading of research papers.Objetivos: 1 3 2
Contenidos:
- 2 . Techniques.
- 4 . Priority Queues.
- 6 . Self-adjusting data structures.
- 7 . Randomized data structures.
- 8 . Multidimensional and metric data structures, searching in metric spaces, associative retrieval and object representation.
- 9 . Geometric and kinetic data structures.
- 5 . Data Structures for Strings
- 10 . External memory / cache oblivious.
- 12 . Miscellaneous.
Teoría
5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Validation Exam.
The validation exam, graded out of 10 points, aims to evaluate the student's knowledge consolidation and mastering of the programming projects.Objetivos: 1 4 3 2
Semana: 14 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
The lectures are theoretical/practical merged sessions.The lecturer will allocate the hours in accordance with the subject matter.
The theory hours take the form of lectures in which the lecturer sets
out new concepts or techniques and examples illustrating them.
Sessions will consist of a presentation of the main topics of each content's item,
mainly based in selected original research papers.
A high level of students' participation is expected at each session.
Current lines of research in each topic will be discussed at the end of each topics' presentation.
The practical classes are used to explain implementations and show the performance
of selected data structures. Students are required to take an active part in the class by
discussing the various possible solutions/alternatives in class.
Método de evaluación
The final grade F is calculated using the following formula:F = 0.5 (VE) + 0.5 ((P1 + P2 + P3 + P4) / 4);
with:
VE = exam (0--10 points), P_i = programming project (0--10 points), i = 1,2,3,4
Bibliografía
Básico
-
Introduction to algorithms
- Cormen, T.H. [et al.],
MIT Press,
2022.
ISBN: 9780262046305
-
Advanced data structures
- Brass, P,
Cambridge University Press,
2008.
ISBN: 9780511436079
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000767159706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithms on strings, trees, and sequences: computer science and computational biology
- Gusfield, D,
Cambridge University Press,
1997.
ISBN: 0521585198
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001989459706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Foundations of multidimensional and metric data structures
- Samet, H,
Elsevier : Morgan Kaufmann,
2006.
ISBN: 0123694469
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003157309706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacidades previas
Knowledge any programming language (preferably C++).Basic knowledge of algorithm analysis methods (in particular asymptotic complexity).
Basic knowledge of elementary data structures such as stacks, queues, linked lists, trees, and graphs as well as of sorting methods such as insertion sort, heap sort, merge sort, and quick sort.