Guías Docentes Electrónicas
1. General information
Course:
DATA STRUCTURES
Code:
42312
Type:
CORE COURSE
ECTS credits:
6
Degree:
346 - DEGREE IN COMPUTER SCIENCE AND ENGINEERING
Academic year:
2019-20
Center:
604 - SCHOOL OF COMPUTER SCIENCE AND ENGINEERING (AB)
Group(s):
10  11  12 
Year:
2
Duration:
First semester
Main language:
Spanish
Second language:
English
Use of additional languages:
English in Group 2 I (Bilingual Group)
English Friendly:
N
Web site:
Bilingual:
Y
Lecturer: JUAN ANTONIO GUERRERO ABENZA - Group(s): 10  11 
Building/Office
Department
Phone number
Email
Office hours
Infante D. Juan Manuel/1A4
SISTEMAS INFORMÁTICOS
926053299
juan.guerrero@uclm.es
Available at the beginning of the academic year. See http://www.esiiab.uclm.es

Lecturer: GINES MORENO VALVERDE - Group(s): 12 
Building/Office
Department
Phone number
Email
Office hours
Infante D. Juan Manuel/1.C.9
SISTEMAS INFORMÁTICOS
2471
gines.moreno@uclm.es
Available at the beginning of the academic year. See http://www.esiiab.uclm.es

2. Pre-Requisites

Students are expected to have already acquired (in previous subjects like Algebra and Calculus, first year) a basic mathematical background in logic, functions theory, algebraic structures and abstraction, as well as some experience in basic programming environments and the Java language (such concepts have been previously taught in the subjects Programming Foundations -I and II- and Information Systems).

3. Justification in the curriculum, relation to other subjects and to the profession

Data Structure belongs to the Programming block and it is included in the common module of Computer Science within de degree programme.

The subject can be seen as the natural continuation of Programming Foundations II, but here we study new data structures under several points of view which include, apart from its use, how they are formally defined and implemented, also allowing  the possibility of being incorporated as a library into a programming environment.

The subject is also strongly connected  with Programming Methodology, where several algorithmic patterns admit an immediate application on the new data structures (for instance, sorting linear ADTs, greedy/dynamic traversing of trees, optimal path searching on graphs, ...) as well as with Declarative Programming (speciality on Computation), where it is mandatory to have been acquired some basic notions on  lists, recursion, etc. in order to reinforce some data structures after introducing new expressive resources like higher order, infinite data structures, and so on.  

During the rest of the degree (and even furthermore, on their professional careers), students will be concerned with the implementation and manipulation of software applications using complex data structures. Modern languages usually provide some of them by default (lists, queues, ...), but they must be studied with some detail   in order to be used correctly. Anyway, other more intrincate data structures (trees, graphs, ...), which are not directly available on typical programming environments, must be designed and incorporated into such tools. Furthermore, the use of data structures, from the point of view of their design and analysis, provide a good level of abstraction and programming skills (recursion, modularity ...) very useful in most tasks related to the development of software applications.


4. Degree competences achieved in this course
Course competences
Code Description
BA4 Basic knowledge about the uses and programming of computers, operating systems, data bases, and digital programmes with applications in engineering.
CO6 Knowledge and application of basic algorithms in digital technologies for the development of solutions, analysing their appropriateness and complexity.
CO7 Knowledge, design, and efficient use of types of data and structures which arise as most appropriate in problem solving.
CO8 Ability to analyse, design, build and maintain applications in a strong, safe, and efficient manner by selecting the most appropriate paradigms and programming languages.
PER1 Team work abilities.
PER4 Interpersonal relationship skills.
5. Objectives or Learning Outcomes
Course learning outcomes
Description
Application of basic principles of structured design, led to objects for problem solving.
Ability to manage types of data, data structures, and abstract tupes of data in an appropriate manner regarding their problems, as well as their formal specifications, implementations, and use of abstract types of lineal and non-lineal data
Additional outcomes
Not established.
6. Units / Contents
  • Unit 1: Unit 1. Introduction.
    • Unit 1.1: Topic 1.1. Presentation and preliminary concepts.
    • Unit 1.2: Topic 1.2. Data structures and efficiency.
  • Unit 2: Unit 2. Formal description of ADTs.
    • Unit 2.1: Topic 2.1. Formal specification with Haskell.
    • Unit 2.2: Topic 2.2. Example: sets.
    • Unit 2.3: Topic 2.3. Implementing an ADT.
  • Unit 3: Unit 3. Linear ADTs.
    • Unit 3.1: Topic 3.1. Lists. Specification and examples.
    • Unit 3.2: Topic 3.2. Implementing lists.
    • Unit 3.3: Topic 3.3. Stacks and Queues. Specification and implementation.
  • Unit 4: Unit 4. Non linear ADTs. Trees.
    • Unit 4.1: Topic 4.1. General trees. Specification.
    • Unit 4.2: Topic 4.2. Binary trees. Specification and implementation.
    • Unit 4.3: Topic 4.3. Search trees. Implementation.
    • Unit 4.4: Topic 4.4. Balance and efficiency. AVL trees.
  • Unit 5: Unit 5. Graphs.
    • Unit 5.1: Topic 5.1. Introduction.
    • Unit 5.2: Topic 5.2. Specification of undirected graphs.
    • Unit 5.3: Topic 5.3. Static implementation of graphs.
