Linux, programación y machine learning

COORDINADOR: Tomás Di Domenico (CNIO)

Esta asignatura ofrece al alumno/a contenidos relacionados con del uso sistema operativo UNIX/Linux sirviendo como base para el resto de asignaturas prácticas del Máster. Además, se imparte formación en el entorno de programación estadística R, en el lenguaje de programación Python, y en el lenguaje de bases de datos SQL. La asignatura incluye también formación en cloud computing e infraestructuras computacionales de alto rendimiento. Finalmente, se imparte una introducción a Machine learning y fundamentos de Inteligencia Artificial aplicados a la salud.

PROGRAMA

Tema 1. Introducción al SO Unix/Linux.
Gestión básica del sistema operativo. Gestión de procesos. Sistemas de ficheros. Ordenes avanzadas. Intérprete de Órdenes y Configuración del Usuario. Gestión de permisos. Transmisión de archivos.

Tema 2. Linux avanzado.
Filtros y "pipes". Scripts en entorno Linux. Conexión en remoto. Programación en bash. Buenas prácticas en computación científica. Git. Cloud Computing.

Tema 3. Programación con Python.
Introducción al lenguaje Python. Tipos y estructuras de datos. Bloques de código y estructuras de control. Funciones y programación estructurada. Operaciones de E/S y manipulación de archivos. Módulos, paquetes y distribución de software.

Tema 4. Programación y estadística en R.
Características básicas. Tipos de objetos. Variables en R. Manejo de datos y ficheros. Gráficos. Estadística descriptiva. Inferencia estadística básica.

Tema 5. SQL y bases de datos relacionales.
Introducción a SQL. Operadores, tablas y estructuras de datos. Definición y normalización de tablas. Edición. Consultas básicas. Consultas avanzadas.

Tema 6. Infraestructuras de computación en salud. Gestión de ficheros e inversiones.

Tema 7. Machine Learning.
Introducción a Machine Learning: aprendizaje supervisado; aprendizaje no supervisado; Machine Learning en Bioinformática. Aprendizaje supervisado: flujo de trabajo; sobreajuste; selección de características; evaluación y comparación de clasificadores; algoritmos: naïve bayes; basados en instancias; árboles de decisión; algoritmos lineares. Introducción a deep learning.