DESCRIPCIÓN DE LA ASIGNATURA
Doble Grado en:
Administración y Dirección de Empresas e Ingeniería Informática
Asignatura:
Programación y algoritmia básica
Asignatura en inglés:
Programming and Basic Algorithmics
Curso y cuatrimestre:
1º (2º Cuatrimestre)
ECTS:
9
Tipología:
Básica
Idioma de impartición:
Español
Módulo:
Materias básicas
Materia:
Informática
Departamentos:
Ingeniería del Software e Inteligencia Artificial, Sistemas Informáticos y Computación
Coordinador:
Luis Hernández Yañez
CONTENIDOS MÍNIMOS
  • Punteros y memoria dinámica
  • Programación modular y uso de bibliotecas software
  • Documentación, prueba y depuración de programas
  • Uso de repositorios como apoyo al desarrollo de proyectos
  • Complejidad de algoritmos
  • Algoritmos iterativos
  • Algoritmos recursivos
  • Proyecto de programación
PROGRAMA DETALLADO
  1. Programación modular. Encapsulación y privacidad
  2. Gestión de proyectos. Uso de repositorios Git
  3. Complejidad de algoritmos
  4. Recursión
    • a. Introducción a la recursión
    • b. Tipos de recursión
    • c. Complejidad de algoritmos recursivos
    • d. Generalización/inmersión de parámetros
  5. Ordenación y búsqueda
    • a. Algoritmos de ordenación iterativos
    • b. Listas ordenadas (búsqueda, inserción, eliminación, mezcla)
    • c. Algoritmos de ordenación recursivos
    • d. Búsqueda binaria recursiva
    • e. Uso de bibliotecas para ordenación
  6. Punteros y memoria dinámica
  7. Diseño de algoritmos iterativos
    • a. Repaso de especificación
    • b. Concepto de invariante
    • c. Algoritmos de segmento máximo
    • d. Algoritmos de ventana deslizante
    • e. Algoritmos de tipo partición
    • f. Algoritmos con vector de acumulados
PROGRAMA DETALLADO EN INGLÉS
  1. Modular Programming. Encapsulation and privacy
  2. Project Management. Use of Git repositories
  3. Algorithm Complexity
  4. Recursion
    • a. Introduction to Recursion
    • b. Types of Recursion
    • c. Recursive Algorithms Complexity
    • d. Generalization/Parameter immersion
  5. Sorting and Searching
    • a. Iterative Sorting Algorithms
    • b. Sorted lists (search, insertion, deletion, shuffling)
    • c. Recursive sorting algorithms
    • d. Recursive binary search
    • e. Use of sorting libraries
  6. Pointers and dynamic memory
  7. Design of iterative algorithms
    • a. Review of specifications
    • b. The concept of invariant
    • c. Maximum segment algorithms
    • d. Sliding window algorithms
    • e. Partition-based algorithms
    • f. Algorithms using an accumulators array
RESULTADOS DE APRENDIZAJE
Conocimientos
  • Al finalizar el aprendizaje, el o la estudiante será capaz de explicar los procedimientos algorítmicos básicos y los tipos de datos de las tecnologías informáticas habituales en la resolución de problemas de ingeniería informática.
  • Al finalizar el aprendizaje, el o la estudiante será capaz de demostrar conocimiento básico de las diferentes subdisciplinas de la ingeniería informática y de las técnicas básicas y conocimientos de estas para la integración en equipos multidisciplinares como profesional generalista en ingeniería informática.
Habilidades
  • Al finalizar el aprendizaje, el o la estudiante será capaz de analizar las necesidades en algorítmica, complejidad computacional, programación, sistemas operativos, bases de datos, estructura, arquitectura e interconexión de sistemas informáticos necesarios para la resolución de problemas de ciencias e ingeniería, de acuerdo con los principios de calidad, fiabilidad y seguridad necesarios y dentro del marco institucional y jurídico de la empresa.
  • Al finalizar el aprendizaje, el o la estudiante será capaz de identificar los algoritmos, estructuras de datos, paradigmas de la programación, lenguajes y las prácticas de ingeniería del software más adecuados para asegurar la fiabilidad, seguridad y calidad de aplicaciones en problemas que requieran una solución informática.
Competencias
  • Al finalizar el aprendizaje, el o la estudiante será capaz de evaluar la complejidad computacional de un problema para establecer las estrategias algorítmicas que conduzcan a su resolución.
ACTIVIDADES FORMATIVAS
Presenciales
Actividad Horas
CTM - Clases teóricas magistrales 45
AEV - Actividades de evaluación 5
CL - Clases de laboratorio 45
Totales 95
No Presenciales
Actividad Horas
TPN - Trabajo personal no dirigido 135
Totales 135
EVALUACIÓN DETALLADA

  • Proyecto (entrega): 15%
  • Actividades y pruebas prácticas: 15%
  • Examen final (ordinario/extraordinario): 70%
    • Examen del proyecto: 35%
    • Examen de problemas: 35%
  • El examen final debe ser >=5, y cada parte >=4 para hacer media

El proyecto, las actividades y pruebas prácticas no son recuperables para la convocatoria extraordinaria.

BIBLIOGRAFÍA
    Recomendada
  • Algoritmos correctos y eficientes: Diseño razonado ilustrado con ejercicios, N. Martí, C. Segura y J. A. Verdejo, Ibergarceta Publicaciones, 2012.
  • Diseño de programas: Formalismo y abstracción, R. Peña, tercera edición, Pearson/Prentice Hall, 2005.
  • Programming: Principles and Practice Using C++, B. Stroustrup. Pearson Education, 2009.
  • El lenguaje de programación C++, B. Stroustrup, Addison Wesley, 2002.
    Complementaria
  • Programming: The Derivation of Algorithms, A. Kaldewaij, Prentice Hall, 1990.
  • The Science of Programming, D. Gries, Springer, 1981.
  • El lenguaje de programación C++, B. Stroustrup, Addison Wesley, 2002.