Última revisión realizada: 16/08/2023

Denominación de la asignatura: Fundamentos de Programación
Postgrado al que pertenece: Grado en Ciencia de Datos
Créditos ECTS: 6
Cuatrimestre en el que se imparte: Primero
Carácter de la asignatura: Básica
Materia a la que pertenece: Informática

Presentación

Fundamentos de la programación es una asignatura básica donde se aprenderán las bases de la programación y se profundizará en los apartados más esenciales para comenzar a desarrollar nuestro propio software. El objetivo de la asignatura es asegurarse de la compresión y puesta en práctica de los aspectos más básicos de la programación y de los elementos que la componen, todo ello mediante explicaciones teóricas, actividades prácticas y vídeos explicativos para poner a prueba los conocimientos adquiridos.

Esta asignatura es la primera toma de contacto con la programación dentro de la titulación, por lo que se trata de una de las asignaturas con mayor importancia. Sobre esta asignatura se pretende construir una base sólida en la que se van a basar asignaturas posteriores, en las cuales se darán por adquiridos todos los conocimientos vistos aquí.

El contenido que se verá abarca desde los elementos más básicos de la programación, por ejemplo, el diseño de algoritmos, elementos de un programa, sentencias de control, modularidad y funciones, hasta elementos más avanzados como estructuras de datos, tanto estáticas como dinámicas, ficheros, recursividad, pruebas y documentación.

Cada uno de los contenidos de la asignatura está provisto de elementos teóricos que ayudan a la compresión del mismo, elementos prácticos para poner a prueba nuestros conocimientos y profundizar algunas áreas, y material audiovisual que llevará al alumno a ampliar dichos conocimientos. Todo ello será proporcionado en el lenguaje de programación Python.

Competencias básicas

  • CB1: Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio
  • CB2: Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio
  • CB3: Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética
  • CB4: Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado
  • CB5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

Competencias generales

  • CG5: Capacidad de desarrollar aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores en el ámbito de la ciencia de datos con un alto grado de autonomía.
  • CG6: Capacidad de presentar ideas, procedimientos o redactar informes, así como asesorar a personas u organizaciones en su ámbito de especialización en ciencia de datos.
  • CG7: Capacidad para saber comunicar y transmitir los conocimientos y habilidades relacionados con la ciencia de datos.
  • CG8: Ser capaz de aplicar la capacidad analítica y de abstracción, y el pensamiento lógico adquiridos para identificar y analizar problemas complejos y formular soluciones en un entorno multidisciplinar relacionado con la ciencia de datos.
  • CG9: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la ciencia de datos.

Competencias específicas

  • CE10: Ser capaz de hacer uso de técnicas de programación específicas para resolver problemas relacionados con la Ciencia de Datos.
  • CE12: Ser capaz de conocer los fundamentos de la programación de ordenadores y su aplicación para la resolución de problemas.
  • CE13: Ser capaz de conocer y aplicar los principios fundamentales y técnicas básicas de la programación, guiada por eventos, orientada a objetos y concurrente.
  • CE18: Ser capaz de conocer los principios y bloques fundamentales, características, funcionalidades, capacidades y estructura de los Sistemas Operativos y diseñar e implementar aplicaciones basadas en sus servicios.
  • CE19: Ser capaz de conocer y aplicar las características, funcionalidades, seguridad y estructura de las Redes de Computadores e Internet.
  • CE21: Conocer y ser capaz de aplicar los principios fundamentales y técnicas básicas de los sistemas inteligentes y su aplicación práctica.

Competencias transversales

  • CT1: Aplicar las nuevas tecnologías como herramientas para el intercambio comunicacional en el desarrollo de procesos de indagación y de aprendizaje.
  • CT2: Desarrollar habilidades de comunicación, para redactar informes y documentos, o realizar eficaces presentaciones de los mismos.

