Estructures de Dades Avançades

Esteu aquí

Crèdits
6
Tipus
Obligatòria d'especialitat (Computació Avançada)
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
CS
Mail
Efficient strategies and techniques for "structure data" are key in modern computer science to design fast algorithms useful in a variety of every day applications (like web archiving, mail servers, network routers, video games).
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.

Professors

Responsable

  • Amalia Duch Brown ( )

Altres

  • Conrado Martínez Parra ( )
  • Salvador Roura Ferret ( )
  • Xavier Messeguer Peypoch ( )

Hores setmanals

Teoria
2
Problemes
1
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

Competències Tècniques de cada especialitat

Computació avançada

  • CEE3.1 - Capacitat per a identificar barreres computacionals i analitzar la complexitat de problemes computacionals en diversos àmbits de la ciència i la tecnologia; així com per representar problemes d'alta complexitat en estructures matemàtiques que puguin ser tractades eficientment amb esquemes algorítmics.
  • CEE3.2 - Capacitat per utilitzar un espectre ampli i variat de recursos algorítmics per resoldre problemes d'alta dificultat algorísmica.

Competències Tècniques Generals

Genèriques

  • CG1 - Capacitat per aplicar el mètode científic en l'estudi i anàlisi de fenòmens i sistemes en qualsevol àmbit de la Informàtica, així com en la concepció, disseny i implantació de solucions informàtiques innovadores i originals.
  • CG3 - Capacitat per al modelatge matemàtic, càlcul i disseny experimental en centres tecnològics i d'enginyeria d'empresa, particularment en tasques de recerca i innovació en tots els àmbits de la Informàtica.

Competències Transversals

ús solvent dels recursos d'informació

  • CTR4 - Gestionar l'adquisició, l'estructuració, l'anàlisi i la visualització de dades i d'informació de l'àmbit de l'enginyeria informàtica, i valorar de forma crítica els resultats d'aquesta gestió.

Raonament

  • CTR6 - Capacitat de raonament crític, lògic i matemàtic. Capacitat de resoldre problemes en la seva àrea d'estudi. Capacitat d'abstracció: capacitat de crear i utilitzar models que reflecteixin situacions reals. Capacitat de dissenyar i realitzar experiments senzills, i analitzar-ne i interpretar-ne els resultats. Capacitat d'anàlisi, de síntesi i d'avaluació.

Bàsiques

  • CB6 - Que els estudiants sàpiguen aplicar els coneixements adquirits y la seva capacitat de resolució de problemes en entorns nous o poc coneguts dins de contexts més amplis (o multidisciplinaris) relacionats amb la seva àrea d'estudi.
  • CB8 - Que els estudiants sàpiguen comunicar les seves conclusions i els coneixements i raons darreres que les sustenten- a públics especialitzats i no especialitzats d'una manera clara i sense ambigüitats.
  • CB9 - Que els estudiants posseeixin les habilitats d'aprenentatge que els permetin continuar estudiant d'una manera que haurà de ser en gran mesura autodirigida o autònoma.

Objectius

  1. Become acquainted with the main and classic data structures of central areas of computer science and identify their major properties.
    Related competences: CB8, CB9, CTR4,
  2. Become familiar with the mathematical tools usually used to analyze the performance of data structures.
    Related competences: CG3, CEE3.1, CEE3.2, CB9, CTR6,
  3. Examine ideas, analysis and implementation details of data structures in order to assess their fitness to different classes of problems.
    Related competences: CG1, CG3, CEE3.1, CEE3.2, CB6, CB8, CB9, CTR4, CTR6,
  4. Select, design and implement appropriate data structures to solve given problems.
    Related competences: CG1, CG3, CEE3.1, CEE3.2, CB6, CB9, CTR4, CTR6,

Continguts

  1. Preliminars.
    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.
  2. Hashing.
    Hashing: Universal Hashing (construction of hash functions), Cuckoo Hashing (collision resolution strategies), Applications (Bloom Filters).
  3. Heaps.
    Heaps: Binomial Heaps.
  4. Self-adjusting data structures.
    Self-adjusting data structures: List updates, Splay trees.
  5. Randomized data structures.
    Randomized data structures: randomized BSTs, treaps.
  6. 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.
  7. Geometric and kinetic data structures.
    Geometric and kinetic data structures: interval, segment and partition trees, sweep lines.
    Data structures for points in motion.
  8. Strings.
    Strings: tries, Patricia tries, suffix trees, suffix arrays, BW-transform, FM-index
  9. External memory / cache oblivious.
    External memory / cache oblivious: models, B-trees, ordered-file maintenance, van Emde-Boas layout.
  10. Succinct Data Structures.
    Succinct rank and select operations.
  11. Miscellaneous.
    Miscellaneous: concurrent, distributed, augmented, persistent data structures.

Activitats

Activitat Acte avaluatiu



Quizzes and/or deliverables.

Quizzes and/or deliverables.
Objectius: 1 4 3 2
Setmana: 14
Tipus: examen de problemes
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Final Exam.

Final Exam.
Objectius: 1 4 3 2
Setmana: 18
Tipus: examen final
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Summaries of classmates presentations.

Summaries of classmates presentations.
Objectius: 1 4 3 2
Setmana: 18
Tipus: entrega
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Research Assignment.

Research Assignment.
Objectius: 1 4 3 2
Setmana: 18
Tipus: examen final
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
15h



Metodologia docent

There will be two kinds of classes: theoretical sessions and practical
sessions. On average, two hours a week is dedicated to theory and one
hour a week to exercises. The lecturer will allocate the hours in
accordance with the subject matter.

The theory classes 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 carry out exercises in which students
take an active part. Lecturers set the exercises in advance. Students are
required to submit the exercises and then discuss the various
solutions/alternatives in class.

Mètode d'avaluació

Grade = 60% FW + 20% FT + 10% SP + 10%Q

FW = Final Work (graded from 0 to 10) in which each participant is required to present a research paper (previously assigned by the lecturer). The presentation consists of:
3-5 minutes backround on the topic of the paper, a motivation.
1 minute overview of the key ideas of the paper.
15 minutes presentation with most important details.
5 minutes demo of a program that implements the ideas introduced in the paper.

FT = Final test graded from (0 to 10) including all the contents of ADS.

SP = Summaries and participation (graded from 0 to 10) in which each participant is required to deliver a summary (1 page extent) of each others presentation and to participate (with questions and comments).

Q = Either quizzes (graded from 0 to 10), one per content's item or three (3) of the following deliverables:

*Notes of one topic in latex (well explained and completed).
*Read and resume one research paper.
*Implement and prove experimentally one of the studied data structures.
*Add to Wikipedia a data structure that isn't.

Bibliografia

Bàsica:

Capacitats prèvies

Basic knowledge of the C++ programming language.
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.