class: center, middle, inverse, title-slide .title[ # Fundamentos de Computación Científica ] .subtitle[ ##
] .date[ ###
Grado en Ciencias del Mar
Curso 2024-25 ] --- layout: true background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/uni2.png) background-size: 50% 75% --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 1. Proyecto Docente --- ### Campus virtual: Proyecto Docente .pull-left[ [![](imagenes/proyectoDocente24-25.png)](http://www2.ulpgc.es/aplicaciones/proyectosdocentes/pdf.php?id_proyecto=71321&NUEVA=1) ] .pull-right[ [Descargar proyecto docente curso 2024-25](https://www2.ulpgc.es/aplicaciones/proyectosdocentes/pdf.php?id_proyecto=71321&NUEVA=1) ] --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 2. Profesorado --- ## Profesorado <img src="http://www.estadistica-dma.ulpgc.es/imagenes/logoDMAtransp1.png" alt="logo DMA" height="80" style="float:right"> <br> * __Profesor de Teoría y coordinador__: Angelo Santana del Pino correo: .blue[angelo.santana@ulpgc.es] Horario preferente de tutorías: LMXJ 9:30-10:30 <br> -- * __Profesores de Prácticas__: - Carmen Nieves Hernández Flores correo: .blue[carmennieves.hdezflores@ulpgc.es] Horario preferente de tutorías: MX 9-12 --- ## Tutorías <img src="http://www.estadistica-dma.ulpgc.es/imagenes/logoDMAtransp1.png" alt="logo DMA" height="80" style="float:right"> <br> * Los horarios de tutoría que se muestran en la página anterior son los de atención preferente. En cualquier caso, tanto dentro de ese horario como fuera de él, las tutorías deberán solicitarse por correo electrónico y podrán ser atendidas presencialmente o a través de la plataforma .blue[`Teams`]. -- * Para los alumnos en 5ª, 6ª y 7ª convocatorias, de acuerdo con el plan de acción tutorial del centro, se realizará un plan de seguimiento por parte del coordinador de la asignatura. Dicho plan de seguimiento consistirá en la resolución por parte del alumno de una colección de problemas (que requerirán, dada la naturaleza de la asignatura, de su resolución mediante herramientas informáticas, esto es, programación, hojas de cálculo o software para gráficos) que deberán ser entregados al tutor con periodicidad semanal o bisemanal, de acuerdo con la disponibilidad del alumno. --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 3. Motivación: ¿Por qué esta asignatura? --- ### .red[Motivación: ¿Por qué esta asignatura? ] Porque en el ámbito de las Ciencias Marinas se plantean numerosos problemas de gestión de datos, de cálculo o de representación gráfica que no pueden resolverse con una simple calculadora. -- En esta asignatura utilizaremos fundamentalmente el programa `Matlab` para resolver dichos problemas. -- Algunos comentarios: * `Matlab` es un programa de pago cuya licencia se facilita a los alumnos por parte de la ULPGC. * Existe una alternativa de software libre, `Octave`, que no requiere licencia y que tiene una sintaxis compatible con `Matlab`. * Para el almacenamiento de datos utilizaremos `Excel` o `LibreOffice Calc`. --- ### .red[¿Por qué esta asignatura? Un ejemplo sencillo.] Una esfera sólida de radio R cm y densidad `\(\rho_e\)` gr/cc se sumerge en agua de mar. Suponiendo que `\(\rho_e\)` es inferior a la densidad del agua del mar, que es aproximadamente `\(\rho_a =1.027\)` gr/cc, se desea determinar a qué profundidad se sumerge la esfera cuando flota en el mar. -- #### .red[Planteamiento] La profundidad buscada coincide con la altura `\(h\)` (en cm) del casquete esférico sumergido, de acuerdo con la figura siguiente: .center[![:scale 30%](imagenes/esfera.png)] --- ### .red[¿Por qué esta asignatura? Un ejemplo sencillo.] De acuerdo con el principio de Arquímedes: _"todo cuerpo sumergido en un líquido experimenta un empuje vertical y hacia arriba igual al peso del volumen de líquido desalojado"_. Por tanto cuando la esfera flota, el peso total de la esfera ( `\(M_e\)` ) coincide con el peso del volumen de agua desalojado por el casquete sumergido ( `\(M_a\)` ). -- El volumen del casquete esférico viene dado por la expresión (ver la justificación [aquí](https://es.wikipedia.org/wiki/Casquete_esf%C3%A9rico)): `$$V=\frac{1}{3}\pi\cdot h^{2}\left(3R-h\right)$$` -- Si `\(\rho_a\)` es la densidad del agua de mar, el peso del agua desalojada por el casquete esférico es entonces: `$$M_a=\frac{\rho_a}{3}\pi\cdot h^{2}\left(3R-h\right)\;\; gramos$$` -- Asimismo, si `\(\rho_e\)` es la densidad de la esfera, el peso total de ésta es: `$$M_{e}=\rho_e\frac{4}{3}\pi R^{3}$$` --- ### .red[¿Por qué esta asignatura? Un ejemplo sencillo.] Cuando la esfera flota se tiene que `\(M_a=M_e\)`, y podemos despejar `\(h\)` igualando las dos expresiones anteriores: `$$\frac{\rho_a}{3}\pi\cdot h^{2}\left(3R-h\right)=\rho_e\frac{4}{3}\pi R^{3}$$` -- De donde, tras operar y simplificar, se sigue que `\(h\)` es la solución de la ecuación: `$$\rho_a h^{3} - 3\rho_a R h^{2} + 4\rho_e R^{3}=0$$` -- <br> Ahora bien, .red[__¿cómo resolvemos esta ecuación?__] -- .center[ .resalta[.blue[ __>>>> ¡Utilizando métodos numéricos! <<<<__]] ] -- La mayor parte de las veces utilizaremos métodos ya implementados, si bien a veces deberemos implementar métodos nuevos para nuestros problemas específicos. --- ### .red[¿Por qué esta asignatura? Un ejemplo sencillo.] En este problema particular, la ecuación: `$$\rho_a h^{3} - 3\rho_a R h^{2} + 4\rho_e R^{3}=0$$` es una ecuación polinómica, cuyas raíces pueden obtenerse fácilmente con la función `roots` de Matlab. -- Si, por ejemplo, `\(R=20\)` cm, `\(\rho_a = 1.207\, gr/cm^3\)` y `\(\rho_e=0.025\, gr/cm^3\)`, el valor de `\(h\)` se obtiene empleando la siguiente sintaxis: ``` octave R = 20; rho_a = 1.027; rho_e = 0.025; raices=roots([rho_a, -3*rho_a*R, 0, 4*rho_e*R^3]); h=raices(raices>0 & raices<2*R); % elegimos la única raiz válida h ``` ``` ## h = 3.7204 ``` --- ### .red[¿Por qué esta asignatura? Un caso más complejo] #### Seguimiento de la evolución de una playa: [(más fotos aquí)](http://cooweb.cmima.csic.es/video-coo/images.jsp?site=BCN2-sam&opt=1&fecha=28/09/2020) ![](imagenes/seguimientoPlaya.png) A partir de fotos del litoral realizadas periódicamente (en este caso en las playas de la Barceloneta y Somorrostro en Barcelona), se trata de calcular el área cubierta de arena. Para ello: * A partir de las fotos se extrae el contorno de la costa. -- * Se aplica una transformación para eliminar el efecto de perspectiva. -- * Se ajusta la linea de costa mediante una curva _spline._ -- * Se calcula mediante una integral aproximada el área bajo esa curva. --- ### .red[¿Por qué esta asignatura? Casos más complejos] * En oceanografía las estructuras de datos suelen ser complejas: se deben almacenar varias variables (temperatura, salinidad, clorofila, ...) en áreas extensas (una malla de varios grados de latitud y longitud), y a diversas profundidades. Estos datos se suelen archivar en formato [netCDF](https://pro.arcgis.com/es/pro-app/help/data/multidimensional/what-is-netcdf-data.htm) o [HDF](https://en.wikipedia.org/wiki/Hierarchical_Data_Format). * Existen múltiples herramientas para leer y representar esta información: .center[![:scale 75%](imagenes/hdfplot.png)] --- ### .red[¿Por qué esta asignatura? Casos más complejos] * Matlab lee directamente datos en formato [HDF5](http://www.conama.vsf.es/conama10/download/files/conama/CT%202010/Paneles/40852_panel.pdf). -- * Para la lectura de datos en formato netCDF existen [paquetes especializados](https://es.mathworks.com/help/matlab/network-common-data-form.html). -- * Existen otras [herramientas para la oceanografía](https://sea-mat.github.io/sea-mat/) implementadas en Matlab. -- * También se dispone de herramientas para la [gestión de datos proporcionados por _gliders_](https://github.com/socib/glider_toolbox) -- * O para el trazado de mapas: [Mapping toolbox](https://es.mathworks.com/help/map/map-display.html), [M-map](https://www.eoas.ubc.ca/~rich/map.html) -- * Antes de ver como acceder a las estructuras de datos complejas, deberemos aprender a gestionar estructuras de datos más simples. Para ello nos apoyaremos en software de Hojas de Cálculo como [Excel o Libreoffice Calc](https://www.lifewire.com/create-a-database-in-excel-3123446) -- * Para el tratamiento estadístico de datos, en el segundo cuatrimestre dentro de la asignatura .blue[ __Estadística__] utilizaremos otro lenguaje ([R](www.r-project.org)) específicamente diseñado para ello. --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 4. Competencias y objetivos. --- ## Contribución de la asignatura al perfil profesional <br> * La asignatura proporciona al graduado las herramientas metodológicas y prácticas básicas para la aplicación de recursos computacionales a la resolución de problemas que se presentan en el ámbito de las Ciencias del Mar. <br> * En particular, el alumno adquirirá nociones de programación y de gestión de gráficos, así como del correcto uso de hojas de cálculo sencillas como fuentes de datos. --- ## Competencias que tiene asignadas - I1: Capacidad de análisis y síntesis. - I3: Comunicación oral y escrita en la propia lengua. - I4: Conocimiento de una segunda lengua. - I5: Habilidades básicas del manejo del ordenador relacionadas con el ámbito de estudio. - I6: Habilidad de la gestión de la información (habilidad para buscar y analizar información procedente de fuentes diversas). - I7: Resolución de problemas. - S1: Capacidad de aprender. - S7: Capacidad de aplicar los conocimientos en la práctica. - E8: Reconocer y analizar nuevos problemas y proponer estrategias de solución. --- ## Objetivos * .blue[ __Conocer métodos numéricos básicos__ ] para la resolución de problemas matemáticos que surgen en el modelado de procesos o sistemas. -- * .blue[ __Saber desarrollar e implementar algoritmos en un lenguaje de programación__]. Se utilizará para ello el lenguaje [Matlab](https://matlabacademy.mathworks.com/es) ([software comercial](https://es.wikipedia.org/wiki/Software_propietario) para el cual la ULPGC dispone de licencia). De modo alternativo, existe un programa de [software libre](https://www.gnu.org/philosophy/free-sw.html), el programa [Octave](https://www.gnu.org/software/octave/), cuya sintaxis coincide con la de Matlab. -- * .blue[ __Organizar datos procedentes de experimentos, campañas de investigación u otras fuentes, en bases de datos u hojas de cálculo__], para su tratamiento posterior. -- * .blue[ __Utilizar herramientas gráficas para la presentación de la información y de los resultados de la aplicación de modelos__]. --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 5. Programa de la asignatura --- ## Resumen de Contenidos <br> * Conceptos y principios básicos de computación científica: + Algoritmos. + Programación. + Bases de datos. + Gráficos * Métodos numéricos elementales. --- ## Programa de la asignatura - .red[ __Tema 1:__] Introducción. Conceptos y principios básicos de computación científica: algoritmos, bases de datos, sistemas gráficos. -- - .red[ __Tema 2:__] Hojas de cálculo para la gestión de datos. -- - .red[ __Tema 3:__] Elementos de un lenguaje de programación: variables, vectores, operadores elementales, funciones matemáticas, procedimientos de entrada/salida. -- - .red[ __Tema 4:__] Programación: diagramas de flujo, operaciones lógicas, ejecución condicional, bucles, funciones, fuentes de error. -- - .red[ __Tema 5:__] Procedimientos de cálculo numérico implementados en MATLAB: cálculo de raíces de ecuaciones no lineales. Aproximación de funciones. Interpolación. Diferenciación e integración numéricas. Resolución de sistemas lineales de ecuaciones. -- - .red[ __Tema 6:__] Procedimientos gráficos. --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 6. Evaluación --- ## Evaluación: Convocatoria Ordinaria -- .red[__Fuente 1.1.__] Actividades prácticas realizadas en el aula (problemas-prácticas) (20%) -- .red[__Fuente 1.2.__] Evaluación de la primera parte de la asignatura (bien sea en la prueba intermedia del 21/10/2024 o en el examen final del 13/1/2025): 40% -- .red[__Fuente 1.2.__] Evaluación de la segunda parte de la asignatura (en el examen final, el 13/1/2025): 40% -- Para aprobar la asignatura será preciso obtener una calificación mínima de 5 en la evaluación cada una de las dos partes que la componen. En el examen final se podrá mejorar la calificación obtenida en la primera prueba de evaluación. En tal caso, la calificación obtenida en el examen final será la que compute para la calificación definitiva de la asignatura. Salvo las prácticas, no se conservarán partes de la asignatura de unas convocatorias a otras. -- .red[__Validez de las prácticas__]: Salvo las prácticas, no se conservarán partes de la asignatura de unas convocatorias a otras. La calificación obtenida en prácticas tendrá una validez máxima de dos cursos académicos. --- ## Evaluación: Convocatorias Especiales -- .red[__Fuente 2.1.__] Realización de un examen teórico-práctico (80%) -- .red[__Fuente 2.2.__] Realización de un examen de prácticas o calificación obtenida en las prácticas realizadas en la convocatoria ordinaria. (20%) -- <br> * Para aprobar la asignatura en la convocatoria especial el alumno deberá obtener al menos un 5 en el examen teórico práctico. --- ## Evaluación: Criterios de calificación. Cada uno de los items señalados en la sección FUENTES DE EVALUACIÓN (prácticas, cuestionarios, y en su caso, examen final y examen de prácticas) se calificará de 0 a 10, atendiendo a: -- * Planteamiento y resolución correcta de los ejercicios planteados, tanto en los aspectos metodológicos como en la utilización de software, en su caso. -- * Razonamiento, precisión y claridad en las respuestas, así como uso correcto del lenguaje, y una adecuada organización y presentación de datos y resultados. -- * En el caso del examen de prácticas se valorará el correcto funcionamiento de los programas elaborados, así como la adecuación y calidad de los gráficos y bases de datos realizados. --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 7. Metodología --- ## Clases magistrales .blue[Teoría y problemas]. Se impartirán presencialmente en el aula de docencia. En estas clases se explicarán y desarrollarán los conceptos ligados al desarrollo de la asignatura desde la perspectiva de su aplicación práctica. -- Durante las clases magistrales se propondrán problemas cuya resolución deberá ser subida al campus virtual. -- ## Prácticas de Laboratorio. * El objetivo de la asignatura es fundamentalmente que los alumnos y alumnas adquieran fluidez y destreza en el manejo de las herramientas de la computación científica. Ello sólo es posible dedicando un .red[ __esfuerzo importante a practicar con dichas herramientas__] directamente en el ordenador. -- * Las prácticas .blue[__serán realizadas preferentemente por cada alumno en su ordenador personal__]. Cada práctica se iniciará con una explicación de su contenido y objetivos, y consistirá en la resolución de problemas y tareas utilizando el software y los procedimientos adecuados. --- ## Prácticas: software necesario * .red[ __Navegador__]: Será necesario hacer búsquedas frecuentes en la red, por lo que es preciso disponer de algún navegador actualizado. -- * .red[ __Matlab__]: La ULPGC cuenta con licencias de estudiante que permiten la instalación del programa desde esta [página web](https://es.mathworks.com/academia/tah-portal/universidad-de-las-palmas-de-gran-canaria-40760023.html). Previamente es preciso crear una cuenta de Mathworks. Las instrucciones sobre cómo hacerlo las puede encontrar en [este enlace](https://www.si.ulpgc.es/sites/default/files/ficheros-si/manuales-y-ayudas/instrucciones_para_instalar_matlab.pdf). -- * .red[__Matlab online__]: El programa Matlab cuenta también con una [versión online](https://es.mathworks.com/products/matlab-online.html) que solo necesita un navegador para ejecutarse. Es idéntica a la versión de sobremesa y se ejecuta con la licencia de la ULPGC. -- * .red[ __Hoja de Cálculo__]: la mayor parte de los usuarios de Windows disponen de Excel. Puede utilizarse también _Libreoffice_, disponible desde [es.libreoffice.org](https://es.libreoffice.org/descarga/libreoffice-nuevo/) --- ## Laboratorio de prácticas portátil La siguiente aplicación para móvil o tablet permite ejecutar código Matlab: * .red[Matlab mobile](https://es.mathworks.com/products/matlab-mobile.html) (Android e iOS). Ejecuta Matlab online. Es preciso registrarse en Mathworks (sin coste) y permite editar y ejecutar código matlab. También existen diversas aplicaciones de hoja de cálculo para el móvil: * .red[Excel], .red[googleSheets], ... --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 8. Bibliografía --- ## Bibliografía <br> 1. ¡Internet! ![](imagenes/Internet.png). Existen numerosos tutoriales, canales de youtube dedicados a matlab, ... [Web de la asignatura](http://estadistica-dma.ulpgc.es/FCC/) 2. Cálculo científico con MATLAB y Octave. _A. Quarteroni, F. Saleri._ Springer (2006) 3. [Web de mathworks](https://matlabacademy.mathworks.com/es) 4. [Learning to program with Matlab](https://kkpatel7.files.wordpress.com/2014/10/learning-to-program-with-matlab.pdf). _C.S. Lent_. Wiley (2013) 5. Problemas resueltos de métodos numéricos. _Alicia Cordero et al._ Thomson (2006) --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: cover background-position: 15% 45% class: inverse, bottom, left # 8. Por último ... --- .center[![](imagenes/estudiar-duro.jpg)] ### Consejos prácticos. * Traten de llevar la asignatura al día. * No sean tímidos, ¡pregunten lo que no entiendan! Usen las tutorías del profesorado. * Experimenten: ¡el ordenador no se rompe cuando prueben sus programas! * Consulten material: libros, contenido online... ¡Google está siempre disponible! * Resuelvan todos los problemas que se vayan planteando a lo largo del curso. --- background-image: url(http://www.estadistica-dma.ulpgc.es/imagenes/philipp-katzenberger-iIJrUoeRoCQ-unsplash.jpg) background-size: 900px background-position: 15% 45% class: right, inverse # <br> <br> ¡¡Ánimo y <br> buena suerte!!