Tema 1. Fundamentos de programación

  • Introducción y objetivos
  • Estructura básica de un ordenador
  • Software
  • Lenguajes de programación
  • Ciclo de vida de una aplicación informática
  • Cuaderno de ejercicios

Tema 2. Diseño de algoritmos

  • Introducción y objetivos
  • La resolución de problemas
  • Técnicas descriptivas
  • Elementos y estructura de un algoritmo
  • Cuaderno de ejercicios

Tema 3. Elementos de un programa

  • Introducción y objetivos
  • Origen y características del lenguaje Python
  • El entorno de desarrollo
  • Concepto de programa
  • Tipos de datos fundamentales
  • Operadores
  • Expresiones
  • Sentencias
  • Entrada y salida de datos
  • Cuaderno de ejercicios

Tema 4. Sentencias de control

  • Introducción y objetivos
  • Sentencias
  • Estructuras de control
  • Cuaderno de ejercicios

Tema 5. Abstracción y modularidad: funciones

  • Introducción y objetivos
  • Diseño modular
  • Concepto de función y utilidad
  • Definición de una función
  • Flujo de ejecución en la llamada de una función
  • Devolución de resultados
  • Llamada a una función: parámetros
  • Ámbito de identificador
  • Cuaderno de ejercicios

Tema 6. Introducción a las estructuras de datos

  • Introducción y objetivos
  • Cadenas
  • Listas
  • Matrices y poliedros
  • Tuplas
  • Cuaderno de ejercicios

Tema 7. Estructuras de datos

  • Introducción y objetivos
  • Diccionarios
  • Pilas
  • Colas
  • Árboles
  • Cuaderno de ejercicios

Tema 8. Introducción a la programación orientada a objetos

  • Introducción y objetivos
  • Objetos
  • Métodos y mensajes
  • Clases
  • Concepto de herencia
  • POO en Python
  • Cuaderno de ejercicios

Tema 9. Programación orientada a objetos

  • Introducción y objetivos
  • Abstracción y herencia
  • Polimorfismo
  • Composición y agregación
  • Self y super
  • Cuaderno de ejercicios

Tema 10. Ficheros

  • Introducción y objetivos
  • Conceptos básicos
  • Clasificación de ficheros
  • Operaciones de ficheros
  • Procesamiento de los ficheros
  • Introducción a los ficheros en Python
  • Cuaderno de ejercicios

Tema 11. Recursividad

  • Introducción y objetivos
  • Definición de recursividad
  • Tipos de recursión
  • Ventajas e inconvenientes
  • Consideraciones
  • Conversión recursivo-iterativa
  • La pila de recursión
  • Cuaderno de ejercicios

Las actividades formativas de la asignatura se han elaborado con el objetivo de adaptar el proceso de aprendizaje a las diferentes capacidades, necesidades e intereses de los alumnos.

Las actividades formativas de esta asignatura son las siguientes:

  • Trabajos individuales. Se trata de actividades de diferentes tipos: reflexión, análisis de casos, prácticas, análisis de textos, etc.
  • Trabajos colaborativos. Son actividades grupales en las que tendrás la oportunidad de trabajar con tus compañeros. Durante el desarrollo de la asignatura tendrás toda la información que necesites sobre cómo organizarte para trabajar en equipo.
  • Participación en eventos. Son actividades programadas todas las semanas del cuatrimestre como clases en directo o foros de debate.
Descargar programación

Estas actividades formativas prácticas se completan, por supuesto, con estas otras:

  • Estudio personal
  • Tutorías. Las tutorías se pueden articular a través de diversas herramientas y medios. Durante el desarrollo de la asignatura, el profesor programa tutorías en días concretos para la resolución de dudas de índole estrictamente académico a través de las denominadas “sesiones de consultas”. Como complemento de estas sesiones se dispone también del foro “Pregúntale al profesor de la asignatura” a través del cual se articulan algunas preguntas de alumnos y las correspondientes respuestas en el que se tratan aspectos generales de la asignatura. Por la propia naturaleza de los medios de comunicación empleados, no existen horarios a los que deba ajustarse el alumno.
  • Examen final presencial u online

Las horas de dedicación a cada actividad se detallan en la siguiente tabla:

ACTIVIDADES FORMATIVAS HORAS POR ASIGNATURA % PRESENCIAL
Sesiones presenciales virtuales 15 horas 100%
Recursos didácticos audiovisuales 6 horas 0
Estudio del material básico 52 horas 0
Lectura del material complementario 25 horas 0
Trabajos, casos prácticos y test de evaluación 17 horas 0
Laboratorios virtuales 12 horas 0
Tutorías 16 horas 0
Trabajo colaborativo 7 horas 0
Total 150 horas -

Bibliografía básica

Recuerda que la bibliografía básica es imprescindible para el estudio de la asignatura. Cuando se indica que no está disponible en el aula virtual, tendrás que obtenerla por otros medios: librería UNIR, biblioteca...

Los textos necesarios para el estudio de la asignatura han sido elaborados por UNIR y están disponibles en formato digital para consulta, descarga e impresión en el aula virtual.

Además, en estos temas deberás estudiar la siguiente bibliografía:

Tema 1

Marzal Varó, A. García Sevilla, P. y Gracia Luengo, I. (2016). Introducción a la programación con Python 3. Universitat Jaume I. Servei de Comunicació i Publicacions.
ISBN: 9788469711781.
Disponible en la Biblioteca Virtual de UNIR.

Tema 2

Mancilla Herrera, A. (2015). Diseño y construcción de algoritmos. Universidad del Norte.
ISBN: 9789587414974.
Disponible en la Biblioteca Virtual de UNIR.

Tema 3-7

Marzal Varó, A. García Sevilla, P. y Gracia Luengo, I. (2016). Introducción a la programación con Python 3. Universitat Jaume I. Servei de Comunicació i Publicacions.
ISBN: 9788469711781.
Disponible en la Biblioteca Virtual de UNIR.

Temas 8 y 9

Blasco, F. (2019). Programación orientada a objetos en Java. Ediciones de la U.
ISBN: 9789587921014.
Disponible en la Biblioteca Virtual de UNIR.

Temas 10 y 11

Marzal Varó, A. García Sevilla, P. y Gracia Luengo, I. (2016). Introducción a la programación con Python 3. Universitat Jaume I. Servei de Comunicació i Publicacions.
ISBN: 9788469711781.
Disponible en la Biblioteca Virtual de UNIR.

Bibliografía complementaria

  • Barry, P. (2023). Head first python. O’Reilly Media, Inc.
  • Downey, A. (2015). Think python. O'Reilly Media, Inc.
  • VanderPlas, J. (2023). Python Data Science Handbook. O’Reilly Media, Inc.

 

El sistema de calificación se basa en la siguiente escala numérica:

0 - 4, 9 Suspenso (SS)
5,0 - 6,9 Aprobado (AP)
7,0 - 8,9 Notable (NT)
9,0 - 10 Sobresaliente (SB)

La calificación se compone de dos partes principales:

El examen se realiza al final del cuatrimestre y es de carácter PRESENCIAL u ONLINE y OBLIGATORIO. Supone el 60% de la calificación final y para que la nota obtenida en este examen se sume a la nota final, es obligatorio APROBARLO.

La evaluación continua supone el 40% de la calificación final. Este 40% de la nota final se compone de las calificaciones obtenidas en las diferentes actividades formativas llevadas a cabo durante el cuatrimestre.

Ten en cuenta que la suma de las puntuaciones de las actividades de la evaluación continua permite que realices las que prefieras hasta conseguir el máximo puntuable mencionado. En la programación semanal de la asignatura, se detalla la calificación máxima de cada actividad o evento concreto puntuables.

