General information


Subject type: Mandatory

Coordinator: Vladimir Bellavista Parent

Trimester: First term

Credits: 4

Teaching staff: 

Catherine Juan Nadal
Rosa Herrero Antón 

Academic year: 2025

Teaching course: 2

Languages ​​of instruction


  • Catalan

Competencies / Learning Outcomes


Basic skills
  • B2_That students know how to apply their knowledge to their job or vocation in a professional way and have the skills they demonstrate by developing and defending arguments and solving problems within their area of ​​study

  • B5_That students have developed those learning skills necessary to undertake further studies with a high degree of autonomy

Specific skills
  • EFB3_Ability to understand and master the basic concepts of discrete mathematics, logic, algorithms and computational complexity, and their application for solving engineering problems

  • EFB4_Basic knowledge of the use and programming of computers, operating systems, databases and computer programs with application in engineering

Transversal competences
  • T1_That students know a third language, which will be preferably English, with an adequate level of oral and written form, according to the needs of the graduates in each degree

  • T2_That students have the ability to work as members of an interdisciplinary team either as one more member, or performing management tasks in order to contribute to developing projects with pragmatism and a sense of responsibility, making commitments taking into account the available resources

Presentation of the subject


The subject of Advanced Programming belongs to the subject of Programming. The topics covered in the course are designed to train students to learn, on the one hand in the use of different algorithm design techniques and on the other to make a dynamic management of memory and apply -la in the implementation of tree data structures.

To take this subject, it is essential to have passed the subjects of the first year programming area: Fundamentals of Programming (FP), Object Oriented Programming (OOP) and Data Structures and Algorithms (EDA). 

The classroom (physical or virtual) is a safe space, free of sexist, racist, homophobic, transphobic and discriminatory attitudes, either towards students or towards teachers. We trust that together we can create a safe space where we can make mistakes and learn without having to suffer prejudice from others. 

Contents


  1.- DYNAMIC VARIABLE

  • Dynamic variable
  • Dynamic memory management
  • Linked sequences

2.- DATA STRUCTURES. THE TREES

  • Unstructured data types
  • Binary trees
  • Tree paths: unordered, preordered, postordered and wide
  • The TAD Binary Search Tree (CBA)

3.- ALGORISM DESIGN TECHNIQUES

  • Introduction to algorithmic schemes
  • Divide and conquer technique
  • Dynamic programming technique
  • Voracious technique
  • Backtracking technique

Activities and evaluation system


The final grade is the weighted sum of the grades for the following activities:

WEIGHT ACTIVITY

EXAM 1 40%

EXAM 2 30%

INTERNSHIPS 30% 

With the previous weightings, laboratory activities (practical) have a weight of 30% and theoretical activities have a weight of 70%.

Laboratory activities (practical) are non-returnable.

The previously indicated weighting only applies if the grade of both exams is greater than or equal to 4 and the theory part is approved, grade greater than or equal to 5. If not applied, the final grade will be the lower of the two exams. The student must compulsorily recover the part/s with a qualification lower than the minimum mark indicated.

La recovery it only makes it possible to recover the grade of the theoretical activities, EXAM 1 and/or 2, and as long as this new grade is not lower than 4 and the theory part is approved, the weighting described above will be applied limiting the maximum final grade of the subject to 7 (Notable).

Considerations:

1.- In general, Tecnocampus establishes: any form of academic fraud will be sanctioned in accordance with the center's evaluation regulations. In the event that signs of fraud are detected, including the improper use of generative artificial intelligence tools, the subject's teaching staff may call the student for an individual interview with the aim of verifying their authorship.

2.- In the particular case of this subject, given its fundamental nature, the student is required not only to provide solutions to certain problems, but also to be able to generate them autonomously, without any external help. For this reason, the use of generative artificial intelligences (IAG) to resolve the problems posed in the subject —whether in exercises, practices or tests— is counterproductive, is strictly prohibited and will be considered a case of fraud by plagiarism. In this sense, the use of IAGs to generate programming code is not allowed, not even in the form of fragments, even if this code is later modified or personalized. The critical use of IAGs as a vehicle to resolve doubts about the subject is not considered a misuse of these mechanisms as long as this does not contradict what has been indicated previously and the student does not lose sight of the fact that he may obtain incorrect answers and/or not adjusted to the contents of the subject. Failure to comply will result in a grade of NP in the subject - without the right to retake.

3.- It will also lead to a NP grade in the subject if the student uses unauthorized tools during the exams, such as a mobile phone or smart watch.

Bibliography


Basic

Juan Nadal, Lina. Programming: Class notes and exercises. Internal publication of TCM 2020,

Complementary

Allen Weiss, Mark. Data structures in Java. Ed. Addison Wesley,

Barnes David, Kölling Michael. Object-oriented programming with Java. Ed. Pearson EDUCATION,

Lewis John, Chase Joseph. Data structures with Java. Design of structures and algorithms. Ed. Pearson EDUCATION,

Martí Narciso, Yolanda Ortega, Alberto Verdejo. Data structures and algorithmic methods. Solved exercises. Ed. Ibergaceta Publications, SL Edition 2.