Conferencias, ejercicios, y recursos adicionales para el curso de Programación en la Facultad de Matemática y Computación de la Universidad de La Habana (@matcom).
El curso de Programación se divide en 2 semestres regulares de 16 semanas cada uno. Cada semana se imparte una conferencia y hasta dos clases prácticas, que pueden ser en aulas o laboratorios según conveniencia y disponibilidad.
La primera y última semana generalmente se dedican a charlas motivacionales, explicación del curso, consulta, etc. Teniendo en cuenta además que siempre existen semanas perdidas, se han planificado 12 conferencias de contenido como tal en cada semana.
Las conferencias tienen un estilo muy interactivo. En vez de una clásica presentación de PowerPoint sobre un tema abstracto, en cada conferencia se presenta un proyecto que demuestra las habilidades y conocimientos de interés para esa semana. La conferencia consiste en una presentación del proyecto con código en vivo, discusión de las partes más interestantes y modificación del código en tiempo real. Al final de cada conferencia se dejan orientados ejercicios específicos sobre ese proyecto.
El primer semestre de programación se dedica a los conceptos fundamentales de la programación estructurada (aunque se hace un brevísimo paseo por algunos elementos de programación orientada a objetos) y algoritmia.
- Introducción
- Condicionales
- Funciones
- Arrays
- Clases
- Matrices
- Algebra
- Ordenación
- Backtrack
- Búsqueda
- Minimax
- Viajante
El segundo semestre se dedica a profundizar en la programación orientada a objetos como paradigma fundamental para la creación de software extensible y mantenible, aunque también se introducen otras nociones de paradigmas alternativos como la programación funcional y orientada a eventos, así como otras nociones de algoritmia más avanzadas.
Links a los proyectos que han sido orientados en varias ediciones del curso.
-
Moogle!: Primer proyecto de programación, consiste en implementar las funcionalidades básicas de un buscador, incluyendo algún tipo de modelo de documentos (e.g., modelo vectorial), una función de ranking, y algunos operadores.
-
Domino: Segundo proyecto de programación, consiste en implementar una biblioteca de clases para experimentar con diferentes variantes del juego Dominó y diferentes estrategias de jugadores virtuales.