Back to top

Información MOOC

Programación en Python para la arquitectura y la ingeniería

Coordinador(a): FRANCISCO SERRADILLA GARCÍA
Centro: E.T.S DE ING. DE SISTEMAS INFORMÁTICOS
Idioma: Castellano
Convocatoria: 2022
Miembros que lo componen
Nombre Centro / Entidad
FRANCISCO SERRADILLA GARCÍA E.T.S. DE INGENIEROS DE MINAS Y ENERGÍA
ALBERTO DÍAZ ÁLVAREZ E.T.S. DE INGENIEROS INDUSTRIALES
GUILLERMO IGLESIAS HERNÁNDEZ E.T.S DE ING. DE SISTEMAS INFORMÁTICOS
EDGAR TALAVERA MUÑOZ E.T.S. DE INGENIEROS INDUSTRIALES
Modalidad
Curso de formación contínua en la plataforma MiriadaX (MOOC)
Objetivos de la propuesta

El equipo docente que impartirá el curso está formado por tres profesores de la UPM y un alumno próximo a comenzar sus estudios de doctorado con extensa experiencia en lenguajes de programación, especialmente Python.

El equipo docente junta agrupa muchos años de desarrollo ?tanto en el mundo académico como en la industria? en numerosos lenguajes, entre los que destaca Python. Los proyectos han cubierto un amplio espectro de aplicaciones y temas: Desarrollo web, simulación y videojuegos, ciberseguridad, inteligencia artificial, conducción autónoma y conectada, software empotrado y de control, etcétera. Además han impartido cursos de desarrollo en Python (entre otros) a empresas como Telefónica, Ericsson o Nexea.

Además, en el ámbito académico, los docentes mantienen Python como lenguaje vehicular para las explicaciones que precisan de un lenguaje de programación para ser ilustradas.

Por último, todos los participantes investigan en el campo de la Inteligencia Artificial Aplicada, incidiendo bastante en el área del aprendizaje profundo o Deep Learning. En esta área, el principal lenguaje de programación es Python y han desarrollado numerosas herramientas en el lenguaje.

Por estas razones consideramos que el equipo docente es idóneo para la impartición del curso propuesto.

Justificacion del equipo docente

Desarrollo del MOOC titulado ?Programación en Python para la arquitectura y la ingeniería?, donde se darán las bases del desarrollo para este lenguaje y se abrirán diferentes líneas para mostrar el potencial en áreas relacionadas con las temáticas impartidas dentro de nuestra  universidad. Se espera conseguir que:

  • Profesores y estudiantes dispongan de un recurso de referencia para aprender el lenguaje.
  • Aquellos miembros de la comunidad universitaria que quieran, cuenten con los medios para escribir sus propias soluciones y leer las soluciones escritas por terceros.
  • Exista un recurso en continua mejora como referencia en diferentes asignaturas para liberar de temario común a éstas.
Justificacion del mooc

El lenguaje de programación Python nació en el año 1991 como proyecto de juguete, pero para el año 2000 se lanzó su versión 2.0, era el segundo lenguaje de scripting de sistemas Unix y GNU/Linux, cubría los paradigmas imperativo, orientado a objetos y funcional, incluía técnicas para el manejo automático de memoria como el recolector de basura.

Este hecho, junto con su filosofía de mantener el código sencillo de leer y su uso como lenguaje principal de proyectos de éxito como ROS (para el área de robótica), TensorFlow o scikit-learn (para el área de la Inteligencia Artificial) o Django (para el área del desarrollo web) ha hecho que a lo largo de los años se haya posicionado dentro del Top 10 de lenguajes más usados en el mundo según el índice TIOBE, siendo en el año 2022 el más usado (por delante de C o Java).

Dentro del ámbito académico, Python es usado extensivamente en investigación. Pero además, su facilidad para leer y escribir código, para ?probar?, permite la creación de pruebas de concepto en una fracción de tiempo que con otros lenguajes, con el aliciente de que dichas pruebas son más fácilmente implementables en dispositivos reales que las soluciones desarrolladas en otros lenguajes, como por ejemplo MATLab.

Por todo esto, consideramos que este lenguaje es de extrema utilidad para toda la comunidad docente e investigadora, así como para los estudiantes que desempeñarán su labor profesional en un futuro, sea cual sea esta.

Objetivos del aprendizaje
  • Introducción al lenguaje y a las prácticas de programación más comunes.
  • Creación y distribución de scripts, programas y librerías.
  • Entornos virtuales y reproducibilidad.
  • Frameworks y aplicaciones en el área académica y profesional.
Contenidos y breve descripción de cada capítulo
  1. Bienvenida: Presentación del curso, objetivos y planificación.
  2. Introducción: Introducción informal sobre el lenguaje, recorrido por sus características, ventajas y limitaciones, ámbitos de aplicación y entornos de desarrollo
  3. Variables, colecciones, operadores y expresiones.
  4. Control de flujo.
  5. Entrada y salida de datos: Hablaremos de cómo gestionar la entrada y la salida, y la integración de Python en las herramientas del sistema operativo. Hablaremos también del trabajo con ficheros.
  6. Funciones: Cómo se definen las funciones y cómo se trabaja con ellas.
  7. Clases y objetos: Porque todo en Python son objetos, viene bien profundizar en ello. Conceptos como clases, metaclases, herencia, abstracción, polimorfismo, métodos ?mágicos?, ?
  8. Módulos, paquetes y librerías: Hablaremos de los conceptos de módulos y paquetes, así como de la creación de librerías y preparación del código para su distribución.
  9. Documentación y pruebas: Es muy importante documentar correctamente el código y probarlo para minimizar el número de errores que pueden aparecer
  10. Herramientas de Python para la vida profesional y académica: En este punto hablaremos de diferentes áreas en las que Python o cualquiera de sus numerosos frameworks facilitan el trabajo. Hablaremos del desarrollo de interfaces gráficas, manejo de bases de datos, Aplicaciones web, cálculo científico y visualización de datos, robótica y arquitectura.
Elementos multimeda e innovadores

Vídeos y herramientas de programación interactiva.

Destinatarios

El curso es una base que consideramos necesaria para el desempeño de la labor docente, investigadora y profesional. Por tanto, el destinatario es cualquier persona que tenga interés en aprender un lenguaje de programación. Ahora bien, ya que el enfoque del curso está orientado al mundo de la ingeniería y la arquitectura, es de esperar que los potenciales estudiantes tengan un perfil alineado.

Dicho esto, un estudiante de primero de carrera se beneficiará de los conocimientos tanto como un profesional que quiere actualizar sus conocimientos en un lenguaje nuevo o como un académico que quiere desarrollar sus pruebas de concepto para investigación o docencia.

Actividades de evaluación
  • Autoevaluación: Cada módulo dispondrá de tests de autoevaluación para que el estudiante evalúe sus conocimientos.
  • Seguimiento y participación en foros: Análisis del seguimiento de los foros por parte del alumnado, estimulando, si fuera preciso, la participación y lectura del mismo.
  • Herramientas audiovisuales: La visualización de todos los vídeos base es obligatoria, aunque los audios, artículos y vídeos opcionales darán diferentes perspectivas muy útiles que también se evaluarán.
  • Actividades por módulo: Cada módulo llevará asociada unas actividades de desarrollo para evaluar al estudiante.
  • Trabajo final: En esta prueba, los estudiantes realizarán un proyecto personal de su elección y será un elemento clave en la evaluación.
Actividades de dinamización previstas

Actividades de programación de ejemplo relacionadas con problemas del mundo real