Programa Detallado

Autor:

Juan Fiol

Version:

Revision: 2025

Copyright:

Libre

Clase 1: Introducción al lenguaje

  • Cómo empezar: Instalación y uso

    • Instalación

    • Edición de código

    • Documentación y ayudas

    • Uso de Python: Interactivo o no

    • Notebooks de Jupyter o Jupyter-Lab

    • Instalando Python interactivo

  • Comandos de Jupyter (o IPython)

    • Comandos de Navegación

    • Algunos de los comandos mágicos

    • Comandos de Shell

  • Ambientes

    • Gestionando ambientes con conda

    • Ambientes y Notebooks

    • Compartiendo ambientes

  • Conceptos básicos de Python

    • Características generales del lenguaje

    • Tipos de variables

Clase 2: Modularización y tipos compuestos

  • Modularización y encapsulado

    • Definición básica de funciones

  • Módulos

    • Módulo math

    • Módulo cmath

  • Tipos simples: Números

  • Tipos compuestos

  • Strings: Secuencias de caracteres

    • Operaciones

    • Iteración y Métodos de Strings

    • Formato de strings

  • Conversión de tipos

  • Tipos contenedores

    • Listas

    • Tuplas

    • Rangos

Clase 3: Tipos complejos y control de flujo

  • Listas

    • Operaciones sobre listas

    • Funciones que aplican sobre listas

  • Control de flujo

    • if/elif/else

    • Iteraciones

    • Múltiples condiciones

  • Diccionarios

    • Creación de diccionarios

    • Selección de elementos

    • Acceso a claves y valores

    • Modificación o adición de campos

  • Conjuntos

    • Operaciones entre conjuntos

    • Modificar conjuntos

Clase 4: Funciones

  • Las funciones son objetos

  • Definición básica de funciones

    • Funciones con argumentos opcionales

    • Número variable de argumentos y argumentos keywords

  • Argumentos de las funciones

    • Ámbito de las variables en los argumentos

    • Tipos mutables en argumentos opcionales

  • Anotaciones de tipos

    • Funciones

    • El tipo Union

    • El tipo Optional

  • Control de tipos estáticos

    • MyPy y notebooks

Clase 5: Más características de Funciones

  • Empacar y desempacar argumentos

  • Funciones que devuelven funciones

  • Ejemplo: Polinomio interpolador

  • Funciones que toman como argumento una función

    • Aplicacion: Ordenamiento de listas

  • Funciones anónimas

  • Ejemplo: Integración numérica

    • Uso de funciones anónimas

  • Funciones y decoradores

    • Funciones que aceptan y devuelven funciones (Decoradores)

    • Decoradores, un ejemplo más útil

  • Programación funcional con Python

    • Los errores al programar

    • Los errores en notebooks

    • Mutabilidad

    • Funciones

    • Inmutabilidad

    • No más loops

Clase 6: Objetos y administración de errores

  • Atrapar y administrar errores

    • Administración de excepciones

    • “Crear” excepciones

  • Programación Orientada a Objetos

    • Breve introducción a Programación Orientada a Objetos

    • Clases y Objetos

    • Herencia

  • Atributos de clases y de instancias

  • Algunos métodos “especiales”

    • Método __del__()

    • Métodos __str__ y __repr__

    • Método __call__

    • Métodos __add__, __mul__ y __abs__

    • Comparación

Clase 7: Persistencia de datos y módulos de biblioteca standard

  • Escritura y lectura a archivos

    • Ejemplos

  • Módulo Pathlib

    • Métodos y propiedades

    • Partes del path

    • Contenido de directorios

    • Leer un archivo

  • Archivos comprimidos

  • String, bytes y codificaciones

Clase 8: Más sobre objetos

  • El decorador @classmethod

  • Getters y Setters

    • Función property

  • Más sobre herencia

  • Enum y dataclasses

    • Enums

    • Dataclasses

Clase 9: Control de versiones y módulos

  • ¿Qué es y para qué sirve el control de versiones?

    • Cambios en paralelo

    • Historia completa

    • Instalación

    • Interfaces gráficas

    • Documentación

    • Configuración básica

    • Creación de un nuevo repositorio

    • Clonación de un repositorio existente

    • Ver el estado actual

    • Creación de nuevos archivos y modificación de existentes

    • Actualización de un repositorio remoto

    • Puntos importantes

  • Importando módulos

    • Importando módulos de directorios hijos

    • Importando módulos desde padres o hermanos

  • Algunos módulos (biblioteca standard)

    • Módulo sys

    • Módulo os

    • Módulo glob

    • Módulo Argparse

    • Módulo re

Clase 10: Introducción a Numpy y Matplotlib

  • Introducción

  • Lectura y escritura de datos a archivos

  • Características de arrays en Numpy

    • Comparación de listas y arrays

    • Uso de memoria de listas y arrays

    • Velocidad de Numpy

    • Propiedades de Numpy arrays

  • Creación de arrays en Numpy

    • Creación de Arrays unidimensionales

    • Arrays multidimensionales

    • Generación de datos equiespaciados

    • Otras formas de creación

  • Acceso a los elementos

  • Operaciones sobre arrays

    • Operaciones básicas

    • Comparaciones

    • Funciones definidas en Numpy

Clase 11: Visualización

  • Interactividad

    • Trabajo con ventanas emergentes

    • Trabajo sobre notebooks

  • Gráficos simples

  • Formato de las curvas

    • Líneas, símbolos y colores

  • Adecuación de los gráficos

    • Nombres de ejes y leyendas

    • Límites de graficación (vista)

    • Escalas

    • Líneas verticales y horizontales

    • Inclusión de ecuaciones

    • Exportar las figuras

  • Dos gráficos en la misma figura

  • Personalizando el modo de visualización

    • Archivo de configuración

    • Hojas de estilo

    • Modificación de parámetros dentro de programas

Clase 12: Más información sobre Numpy

  • Creación y operación sobre Numpy arrays

    • Funciones para crear arrays

    • Funciones que actúan sobre arrays

    • Productos entre arrays y productos vectoriales

    • Comparaciones entre arrays

  • Copias de arrays y vistas

  • Atributos de arrays

    • reshape

    • transpose

    • min, max

    • argmin, argmax

    • sum, prod, mean, std

    • cumsum, cumprod, trapz

    • nonzero

  • Conveniencias con arrays

    • Convertir un array a unidimensional (ravel)

    • Enumerate para ndarrays

    • Vectorización de funciones escalares

  • Indexado avanzado

    • Indexado con secuencias de índices

    • Índices de arrays multidimensionales

    • Indexado con condiciones

    • Función where

  • Extensión de las dimensiones (Broadcasting)

  • Unir (o concatenar) arrays

    • Apilamiento vertical

    • Apilamiento horizontal

  • Generación de números aleatorios

    • Distribución uniforme

    • Distribución normal (Gaussiana)

    • Histogramas

    • Distribución binomial