Aprenda a programar en Python

Microcredencial

Aprenda a programar en Python

Departamento de Ingeniería de Sistemas
Inicio / Programas / Aprenda a programar en Python

Aprenda a programar en Python

Esta microcredencial presenta los conceptos básicos de programación y 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á dedicada a enseñar una forma de pensar que 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 mostrarán ejemplos de pequeños problemas, a medida que se presenta la teoría y al final de cada módulo, se pedirá que se resuelva 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, se estará en la capacidad de: 

  1. Analizar un problema identificando entradas, salidas y restricciones. 
  2. Usar 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: 
    1. 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. 
    2. Diseñar un algoritmo como secuencia de instrucciones que resuelven un problema o subproblema. 
  4. Implementar y probar una solución a un problema:
    1. Usar los tipos básicos de datos del lenguaje Python: números, booleanos, cadenas de caracteres, listas, matrices y diccionarios para modelar los datos del problema.
    2. Programar algoritmos usando un subconjunto del lenguaje de programación Python. 
    3. Utilizar librerías especializadas (ej. gráficas, procesamiento numérico). 
    4. Diseñar y aplicar un conjunto de pruebas (o mecanismos de validación) de la ejecución de la solución propuesta. 
  5. Escribir un programa siguiendo unos estándares predefinidos de documentación y codificación, eso es, usar buenas prácticas de programación 
  6. Utilizar con alguna facilidad un ambiente de desarrollo 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 está dividida en 4 módulos, cada uno con las siguientes partes: 

Introducción: Se inicia con una breve motivación al módulo. A continuación, ponemos a disposición unas lecturas y por último, se contará con uno o más videos introductorios.

Sesiones sincrónicas: Estas sesiones son en tiempo real y de diferentes tipos. Unas de ellas son las sesiones de apertura y cierre, de asistencia obligatoria, en las que se podrá interactuar con los profesores de la microcredencial, resolver dudas y conocer de primera mano la utilidad de los conocimientos que se adquieran.

Sesiones de tutoría: son un espacio de encuentro donde se estará acompañado por un tutor y en el cual se podrá profundizar sobre algún tema visto en la semana o resolver dudas de los ejercicios prácticos, estas también son de asistencia obligatoria como requisito para acreditar la microcredencial, pero se puede agendarlas el día de la semana de mayor conveniencia.

Lecciones teóricas: Aquí se desarrollan los conceptos teóricos a través de una serie de presentaciones que incluyen la implementación del mismo concepto en Python. Entre tema y tema se verán unas presentaciones particulares llamadas “Manos a la Obra”. En estas, se aterrizarán los conceptos teóricos en casos reales presentados a través de los vídeo-códigos de diferentes programas escritos en Python. A lo largo de las lecciones teóricas se encontrarán los “Retos”, los cuales consisten en funciones de Python que los estudiantes deberán implementar y ejecutar por su cuenta para luego probar su correcto funcionamiento. 

Proyecto: Al finalizar la teoría de cada módulo, el estudiante se enfrentará a la solució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. Se contará con una guía de trabajo y una evaluación directa de tutores que revisarán la calidad de la entrega y retroalimentarán el desempeño. 

Examen: Por último, se presentará la evaluación de los conocimientos y habilidades que se adquirieron 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 se desarrollaron 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) + 5 horas (sincrónicas: 3 magistrales y 2 de tutorías) + 2 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,5 horas (sincrónicas: 1,5 magistrales y 2 de tutorías) + 2 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) + 7 horas (sincrónicas: 3 magistrales y 4 de tutorías) + 4 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) + 7 horas (sincrónicas: 3 magistrales y 4 de tutorías ) + 4 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.

Juan Pablo Reyes

Magíster en Computación Gráfica y Tratamiento de Imágenes de la Universidad Claude Bernard de Lyon, Francia y PhD en astrofísica de la universidad d'Aix-Marseille. Actualmente se desempeña como desarrollador senior del Centro de Innovación en Tecnología y Educación de la Universidad de los Andes; y como profesor de cátedra de la universidad. También hace parte del equipo de la maestría en Ingeniería de Software Virtual MISO Virtual de la universidad, que está disponible por Coursera. Se graduó como ingeniero de Sistemas de la Universidad de los Andes, y ha trabajado en diversos campos de investigación: Aplicaciones de la informática y la computación gráfica para la detección de anomalías cardiovasculares; modelado de humanos virtuales para tratamientos de cáncer del pulmón; métodos de tratamiento de imágenes para la detección de objetos transitorios en los sondeos de grandes telescopios en tierra; y Analítica de Aprendizaje.

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.