Técnicas de Programación

Selecciona un profesor para ver más información:

Teléfono: 983 00 10 00

Última versión revisada de la guía docente, debidamente informada por parte del profesor en la asignatura.

Los lenguajes de programación nos acompañan desde que se comenzaron a utilizar ordenadores para automatizar los procesos y los cálculos. Con la utilización de los ordenadores para el análisis y tratamiento de grandes cantidades de información, lo que comúnmente se conoce como Big Data, se adaptaron y se crearon nuevos lenguajes más especializados en el tratamiento y el análisis de esos datos.
Los lenguajes de programación más comúnmente utilizados en la Ciencia de los Datos y en el tratamiento Big Data son Python y R.
Python es un lenguaje de programación más generalista, que se utiliza también para escribir otros programas, no necesariamente relacionados con el Big Data ni la Ciencia de los Datos. Es un lenguaje de alto performance, y que es muy recomendado para la factorización de procesos. El favorito de los Data Engineers.
R, por su parte, es un lenguaje más intuitivo que Python, creado específicamente para el Análisis de Datos, Data Science y Big Data. Se trata de un lenguaje de ámbito más relacionado con la exploración y con el ámbito universitario. Es el preferido de los Data Scientists.
Al tratarse ambos de lenguajes de programación de alto nivel, significa que la utilización, los comandos y la sintaxis son muy intuitivas (en el lenguaje inglés).
En esta asignatura se describirán este tipo de lenguajes, su necesidad y utilidad en las aplicaciones Big Data, se dará un primer vistazo en cuanto a los métodos de almacenamiento más comunes, así como las principales estrategias de adquisición de datos, y su tipología.
Se aprenderá a instalar y utilizar los principales editores de Python y R. Y se realizarán diversas actividades para afianzar la utilización de los dos lenguajes.
Dado que son lenguajes de alto nivel, su aprendizaje es bastante intuitivo. No se requieren especiales conocimientos en programación y se explicarán las técnicas básicas de procesamiento.
Los principales temas que se desarrollarán en el curso son:
• Introducción a los lenguajes de programación aplicados al análisis de datos.
• Métodos de almacenamiento y toma adquisición de datos
• Procesamiento de datos
• Python para análisis de datos
• R para análisis de datos.

  1. TÉCNICAS DE PROGRAMACIÓN:
    1. Técnicas de Programación: Fundamentos de la Programación orientada al análisis de datos.:
    2. Introducción a los lenguajes de programación aplicados al análisis de datos.:
    3. Métodos de almacenamiento y adquisición de datos.:
    4. Procesamiento de datos.:
    5. Python para el análisis de datos.:
    6. R para el análisis de datos.:

Los recursos de aprendizaje que se utilizarán en todas las asignaturas de la titulación (salvo las prácticas externas) para facilitar el proceso de enseñanza-aprendizaje, son:

  • Campus online de la UEMC (Open Campus)
  • Plataforma de Webconference (Adobe Connect)

Las comunicaciones con el profesor serán a través de Open Campus vía Mi correo, Tablón o/y Foro.

CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo
CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación
CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio
CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
CB9. Que los estudiantes sepan comunicar sus conclusiones -y los conocimientos y razones últimas que las sustentan- a públicos especializados y no especializados de un modo claro y sin ambigüedades
CG7. Capacidad de crítica y autocrítica
CE10. Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes
CE7. Capacidad para almacenar y extraer información estructurada en bases de datos relacionales
El alumno será capaz de:
  1. El alumno será capaz de utilizar las técnicas y herramientas básicas para almacenar y extraer información estructurada en bases de datos relacionales

  2. El alumno será capaz de reconocer las tareas de verificación que se llevan a cabo durante el procesamiento de un programa.

  3. El alumno conocerá los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas a los grandes volúmenes de datos

  • W. VENABLES, R. IHAKA, M. MÄCHLER (2000), Introducción a R. Notas sobre R. Un entorno de programación para Análisis de Datos y Gráficos, Development Core Team
  • ERNESTO RODRIGUEZ ARIAS (2015), Fundamentos de Programación: Para Todos los Públicos, Createspace Independent Pub
  • W. VENABLES, R. IHAKA, M. MÄCHLER (2000), Introducción a R. Notas sobre R. Un entorno de programación para Análisis de Datos y Gráficos, R Development Core Team
  • John Hunt (2019), A Beginners Guide to Python 3 Programming, Springer
  • Juan José de Haro (2017), Programación y estadística con R: Fundamentos de programación y técnicas para el análisis exploratorio, contraste de hipótesis y aprendizaje automático, dependently published
  • IVAN IDRIS (2016), Python Data Analysis Cookbook, Packt Publishing
  • John Hunt (2019), Advanced Guide to Python 3 Programming, Springer
  • Ben Stephenson (2014), The Python Woorkbook, Springer

https://www.youtube.com/channel/ucobbrqk0qylri_fo2lalsxg (Canal que contiene dos plylist muy interesantes para Python.)

https://www.codificandobits.com/ (En ella se puede encontrar varios vídeos donde se explican los diferentes temas que aborda este blog.)

https://www.r-project.org/ (Hay muchos recursos: libros, artículos, noticias y, muy interesante y recomendable las FAQ: https://cran.r-project.org/doc/FAQ/R-FAQ.html)

