Guía docente de Introducción a la Programación (2AB1111)

Curso 2026/2027
Fecha de aprobación: 29/07/2026

Grado

Grado en Ciencia de Datos e Inteligencia Artificial

Rama

Ingeniería y Arquitectura

Módulo

Formación Básica

Materia

Fundamentos de Informática

Curso

1

Semestre

1

Créditos

6

Tipo

Troncal

Profesorado

Teórico

Juan Manuel Fernández Luna. Grupo: A

Práctico

Siham Tabik Ouled Hrour Grupos: 1, 2 y 3

Tutorías

Juan Manuel Fernández Luna

Email
  • Primer semestre
    • Lunes de 11:30 a 13:30 (D22 (Etsiit))
    • Martes de 11:30 a 13:30 (D22(Etsiit))
    • Jueves de 11:30 a 13:30 (D22 (Etsiit))
  • Segundo semestre
    • Lunes de 11:30 a 13:30 (D22 (Etsiit))
    • Martes de 11:30 a 13:30 (D22 (Etsiit))
    • Jueves de 11:30 a 13:30 (D22 (Etsiit))

Siham Tabik Ouled Hrour

Email
  • Primer semestre
    • Lunes de 14:30 a 15:30 (D16 (Etsiit))
    • Miércoles de 14:00 a 15:30 (D16 (Etsiit))
    • Jueves
      • 08:00 a 10:30 (D16 (Etsiit))
      • 14:30 a 15:30 (D16 (Etsiit))
  • Segundo semestre
    • Lunes de 15:30 a 17:30 (Nd (Etsiit))
    • Miércoles de 15:30 a 17:30 (Nd (Etsiit))
    • Jueves de 15:30 a 17:30 (Nd (Etsiit))

Prerrequisitos y/o Recomendaciones

En el caso de utilizar herramientas de IA como apoyo al aprendizaje de la asignatura, el estudiante debe adoptar un uso ético y responsable de las mismas. Se deben seguir las recomendaciones contenidas en el documento de "Recomendaciones para el uso de la inteligencia artificial en la UGR" publicado en esta ubicación: https://ceprud.ugr.es/formacion-tic/inteligencia-artificial/recomendaciones-ia#contenido0

Breve descripción de contenidos (Según memoria de verificación del Máster)

  • Tipos de datos básicos.
  • Objetos, operadores y expresiones.
  • Estructuras de control.
  • Tipos de datos compuestos.
  • Funciones y procedimientos.

Resultados de aprendizaje (Objetivos)

  1. Identificar y manipular los tipos de datos básicos de Python, seleccionando el más adecuado en función de la naturaleza de la información a procesar (valores numéricos, condiciones lógicas o cadenas de texto).

  2. Construir y evaluar expresiones complejas aplicando correctamente los operadores aritméticos, relacionales y lógicos, respetando las reglas de precedencia y asociatividad, y comprendiendo el modelo de objetos y referencias a memoria propio del lenguaje.

  3. Diseñar algoritmos secuenciales y ramificados mediante estructuras de control condicionales, siendo capaz de formular condiciones lógicas anidadas que permitan tomar decisiones en función de los valores de las variables.

  4. Implementar procesos repetitivos utilizando estructuras iterativas, seleccionando el bucle apropiado para recorrer secuencias, acumular valores o repetir bloques de código hasta que se cumpla una condición de parada.

  5. Utilizar tipos de datos compuestos para organizar y almacenar colecciones de elementos, aplicando operaciones fundamentales sobre dichas estructuras.

  6. Crear estructuras de datos jerárquicas básicas mediante el anidamiento de tipos compuestos interpretando y extrayendo información contenida en estructuras multidimensionales.

  7. Diseñar programas modulares definiendo funciones y procedimientos, configurando adecuadamente el paso de parámetros y gestionando la devolución de resultados.

  8. Aplicar los principios de encapsulación y visibilidad diferenciando los ámbitos local y global de las variables, e importando módulos de la biblioteca estándar para reutilizar funcionalidades predefinidas sin necesidad de librerías externas.

  9. Integrar todos los conceptos anteriores para escribir programas completos, estructurados y legibles que resuelvan problemas algorítmicos elementales propios del ámbito de la ciencia de datos, siguiendo un flujo de trabajo que incluya edición, depuración y ejecución en el entorno de desarrollo de Python.I

Programa de contenidos Teóricos y Prácticos

Teórico

  • Tema 1: Introducción a la programación
  • Tema 2: Control de flujo e iteración
  • Tema 3: Colecciones
  • Tema 4: Abstracción funcional y modularidad
  • Tema 5: Gestión de almacenamiento
  • Tema 6: Introducción al tratamiento de datos

Práctico

  • Módulo 1: Entorno de desarrollo
  • Módulo 2: Variables y expresiones
  • Módulo 3: Control de flujo e iteración
  • Módulo 4: Definición y uso de funciones
  • Módulo 5: Aplicaciones
  • Seminario 1. Estilo de código y depuración de programas.
  • Seminario 2. Desarrollo y uso de paquetes.

Bibliografía

Bibliografía fundamental

  • Matthes, E. (2024). Curso intensivo de Pytthon (3ª ed.). Anaya Multimedia.
  • Lynch, S. (2024). A Simple Introduction to Python (1ra ed.). Chapman & Hall/CRC.
  • Sweigart, A. (2025). Automate the boring stuff with Python: Practical programming for total beginners (3rd ed.). No Starch Press.

Bibliografía complementaria

  • Ramalho, L. (2022). Fluent Python: Clear, concise, and effective programming (2nd ed.). O’Reilly Media.
  • González Duque, R. (2019). Python para todos. Ra-Ma.
  • McKinney, W. (2022). Python for data analysis: Data wrangling with pandas, NumPy, and Jupyter (3rd ed.). O’Reilly Media.
  • VanderPlas, J. (2016). Python data science handbook: Essential tools for working with data. O’Reilly Media.

