Aprende a programar en Python: de los principios básicos a la manipulación y visualización de datos con Pandas y Matplotlib

Microcredencial

Aprende a programar en Python: de los principios básicos a la manipulación y visualización de datos con Pandas y Matplotlib

Departamento de Ingeniería de Sistemas
Inicio / Programas / Aprende a programar en Python: de los principios básicos a la manipulación y visualización de datos con Pandas y Matplotlib

Aprende a programar en Python: de los principios básicos a la manipulación y visualización de datos con Pandas y Matplotlib

Esta microcredencial te presenta los conceptos básicos de programación y te enseña a resolver problemas construyendo programas de computador. Un programa es “simplemente” un conjunto de instrucciones que le dice a un computador cómo realizar una tarea. Sin embargo, encontrar un conjunto correcto de instrucciones puede ser bastante desafiante. Para esto, es necesario aprender a dividir un problema en subproblemas más pequeños y encontrar la solución para cada uno de esos subproblemas. Una gran parte de esta microcredencial está dedicado a enseñarte una forma de pensar que te permita construir programas que resuelvan problemas interesantes.

La estrategia pedagógica empleada en esta microcredencial es el aprendizaje activo basado en casos. En este sentido la microcredencial es una herramienta de trabajo dentro de un proceso de aprendizaje en el cual tú eres el principal protagonista. A lo largo de los cuatro módulos que conforman la microcredencial, se te mostrarán ejemplos de pequeños problemas, a medida que se presenta la teoría y al final de cada módulo, se te pedirá que resuelvas un problema completo.

Esta será la insignia digital que se otorgará por aprobar esta microcredencial aquí.

Dirigido a

Personas que deseen aprender a programar:

Estudiantes de últimos años de colegio.

Estudiantes de cualquier semestre universitario.

Desarrolladores de software que deseen actualizarse y aprender Python y sus librerías.

Objetivos

Al final esta microcredencial, serás capaz de:

1. Analizar un problema identificando entradas, salidas y restricciones. 

2. Explicar conceptos de programación como variables, estructuras de control, funciones, parámetros, etc., independientemente del lenguaje de programación. 

3. Diseñar una solución al problema: 

a. Expresar un plan de solución en términos de pasos o subproblemas, identificados a partir de la aplicación de las técnicas de dividir y conquistar y refinamiento a pasos. 

b. Diseñar un algoritmo como secuencia de instrucciones que resuelven un problema o subproblema. 

4. Implementar y probar una solución a un problema:

a. Usar los tipos básicos de datos del lenguaje Python: números, booleanos, cadenas de caracteres, listas, matrices, tuplas y diccionarios para modelar los datos del problema.

b. Programar algoritmos usando un subconjunto del lenguaje de programación Python. 

c. Utilizar librerías especializadas (ej. gráficas, procesamiento numérico). 

d. Diseñar y aplicar un conjunto de pruebas (o mecanismos de validación) a la ejecución de la solución propuesta. 

5. Utilizar buenas prácticas de programación. Esto es: escribir un programa siguiendo unos estándares predefinidos de documentación y codificación. 

6. Utilizar con alguna facilidad un ambiente de desarrollo de software. 

Habilidades que obtendrás:

• Programación

• Pensamiento computacional 

• Abstracción 

• Diseño de software

• Python Programming

• Diseño de software

Metodología

La estrategia pedagógica empleada es el aprendizaje activo basado en casos. Esta es una microcredencial altamente interactiva que constantemente retará a responder preguntas, verificar la comprensión, ejercitarse en escritura de código de programación, resolver casos de diferente complejidad y múltiples oportunidades para pasar de la teoría a la práctica, con actividades formativas, con las cuales se desarrollarán habilidades de abstracción y de programación. 

La microcredencial consta de 13 semanas y está dividida en 4 módulos, cada uno con los siguientes elementos: 

Introducción: Se inicia con una breve motivación al módulo, la cual consiste en un video del profesor o profesora que te acompañará a lo largo del módulo. A continuación, ponemos a tu disposición lecturas que te recomendamos hacer antes de comenzar las lecciones teóricas. Por último, encontrarás uno o más videos introductorios al tema que se trata en el módulo. 

Sesiones sincrónicas: Estas sesiones son en tiempo real y de diferentes tipos. Unas de ellas son las sesiones de apertura y cierre (2 por módulo, cada una de 1.5 horas), de asistencia obligatoria, en las que podrás interactuar con los profesores del curso, resolver dudas y conocer de primera mano la utilidad de los conocimientos que adquieras. Las sesiones de tutoría (1 o 2 sesiones cada semana, de 1 hora) son un espacio de encuentro donde estarás acompañado por un tutor y en el cual podrás profundizar sobre algún tema visto en la semana o resolver dudas de los ejercicios prácticos. La asistencia a estas sesiones no es obligatoria, pero te recomendamos fuertemente hacer uso de ellas como apoyo a tu proceso de aprendizaje. Tendrás la oportunidad de asistir a una o dos sesiones por semana, las cuales serán ofrecidas en diferentes días y horarios, para que escojas las franjas que más te convienen. Las sesiones de refuerzo (una sesión semanal de 1.5 horas) también son sesiones opcionales; en ellas podrás resolver dudas sobre los conceptos teóricos con apoyo de un profesor experto en el tema.  