7. Activities, Units/Modules and Methodology
Training Activity Methodology Related Competences (only degrees before RD 822/2021) ECTS Hours As Com R Description *
Class Attendance (theory) [ON-SITE] Lectures BA4 CO6 CO7 CO8 0.68 17 Y N N
Problem solving and/or case studies [ON-SITE] Problem solving and exercises BA4 CO6 CO7 CO8 PER1 PER4 0.68 17 Y N N
Computer room practice [ON-SITE] Problem solving and exercises BA4 CO6 CO7 CO8 PER1 PER4 0.28 7 Y N N
Computer room practice [ON-SITE] Practical or hands-on activities BA4 CO6 CO7 CO8 PER1 PER4 0.28 7 Y N N
Progress test [ON-SITE] Assessment tests BA4 CO6 CO7 CO8 0.48 12 Y N Y
Final test [ON-SITE] Assessment tests BA4 CO6 CO7 CO8 0.24 6 Y N N
Practicum and practical activities report writing or preparation [OFF-SITE] Project/Problem Based Learning (PBL) BA4 CO6 CO7 CO8 PER1 PER4 0.8 20 Y N N
Study and Exam Preparation [OFF-SITE] Self-study BA4 CO6 CO7 CO8 PER1 PER4 2.56 64 Y N N
Total: 6 150
Total credits of in-class work: 2.64 Total class time hours: 66
Total credits of out of class work: 3.36 Total hours of out of class work: 84

As: Assessable training activity
Com: Training activity of compulsory overcoming
R: Rescheduling training activity

8. Evaluation criteria and Grading System
  Grading System  
Evaluation System Face-to-Face Self-Study Student Description
Progress Tests 75.00% 0.00% Progress tests related to knowledge acquired in the classroom and/or laboratory ([ESC]50%, [LAB]25%)
Practicum and practical activities reports assessment 15.00% 0.00% Tasks submitted via Moodle ([INF]15%)
Assessment of active participation 10.00% 0.00% Oral presentations in the classroom and/or laboratory ([PRES]10%)
Total: 100.00% 0.00%  

Evaluation criteria for the final exam:
There is not a final term exam. Each student's final grade in the regular assessment will be based on the results from her/his work developed throughout the course (tests + submitted tasks + participation). In order to achieve a passing grade in this subject, the total score of the sum (weighted sum according to the previous table) of all the assignments to be assessed cannot be less than 50% of the maximum possible score.
Specifications for the resit/retake exam:
For the suplementary/extra exam session, students will have to retake all the achievement tests, which will carry the same weight on the final grade (75%), as in the regular session. If there are existing grades in the regular session from the assigments, they will also be added.
Specifications for the second resit / retake exam:
Same criteria as in the previous one (extra exam session).
9. Assignments, course calendar and important dates
Not related to the syllabus/contents
Hours hours
Final test [PRESENCIAL][Assessment tests] 6

Unit 1 (de 5): Unit 1. Introduction.
Activities Hours
Class Attendance (theory) [PRESENCIAL][Lectures] 2
Problem solving and/or case studies [PRESENCIAL][Problem solving and exercises] 2
Study and Exam Preparation [AUTÓNOMA][Self-study] 6

Unit 2 (de 5): Unit 2. Formal description of ADTs.
Activities Hours
Class Attendance (theory) [PRESENCIAL][Lectures] 3
Problem solving and/or case studies [PRESENCIAL][Problem solving and exercises] 3
Computer room practice [PRESENCIAL][Problem solving and exercises] 1
Computer room practice [PRESENCIAL][Practical or hands-on activities] 1
Practicum and practical activities report writing or preparation [AUTÓNOMA][Project/Problem Based Learning (PBL)] 2
Study and Exam Preparation [AUTÓNOMA][Self-study] 10

