Logo UAB
2023/2024

Herramientas Informáticas y de Programación

Código: 106807 Créditos ECTS: 6
Titulación Tipo Curso Semestre
2504602 Nanociencia y Nanotecnología FB 1 1

Contacto

Nombre:
Xavier Cartoixa Soler
Correo electrónico:
xavier.cartoixa@uab.cat

Idiomas de los grupos

Puede consutarlo a través de este enlace. Para consultar el idioma necesitará introducir el CÓDIGO de la asignatura. Tenga en cuenta que la información es provisional hasta el 30 de noviembre del 2023.

Equipo docente

Catalina Coll Benejam
Pedro Alcázar Guerrero

Prerrequisitos

Ninguno.


Objetivos y contextualización

     • Familiarizarse con el uso de varias herramientas informáticas para el tratamiento de datos y la presentación gráfica de información.

     • Conocer las estructuras básicas de un programa: tipos, ramas, bucles; así como las fases de su creación.

     • Ser capaz de utilizar el lenguaje python para realizar tareas comunes en un laboratorio de Nanociencia y Nanotecnología.


Resultados de aprendizaje

  • CM12 (Competencia) Resolver problemas en el ámbito de la nanociencia, seleccionando las herramientas informáticas y de programación adecuadas.
  • KM18 (Conocimiento) Reconocer las herramientas informáticas del tratamiento, análisis y representación de datos.
  • KM19 (Conocimiento) Identificar las distintas etapas, desde el análisis hasta la verificación, de un programa informático ejecutable, y las herramientas disponibles para llevarlas a cabo.
  • SM18 (Habilidad) Escribir programas informáticos de análisis y resolución de problemas simples en diferentes lenguajes de programación científica.
  • SM19 (Habilidad) Utilizar aplicaciones informáticas de visualización, tratamiento y representación de datos.
  • SM19 (Habilidad) Utilizar aplicaciones informáticas de visualización, tratamiento y representación de datos.
  • SM20 (Habilidad) Transmitir datos científicos relevantes mediante la realización de figuras de alta calidad.
  • SM20 (Habilidad) Transmitir datos científicos relevantes mediante la realización de figuras de alta calidad.

Contenido

     1. Configuración del entorno informático

         1. WSL2, VMs, Cygwin, Dual boot

         2. Instalación de software

         3. Configuración de python

     2. Familiarización en entornos Linux (PAUL)

         1. La ventana de terminal

         2. Configuración del sistema

     3. Algoritmos y estructuras básicas

         1. Bloques básicos

     4. Python

         1. Hello world

         2. If, then, else

         3. While, do while

         4. For loop

         5. Funciones y subrutinas

         6. Módulos

         7. Tipo de variables

         8. Objetos

     5. Presentación gráfica de información

         1. Excel

         2. Gnuplot

         3. Matplotlib

     6. Tratamiento de datos

         1. NumPy y SciPy

         2. Integración numérica

         3. Álgebra lineal

         4. Serie de Fourier

         5. Interpolación de puntos

     7. Clasificaciones de lenguajes de programación

         1. Funcional vs Orientados a Objetos (OO)

         2. Compilados vs interpretados

         3. Pasar por valor vs pasar por referencia

         4. Tipo de una variable

     8. Herramientas

         1. Compiladores e intérpretes

         2. Lenguajes: Hello world en

         3. Debuggers: gdb, idb, GUIs

         4. IDEs: Eclipse, Visual Studio, kdevelop

         5. Profilers y memory leak detectores

         6. Recursos online: repositorios, documentación, stackoverflow

     9. Consideraciones finales


Metodología

La formación se basará en clases magistrales con uso esporádico del ordenador, complementadas con prácticas de aula con uso intensivo del ordenador y prácticas de laboratorio donde se aplicarán los contenidos aprendidos al control de instrumentación y análisis y visualización de datos.

Se realizarán actividades autónomas que incluirán la elaboración de programas informáticos simples.

Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.


Actividades

Título Horas ECTS Resultados de aprendizaje
Tipo: Dirigidas      
Clase magistral 30 1,2 CM12, KM18, KM19, SM18, SM19, SM20, CM12
Prácticas de aula 15 0,6 CM12, SM18, SM19, SM20, CM12
Prácticas de laboratorio 7 0,28 KM18, KM19, SM18, SM19, SM20, KM18
Tipo: Autónomas      
Estudio y realización de programas 77 3,08 CM12, KM18, KM19, SM18, SM19, SM20, CM12
Preparación de prácticas de laboratorio 15 0,6

Evaluación

La realización de las prácticas de laboratorio es obligatoria, y es necesario aprobar las prácticas separadamente.

 

Para aprobar la asignatura es necesaria una nota mínima de 4 en la prueba de síntesis. Esto se puede obtener o bien:

 

a) Cuando la media de las pruebas parciales de síntesis alcance el 4, y ninguna de las pruebas parciales tenga una calificación inferior a 2.

 

b) Cuando la prueba de síntesis de recuperación alcance el mínimo de 4.

 

Para presentarse a la prueba de síntesis de recuperación es necesario haberse presentado previamente como mínimo a una de las pruebas parciales de síntesis, y haber aprobado las prácticas.

 

 

Las matrículas de honor se concederán con preferencia a los resultados de las pruebas de síntesis parciales sobre la recuperación. Se podrá ir a la prueba de síntesis de recuperación a subir nota, pero en caso de obtener una calificación inferior a la de la media de las pruebas parciales, la calificación de síntesis final será la media entre la media de los parciales y la nota de recuperación.

 

Esta asignatura no contempla el sistema de evaluación única.


Actividades de evaluación continuada

Título Peso Horas ECTS Resultados de aprendizaje
Problemas y trabajo independiente 20% 0 0 KM18, KM19, SM18, SM19
Prueba de síntesis 55% 6 0,24 CM12, KM18, SM18
Prácticas de laboratorio 25% 0 0 CM12, KM18, SM18, SM19, SM20

Bibliografía

  • Eric Matthes, Python Crash Course : a hands-on, project-based introduction to programming, No Starch Press, San Francisco, 3rd Ed, 2023.
  • Sébastien Chazallet, Python 3 : Los fundamentos del lenguaje, ENI Ediciones, 2ª ed, 2016.
  • Connor P. Milliken, Python Projects for Beginners, Apress, 1st ed, 2020.
  • Joel Grus, Data Science from Scratch : First Principles with Python, O’Reilly, Sebastopol, CA, USA, 2nd ed, 2019.

Software

El curso hará uso intensivo del lenguaje de programación python, así como uso esporádico de otros programas y lenguajes. Se ofrecerá asistencia para la configuración del entorno.