Pensamiento computacional con Python

Responsable académico

Dr. Luis Miguel de la Cruz Salas

MODALIDAD

En línea

DURACIÓN

20 horas

NIVEL

Intermedio

Fechas: 14 al 25 de octubre de 2024

COSTOS

Precio con pago adelantado, a partir de su publicación

y hasta el 30 de septiembre:

$1,050.00 pesos mexicanos

A partir del 1 de octubre:

$1,500.00 pesos mexicanos

DESCRIPCIÓN

El pensamiento computacional es un conjunto de habilidades que te permite descomponer problemas complejos en tareas más manejables, identificar patrones, abstraer conceptos esenciales y diseñar algoritmos eficientes. Estas habilidades no sólo son valiosas en la programación, sino también en una amplia gama de disciplinas y en la vida cotidiana.

Python es un lenguaje de programación ideal para aprender pensamiento computacional debido a su sintaxis clara y su amplia aplicabilidad. Desarrollar estas habilidades con Python no solo te preparará para una carrera en tecnología, sino que también mejorará tu capacidad para resolver problemas en cualquier contexto.

¿Qué aprenderá la persona participante?

  • Fundamentos del Pensamiento Computacional: Explicaremos los conceptos básicos, como la descomposición, el reconocimiento de patrones, la abstracción y los algoritmos.
  • Programación con Python: Aprenderás a implementar tus ideas y resolver problemas mediante la programación en Python.
  • Resolución de Problemas: Te enfrentarás a una variedad de desafíos y proyectos que te permitirán aplicar las técnicas de pensamiento computacional para encontrar soluciones efectivas.

OBJETIVO GENERAL

Desarrollar en el participante habilidades fundamentales para resolver problemas de manera sistemática y eficiente mediante técnicas de programación y usando el lenguaje de programación Python.