Unit 3 (de 5): Unit 3. Linear ADTs.
Activities Hours
Class Attendance (theory) [PRESENCIAL][Lectures] 4
Problem solving and/or case studies [PRESENCIAL][Problem solving and exercises] 4
Computer room practice [PRESENCIAL][Problem solving and exercises] 2
Computer room practice [PRESENCIAL][Practical or hands-on activities] 2
Progress test [PRESENCIAL][Assessment tests] 4
Practicum and practical activities report writing or preparation [AUTÓNOMA][Project/Problem Based Learning (PBL)] 6
Study and Exam Preparation [AUTÓNOMA][Self-study] 16

Unit 4 (de 5): Unit 4. Non linear ADTs. Trees.
Activities Hours
Class Attendance (theory) [PRESENCIAL][Lectures] 4
Problem solving and/or case studies [PRESENCIAL][Problem solving and exercises] 4
Computer room practice [PRESENCIAL][Problem solving and exercises] 2
Computer room practice [PRESENCIAL][Practical or hands-on activities] 2
Progress test [PRESENCIAL][Assessment tests] 4
Practicum and practical activities report writing or preparation [AUTÓNOMA][Project/Problem Based Learning (PBL)] 6
Study and Exam Preparation [AUTÓNOMA][Self-study] 16

Unit 5 (de 5): Unit 5. Graphs.
Activities Hours
Class Attendance (theory) [PRESENCIAL][Lectures] 4
Problem solving and/or case studies [PRESENCIAL][Problem solving and exercises] 4
Computer room practice [PRESENCIAL][Problem solving and exercises] 2
Computer room practice [PRESENCIAL][Practical or hands-on activities] 2
Progress test [PRESENCIAL][Assessment tests] 4
Practicum and practical activities report writing or preparation [AUTÓNOMA][Project/Problem Based Learning (PBL)] 6
Study and Exam Preparation [AUTÓNOMA][Self-study] 16

Global activity
Activities hours
General comments about the planning: This course schedule is APPROXIMATE. It could vary throughout the academic course due to teaching needs, bank holidays, etc. A weekly schedule will be properly detailed and updated on the online platform (Virtual Campus). Note that all the lectures, practice sessions, exams and related activities performed in the bilingual groups will be entirely taught and assessed in English. Classes will be scheduled in 3 sessions of one hour and a half per week. The assessment activities could be performed in the afternoon, in case of necessity.
10. Bibliography and Sources
Author(s) Title Book/Journal Citv Publishing house ISBN Year Description Link Catálogo biblioteca
Java ES con NetBeans + Documentación http://java.sun.com/javase/downloads/index.jsp  
Java. Tutorial online http://java.sun.com/docs/books/tutorial/java/TOC.html  
Página oficial de Haskell http://haskell.org  
Tutorial de Haskell http://www.haskell.org/tutorial/  
Bird, R.; Walder, P. Introducción a la Programación Funcional en Haskell Prentice-Hall 84-8322-176-4 2000 http://books.google.es/books?id=xIlyOiGOC6EC&printsec=frontcover&dq=haskell+bird&hl=es&ei=-ACQTLa9IIHxOe6WqOkM&sa=X&oi=book_result&ct=result&resnum=1&ved=0CC4Q6AEwAA#v=onepage&q&f=false Ficha de la biblioteca
Ehrig, H., Mahr, B. Fundamentals of Algebraic Specifications Springer-Verlag 3-540-51799-5 1990 http://books.google.es/books?id=sq1Ktr9W3RgC&lpg=PA41&dq=abstract%20data%20types&pg=PP1#v=onepage&q=abstract%20data%20types&f=false  
Goodrich, Michael T. Data structures and algorithms in Java Wiley & Sons 978-0-470-39880-7 2011 Ficha de la biblioteca
Lafore, R. Data Structures and algorithms in Java Sams Publishing 2002  
Lewis, John Estructuras de datos con Java : diseño de estructuras y algo Pearson Educación 84-205-5034-5 2006 Ficha de la biblioteca
Nell, Dale Abstract data types : specifications, implementations and ap D. C. Heath and Company 978-0-669-40000-7 1996 http://books.google.es/books?id=hJ6IOaiHVYUC&printsec=frontcover&dq=Dale+Walker+Abstract+data+types Ficha de la biblioteca



Web mantenido y actualizado por el Servicio de informática