Lecciones teóricas: Aquí se desarrollan los conceptos teóricos a través de una serie de presentaciones que incluyen la implementación de los mismos en Python. Permanentemente, encontrarás una serie de preguntas que te permitirán verificar tu comprensión de los conceptos explicados. Entre tema y tema verás unas presentaciones particulares llamadas “Refuerzo”. En estas, aterrizarás los conceptos teóricos, vistos en la presentación anterior, en casos reales presentados a través de los video-códigos de diferentes programas escritos en Python. A lo largo de las lecciones teóricas encontrarás los “Retos”, los cuales consisten en funciones de Python que debes implementar por tu cuenta y que puedes ejecutar una vez implementadas para probar su correcto funcionamiento. 

Proyectos: Al finalizar la teoría de cada módulo, te verás enfrentado a la resolución de un proyecto. Esto es, la construcción de una aplicación completa que responde a una serie de requerimientos relacionados con un problema de la vida real. Contarás con una guía de trabajo y una evaluación directa de tutores que revisarán la calidad de tu entrega y retroalimentarán tu desempeño.  

Exámenes: Por último, presentarás la evaluación de los conocimientos y habilidades que adquiriste a lo largo del módulo. Cada examen contiene una serie de preguntas teóricas relacionadas con lo aprendido en todo el módulo, y unas preguntas prácticas similares a los retos que desarrollaste anteriormente. Estos exámenes son las únicas actividades sumativas de la microcredencial y constituyen un requisito para la certificación.

Contenido

Módulo 1: Descubriendo el mundo de la programación [2 semanas] 12 horas (asincrónicas) + 3 horas (sincrónicas)+ 3 horas (sincrónicas opcionales) 

  • Resolución de problemas bien definidos utilizando un algoritmo
  • Tipos de datos, la creación de variables y operaciones básicas del lenguaje
  • Funciones básicas de Python y cómo se llaman/invocan
  • Funciones con parámetros y funciones desde otras funciones (composición de funciones)
  • Implementación de funciones propias, entendiendo el concepto de variables locales y parámetros
  • Entrada y salida de información en un programa
  • Construcción de interfaces de consola
  • Creación de módulos para agrupar funciones relacionadas y uso dichos módulos en los programas
  • Elementos que hacen el código mucho más comprensible y fácil de mantener
  • Ambientes básicos de trabajo en Python (Spyder)

Módulo 2: Tomando decisiones [2 semanas] 13 horas (asincrónicas) + 3 horas (sincrónicas)+ 3 horas (sincrónicas opcionales) 

  • Conceptos de tablas de verdad y álgebra booleana
  • Expresiones y operadores relacionales, expresiones y operadores lógicos
  • Tipo de dato booleano
  • Instrucciones condicionales (if-else, en cascada y anidados) dentro de los programas para la solución de problemas por casos
  • Nuevas operaciones sobre strings
  • Manipulación de diccionarios
  • Diccionarios para manejar elementos que tienen las mismas características
  • Concepto de "dividir y conquistar" al solucionar problemas

Módulo 3: Repitiendo acciones y manejando estructuras de datos [4 semanas] 17 horas (asincrónicas) + 3 horas (sincrónicas) + 6 horas (sincrónicas opcionales)

  • Instrucciones iterativas para la solución de problemas en sus programas
  • Indexación en strings
  • Listas como nueva estructura de datos para apoyar la implementación de los programas
  • Manipulación de listas en Python
  • Patrones de recorrido sobre listas
  • Manejar archivos (leer y escribir archivos para utilizarlos desde los programas)
  • Estructuras de datos complejas para manejar grandes volúmenes de datos
  • Matrices como nueva estructura de datos de dos dimensiones, para la solución de problemas

Módulo 4: Solucionando problemas con matrices y librerías [4 semanas] 18 horas (asincrónicas) + 3 horas (sincrónicas) + 6 horas (sincrónicas opcionales)

  • Conceptos de tuplas y operaciones que se pueden realizar sobre estas para utilizarlas como estructura de datos en la solución de problemas
  • Estructuras compuestas con tuplas (listas de tuplas, tuplas con listas, matrices de tuplas)
  • Construcción de programas que sirvan para manipular imágenes
  • Librería Matplotlib para visualizar conjuntos de datos
  • Visualizaciones más adecuadas para representar un conjunto de datos
  • Librería Pandas para manipular, organizar, filtrar y visualizar conjuntos de datos estructurados
  • Proceso necesario para aprender a utilizar una nueva librería con destreza

A continuación el detalle de fechas y horarios para sesiones magistrales, tutorías y sesiones opcionales aquí.

Profesores

Marcela Hernández Hoyos

