Después de tener los conocimientos básicos de programación, se necesita contar con más elementos que ayuden a un profesional del área de ciencias de la computación, a resolver problemas de forma elegante, eficiente y correcta. la finalidad de este curso es brindar al estudiante un conjunto de conceptos que identifican elementos importantes que enriquecen la metodología de programación, es importante también considerar las distintas estructuras que existen para representar los datos.

La materia introduce a los estudiantes la estrategia “divide y conquistar” para la solución de problemas, que permiten tener diseños de problemas complejos de forma sencilla y elegante.

Las capacidades de abstracción de datos es reforzada en esta materia, al introducir conceptos de niveles de abstracción tanto en estrutura (jerarquias de supertipo - subtipo) como de tipo (genéricas); lo que permite al estudiante introducir mayores elementos de diseño a la hora de presentar sus soluciones, y por ende mayores herramientas de programación que permiten operativizar sus propuestas de solución.

Un otro aspecto importante es la administración de datos, por lo que se estudian estructuras de datos, añadiendo m ́as conocimientos sobre la forma de programar soluciones, los mismos que son una antesala a estructuras de datos más complejas que se utilizan en la resolución de problemas más complejos.