Competencies and objectives
Course context for academic year 2026-27
The course "Programming and Data Structures" is a compulsory semester-long course worth 6 ECTS credits, distributed equally between 3 ECTS credits of lectures and 3 ECTS credits of laboratory sessions. It is offered in the second year of the Bachelor's Degree in Computer Science.
This course builds upon the knowledge and skills acquired in "Programming 2" and is closely coordinated with the courses "Programming 3" and "Algorithm Analysis and Design" to ensure a coherent progression of programming and algorithmic competencies throughout the curriculum.
Learning outcomes / Course competencies (verified by ANECA in official undergraduate and Master’s degrees) for academic year 2026-27
Specific Competences (CE)
- CE6 : Understand and apply basic computer technology algorithmic procedures to design solutions to problems, analysing the suitability and complexity of the proposed algorithms.
- CE7 : Understand, design and use the most appropriate data types and structures to solve problems in the most efficient manner.
- CE8 : Capacity to analyse, design, build and maintain robust, secure and efficient applications, choosing the most appropriate paradigm and programming languages.
Learning outcomes (Training objectives)
No data
Specific objectives stated by the academic staff for academic year 2026-27
Knowledge and Understanding:
• Understand the role of abstraction as a fundamental principle in problem solving and software development.
• Know the most commonly used data types in programming, their typical implementations, and their practical applications.
• Understand the distinction between the specification, implementation, and use of software components and abstract data types.
• Understand the need to adapt the internal representation of an Abstract Data Type (ADT) to the functional and performance requirements of a given application.
Intellectual and Practical Skills:
• Analyze alternative implementations of data abstractions and justify design decisions based on computational complexity and resource usage.
• Apply fundamental Abstract Data Types (ADTs) to the development of solutions for real-world computational problems.
• Select and organize data structures according to the requirements, constraints, and expected workload of an application.
• Design and implement new Abstract Data Types or adapt existing representations to meet specific application requirements.
• Evaluate different implementations of Abstract Data Types in terms of time complexity, space complexity, and overall efficiency.
• Develop software solutions following principles of modularity, abstraction, and reusability.
• Work effectively as a member of a software development team and adopt collaborative programming practices.
General
Code:
34016
Lecturer responsible:
Peral Cortés, Jesús
Credits ECTS:
6,00
Theoretical credits:
1,20
Practical credits:
1,20
Distance-base hours:
3,60
Departments involved
-
Dept:
Software and Computing Systems
Area: Languages and Computing Systems
Theoretical credits: 1,2
Practical credits: 1,2
This Dept. is responsible for the course.
This Dept. is responsible for the final mark record.
Study programmes where this course is taught
-
DEGREE IN COMPUTER ENGINEERING
Course type: COMPULSORY (Year: 2)
-
DOUBLE DEGREE IN COMPUTER ENGINEERING AND BUSINESS ADMINISTRATION
Course type: COMPULSORY (Year: 3)

