1. Computación científica y ciencia de datos#
Ciencia: Scientia: Conocimiento
1.1. Los paradigmas de la ciencia:#
El primer paradigma es basado en observación y experimentación
El segundo paradigma agregó es el teórico, se basa en probar modelos y refutar hipótesis
El tercer paradigma es basado en simulaciones: Probamos modelos y análisamos fenómenos utilizando simulaciones computacionales
El cuarto paradigma es basado en los datos: Entender fenómenos en base a datos masivos generados por sensores o simulaciones
1.2. Tercer paradigma: Computación Científica#
Hoy en día muchos trabajos científicos e ingenieriles incluyen al menos uno de los siguientes aspectos
cálculos numéricos
simulaciones
modelamiento computacional
análisis de datos
En resumen
El computador se ha vuelto esencial para hacer ciencia
y por ende
El software se ha vuelto esencial para hacer ciencia
En este escenario surge
La computación científica es la disciplina que se encarga de desarrollar la teoría y las técnicas necesarias para resolver problemas matemáticos complejos de ciencias e ingeniería de forma eficiente
Ejemplo: Simulación de la unión de dos agujeros negros utilizando datos de LIGO
1.3. Cuarto paradigma: Ciencia de los Datos#
Los avances tecnológicos han permitido la generación y captura de una enorme cantidad de datos
Considere por ejemplo las Redes Sociales, el Internet de las Cosas (IoT) o los proyectos smart-city
Esto también ocurre en las ciencias
Simulaciones con cada vez mayor nivel de resolución
Telescopios que cubren mayores áreas del cielo y con mayor profundidad
Digitalización de exámenes médicos
El término Big Data se ocupa para describir el escenario tecnológico actual respecto a la abundancia, altas tasas de generación y variedad de datos
En este escenario surge:
La ciencia de datos es la disciplina que busca extraer conocimiento (información) a partir de datos (masivos)
Competencias
La computación científica y la ciencia de los datos combinan competencias de
Ciencias de la computación: Diseñar algoritmos eficientes y escalables para procesar grandes bases de datos
Matemáticas aplicadas y estadística: Diseñar modelos que caractericen y resuman los datos
Interdiscipina
La computación científica y la ciencia de los datos son paradigmas naturalmente interdisciplinares
Se debe colaborar con expertos del dominio para formular preguntas científicas e intepretar los resultados de nuestros rutinas computacionales
Reproducibilidad
Un buen software científico debe permitir la replicación y reproducibilidad de los resultados de los experimentos
1.4. ¿Qué podemos esperar de este curso?#
En este curso aprenderemos a manejar librerías de computación científica basadas en el lenguaje de programación Python
1.5. ¿Qué es Python?#
Python es un lenguaje de programación interpretado y multi-paradigma liberado en 1991 y ampliamente usado en ciencia de los datos
¿Por qué?
Enfoque en la simpleza, lo cual resulta en código más fácil de mantener y desarrollos más rápidos
Rico ecosistema de librerías abiertas para computo científico: Numpy, Scipy, Pandas, entre otras que serán estudiadas en este curso
¿Y que hay del desempeño de mis algoritmos versus lenguajes de programación de más bajo nivel?
Trade-off entre tiempo de cómputo y horas hombre de programación
Librerías de cómputo científico de Python: Están compiladas con librerías optimizadas de bajo nivel (e.g. BLAS, LAPACK)
Si la función que necesito no está en las librerías: Integrar Python con lenguajes de bajo nivel (e.g. C++, Fortran)