Sistema de evaluación Ponderación min - max
Participación del estudiante 0% - 15%
Trabajos, proyectos, laboratorios y/o casos 25% - 40%
Test de evaluación 0% - 15%
Examen final 60% - 60%

Alejandro Cervantes Rovira

Formación académica: Doctor en Ciencia y Tecnología Informática por la Universidad Carlos III de Madrid (2009), en la especialidad de Inteligencia Artificial.

Experiencia: Docencia durante 18 años en cursos de grado y posgrado, en asignaturas del área de Ingeniería Informática, en asignaturas como Lógica, Informática Teórica, Inteligencia Artificial o Programación Automática. 

Líneas de investigación: Investigador en la Universidad Carlos III de Madrid como miembro del grupo EVANNAI, sobre Computación Evolutiva y Redes de Neuronas. Como líneas de investigación destacan el aprendizaje incremental y en presencia de cambio, optimización multiobjetivo y deep learning. Colaboración en curso con el Departamento de Bioingeniería e Ingeniería Aeroespacial de UC3M en modelos de Deep Learning para predicción de fenómenos meteorológicos adversos.

Al tratarse de formación online puedes organizar tu tiempo de estudio como desees, siempre y cuando vayas cumpliendo las fechas de entrega de las actividades y la fecha de exámenes. Nosotros, para ayudarte, te proponemos los siguientes pasos:

  1. Desde el Campus virtual podrás acceder al aula virtual de cada asignatura en la que estés matriculado y, además, al aula virtual del Curso de introducción al campus virtual. Aquí podrás consultar la documentación disponible sobre cómo se utilizan las herramientas del aula virtual y sobre cómo se organiza una asignatura en UNIR. También podrás organizar tu plan de trabajo con tu tutor personal.
  2. Observa la programación semanal. Allí te indicamos qué parte del temario debes trabajar cada semana.
  3. Ya sabes qué trabajo tienes que hacer durante la semana. Accede ahora a la sección Temas del aula virtual. Allí encontrarás el material teórico y práctico del tema correspondiente a esa semana.
  4. Comienza con la lectura de las Ideas clave del tema. Este material es el que debes estudiar para superar la asignatura. Consulta, además, las secciones del tema que contienen material complementario: con esto podrás tener una visión más amplia sobre el tema que estás trabajando.
  5. Dedica tiempo al trabajo práctico (sección Actividades). En la programación semanal te detallamos cuáles son las actividades correspondientes a cada semana y qué calificación máxima puedes obtener con cada una de ellas.
  6. Te recomendamos que participes en los eventos del curso (clases en directo, foros de debate…). Para conocer la fecha concreta de celebración de los eventos debes consultar las herramientas de comunicación del aula virtual. Tu profesor y tu tutor personal te informarán de las novedades de la asignatura.

En el aula virtual del Curso de introducción al campus virtual encontrarás siempre disponible la documentación donde te explicamos cómo se estructuran los temas y qué podrás encontrar en cada una de sus secciones. Tambén puedes consultar ahí el funcionamiento de las distintas herramientas del aula virtual: Correo, Foro, Clases en directo, Envío de actividades, etc.

Ten en cuenta estos consejos...

  • Sea cual sea tu plan de estudio, accede periódicamente al aula virtual, ya que de esta forma estarás al día de las novedades del curso y en contacto con tu profesor y con tu tutor personal.
  • Recuerda que no estás solo: consulta todas tus dudas con tu tutor personal utilizando el correo electrónico. Además, siempre puedes consultar tus dudas sobre el temario en los foros que encontrarás en cada asignatura (Pregúntale al profesor).
  • ¡Participa! Siempre que te sea posible accede a los foros de debate. El intercambio de opiniones, materiales e ideas nos enriquece a todos.
  • Y ¡recuerda!, estás estudiando con metodología online: tu esfuerzo y constancia son imprescindibles para conseguir buenos resultados. ¡No dejes todo para el último día!