Inicio

El curso cubre la mayoría de las funciones que provee el lenguaje de Programación Python, el énfasis está en lo que nos permite hacer este lenguaje de programación. Se desarrollan conceptos centrales a las técnicas computacionales de resolución de problemas. 

El curso requiere conocimientos básicos de Programación Orientada a Objetos y Teoría de la Información.

Objetivos

Al completar el curso, el alumno debe ser capaz de:

  • utilizar el lenguaje de programación Python para expresar cálculos
  • utilizar un enfoque sistemático para organizar, escribir y depurar programas de tamaño mediano,
  • desarrollar una comprensión informal de la complejidad computacional,
  • desarrollar habilidades sobre el proceso de pasar de una enunciación ambigua del problema a una formulación computacional de un método para resolverlo,
  • conocer un conjunto de técnicas algorítmicas y de reducción de problemas útiles,
  • usar herramientas de cómputo, incluyendo herramientas simples de estadística y visualización, para modelar y comprender datos provistos por dispositivos IoT.

Programa Analítico (2019)

UNIDAD 1. Introducción al Lenguaje Python
Introducción. Tipos de datos básicos. Control del flujo de programas. Branching. Iteraciones. Funciones. Recursión. Módulos y Packages: uso y creación. Manejo de Archivos. Estructuras de datos: Tuplas. Listas. Cadenas. Diccionarios. Conjuntos. Testing y Debuging. Excepciones. Aserciones. Clases y programación orientada a objetos. Tipos abstractos de datos. Herencia. Polimorfismo.

UNIDAD 2. Nociones de complejidad, técnicas algorítmicas, estructuras y graficación de datos
Introducción a la complejidad algorítmica. Clases de complejidad. Comparaciones de las clases de complejidad. Algoritmos de búsqueda. Búsqueda lineal y usando indirección para acceder a los elementos. Búsqueda binaria y aprovechamiento de supuestos. Algoritmos de ordenamiento. Mergesort. Aprovechamiento de funciones como parámetros. Ordenamiento en Python. Manejo de datos y gráficos en Python. Ejemplos.

UNIDAD 3. Python en el Contexto de los Problemas Clásicos de Optimización*
Problema de la Mochila. Algoritmos Greedy. Problemas de optimización en grafos. Caminos mínimos. Cliques. Min Cut. Algoritmos Depth-First Search y Breadth-First Search. Programación Dinámica. Secuencia de Fibonacci. Problema de la Mochila 0/1. Programación Dinámica y Divide y Conquista.

UNIDAD 4. Python en el Contexto de Inteligencia Artificial*
Nociones e introducción al Aprendizaje Automático. Aprendizaje Supervisado. Regresión lineal. Cuadrados Mínimos. Interpretación estadística. Aprendizaje No Supervisado. Vector de Características. Distancia Métrica. Clustering. Algoritmo de Clustering K-Means.

(*) Contextos para el dictado del Taller en 2019

Docentes

Clases Teórico- Prácticas a cargo de:  

Dra. Virginia Cifuentes 

Ing. Federico Améndola 

Dr. Juan Manuel Toloza 

Dr. Guillermo Rodríguez

Contacto

            tallerpython(@arroba)alumnos.exa.unicen.edu.ar