Academic management

University of Oviedo

Uniovi.es | Home | Search | Site Map

| |

Bachelor's Degree in Civil Engineering
GINGCI01-4-014
Bachelor Thesis (Mention in Hydrology)
General description and schedule Teaching Guide

Coordinator/s:

Jaime Alonso González
jalonsouniovi.es

Faculty:

Rubén Muñiz Sánchez
rubenmsuniovi.es
(English Group)
Jaime Alonso González
jalonsouniovi.es
PEDRO HERNANDEZ ARAUZO
phernandezuniovi.es
Jorge Álvarez Fidalgo
alvarezfjorgeuniovi.es
(English Group)
José Roldán Gómez
roldangjoseuniovi.es

Contextualization:

The subject Data Structure (DS) composes, along with other subjects: Computer Science Fundamentals, Programming Methodology, Data Structures, Programming Technologies and Paradigms, Algorithms and Concurrent and Parallel Programming, the Programming building block, integrated into the Application Software module in addition to the subjects known as Software Engineering and Smart Applications.

Its contents and the competences acquired by the students will be used in all those subjects that require the use of programming, as choosing the right data structure for a certain problem is crucial to achieve a successful solution. It is also useful for other subjects outside of the programming scope, where information is represented using specific data structures.

Requirements:

To face this subject it is important that the student has acquired the theorical concepts and practical skills, provided by the following subjects: Introduction to Programming and Programming Methodology.


In addition, it is advisable that the student has passed or it is currently attending the subject Algorithms. In this subject, the concept of recursive algorithm and the analysis of algorithm efficiency will be studied in depth. This analysis is highly relevant when choosing the most adequate data structure to solve a problem, and recursive algorithms can naturally appear while handling recursive data structures.

Competences and learning results:

A student is expected to acquire the following general competences of the Degree in Computer Engineering in Information and Technologies:

 

Competence

Description

GTR1

Ability to solve problems in a given context.

GTR2

Abstraction ability: to be able to define and use models from real situations.

GTR3

Ability to work individually.

GTR4

Ability to plan and organise one’s personal work.

GTR7

To have the learning abilities required to conduct additional training or improve the current knowledge with a certain degree of autonomy.

GTR8

To be motivated by quality and continuous improvement and act with rigor in the professional development.

 

It goes without saying that most of the previously enumerated competences will be acquired in combination with other subjects of the Degree.

The specific competences to be acquired in Introduction to Programming and the learning results are the following:

Specific competences common to IT.

ECR7  Knowledge, design and efficient use of the data types and structures more suited to solve a given problem.

Learning results

Competence

Learning results

ECR7

PR39

To understand the idea of data abstraction.

ECR7

PR40, PR41, PR42

To be able to understand and use linear data structures: lists, stacks and queues.

ECR7

PR43, PR44, PR47,

PR48

To be able to understand and use non-linear data structures: trees, search trees and sets.

ECR7

PR45, PR46, PR49, PR50, PR51, PR52, PR53, PR55

To be able to understand and use advanced data structures: priority queues, hash tables and graphs.

ECR7

PR42, PR44, PR48, PR55, PR57

To be able to choose the best data structure to solve a problem.

 

Contents:

  1. Data Structures and Abstraction.
  2. Linear structures: lists, stacks and queues.
  3. Non-linear structures: trees and search trees.
  4. Other non-linear structures: sets and dictionaries.
  5. Advanced structures: priority queues and hash tables.
  6. Other advanced structures: graphs.

Methodology and work plan:

Given the guidelines set by the European Higher Education Area, the subject will be developed by means of face to face activities and personal work of the student.

Face to face activities are those where the lecturer will be present. They are divided into seminars, theory, practice, group tutor and evaluation sessions.

In addition, given the principles established in the RD 1393/2007, a student will have to carry out an individual work (personal work), supervised by the lecturer.

The teaching methodology will rely on the active participation of students. Certain tasks will be proposed to be carried out within a stablished time period, and according to a minimum quality standards.

The suggested guidelines to fulfil personal work are shown as follows:

  1. Choose and read the required documentation.
  2. Ask all the questions that might arise.
  3. Solve the proposed exercise.
  4. Think about the solution of the problem and describe the difficulties found in the process.
  5. Prepare the documentation to deliver.
  6. Keep track of the time used for each activity and in total.

