Curso - Programación en Python (I)
Características del curso
Duración: | 8 meses (abril a noviembre) |
Carga horaria: | 2 clases semanales de 1 hora |
Extensión: | El curso completo incluye 27 lecciones a darse en 64 clases de 1 hora cada una |
Modalidad: | Clases virtuales grupales de 4-5 alumnos |
Cuota mensual: | $ 2000 (8 clases) |
Disponibilidad: |
|
Objetivos del curso: |
|
Contenido del curso
Conceptos básicos de programación
- Qué es programar - Lenguajes formales y naturales - tipos de errores y debugging
- Variables - valores y tipos de datos - expresiones y sentencias - evaluación - operadores y operandos
- Bucles (loops) e iteraciones - For y While - Condicionales y booleanos
- Lógica simbólica y tablas de verdad - ejecución condicional - condicionales encadenados y anidados
- Funciones - Flujo de ejecución - argumentos, parámetros y valores de retorno - variables locales y globales - encapsulación
- Cadenas de caracteres - largo y trozos de cadenas - comparación y recorridas de strings
- Tuplas y listas - acceso, largo, membresía, combinación, eliminación de elementos
- Eventos y máquinas de estado - Excepciones (lanzamiento y captura)
- Aleatoriedad - funciones random - aplicaciones
- Archivos - lectura, procesamiento, escritura - archivos binarios - directorios - archivos del sistema y de la web
Conceptos básicos del lenguaje de programación Python
- El lenguaje de programación Python - comparación con otros lenguajes - "Hola mundo" - comentarios
- Variables, expresiones y sentencias en Python - Operadores y órdenes de precedencia
- Módulos Python: turtle, random, time, math, os - espacios de nombres - creando mis propios módulos - lookup, dot, import
- Sintaxis Python: bucles, funciones, variables locales y globales, bloque condicional if-else - continue y break
- Cadenas (strings) en Python: inmutables - funciones length, slice, find, split - recorridas con loop For - string.Format
- Asignación de tuplas en Python - componibilidad - tuplas como valores de retorno
- Listas en Python: definición, acceso - funciones y métodos - operadores, membresía, trozos - las listas son mutables
- Eventos en Python: teclado, mouse y paso del tiempo - ejemplos
- Archivos en Python - lectura por línea y completa - escritura - módulos (os, urllib) para manejar archivos del sistema y de la web
Conceptos avanzados de programación
- Programación funcional y procedural - funciones fructíferas - desarrollo orientado a testeo
- Desarrollo y debugging de un programa - Composición y testeo de unidades
- Encapsulación y generalización - datos apareados - loops anidados
- Listas como parámetros y valores de retorno - listas anidadas - matrices
- Objetos y referencias - copia superficial y copia profunda - funciones puras y modificadores
- Algoritmos de listas - búsqueda lineal y búsqueda binaria - duplicados adyacentes - merging
- Programación orientada a objetos - clases y objetos - atributos e inicialización - instancias
- Recursión - fractales - procesando datos recursivos - Fibonacci
- Diccionarios - hashing - operaciones, métodos, alias, copia - matrices, memos, análisis de grandes textos
- P.O.O. avanzada: sobrecarga de operadores, generalización vs. especialización, polimorfismo, herencia
- Listas enalazadas (Linked Lists) - listas como colecciones - recursión - listas infinitas - modificadores - invariantes
- Tipos de datos abstractos: Pila (Stack), push, pop - aplicaciones: evaluación postfix, recorrida
- Tipos de datos abstractos: Cola (Queue) - aplicación: cola de prioridad
- Tipos de datos abstractos: Árbol (Tree) - construcción, recorrida - árboles de expresiones - árboles de datos - manejo de errores
Python avanzado y posibles futuros pasos
- Debugging en Python: print, herramientas de debugging - Trazabilidad - Ayuda y meta-notación
- Estilo de programación recomendado - Asignaciones abreviadas - un módulo para testeo de unidades
- Algoritmos para resolver problemas clásicos: fórmula de Newton - Collatz, Fibonacci, 8 reinas
- Listas mutables - objetos y referencias - alias y copia de listas - listas y funciones - métodos list y range
- P.O.O. en Python - Tipos de datos compuestos definidos por el usuario - métodos __init__, __str__ - mutabilidad e igualdad - copia de objetos
- PyGame - un módulo para crear juegos en Python - imágenes, textos, sprites, animaciones, eventos
- Recursividad en Python - dibujos recursivos (fractales) - estructura de directorios recursivos (módulo os)
- Excepciones en Python - captura y lanzamiento - la cláusula finally de la sentencia try
- Diccionarios en Python - métodos keys y values - copia superficial y copia profunda
- P.O.O. avanzada: estudio de un caso concreto: cartas, mazo de cartas, mano de cartas, juegos de cartas
- Listas enlazadas, pilas, colas y árboles en Python: implementación mediante listas - ejemplos y aplicaciones