PERFIL DE INGRESO:

  • Haber acreditado el curso Introducción a Python.
  • Contar con una computadora con un navegador web actualizado, de preferencia Firefox o Chrome.
  • Contar con una cuenta en GitHub (https://github.com/).
  • Recomendable: contar con una cuenta en ChatGPT (https://chatgpt.com/).
 

DURACIÓN:

20 horas, 10 días 2 horas diarias.

Del 14 al 25 de octubre de 2024.

Con sesiones en línea diarias de 18:00 a 20:00 horas.

MODALIDAD:

En línea, con apoyo de la plataforma MACTI para realizar y retroalimentar las actividades de aprendizaje.

CUPO MÁXIMO:

25 participantes

REQUISITOS DE INGRESO:

  • Haber acreditado el curso de Introducción a Python.
  • Contar con una computadora con un navegador web actualizado, de preferencia Firefox o Chrome.

REQUISITOS DE PERMANENCIA:

  • Asistir al 80% de las sesiones.

REQUISITOS TÉCNICOS:

  • Contar con:

    1. Conexión a internet para la realización y entrega de actividades de aprendizaje.
    2. Contar con una computadora con un navegador web actualizado, de preferencia Firefox o Chrome.
    3. Equipo de cómputo con bocinas o audífonos, micrófono y webcam.
    4. Cuenta de Gmail.
    5. Software de ofimática (Word, Documentos de Drive u Open Office).
    6. Programa Zoom instalado.

     

REQUISITOS PARA OBTENER LA CONSTANCIA:

  • Haber asistido al 80% de las sesiones.

PERFIL DE EGRESO:

Al finalizar el curso la persona participante tendrá habilidades sólidas en pensamiento computacional y programación en Python. Serán capaces de descomponer problemas complejos, identificar patrones, abstraer conceptos y diseñar algoritmos eficientes. Dominarán los conceptos fundamentales de Python, incluyendo sintaxis, estructuras de datos y programación estructurada.

INSTRUMENTOS DE EVALUACIÓN Y PONDERACIÓN DE LAS ACTIVIDADES 

Temas Objetivos de aprendizaje Instrumentos de evaluación Indicadores
Introducción de python. Al concluir esta unidad el participante conocerá la manera de ingresar a su cuenta en la plataforma MACTI y se familiarizará con los ambientes de Moodle y Jupyterlab donde realizará sus prácticas. Recordará los conceptos básicos de Python. - Ejercic- Quiz 1. (Moodle) - Ejercicios de diagnóstico. (Jupyter Notebook). (Jupyter Notebook) - Proyecto: organización del código. (Jupyter Notebook) - Se verifica en el sistema que el participante accedió a su cuenta en MACTI. - Obtener un puntaje de al menos el 80% en el quiz del módulo. - Obtener el 90% de los ejercicios correctos en la notebook de diagnóstico sobre conceptos básicos de Python.
Pensamiento Computacional Al concluir esta unidad el participante conocerá y pondrá en práctica los conceptos del Pensamiento Computacional. Además planteará la solución de un problema usando esta metodología. - Quiz 2. (Moodle)
- Proyecto: definición. (Moodle)
- Obtener un puntaje de al menos el 80% en el quiz del módulo.
- Obtener un puntaje de 80% en la rúbrica de evaluación del problema a resolver.
Funcionalidades intermedias de Python. Al concluir esta unidad el participante entenderá los conceptos de funciones simples, funciones con distintos tipos de argumentos y valores de regreso, y sabrá cómo documentarlas usando docstring; también entenderá como manejar excepciones para controlar errores; aplicará estos conceptos para realizar correctamente al menos el 90% de los ejercicios del módulo; realizará una primera versión del proyecto final. - Ejercicios. (Jupyter Notebook) - Proyecto: descomposición, reconocimiento de patrones, abstracción e implementación de algoritmos. (Moodle) - Obtener el 90% de los ejercicios correctos en la notebook de ejercicios. - Obtener un puntaje del 90% en la evaluación del proyecto, el cual se evalúa con una rúbrica.
Funcionalidades avanzadas de python. Al concluir esta unidad el participante entenderá los conceptos avanzados de la programación en Python y los conceptos básicos de la Programación Orientada a Objetos; aplicará estos conceptos para realizar correctamente al menos el 90% de los ejercicios del módulo; realizará una segunda versión del proyecto final. - Ejercicios. (Jupyter Notebook) - Proyecto: organización del código. (Jupyter Notebook) ). - Obtener el 90% de los ejercicios correctos en la notebook de ejercicios. - Obtener un puntaje del 90% en la evaluación del proyecto, el cual se evalúa en una notebook.

TEMARIO

  1. Introducción

1.1. Encuadre y presentación del curso.

1.2. Revisión de requisitos

1.2.1. Cuenta en MACTI.

1.2.2. Cuenta en GitHub.

1.2.3. Revisión de las herramientas básicas de Python.

2. Pensamiento computacional

2.1. Identificar el contexto de un problema

2.2. Descomposición del problema.

2.3. Reconocimiento de patrones.

2.4. Abstracción.

2.5. Creación de Algoritmos.

3. Funcionalidades intermedias de Python.

3.1. Programación estructurada.

3.1.1.  Funciones.

3.1.2. Ámbitos.

3.1.3. Retorno de una función.

3.1.4. Parámetros por omisión.

3.1.5. Argumentos posicionales y keyword.

3.1.6. Número variable de parámetros.

3,1.7. Funciones como parámetros de otras funciones.

3.1.8. Funciones que regresan a otra función.

3.2 Documentación con docstring.

3.3.   Manejo de excepciones: try, except, finally.

3.4.  Manejo de archivos.

 4. Funcionalidades avanzadas de Python.

4.1. Iterables, Mapeo y Filtrado

4.2. Lambda expressions

4.3. Comprehensions

4.4. Iteradores y generadores

4.5. Decoradores

5. Breve tour por algunas bibliotecas.

5.1 Servicios: os, platform, shutil, sys, time, datatime, glob, urllib

5.2 Cómputo numérico y ciencia de datos: numpy, matplotlib, pandas.

CRONOGRAMA

Tema Tiempo (horas) Requisitos
1. Introducción 2 Conexión zoom. Acceso a la Plataforma MACTI (profesor y participantes).
2. Pensamiento Computacional 2 Conexión zoom. Acceso a la Plataforma MACTI (profesor y participantes).
3. Funcionalidades intermedias de Python 8 Conexión zoom. Acceso a la Plataforma MACTI (profesor y participantes).
4. Funcionalidades avanzadas de Python 8 Conexión zoom. Acceso a la Plataforma MACTI (profesor y participantes).

RESPONSABLE ACADÉMICO

DR. LUIS MIGUEL DE LA CRUZ SALAS

Entidad de adscripción:  Instituto de Geofísica, UNAM

El Dr. Luis Miguel de la Cruz realizó sus estudios profesionales en la Facultad de Ciencias de la UNAM donde obtuvo el grado de Físico; posteriormente realizó la Maestría y el Doctorado en Ciencias de la Computación en el IIMAS-UNAM y realizó una estancia posdoctoral en el Science and Technology Facilities Council, en Daresbury, Inglaterra. Ha trabajado por cerca de 30 años en el ámbito científico y tecnológico desarrollando proyectos de investigación científica en las áreas de Dinámica de Fluidos Computacional y Cómputo de Alto Rendimiento. Es profesor de varios posgrados y tutor de más de diez alumnos de maestría y doctorado. También ha estado al frente del desarrollo de proyectos de software de alto nivel para instituciones como PEMEX y el IMP.


En los últimos años ha participado en la incubación de una empresa de base tecnológica en donde desarrolla diferentes proyectos de innovación. Es líder del proyecto “Macti: Modelación Computacional y Enseñanza” en donde se ha desarrollado una plataforma para apoyar la enseñanza en licenciaturas de ciencias e ingeniería. Actualmente se desempeña como Técnico Académico Titular C, PRIDE D, en el Depto. de Recursos Naturales del Instituto de Geofísica.

  1. BIBLIOGRAFÍA Y MESOGRAFÍA

    1. Python Software Foundation. (4 de enero de 2023) https://www.python.org/
    2. Python Documentation. (4 de enero de 2023) https://docs.python.org/
    3. Python para todos. Raul Gonzalez Duque. (4 de enero de 2023) http://mundogeek.net/tutorial-python/
    4. Programa como un Pythonista: Python Idiomático. (4 de enero de 2023)  http://mundogeek.net/traducciones/python-idiomatico/ 
    5. Jupyter Project. (24 de julio de 2021). https://jupyter.org/
    6. Jupyter notebooks—A publishing format for reproducible computational workflows. T. Kluyver, Benjamin RAGAN-KELLEY, Fernando PÉREZ, Brian GRANGER, Matthias BUSSONNIER, Jonathan FREDERIC, Kyle KELLEY, Jessica HAMRICK, Jason GROUTf, Sylvain CORLAY, Paul IVANOV, Damián AVILA, Safia ABDALLA, Carol WILLINGd and Jupyter Development Team.In Positioning and Power in Academic Publishing: Players, Agents and Agendas. Amsterdam, The Netherlands: IOS Press, 2016, doi: 10.3233/978-1-61499-649-1-87.
    7. Teaching and Learning with Jupyter. Lorena A. Barba, Lecia J. Barker, Douglas S. Blank, Jed Brown, Allen B. Downey, Timothy George, Lindsey J. Heagy, Kyle T. Mandli, Jason K. Moore, David Lippert, Kyle E. Niemeyer, Ryan R. Watkins, Richard H. West, Elizabeth Wickes, Carol Willing, and Michael Zingale. 2019-12-06. https://jupyter4edu.github.io/jupyter-edu-book/
    8. Jupyter: Thinking and Storytelling with Code and Data. Granger, Brian & Pérez, Fernando. Computing in Science & Engineering. March/April 2021. DOI:10.22541/au.161298309.98344404/v2.
    9. Mindstorms: Children, Computers, And Powerful Ideas. Seymour A. Papert. Hachette UK, 1993.
    10. Computational Thinking. Jeannette M. Wing. Communications of the ACM. March 2006. Vol 49. No. 3.
    11. Computational Thinking is Computational Learning. Lorena Barba. Keynote at SciPy 2014. Austin, TX, July 6–12, 2014. https://www.youtube.com/watch?v=TWxwKDT88GU&t=573s .
    12. Git (4 de enero de 2023) . https://git-scm.com/
    13. GitHub (4 de enero de 2023). https://github.com/
    14. GitLab Cookbook. Baarsen, Jeroen Van. Packt Publishing, 2014.
    15. Pro Git. Chacon, Scott, and Straub, Ben. Apress, 2014.
    •