Checking date: 30/04/2025 10:32:31


Course: 2025/2026

Algorithms and data structures
(13873)
Bachelor in Computer Science and Engineering (Study Plan 2022) (Plan: 489 - Estudio: 218)


Coordinating teacher: GONZALEZ CARRASCO, ISRAEL

Department assigned to the subject: Computer Science and Engineering Department

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Requirements (Subjects that are assumed to be known)
- Programming (Course: 1 / Semester: 1) - Calculus (Course: 1 / Semester: 1)
Learning Outcomes
RA1.2: Knowledge and understanding of engineering disciplines underlying their specialisation, at a level necessary to achieve the other programme outcomes, including some awareness at their Forefront. RA2.2: Ability to identify, formulate and solve engineering problems in their field of study; to select and apply relevant methods from established analytical, computational and experimental methods; to recognise the importance of non-technical societal, health and safety, environmental, economic and industrial constraints. RA3.1: Ability to develop and design complex products (devices, artefacts, etc.), processes and systems in their field of study to meet established requirements, that can include an awareness of non-technical ¿ societal, health and safety, environmental, economic and industrial ¿ considerations; to select and apply relevant design methodologies. RA5.4: Ability to apply norms of engineering practice in their field of study. RA8.2: Ability to follow developments in science and tech. CGB4: Basic knowledge of the use and programming of computers, operating systems, databases and computer programmes with applications in engineering. CGB5: Knowledge of the structure, organisation, operation and interconnection of computer systems, the fundamentals of their programming, and their application to the resolution of engineering problems. CGO1: Ability to conceive, draft, organise, plan, develop and sign projects in the field of computer engineering aimed, in accordance with the knowledge acquired, at the conception, development or operation of computer systems, services and applications. CGO4: Ability to define, evaluate and select hardware and software platforms for the development and execution of computer systems, services and applications, in accordance with the knowledge acquired. CGO8: Knowledge of basic subjects and technologies, which enable them to learn and develop new methods and technologies, as well as those which provide them with great versatility to adapt to new situations. CECRI1: Ability to design, develop, select and evaluate computer applications and systems, ensuring their reliability, security and quality, in accordance with ethical principles and current legislation and regulations. CECRI6: Knowledge and application of the basic algorithmic procedures of com- puter technologies to design solutions to problems, analysing the suitability and complexity of the proposed algorithms. CECRI7: Knowledge, design and efficient use of the most appropriate data types and structures to solve a problem.
Description of contents: programme
1. Abstract Data Type 2. Linear Abstract Data Types: stacks, queues, linked lists. 3. Complexity of Algorithms. 4. Recursive Algorithms. 5. Trees 6. Graphs. 7. Divide and Conquer.
Learning activities and methodology
THEORETICAL-PRACTICAL CLASSES. [44 hours with 100% classroom instruction, 1.67 ECTS] Knowledge and concepts students must acquire. Student receive course notes and will have basic reference texts to facilitate following the classes and carrying out follow up work. Students partake in exercises to resolve practical problems and participate in workshops and evaluation tests, all geared towards acquiring the necessary capabilities. TUTORING SESSIONS. [4 hours of tutoring with 100% on-site attendance, 0.15 ECTS] Individualized attendance (individual tutoring) or in-group (group tutoring) for students with a teacher. STUDENT INDIVIDUAL WORK OR GROUP WORK [98 hours with 0 % on-site, 3.72 ECTS] WORKSHOPS AND LABORATORY SESSIONS [8 hours with 100% on site, 0.3 ECTS] FINAL EXAM. [4 hours with 100% on site, 0.15 ECTS] Global assessment of knowledge, skills and capacities acquired throughout the course. METHODOLOGIES THEORY CLASS. Classroom presentations by the teacher with IT and audiovisual support in which the subject's main concepts are developed, while providing material and bibliography to complement student learning. PRACTICAL CLASS. Resolution of practical cases and problem, posed by the teacher, and carried out individually or in a group. TUTORING SESSIONS. Individualized attendance (individual tutoring sessions) or in-group (group tutoring sessions) for students with a teacher as tutor. LABORATORY PRACTICAL SESSIONS. Applied/experimental learning/teaching in workshops and laboratories under the tutor's supervision.
Assessment System
  • % end-of-term-examination/test 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50

Calendar of Continuous assessment


Extraordinary call: regulations
Basic Bibliography
  • Karumanchi, N. Data Structure and Algorithmic Thinking with Python: Data Structure and Algorithmic Puzzles. . CareerMonk Publications. 2015
  • Michael T. Goodrich and Roberto Tamassia. Data Structures and Algorithms in Python, . John Wiley & Sons. 2013
Recursos electrónicosElectronic Resources *
Additional Bibliography
  • Isabel Segura Bedmar, Harith AlJumaily, Julian Moreno Schneider, Juan Perea & Nathan D. Ryan. Algorithms and Data Structures. OCW-UC3M: http://ocw.uc3m.es/ingenieria-informatica/algorithms-and-data-structures. 2011
(*) Access to some electronic resources may be restricted to members of the university community and require validation through Campus Global. If you try to connect from outside of the University you will need to set up a VPN


The course syllabus may change due academic events or other reasons.