Enlaces recomendados

  • The Python Foundation, The Python Language Reference (Official), accesible on-line en la página oficial de la Python Foundation (docs.python.org).
  • W3Schols (https://www.w3schools.com/python/)
  • Beginner Python exercises (http://www.practicepython.org/)
  • Traducción al español de la última versión del libro de Mark Pilgrim sobre Python 3, Dive Into Python 3 - Inmersión en Python 3, por José Miguel González Aguilera: https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/inmersionenpython3/inmersionEnPython3.0.11.pdf
  • How to Think Like a Computer Scientist: Interactive Edition, Runestone Interactive Project at Luther College, led by Brad Miller and David Ranum. Based on the original work by J. Elkner, A.B. Downey and C. Meyers, How to Think Like a Computer Scientist: Learning with Python, 2nd Edition (Python 2.x), 2012:
    http://interactivepython.org/runestone/static/thinkcspy/index.html

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación Ordinaria

Todo lo relativo a la evaluación se regirá por la normativa de evaluación y calificación de los estudiantes vigente en la Universidad de Granada https://www.ugr.es/universidad/normativa/texto-consolidado-normativa-evaluacion-calificacion-estudiantes-universidad-granada). El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.

Según el sistema de evaluación, la calificación final de la convocatoria ordinaria se corresponderá con la siguiente ponderación global:

  • Exámenes (60%),
  • ejercicios (15%),
  • prácticas (15%) y
  • participación activa (10%)

De forma más detallada, la nota final de la asignatura en su convocatoria ordinaria se calculará a partir de las calificaciones se obtengan en las siguientes pruebas y según la ponderación indicada:

  • Pruebas teóricas de conocimientos y resolución de problemas informáticos: 50% de la calificación.

    • Se realizarán dos exámenes, cada uno será un 30% de la calificación de teoría y una entrega de ejercicios resueltos propuestos y ejecutados en una sesión de clase que será el 30% de la calificación. El 10% restante procederá de la valoración de la participación pertinente del estudiante en todas las actividades formativas planificadas en las clases de teoría.

  • Pruebas prácticas de conocimientos y resolución de problemas informáticos: 50% de la calificación.

    • Se realizarán dos exámenes, cada uno será un 30% de la calificación de prácticas y la entrega de una práctica planteada y realizada durante una sesión de clase que será el 30% de la calificación. El 10% restante procederá de la valoración de la participación pertinente del estudiante en todas las actividades formativas planificadas en las sesiones de prácticas y seminarios.

Será necesario obtener una nota final igual o superior a 5 sobre 10 para aprobar la asignatura. Además, será necesario obtener una calificación mínima de 4 sobre 10 tanto en la parte de teoría como en la parte de prácticas. En caso de que no se llegue al mínimo en alguna de las partes, se le asignara al estudiante como calificación final el mínimo entre 4.9 y la nota obtenida en la asignatura.

Ponderación de las actividades formativas:

  • Parte Teoría: 50.00%
  • Parte Prácticas: 50.00%

Evaluación Extraordinaria

El/la estudiante se examinará de teórica y práctica. En esta convocatoria la parte de teoría incluye todo el temario y la parte de prácticas incluye todo lo que se trabajó en prácticas (actividades de laboratorio, problemas, trabajos tutelados y seminarios) a lo largo del curso.

El /la estudiante que no se presente a la parte de prácticas, mantendrá la nota alcanzada en la convocatoria ordinaria en dicha parte.

La nota final será la suma de la nota obtenida en cada parte ponderada al 50%.

Para aprobar la asignatura será necesario obtener una calificación final igual o superior a 5 sobre 10. Para poder aprobar es obligatorio obtener como mínimo un 4 sobre 10 tanto en la parte de teoría como en la parte de prácticas. En caso de que no se llegue al mínimo en alguna de las partes, se le asignara al estudiante como calificación final el mínimo entre 4.9 y la nota obtenida en la asignatura.

Ponderación de las actividades formativas:

  • Parte Teoría: 50.00%
  • Parte Prácticas: 50.00%

Evaluación única final

El/la estudiante realizará una prueba donde se evaluarán los conocimientos teóricos y una prueba donde se evaluarán los conocimientos y competencias prácticas. La calificación final será la media aritmética de las calificaciones obtenidas en las dos pruebas. Para aprobar la asignatura será necesario obtener una calificación final igual o superior a 5 sobre 10. Para poder aprobar es obligatorio haber obtenido como mínimo 4 sobre 10 tanto en la parte de teoría como en la parte de prácticas. En caso de que no se llegue al mínimo en alguna de las pruebas, se le asignara al estudiante como calificación final el mínimo entre 4.9 y la nota obtenida en la asignatura.

Información adicional

Cualquier elemento de esta guía podrá ser adaptado para atender a la diversidad del alumnado teniendo en cuenta los informes facilitados por los tutores NEAE, y siempre siguiendo la Normativa de la Universidad de Granada: https://www.ugr.es/sites/default/files/2017-09/NCG1114.pdf Información de interés para estudiantado con discapacidad y/o Necesidades Específicas de Apoyo Educativo (NEAE): Gestión de servicios y apoyos (https://ve.ugr.es/servicios/atencion-social/estudiantes-con-discapacidad).

Información de interés para estudiantado con discapacidad y/o Necesidades Específicas de Apoyo Educativo (NEAE): Gestión de servicios y apoyos (https://ve.ugr.es/servicios/atencion-social/estudiantes-con-discapacidad).

Software Libre

  • Lenguaje de programación Python
  • Editores de texto
  • Entornos integrados de desarrollo