With regards to the practice sessions, a report or a delivery including the work carried out during a session might be requested. In that case, it will be uploaded to the Virtual Campus.

The subject requires a total of 150 hours including face to face and home activities, arranged as follows:

  1. In class work (60 hours)
    1. Theory classes (28 hours)
    2. Classroom practical sessions (7 hours)
    3. Computer lab practical sessions (21 hours)
    4. Group tutor sessions (2 hours)
    5. Evaluation sessions (2 hours)
  2. Personal work (90 hours)
    1. Individual work (32 hours)
    2. Personalised tutor sessions (4 hours)
    3. Study (54 hours)

 

 

IN CLASS WORK

PERSONAL WORK

Topics

Total amount of hours

Theory class

Classroom practical sessions / seminars / workshops

Computer lab practical sessions

Group tutor sessions

Evaluation sessions

Total

Group work

Individual work

Personalised tutor sessions

   Study

  Total

Data structures and abstraction

16

3

1

2

 

 

6

 

10

 

16

3

Linear data structures

26.5

5

1.5

4

 

 

10.5

 

16

 

26.5

5

Non-linear data structures

28.5

5

1.5

4

1

1

12.5

 

16

 

28.5

5

Other non-linear structures

26

5

1

4

 

 

10

 

16

 

26

5

Advanced structures

26

5

1

4

 

 

10

 

16

 

26

5

Other advanced structures

16

3

1

2

 

 

6

 

10

 

16

3

Total

 

21

7

25

2

5

60

32

31

1

26

90

 

 

TYPE

Hours

%

Totals

In class

Theory classes

28

18.67

60 (40%)

Classroom practical sessions / seminars / workshops

7

4.67

Computer lab practical sessions

21

14.00

Group tutor sessions

2

1.33

Evaluation sessions

2

1.33

Personal work

Group work

 

 

 

90 (60%)

Individual work

90

60

 

Total

150

 

 

 

Important remark: exceptionally and if health conditions require it, online teaching activities might be included. If that were the case, students will be properly notified of the changes.

Assessment of students learning:

Theory will be evaluated with two exams. The first one will take place in the mid-term, while the second one will be conducted the day scheduled by the School Management for the final exam.

Clarification regarding the final exam: it will be composed of two blocks; in the first one the first three topics will be evaluated and in the second one the other three. Those students who took the exam of the first block, will not need to repeat it in the final exam if they do not want to. The score considered for the final mark will be the one originally obtained.

Two tests will be carried out (in a computer lab) to evaluate the practice part: with a weight of 35% and 65%, respectively. The first exam will take place sometime during the first term, and the last one will be conducted the day scheduled by the School Management for the final exam. Any of the contents of the subject are eligible to be evaluated.

Students who fail one of the parts of the subject, but have a mark bigger or equal than 5 in the other one, can choose to retake just the part with a failing grade, in one of the two extraordinary evaluation sessions of the current academic year.

Resources, bibliography and documentation:

  1. Goodrich, M. T.; Tamassia R. Data Structures & Algorithms in Java. Fifth Edition, International Student Version, Ed. Wiley, 2011. ISBN 978-0-470-39880-7.
  2. Hilfinger, P.N. Data Structures (Into Java). Fifth Edition. En: EECS Instructional and Electronics Support, University of California, Berkeley [Consulta: 25 de junio de 2012]. Disponible en: <http://inst.eecs.berkeley.edu/~cs61b/fa11/book2/data-structures.pdf>.
  3. Weiss, M. A. Data Structures & Problem Solving Using Java. Fourth Edition, Ed. Pearson, 2010. ISBN 978-0-321-54140-6.

Additional resources

The Java language will be the choice for the practice sessions, using as Eclipse IDE as programming environment:

  1. https://docs.oracle.com/javase/8/docs/api/
  2. http://help.eclipse.org/

Source code resulting of the practice sessions will have to be properly documented using the guidelines and style conventions for the Java language:

https://github.com/twitter/commons/blob/master/src/java/com/twitter/common/styleguide.md

Additionally, Allman style for indentation is also allowed:

https://en.wikipedia.org/wiki/Indentation_style#Allman_style