- La página del curso es ésta. Se puede encontrar toda la materia que estoy viendo yo, hay actividades y tareas, etc.
- Se recomienda usar estos software.
- Se recomienda usar una de estas interfases. Yo estoy con atom, me gusta mucho y me queda cómodo, que es lo más importante. El mejor de esos es PyCharm pero el más pesado, lo que destaca este sobre los otros, es que tiene la consola incorporada, en los demas hay que ejecutar cmd (en windows) y poner >>> python nombre_archivo.py
- Tutoriales para Git: 1 video al final de la página, 2 (la fudamental) y 3 hay un mapa conceptual en 1/4 de la página.
- El curso se basa en mandar un tema de Material de Clases como estudio y en cátedra hacer una Actividad, todo esto es por semana, puedes guiarte por los temas que entran en las actividades. Además de esto, se mandan tareas, que son bien largas de hacer y complicadas.
Este curso enseña técnicas para diseñar, implementar, ejecutar y evaluar herramientas de software que resuelven problemas algorítmicos a partir de especificaciones detalladas. En particular, el curso enseña construcciones avanzadas de programación orientada a objetos, estructuras de datos fundamentales, diseño básico de algoritmos y técnicas de análisis.
- Descomponer problemas complejos para diseñar y estructurar sus soluciones.
- Crear diseños orientados a objetos y comunicar estos diseños a través de documentación externa y comentarios en el código.
- Aplicar conceptos de orientación a objetos (herencia, polimorfismo, interfaces) y estructuras de datos fundamentales (listas ligadas, stacks, colas, árboles binarios y tablas de hash), para diseñar y escribir aplicaciones en el lenguaje de programación Python, pudiendo extender este conocimiento a distintos lenguajes.
- Fomentar el uso de:
- herramientas de programación estándares para el desarrollo de software como entornos de desarrollo, debuggers y sistemas de control de versiones;
- técnicas de programación como bibliotecas de programación orientada a objetos y pruebas unitarias;
- y entornos de desarrollo de software para editar, compilar, y depurar programas.
- Generar software desde cero, con código de alto nivel, de fácil reutilización, actualización y mantenimiento. Incluyendo el uso interfaces gráficas totalmente funcionales.
- Programación Orientada a Objetos:
- Objetos
- Herencia
- Herencia múltiple
- Polimorfismo
- Clases Abstractas
- Properties.
- Estructuras de Datos:
- Árboles
- Diccionarios
- Colas
- Stacks
- Sets
- Funciones de Python y Programación Funcional:
- Algunas funciones especiales de Python
- Comprensión de listas
- Iterables e iteradores
- Generadores
- Funciones lambda
- Map
- Reduce
- Filter
- Decoradores
- Meta Clases:
- Comprender la lógica detrás de la construcción y creación de clases
- Manejo de Excepciones:
- Tipos de excepciones
- Control de excepciones
- Testing:
- Tests unitarios en Unittest
- Simulación:
- Introducción a la simulación con eventos discretos
- Threading:
- Creación y sincronización de threads
- Concurrencia
- Interfaces Gráficas:
- Introducción a las interfaces gráficas usando PyQt4
- I/O:
- Manejo de Strings
- Bytes
- Serialización binaria
- Serialización en formato JSON
- Networking:
- Sockets, cliente, servidor
- Webservices:
- REST API
- Regex
Puedes ver los syllabus
de los semestres anteriores en: