Checking date: 04/01/2021


Course: 2020/2021

Data structures and algorithms
(18267)
Study: Bachelor in Applied Mathematics and Computing (362)


Coordinating teacher: SEGURA BEDMAR, ISABEL

Department assigned to the subject: Department of Computer Science and Engineering

Type: Basic Core
ECTS Credits: 6.0 ECTS

Course:
Semester:

Branch of knowledge: Engineering and Architecture



Students are expected to have completed
- Programming - Calculus
CB1.Students have demonstrated knowledge and understanding in a field of study that builds upon their general secondary education, and is typically at a level that, whilst supported by advanced textbooks, includes some aspects that will be informed by knowledge of the forefront of their field of study CB2.Students can apply their knowledge and understanding in a manner that indicates a professional approach to their work or vocation, and have competences typically demonstrated through devising and sustaining arguments and solving problems within their field of study CB3.Students have the ability to gather and interpret relevant data (usually within their field of study) to inform judgments that include reflection on relevant social, scientific or ethical issues CB4.Students can communicate information, ideas, problems and solutions to both specialist and non-specialist audiences CB5.Students have developed those learning skills that are necessary for them to continue to undertake further study with a high degree of autonomy CG1 - Students are able to demonstrate knowledge and understanding of concepts in mathematics, statistics and computation and to apply them to solve problems in science and engineering with an ability for analysis and synthesis. CG3 - Students can solve computationally with the help of the most advanced computing tools mathematical models coming from applications in science, engineering, economy and other social sciences. CG4 - Students are able to show that they can analyze and interpret, with help of computer science, the solutions obtained from problems associated to real world mathematical models, discriminating the most relevant behaviors for each application. CG6 - Students can search and use bibliographic resources, in physical or digital support, as they are needed to state and solve mathematically and computationally applied problems arising in new or unknown environments or with insufficient information. CE10 - Students have shown that they know and understand the algorithmic procedures to design and build programs that solve mathematical problems paying special attention to performance. CE12 -Students have shown that they know the main data structures, being able to use, design, and implement them determining its computational and storage complexity. CE17 - Students know how to apply software verification techniques to determine if a software component fulfills its specifications, and that they are able to detect faults in those components.
Description of contents: programme
1. Introduction to Abstract Data Type 2. Linear Abstract Data Types b. Stacks c. Queues. d. Singly and doubly linked lists 3. Analysis of Algorithms. a. Empirical Analysis. b. Theoretical Analysis. Big-O functions. Best and worst cases. 4. Recursion I. 5. Trees a. General concepts b. Binary Trees c. Tree Traversals d. Search Binary Trees. e. How to balance a tree. 6. Graphs a. Implementations d. Graph trasversals. e. Dijkstra's algorithm (shortest path) 7. Recursion II: Divide and Conquer
Learning activities and methodology
1. Theory Lectures with the objective of acquire the cognitive specific competences. 2. Academic activities guided by the teacher: 2.1. With the teacher: to solve exercises devoted to analyze, design and implement cases with different level of complexity in collaboration with students. Some of the exercises will be carried out in computer laboratories. 2.2. Student work: Homework, individually or cooperatively, with exercises, implementation cases and basic readings from bibliography proposed by the teacher. Moreover, these activities can be performed as: a. Individual work consisting on developing solutions to the problems and exercises posed by the teacher. b. Working cooperatively developing solutions to the problems proposed by the teacher. 3. Mid-term partial exams and final exam. 4. There will be a group tutorship for each small group to solve the queries and doubts of students.
Assessment System
  • % end-of-term-examination 40
  • % of continuous assessment (assigments, laboratory, practicals...) 60
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 and the academic weekly planning may change due academic events or other reasons.