https://www.youtube.com/channel/ucqvdqmrwjujauii1qe_xpha (Muy buenos vídeos para iniciarse en R, breves y muy bien explicados. Incluyen guiones para practicar paso a paso)

http://jupyter.org/
Sitio web de Jupyter Notebook, el IDE que se usará en el curso
http://www.kaggle.com/
Comunidad más importante de análisis de datos, data science y machine learning
http://github.com/
Comunidad de desarrolladores de diversos lenguajes, incluidos Python y R
http://stackoverflow.com/
Comunidad de desarrolladores donde se puede encontrar respuestas a múltiples cuestiones sobre
programación
Resumen de instrucciones de varios paquetes clave del lenguaje R (R cheet-sheets):
https://www.rstudio.com/resources/cheatsheets/

Método dialéctico

Se caracteriza por la participación de los alumnos en las actividades de evaluación continua de debate y la intervención de éstos a través del diálogo y de la discusión crítica (seminarios, grupos de trabajo, etc.). Utilizando este método el alumno adquiere conocimiento mediante la confrontación de opiniones y puntos de vista. El papel del profesor consiste en proponer a través de Open Campus temas referidos a la materia objeto de estudio que son sometidos a debate para, posteriormente, evaluar el grado de comprensión que han alcanzado los alumnos.

Método didáctico

El papel del profesor cobra importancia a través de la impartición de clases magistrales en tiempo real por videoconferencia que podrá utilizar para explicar los contenidos teóricos, resolver dudas que se planteen durante la sesión, ofrecer retroalimentación sobre las actividades de evaluación continua o realizar sesiones de tutoría de carácter grupal.

Método heurístico

Este método puede desarrollarse de forma individual o en grupo a través de las actividades de evaluación continua (entregas de trabajos, resolución de ejercicios, presentaciones, etc.). El objetivo es que el alumno asuma un papel activo en el proceso de aprendizaje adquiriendo los conocimientos mediante la experimentación y la resolución de problemas.

Las actividades formativas que se realizan en la asignatura son las siguientes:

Clases teóricas: Actividad dirigida por el profesor que se desarrollará de forma sincrónica en grupo. Para la realización de esta actividad en Open Campus, la UEMC dispone de herramientas de Webconference que permiten una comunicación unidireccional en las que el docente puede desarrollar sesiones en tiempo real con posibilidad de ser grabadas para ser emitidas en diferido.

Actividades prácticas: Actividades supervisadas por el profesor que se desarrollarán fundamentalmente de forma asíncrona, y de forma individual o en grupo:

    • Actividades de debate. Se trata de actividades en las que se genera conocimiento mediante la participación de los estudiantes en discusiones alrededor de temas de interés en las distintas asignaturas.
    • Entregas de trabajos individuales o en grupos a partir de un enunciado o unas pautas de trabajo que establecerá el profesor.
    • Resolución de ejercicios y problemas que el alumno debe realizar a través de Open Campus en un periodo de tiempo determinado. Esta actividad puede ser en formato test de evaluación.

Tutorías: Las tutorías podrán tener un carácter sincrónico o asíncrono y podrán desarrollarse de manera individual o en grupos reducidos.

Están previstas dos sesiones de tutoría por videoconferencia, una al inicio y otra al final del semestre. En la primera se presentará la asignatura y la guía docente y en la segunda, en las semanas previas a la evaluación final, se dedicará a la resolución de dudas de los estudiantes.

Además, el docente utiliza el Tablón, el Foro y el Sistema de correo interno de Open Campus para atender las necesidades y dudas académicas de los estudiantes.


CV Docente

Ingeniero en Informática por la Universidad de Valladolid
Profesor en el IES Galileo durante los cursos 2020/21 y 2021/22
Profesor en el Máster en Big Data de la Universidad Europea Miguel de Cervantes desde el curso 2021/22
Profesor en el Grado de Informática de la Universidad Europea Miguel de Cervantes desde el curso 2021/22

Cursos de especialización en Ciberseguridad, impartidos online desde el año 2020 para las Consejerías de Educación y de Trabajo de la Junta de Castilla y León:
- Curso de 'Análisis Forense en Ciberseguridad Industrial'
- Curso de especialización 'Ciberseguridad en Instalaciones Industriales'
- Curso 'Gestión de la Ciberseguridad en Pymes. Comercio Electrónico Seguro'


CV Profesional

Investigador en la Universidad Complutense de Madrid
Business Development Director para Europa de NEAT Applied Technologies Ltd.
Chief Innovation Officer del Grupo Tellence
Investigador en NovelSat Ltd.
Innovation Manager en Alvarion Ltd.
Ingeniero en Informática con más de 20 años de experiencia en el desarrollo de software en los ámbitos de las comunicaciones y la seguridad


CV Investigación

Actualmente Investigador en la Universidad Complutense de Madrid
Ha participado como Investigador en 12 proyectos europeos desde el año 2006
Coordinador de 3 proyectos europeos
Revisor de Proyectos Europeos desde el año 2012
Miembro del Grupo de Expertos del Programa EUREKA CELTIC-NEXT de la Union Europea

Créditos totales: 6
Tipo: Obligatorio
Período: 1º Semestre