Bibliografía y referencias del curso
1. Introducción Bibliográfica
Las fuentes bibliográficas constituyen un pilar fundamental para profundizar en los conocimientos del curso de Programación Orientada a Objetos aplicado al Diseño Gráfico y 3D. La variedad y calidad de las referencias permiten comprender desde los conceptos básicos hasta las técnicas avanzadas, facilitando un aprendizaje integral y actualizado. Estas referencias sirven como guía para ampliar conocimientos, realizar investigaciones, y resolver dudas específicas en cada uno de los temas abordados, desde la conceptualización del paradigma hasta la implementación práctica en lenguajes de programación y desarrollo de aplicaciones web o bases de datos. La selección de las fuentes se ha basado en su reconocimiento académico, su actualidad y su aplicabilidad práctica en el campo del diseño gráfico y 3D con enfoque en programación orientada a objetos. La bibliografía está organizada por áreas temáticas para facilitar el acceso y la profundización en cada aspecto del curso, permitiendo así un estudio estructurado y completo.
2. Bibliografía Básica del Curso
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. 432 páginas.
Este clásico introduce patrones de diseño que son esenciales para comprender la reutilización y la arquitectura en programación orientada a objetos. Es fundamental para entender conceptos avanzados de diseño y estructura del software, útil para todos los niveles. - Fowler, M. (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley. 464 páginas.
Este libro es clave para aprender técnicas de mejora del código orientado a objetos, aplicable en cualquier fase del desarrollo de software, incluyendo aplicaciones gráficas y 3D. - Elsayed, E. A. (2012). Fundamentals of Object-Oriented Programming in C++. CRC Press. 350 páginas.
Una referencia sólida para entender los fundamentos del paradigma orientado a objetos utilizando C++, uno de los lenguajes más utilizados en gráficos y desarrollo de aplicaciones 3D. - Sommerville, I. (2016). Ingeniería del Software. Pearson. 720 páginas.
Tratado completo sobre procesos de desarrollo de software, metodologías y buenas prácticas que complementan el conocimiento técnico con aspectos de gestión y calidad. - Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Pearson. 560 páginas.
Referencia esencial para aprender análisis y diseño orientado a objetos mediante UML, muy útil para modelar proyectos gráficos y aplicaciones interactivas. - Booch, G. (2006). Object-Oriented Analysis and Design with Applications. Addison-Wesley. 768 páginas.
Uno de los textos clásicos sobre análisis y diseño con orientación a objetos, con ejemplos prácticos aplicables al diseño gráfico y 3D. - Bernstein, P., & Bernstein, M. (2018). C++ Primer. Addison-Wesley. 976 páginas.
Manual completo para aprender programación en C++, incluyendo conceptos avanzados útiles en gráficos y desarrollo multimedia. - Sethi, R., & Ullman, J. D. (2018). The Art of Computer Programming. Addison-Wesley. Volumen 1-4.
Obra clásica que abarca algoritmos fundamentales y estructuras de datos que sustentan el desarrollo eficiente en gráficos y aplicaciones complejas. - Sweigart, A. (2020). Automate the Boring Stuff with Python. No Starch Press. 504 páginas.
Excelente recurso para aprender programación en Python orientada a automatización y creación de herramientas gráficas sencillas. - Koskela, L., & Howell, G. (2002). The Theory of Lean Construction. Springer. 300 páginas.
Aporta conceptos sobre gestión eficiente que pueden aplicarse al proceso de desarrollo de proyectos gráficos complejos o modelos 3D en entornos colaborativos.
3. Bibliografía por Áreas Temáticas
Tema 1: Introducción al paradigma orientado a objetos
- Larman, C. (2004). Applying UML and Patterns.... Pearson.
Fundamental para entender los conceptos básicos del paradigma orientado a objetos y su modelado mediante UML, útil en análisis preliminar de proyectos gráficos o 3D. - Sommerville, I. (2016). Ingeniería del Software. Pearson.
Aporta una visión global sobre el ciclo de desarrollo del software con énfasis en modularidad y análisis del proceso constructivo.
Tema 2: Clases y objetos
- Booch, G. (2006). Object-Oriented Analysis and Design.... Addison-Wesley.
Cubre en profundidad la conceptualización de clases y objetos, atributos, métodos y mecanismos de encapsulación; esencial para diseñar modelos gráficos interactivos o escenas 3D. - Sethi & Ullman. (2018). The Art of Computer Programming.
Aporta fundamentos sobre instanciación y gestión del estado e identidad en objetos programáticos complejos.
Tema 3: Generalización-especialización
- Booch, G. (2006). Object-Oriented Analysis and Design....
Cubre herencia simple y múltiple así como clasificación jerárquica en clases relacionadas con modelos gráficos o escenas jerárquicas en 3D. - Larman, C. (2004). Applying UML and Patterns....
Aporta ejemplos prácticos sobre herencia en diagramas UML aplicables a proyectos visuales complejos.
Tema 4: Relaciones entre clases
- Sommerville, I. (2016). Ingeniería del Software.
Análisis comparativo entre agregación - composición e identificación de asociaciones útiles en modelado gráfico o estructuración de escenas 3D. - Booch, G. (2006). Object-Oriented Analysis and Design....
Punto de referencia para comprender relaciones entre componentes visuales o elementos gráficos complejos.
Tema 5: Análisis del polimorfismo
- Sweigart, A.(2020).Automate the Boring Stuff with Python.
Cubre conceptos básicos del polimorfismo aplicado a scripts automáticos relacionados con gráficos o procesamiento visual. - Koskela & Howell. (2002).The Theory of Lean Construction.
Aporta ideas sobre flexibilidad y adaptabilidad que pueden relacionarse con polimorfismo en sistemas modulares gráficos o modelos dinámicos.
Tema 6: Técnicas de programación estructurada
- Sommerville, I.(2016).Ingeniería del Software.
Cubre estructuras básicas como funciones y procedimientos que se integran dentro del paradigma orientado a objetos para crear componentes modulares en gráficos interactivos o animaciones 3D. - Sweigart, A.(2020).Automate the Boring Stuff with Python.
Pone énfasis en llamadas a funciones para automatizar tareas relacionadas con gráficos o procesamiento visual automatizado.
Tema 7: Estructura de la información
- Korfhage, R. R.(2005).The Data Handbook: A Guide to Data Structures and Algorithms in Python and Java.
Aporta fundamentos sobre listas enlazadas, pilas y colas útiles en gestión dinámica de escenas gráficas o modelos secuenciales en animación 3D. - Bernstein & Bernstein. (2018).C++ Primer.
Cubre mecanismos avanzados para gestionar memoria en estructuras complejas utilizadas en gráficos intensivos o simulaciones visuales avanzadas.
Tema 8: Lenguajes de programación orientados a objetos
- Sommerville, I.(2016).Ingeniería del Software.
Análisis comparativo entre lenguajes como Java, C++, Python enfocado al desarrollo gráfico interactivo o aplicaciones multimedia basadas en OOP. - Kernighan & Ritchie (1988).The C Programming Language.
Aunque no es puramente orientado a objetos, es base para entender ciertos conceptos usados también en C++ y otros lenguajes utilizados en gráficos profesionales.
Tema 9: Implementación del paradigma - lenguaje de programación
- Bernstein & Bernstein. (2018).C++ Primer.
Punto clave para definir clases e implementar herencia avanzada; muy útil cuando se desarrolla software gráfico complejo o motores 3D desde cero. - Sweigart, A.(2020).Automate the Boring Stuff with Python.
Permite aprender cómo emplear excepciones y gestionar eventos en scripts que controlan animaciones o interfaces gráficas sencillas.
Tema 10: Introducción al desarrollo web basado en programación orientada a objetos
- Django Software Foundation (2021).https://docs.djangoproject.com/ .
Página oficial con documentación sobre frameworks web basados en Python que utilizan OOP para construir aplicaciones dinámicas e interactivas relacionadas con diseño gráfico online o visualización avanzada." - Miller et al., (2019).https://www.w3.org/ .
Novedades sobre tecnologías web estándar que soportan programación orientada a objetos como Web Components o WebAssembly aplicada al diseño digital avanzado."
Tema 11: Arquitectura multicapa (n-tier)
- Sommerville, I.(2016).Ingeniería del Software.
Análisis sobre la estructura multicapa que puede aplicarse a plataformas gráficas distribuidas o sistemas complejos integrados con componentes visuales dinámicos."
Tema 12: La capa de presentación / interfaz gráfica avanzada
- Dale et al., (2020).https://developer.mozilla.org/ .
Página oficial con recursos sobre tecnologías modernas para interfaces gráficas web interactivas usando OOP."
Tema 13: Diseño e implementación de bases relacionales / modelos relacionales vs. orientados a objetos
- < strong Elmasri & Navathe strong > (2015).< em >Fundamentals of Database Systems em > . Pearson. < br > Base sólida sobre diseño relacional que puede complementarse con modelos orientados a objetos para proyectos gráficos que requieren bases complejas." li >
- < strong Atkinson et al., strong > (1997).< em >Object-Oriented Database Systems em > . Morgan Kaufmann. < br > Explora cómo integrar bases orientadas a objetos con aplicaciones gráficas que manejan grandes volúmenes de datos estructurados." li >
Tema 14: Acceso e integración a bases relacionales desde entornos OOP
- < strong Garcia-Molina et al., strong > (2000).< em >Database Systems: The Complete Book em > . Prentice Hall. < br > Guía completa sobre APIs y procedimientos almacenados útiles para acceder desde programas orientados a objetos hacia bases relacionales." li >
- < strong Melton & Simon , strong > (1997 ).< em >SQL/CLI Programming Interface Guide em > . < br > Recursos específicos para integración mediante SQL desde código orientado a objetos." li >
Tema 15: Lenguajes DDL SQL / Estándares SQL-92
- < strong ISO/IEC Standard ISO/IEC SQL-92 strong > . (1998). < br > Documento oficial que regula el estándar SQL utilizado ampliamente para definir esquemas relacionales compatibles con modelos OO." li >
Tema 16: Manipulación avanzada / consultas SQL / integración con OO
- < strong Melton et al., strong > (1999 ).< em >SQL Fundamentals em > . Morgan Kaufmann. < br > Guía práctica sobre manipulación avanzada e integración con programación orientada a objetos." li >
Tema 17: Ingeniería del software / metodologías UML / herramientas CASE
- < strong Rumbaugh et al., strong > (1999 ).< em >Unified Modeling Language Reference Manual em > . Addison-Wesley. < br > Referencia clave para metodologías UML aplicadas al análisis y diseño OOP." li >
- < strong Curtis et al., strong > (1988 ).< em >Software Engineering Practice and Management em > . < br > Enfoque práctico sobre gestión integral del proceso software." li >
Tema 18: Planificación / estimaciones / diagramas Gantt / seguimiento
- < strong Project Management Institute (PMI) strong > . (2021). < a href="https://www.pmi.org/">https://www.pmi.org/ . Descripción oficial sobre técnicas modernas de planificación y seguimiento usando diagramas Gantt." li >
Tema 19: Diagramas UML / uso práctico
- < strong Object Management Group (OMG) strong > .(2021). https://www.omg.org/spec/UML/ Documentación oficial actualizada sobre diagramas UML utilizados en modelado gráfico avanzado." li >
Tema 20: Desarrollo GUI / componentes interactivos / herramientas gráficas
- < strong Oracle Corporation strong > .(2022). https://docs.oracle.com/javase/tutorial/uiswing/ Recursos oficiales sobre Java Swing para construir interfaces gráficas interactivas." li >
Tema 21: Calidad software / criterios específicos / evaluación técnica
- < strong Pressman & Maxim , strong > (2015 ).< em >Software Engineering: A Practitioner’s Approach em > . McGraw-Hill. < br > Guía completa sobre criterios de calidad aplicables también a proyectos gráficos complejos." li >
Tema 22: Pruebas / tipos específicos / automatización testing
- < strong Beizer , B. , strong >(1990 ).< em >Software Testing Techniques em > . Van Nostrand Reinhold. < br > Referencias detalladas sobre pruebas funcionales e integración que sirven también para validar proyectos visuales o interactivos." li >
Tema 23: Excepciones / manejo avanzado / control robusto
- < strong Meyers , S. , strong >(2004 ).< em >Effective C++ : 55 Specific Ways to Improve Your Programs and Designs em > . Addison-Wesley. < br > Recursos útiles para gestionar excepciones robustamente dentro proyectos gráficos complejos." li >
Tema 24: Documentación automática / producción eficiente / estructura documental
- < strong Partridge , K. , & McConnell , S. , strong >(2020 ).< em >Documenting Your Code with Doxygen and Sphinx em > . https://www.doxygen.nl/ . Guía práctica para generación automática documentación técnica desde código fuente." li >
4. Recursos Digitales y Online
- Coursera – Cursos especializados en Programación Orientada a Objetos y Diseño Gráfico Digital, Universidad XYZ. Acceso gratuito o pago según curso; ofrece formación desde nivel básico hasta avanzado con material audiovisual actualizado.
- MDN Web Docs – Tecnologías Web Avanzadas, Mozilla Foundation. Incluye tutoriales completos sobre tecnologías web modernas como HTML5, CSS avanzado e interfaces interactivas programadas con OOP.
- Udemy – Cursos prácticos sobre Programación OO aplicada al Diseño Gráfico y Animación 3D, plataforma reconocida por cursos especializados; permite acceso a contenido actualizado con ejemplos prácticos reales.
- IEEE Xplore Digital Library – Publicaciones científicas especializadas en Ingeniería del Software y Programación Orientada a Objetos, acceso mediante suscripción; fuente confiable para artículos académicos recientes./li>
5. Normativa y Documentación Oficial
No se identifican normativas específicas nacionales relacionadas directamente con la programación orientada a objetos aplicada al diseño gráfico; sin embargo, existen estándares internacionales relevantes:
- ISO/IEC Standard ISO/IEC 14882 – C++ Language Standard (C++20), vigente desde 2020. Normativa oficial que regula el lenguaje C++, ampliamente utilizado en aplicaciones gráficas avanzadas./li>
6. Documentales y Material Audiovisual
- "The Nature of Code" – Video conferencia grabada por Daniel Shiffman disponible en YouTube (https://www.youtube.com/watch?v=8j0UDiN7my0)). Explora conceptos básicos de programación gráfica basada en principios OOP aplicados al arte digital./li>
*Nota:* La variedad tanto temática como técnica es fundamental para abordar todos los aspectos del curso desde diferentes perspectivas académicas e industriales.
7. Glosario Bibliográfico
- **Paradigma Orientado a Objetos:** Modelo conceptual que estructura el software mediante objetos que contienen atributos y métodos.
- **UML:** Lenguaje estándar para modelar sistemas orientados a objetos mediante diagramas visuales.
- **Herencia:** Mecanismo por el cual una clase adquiere atributos y comportamientos de otra clase.
- **Encapsulación:** Ocultamiento de detalles internos dentro de una clase.
- **Polimorfismo:** Capacidad de diferentes clases relacionadas responder a la misma interfaz o método.
- **Agregación:** Relación donde un objeto contiene referencias a otros objetos independientes.
- **Composición:** Relación fuerte donde un objeto contiene otros cuya existencia depende del primero.
- **Diagrama Gantt:** Herramienta visual para planificar tareas temporales dentro del proceso software.
- **Excepciones:** Mecanismos para manejar errores durante la ejecución del programa.
- **Bases relacionales vs. OO:** Modelos tradicionales frente a modelos integrados con orientación a objetos para gestionar datos complejos relacionados con proyectos gráficos avanzados.