1 - Presentación

Primer contacto

Presentación del curso

  • Justificación
  • Itinerario formativo
  • Metodología
  • Grupo
  • Herramientas

1.1 - Justificación

Por qué Python para IoT

Python es uno de los lenguajes de programación más populares en el ámbito del Internet de las Cosas (IoT) por varias razones:

  1. Facilidad de aprendizaje y uso: Sintaxis clara y legible, lo que lo hace ideal para principiantes y para prototipado rápido.

  2. Amplia biblioteca estándar y módulos externos: Python tiene una extensa biblioteca estándar y muchas bibliotecas de terceros que facilitan la integración con diferentes componentes de IoT, como sensores, bases de datos y servicios en la nube.

  3. Compatibilidad con hardware de IoT: Plataformas como Raspberry Pi soportan Python de forma nativa.

  4. Comunidad activa: La popularidad de Python significa que hay una gran comunidad de desarrolladores que pueden ofrecer soporte, compartir código y crear herramientas que faciliten el desarrollo de IoT.

  5. Portabilidad: Python es un lenguaje interpretado que puede ejecutarse en una variedad de sistemas operativos y arquitecturas.

  6. Integración con sistemas y servicios en la nube: Esencial para proyectos de IoT que requieren almacenamiento en la nube, análisis de datos o visualización en tiempo real.

  7. Desarrollo rápido: Dada la naturaleza a menudo experimental del IoT, necesitamos desarrollar y prototipar rápidamente.

  8. Flexibilidad: Python puede usarse tanto para la lógica de back-end (por ejemplo, procesamiento y análisis de datos) como para la de front-end (por ejemplo, aplicaciones web para visualizar datos de sensores).

  9. Capacidades de red y comunicación: Python tiene fuertes capacidades de red, facilitando la implementación de protocolos comunes de IoT como MQTT, HTTP/HTTPS y CoAP.

  10. Seguridad: Ofrece herramientas y bibliotecas que ayudan a implementar medidas de seguridad.

Otros jenguajes: C, C++, y JavaScript (Node.js)

1.2 - Entorno: Google Colab

¿Qué es Google Colab?

  • Recurso de Google para la comunidad de Machine Learning.
  • Nos va a permitir ejecutar código Python en la nube sin instalar nada en nuestro ordenador. Sólo necesitamos un navegador web.
  • Permite compartir y colaborar en el código.
  • Permite ejecutar código en GPU y TPU.

¿Cómo acceder?

Tutoriales

  • Tutorial oficial de Google Open In Colab

Otros tutoriales de Colab:

Referencia

Algunos Tips

Editar > Borrar todos los resultados

¿En qué máquina se ejecuta?

!cat /etc/*release 

Tarea

  • Abrir el colab de inicio
  • Copiar en Drive
  • Añadir una celda de Markdown al inicio que tenga:
    • Un título: Python para IoT
    • Tu nombre
    • El nombre de tu centro con un link a su web
    • Un título: Objetivos
    • Y una lista con los objetivos que tienes para este curso

2 - Primeros Pasos

Primer contacto

Características de Python

  1. Sintaxis Clara y Legible: Uso de indentación para definir bloques de código y no de llaves como en otros lenguajes. Esto hace que el código sea más legible y fácil de mantener.

  2. Interpretado: A diferencia de los lenguajes compilados como C o C++, Python es interpretado. Esto significa que el código se ejecuta directamente, línea por línea, lo que facilita la depuración y el prototipado rápido.

  3. Tipado Dinámico: En Python, no es necesario declarar el tipo de una variable cuando se crea. El lenguaje determina el tipo de una variable en tiempo de ejecución.

  4. Amplias Bibliotecas Estándar: Python viene con una “batería incluida”, es decir, una extensa biblioteca estándar que ofrece módulos y funciones para una amplia variedad de tareas, desde operaciones con archivos hasta comunicaciones en red.

  5. Multiplataforma: Python es portable y se puede ejecutar en una variedad de sistemas operativos.

  6. Orientado a Objetos: Aunque Python admite múltiples paradigmas de programación, tiene un fuerte soporte para la programación orientada a objetos, permitiendo la definición de clases, la herencia y la encapsulación.

  7. Extensible: Python puede ser extendido con código escrito en C, C++ u otros lenguajes. Esto es útil para operaciones que necesitan ser rápidas o para usar bibliotecas existentes en otros lenguajes.

  8. Embeddable: Se puede integrar código Python en programas escritos en otros lenguajes, lo que permite añadir capacidades de scripting a programas más grandes.

  9. Gestión Automática de Memoria: Python gestiona automáticamente la memoria usando un recolector de basura, lo que reduce la posibilidad de fugas de memoria.

  10. Desarrollo Interactivo: Con el uso de herramientas como el intérprete interactivo de Python (REPL) o Jupyter Notebook, es posible escribir y probar código en tiempo real.

  11. Baterías Incluidas: Python viene con una amplia biblioteca estándar que cubre áreas como protocolos de Internet, interfaces gráficas de usuario, bases de datos, desarrollo web y mucho más.

  12. Ecosistema Rico: Existen miles de paquetes y bibliotecas de terceros disponibles para Python, cubriendo áreas desde desarrollo web (Django, Flask) hasta ciencia de datos (pandas, NumPy, SciPy) y aprendizaje automático (TensorFlow, scikit-learn).

  13. Comunidad Activa: Python es un lenguaje de código abierto con una comunidad de desarrolladores activa y una organización sin ánimo de lucro, la Python Software Foundation (PSF), que promueve y apoya el desarrollo del lenguaje.

  14. Curva de Aprendizaje Suave: Python es fácil de aprender y usar, lo que lo hace ideal para principiantes y para prototipado rápido.

2.1 - Introducción informal

Documentación

Notebook Base

  • Open In Colab

Ejercicios

  • Strings: Open In Colab Open In Colab

  • Números: Open In Colab Open In Colab

  • También puedes seguir las instrucciones del Tutorial Open In Colab

Primer contacto con Python y Google Colab:

  • Números
  • Texto
  • Listas

2.2 - Estructuras de control

Documentación

Notebook Base

  • Condicionales Open In Colab

  • Bucles for Open In Colab

Ejercicios

  • Condicionales: Open In Colab

  • Bucles for: Open In Colab

2.3 - Estructuras de datos

Documentación

Notebook Base

  • Listas Open In Colab
  • Diccionarios Open In Colab

Ejercicios

  • Listas: Open In Colab
  • Diccionarios: Open In Colab

2.4 - Funciones

3 - Proyecto 1

Visualización de datos de centros educativos con Python

En este proyecto vamos a visualizar datos de centros educativos de la Comunidad de Aragón. Los datos se han extraido del portal https://educa.aragon.es/buscador-de-centros. Se han procesado y preparado para facilitar el trabajo.

Más adelante trabajaremos con estos datos de forma más eficiente. Ahora se plantea sólo como una tarea para practicar los conceptos de la primera sesión del curso.

Open In Colab