Esta asignatura permite al estudiante conocer una serie de estructuras de datos avanzadas, que se utilizan frecuentemente en problemas prácticos de programación. También presenta diversos esquemas algorítmicos (voraces, divide y vencerás, programación dinámica, vuelta atrás y ramificación y poda) en los que se enmarcan gran parte de los algoritmos más utilizados en la resolución de problemas.
Esta asignatura es común a los grados en Ingeniería Informática y en Ingeniería en Tecnologías de la Información y se imparte en el primer semestre del segundo curso, tiene carácter obligatorio, consta de 6 créditos ECTS y es parte de la materia de Metodología de la Programación y Algoritmia.