Principales paradigmas de programación: imperativo, POO, funcional y lógico.
Conceptos clave
Créditos
4
Horas Estimadas
27h
Temas
9
Temario
Conceptos de programación
Paradigmas, abstracción, lenguajes representativos
2h 0min
Programación imperativa
Estructuras de control, modularidad, parámetros
2h 20min
Programación estructurada y modular
Secuencial, selección, iteración, módulos, alcance
2h 20min
POO: clases, herencia, polimorfismo
Encapsulamiento, herencia, polimorfismo, interfaces
5h 40min
Principios SOLID
SRP, OCP, LSP, ISP, DIP, acoplamiento, cohesión
3h 20min
Programación funcional
Funciones puras, higher-order, inmutabilidad, Haskell
4h 20min
Programación lógica
Prolog, hechos, reglas, backtracking, unificación
3h 20min
Comparación de paradigmas
Ventajas, desventajas, multi-paradigma
2h 0min
Lenguajes representativos
C, Java, Python, Haskell, Prolog, Lisp, Scala
2h 20min
Objetivos
- Dominar los fundamentos de la programación imperativa.
- Comprender los principios de la programación orientada a objetos.
- Implementar programas con estructuras de datos básicas.
- Aplicar diseño de clases y patrones simples.
Competencias
- Programar en Python y Java con fluidez.
- Diseñar clases y objetos con encapsulamiento.
- Implementar estructuras de datos básicas.
- Resolver problemas con programación orientada a objetos.
Metodología de cursada
Teoría
Clase teórica sobre conceptos de programación, tipos de datos, estructuras de control y diseño.
Práctica
Laboratorio de programación con ejercicios prácticos en Python y Java.
Actividades
- Ejercicios de programación en Python
- Implementación de clases en Java
- Trabajos Prácticos de diseño de clases
- Resolución de problemas algorítmicos
- Análisis de código y depuración
Forma de evaluación
Regularidad
Aprobar como mínimo 2 parciales con nota >= 4. Asistencia regular obligatoria (80% mínimo).
Promoción
Examen final escrito y práctico de programación.
Recuperatorio
Recuperatorio en el primer semestre del año siguiente.
Criterios
- 2 Parciales (cada uno 40% de la nota de cursada)
- Trabajos Prácticos de programación (20%)
- Examen final (100% de la nota final)
Bibliografía
Oficial
- •Downey, A. Think Python. O'Reilly.
- •Lutz, M. Learning Python. 5ª edición. O'Reilly.
- •Flanagan, D. JavaScript: The Definitive Guide. 7ª edición. O'Reilly.
Complementaria
- •Deitel, P. Java: How to Program. 11ª edición. Pearson.
- •Schildt, H. Java: The Complete Reference. McGraw-Hill.
- •Gamma, E. Design Patterns. Addison-Wesley.
Ejercicios tipo parcial
Preguntas oficiales con resolución para practicar antes del examen.
POO
Pregunta: Diseñar una clase CuentaBancaria con métodos depositar, extraer y consultar saldo.
Solución: Clase con atributo privado saldo, constructor, métodos con validación de saldo para extraer.
Estructuras de datos
Pregunta: Implementar una pila (stack) en Python usando listas.
Solución: class Stack: def __init__(self): self.items=[]; def push(self,item): self.items.append(item); def pop(self): return self.items.pop()
Preguntar al Tutor
Resolvé dudas sobre esta materia
Practicar
Ejercicios adaptativos por tema
Crear Flashcards
Repetición espaciada para memorizar
Cargando materiales...