Magíster en Ingeniería de Sistemas y Computación, en la Universidad de los Andes (Bogotá). MsC. y PhD. en Ingeniería Biomédica en el Centro de Investigación y Aplicaciones en Procesamiento de Imágenes y Señales (CREATIS Lab.) del Instituto Nacional de Ciencias Aplicadas (INSA) de Lyon, Francia. El principal resultado de su trabajo de doctorado es el software MARACAS (MAgnetic Resonance Angiography Computer Assisted AnalysiS), que fue adquirido por Hitachi en Japón. Desde 2004 se dedica a la docencia y la investigación. Actualmente se desempeña como profesora asociada en el Departamento de Ingeniería de Sistemas y Computación de la Universidad de Los Andes. Su principal interés de investigación es el procesamiento de imágenes médicas con especial énfasis en patologías pulmonares, vasculares y neurodegenerativas. Entre sus logros de investigación más importantes está la concesión de una patente de invención (en Japón, en Estados Unidos y en la Comunidad Europea) sobre un método de segmentación y cuantificación del tejido adiposo abdominal. En el ámbito académico, la profesora Hernández ha sido permanentemente reconocida por sus cualidades docentes. En la actualidad, se encarga de la coordinación de los cursos de programación de la Universidad y ha desarrollado múltiples innovaciones pedagógicas en estos cursos, que se tradujeron en la creación de un MOOC de Coursera, que fue calificado como uno de los 20 mejores MOOCs lanzados en 2017 según la plataforma Central-Class (entre 2000 cursos evaluados). Entre 2009 y 2012 trabajó como subdirectora del Departamento de Ingeniería de Sistemas y Computación y posteriormente como vicedecana de Asuntos Académicos de la Facultad de Ingeniería.

Mario Sánchez Puccini

Profesor asociado de la Universidad de los Andes en Bogotá, Colombia. Recibió su título de pregrado de la Universidad de los Andes en Ingeniería de Sistemas y Computación (con honores) en 2005 y su maestría en 2006. En 2011 obtuvo su doctorado en Ciencias de la Vrije Universiteit Brussel en Bélgica, trabajando en el SSEL Lab y posteriormente en el Soft Lab, y su doctorado en Ingeniería de la Universidad de los Andes. Forma parte del Departamento de Sistemas y Computación desde 2011, donde su investigación se ha centrado en tecnologías para la Gestión de Procesos de Negocio, Arquitectura Empresarial, Innovación y Programación Docente. Ha impartido diversos cursos a nivel de pregrado y postgrado, incluyendo cursos para la Maestría en Arquitectura de TI y la Maestría en Negocios y Tecnología de la Información. También creó e impartió durante varios años la sección de honor del curso de Algoritmos y Programación Orientada a Objetos. Ha sido parte del equipo que renovó completamente el curso CS1 en la Universidad de los Andes, trasladándolo de Java a Python, y tuvo un papel central en el desarrollo de herramientas y materiales de enseñanza que son utilizados por más de 30 instructores y 1800 estudiantes por año.

Andrea Herrera Suescún

Ingeniera de sistemas e informática, magíster en ingeniería de sistemas e informática de la Universidad de Los Andes (Colombia) y PhD. En Information Systems, en la Universidad de Auckland (Nueva Zelanda). Su objetivo como investigadora de sistemas de información es explorar cuestiones relacionadas con la gestión y el uso fiable de las TIC en las organizaciones. Su investigación abarca áreas principales como la resiliencia de las TIC y las cadenas de suministro de servicios de TIC. También abarca áreas de exploración, en concreto, el papel de las TIC para hacer más resistentes las cadenas de suministro fomentando un aprendizaje colectivo, en un entorno económico global cada vez más complejo. Actualmente, imparte la asignatura de Introducción a la Programación en la Universidad de los Andes y colabora con el equipo de coordinación en el desarrollo del material, así como en el diseño e implementación de estrategias innovadoras de aprendizaje y evaluación. Profesora Asistente del Departamento de Ingeniería de Sistemas y Computación de la Universidad de los Andes.

Andrés Felipe Melani De La Hoz

Ingeniero de Sistemas y Computación y Magíster en Tecnologías de la Información Empresarial, ambos en la Universidad de Los Andes (Bogotá). Desde 2019 se desempeña como docente y realiza algunas investigaciones en Los Andes, trabajando como instructor en el Departamento de Ingeniería de Sistemas y Computación. Actualmente, hace parte del equipo que coordina los cursos de programación en la Universidad, y participó en la creación de un MOOC de Coursera, que se ubicó en el top 20 de los mejores MOOCs lanzados en 2017 según Class-Central, entre 2000 cursos evaluados.

Condiciones

Eventualmente la Universidad puede verse obligada, por causas de fuerza mayor a cambiar sus profesores o cancelar el programa. En este caso el participante podrá optar por la devolución de su dinero o reinvertirlo en otro curso de Educación Continua que se ofrezca en ese momento, asumiendo la diferencia si la hubiere.

La apertura y desarrollo del programa estará sujeto al número de inscritos. El Departamento/Facultad (Unidad académica que ofrece el curso) de la Universidad de los Andes se reserva el derecho de admisión dependiendo del perfil académico de los aspirantes.