[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"navigation_docs":3,"-proyecto":309,"-proyecto-surround":557},[4,18,70,105,149,178,212,257,298],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"path":20,"stem":21,"children":22,"icon":25},"Interfaz Gráfica de Usuario","\u002Fgui","2.gui\u002F01.index",[23,26,30,34,38,42,46,50,54,58,62,66],{"title":24,"path":20,"stem":21,"icon":25},"¿Qué es una Interfaz Gráfica de Usuario (GUI)?","i-carbon-gui-management",{"title":27,"path":28,"stem":29,"icon":25},"Creación de Interfaces Gráficas de Usuario (GUI)","\u002Fgui\u002Fbuild-gui","2.gui\u002F02.build-gui",{"title":31,"path":32,"stem":33,"icon":25},"Componentes Básicos de Swing","\u002Fgui\u002Fcomponentes-basicos","2.gui\u002F03.componentes-basicos",{"title":35,"path":36,"stem":37},"El componente JFrame","\u002Fgui\u002Fjframe","2.gui\u002F04.jframe",{"title":39,"path":40,"stem":41},"El componente JPanel","\u002Fgui\u002Fjpanel","2.gui\u002F05.jpanel",{"title":43,"path":44,"stem":45},"El componente JButton","\u002Fgui\u002Fjbutton","2.gui\u002F06.jbutton",{"title":47,"path":48,"stem":49,"icon":25},"Elementos de texto en interfaces gráficas con Swing","\u002Fgui\u002Ftext","2.gui\u002F07.text",{"title":51,"path":52,"stem":53},"Elementos Visuales","\u002Fgui\u002Felementos-visuales","2.gui\u002F08.elementos-visuales",{"title":55,"path":56,"stem":57,"icon":25},"Eventos en Swing","\u002Fgui\u002Feventos","2.gui\u002F09.eventos",{"title":59,"path":60,"stem":61,"icon":25},"Controles en Swing","\u002Fgui\u002Fcontroles","2.gui\u002F10.controles",{"title":63,"path":64,"stem":65,"icon":25},"Atributos Comunes de los Componentes de Diseño","\u002Fgui\u002Fatributos-comunes","2.gui\u002F11.atributos-comunes",{"title":67,"path":68,"stem":69,"icon":25},"Layouts","\u002Fgui\u002Flayout","2.gui\u002F12.layout",{"title":71,"icon":25,"path":72,"stem":73,"children":74,"page":104},"Personalización","\u002Fpersonalizacion","3.personalizacion",[75,79,84,88,92,96,100],{"title":76,"path":77,"stem":78},"Jerarquía de clases en Swing","\u002Fpersonalizacion\u002Fjerarquia","3.personalizacion\u002F01.jerarquia",{"title":80,"path":81,"stem":82,"icon":83},"Personalización Inicial de Componentes Swing","\u002Fpersonalizacion\u002Fpersonalizacion-inicial","3.personalizacion\u002F02.personalizacion-inicial","i-carbon-palette",{"title":85,"path":86,"stem":87,"icon":83},"Tema y Personalización Avanzada en Swing","\u002Fpersonalizacion\u002Ftheme","3.personalizacion\u002F03.theme",{"title":89,"path":90,"stem":91,"icon":83},"Pintando en Swing","\u002Fpersonalizacion\u002Fpaint","3.personalizacion\u002F04.paint",{"title":93,"path":94,"stem":95,"icon":83},"Mi Tema 1: Comenzando con la Personalización","\u002Fpersonalizacion\u002Ftheme-start","3.personalizacion\u002F05.theme-start",{"title":97,"path":98,"stem":99,"icon":83},"UI Delegates: Personalizando la Apariencia de los Componentes","\u002Fpersonalizacion\u002Fui-delegates","3.personalizacion\u002F06.ui-delegates",{"title":101,"path":102,"stem":103,"icon":83},"Empleado delegadores de UI para personalizar la apariencia de los componentes","\u002Fpersonalizacion\u002Ftheme-02","3.personalizacion\u002F07.theme-02",false,{"title":106,"path":107,"stem":108,"children":109,"icon":148},"Programación concurrente","\u002Fconcurrencia","4.concurrencia\u002F01.index",[110,112,116,120,124,128,132,136,140,144],{"title":111,"path":107,"stem":108,"icon":83},"¿Qué es la concurrencia?",{"title":113,"path":114,"stem":115,"icon":83},"Unidades de Ejecución","\u002Fconcurrencia\u002Funidades-ejecucion","4.concurrencia\u002F02.unidades-ejecucion",{"title":117,"path":118,"stem":119,"icon":83},"Programa de flujo único y de flujo múltiple","\u002Fconcurrencia\u002Fflujos","4.concurrencia\u002F03.flujos",{"title":121,"path":122,"stem":123,"icon":83},"Hilos con Thread y Runnable","\u002Fconcurrencia\u002Fthread-runnable","4.concurrencia\u002F04.thread-runnable",{"title":125,"path":126,"stem":127},"Paralelismo V.S. Concurrencia","\u002Fconcurrencia\u002Fparalelismo","4.concurrencia\u002F05.paralelismo",{"title":129,"path":130,"stem":131,"icon":83},"Problemas clásicos de concurrencia","\u002Fconcurrencia\u002Fproblemas","4.concurrencia\u002F06.problemas",{"title":133,"path":134,"stem":135,"icon":83},"Emulando condiciones de carrera en Java","\u002Fconcurrencia\u002Fcondiciones-carrera","4.concurrencia\u002F07.condiciones-carrera",{"title":137,"path":138,"stem":139,"icon":83},"Semáforos en Java","\u002Fconcurrencia\u002Fsemaforos","4.concurrencia\u002F08.semaforos",{"title":141,"path":142,"stem":143,"icon":83},"La clase Timer en Java Swing","\u002Fconcurrencia\u002Ftimer","4.concurrencia\u002F09.timer",{"title":145,"path":146,"stem":147,"icon":83},"Algoritmos de ordenamiento de procesos","\u002Fconcurrencia\u002Falgoritmos-procesos","4.concurrencia\u002F10.algoritmos-procesos","i-carbon-parallel-groups",{"title":150,"path":151,"stem":152,"children":153,"icon":177},"Acceso a datos","\u002Fdatos","5.datos\u002F01.index",[154,157,161,165,169,173],{"title":155,"path":151,"stem":152,"icon":156},"Java y las bases de datos","i-carbon-database",{"title":158,"path":159,"stem":160},"Cliente Servidor","\u002Fdatos\u002Fcliente-servidor","5.datos\u002F02.cliente-servidor",{"title":162,"path":163,"stem":164},"CRUD","\u002Fdatos\u002Fcrud","5.datos\u002F03.crud",{"title":166,"path":167,"stem":168},"Sentencias Preparadas con JDBC","\u002Fdatos\u002Fsentencia-preparada","5.datos\u002F04.sentencia-preparada",{"title":170,"path":171,"stem":172},"DAO (Data Access Object)","\u002Fdatos\u002Fdao","5.datos\u002F05.dao",{"title":174,"path":175,"stem":176},"Usando Hibernate ORM","\u002Fdatos\u002Form","5.datos\u002F06.orm","i-gravity-ui-database-fill",{"title":179,"path":180,"stem":181,"children":182,"icon":211},"Programación móvil","\u002Fmovil","6.movil\u002F01.index",[183,186,191,195,199,203,207],{"title":184,"path":180,"stem":181,"icon":185},"¿Qué es Android y Kotlin?","i-carbon-mobile",{"title":187,"path":188,"stem":189,"icon":190},"¿Qué es Android Studio?","\u002Fmovil\u002Fandroid-studio","6.movil\u002F02.android-studio","i-carbon-application",{"title":192,"path":193,"stem":194,"icon":190},"¿Qué es Jetpack Compose?","\u002Fmovil\u002Fjetpack-compose","6.movil\u002F03.jetpack-compose",{"title":196,"path":197,"stem":198},"Filas y Columnas con Jetpack Compose","\u002Fmovil\u002Ffilas-columnas","6.movil\u002F04.filas-columnas",{"title":200,"path":201,"stem":202,"icon":190},"Componentes Básicos en Jetpack Compose","\u002Fmovil\u002Fcomponentes-basicos","6.movil\u002F05.componentes-basicos",{"title":204,"path":205,"stem":206,"icon":190},"Las Intenciones en Android con Jetpack Compose","\u002Fmovil\u002Fintentions","6.movil\u002F06.intentions",{"title":208,"path":209,"stem":210,"icon":190},"Navegación en Android con Jetpack Compose","\u002Fmovil\u002Fnavegacion","6.movil\u002F07.navegacion","phone_android",{"title":213,"icon":25,"path":214,"stem":215,"children":216,"page":104},"Ejemplos","\u002Fejemplos","7.ejemplos",[217,221,225,229,233,237,241,245,249,253],{"title":218,"path":219,"stem":220},"Ejemplo 01: Creando un validador abstracto de expresiones","\u002Fejemplos\u002Fejemplo-01","7.ejemplos\u002F01.ejemplo-01",{"title":222,"path":223,"stem":224},"Ejemplo 02: Diferencias de validar un JTextField y un JFormattedTextField","\u002Fejemplos\u002Fejemplo-02","7.ejemplos\u002F02.ejemplo-02",{"title":226,"path":227,"stem":228},"Ejemplo 03: Creando una Aplicación con GUI en Java Swing","\u002Fejemplos\u002Fejemplo-03","7.ejemplos\u002F03.ejemplo-03",{"title":230,"path":231,"stem":232},"Ejemplo 4: Estilizando componentes Swing con Delegadores","\u002Fejemplos\u002Fejemplo-04","7.ejemplos\u002F04.ejemplo-04",{"title":234,"path":235,"stem":236,"icon":83},"Ejemplo 5: Uso de Hilos con Thread y Runnable","\u002Fejemplos\u002Fejemplo-05","7.ejemplos\u002F05.ejemplo-05",{"title":238,"path":239,"stem":240,"icon":83},"Ejemplo 06: Manejando Hilos de formas Diferentes en Java","\u002Fejemplos\u002Fejemplo-06","7.ejemplos\u002F06.ejemplo-06",{"title":242,"path":243,"stem":244,"icon":83},"Ejemplo 7: Condiciones de carrera en Java","\u002Fejemplos\u002Fejemplo-07","7.ejemplos\u002F07.ejemplo-07",{"title":246,"path":247,"stem":248,"icon":83},"Ejemplo 8: Control de acceso a recursos compartidos con semáforos","\u002Fejemplos\u002Fejemplo-08","7.ejemplos\u002F08.ejemplo-08",{"title":250,"path":251,"stem":252,"icon":83},"Ejemplo 9: El restaurante y los pedidos","\u002Fejemplos\u002Fejemplo-09","7.ejemplos\u002F09.ejemplo-09",{"title":254,"path":255,"stem":256},"Ejemplo 10: Proceso FIFO (First In, First Out) con Semáforos y Swing","\u002Fejemplos\u002Fejemplo-10","7.ejemplos\u002F10.ejemplo-10",{"title":258,"icon":25,"path":259,"stem":260,"children":261,"page":104},"Actividades","\u002Factividades","8.actividades",[262,266,270,274,278,282,286,290,294],{"title":263,"path":264,"stem":265,"icon":25},"Actividad 1: Introducción al diseño de interfaces","\u002Factividades\u002Fact-01","8.actividades\u002F01.act-01",{"title":267,"path":268,"stem":269,"icon":25},"Actividad 2: Diseño de wireframes y prototipos","\u002Factividades\u002Fact-02","8.actividades\u002F02.act-02",{"title":271,"path":272,"stem":273,"icon":25},"Actividad 3: Propuesta de Proyecto y Wireframe inicial","\u002Factividades\u002Fact-03","8.actividades\u002F03.act-03",{"title":275,"path":276,"stem":277,"icon":83},"Actividad 4: Temas y Componentes Personalizados en Swing","\u002Factividades\u002Fact-04","8.actividades\u002F04.act-04",{"title":279,"path":280,"stem":281,"icon":83},"Actividad 5: Explicando la Concurrencia a un Niño de 5 Años","\u002Factividades\u002Fact-05","8.actividades\u002F05.act-05",{"title":283,"path":284,"stem":285,"icon":83},"Actividad 6: Simulación de una cocina con múltiples chefs (hilos)","\u002Factividades\u002Fact-06","8.actividades\u002F06.act-06",{"title":287,"path":288,"stem":289,"icon":83},"Actividad 7: Sistema de retiro bancario","\u002Factividades\u002Fact-07","8.actividades\u002F07.act-07",{"title":291,"path":292,"stem":293,"icon":83},"Actividad 8: Simulación de Round Robin con hilos e Interfaz Gráfica","\u002Factividades\u002Fact-08","8.actividades\u002F08.act-08",{"title":295,"path":296,"stem":297,"icon":83},"Actividad 9: CRUD con Hibernate y Swing","\u002Factividades\u002Fact-09","8.actividades\u002F09.act-09",{"title":299,"path":300,"stem":301,"children":302,"icon":308},"Proyecto Final","\u002Fproyecto","9.proyecto\u002F01.index",[303,304],{"title":299,"path":300,"stem":301},{"title":305,"path":306,"stem":307},"Revisiones del Proyecto Final","\u002Fproyecto\u002Frevisiones","9.proyecto\u002F02.revisiones","i-check-circle",{"id":310,"title":299,"body":311,"description":550,"extension":551,"links":552,"meta":553,"navigation":554,"path":300,"seo":555,"stem":301,"__hash__":556},"docs\u002F9.proyecto\u002F01.index.md",{"type":312,"value":313,"toc":542},"minimark",[314,319,336,340,378,382,385,459,463,466,538],[315,316,318],"h2",{"id":317},"descripción-del-proyecto-final","Descripción del Proyecto Final",[320,321,322,323,327,328,331,332,335],"p",{},"El proyecto final del curso consiste en desarrollar una aplicación web empleando una de las tres formas de desarrollo visto en clase, es decir: ",[324,325,326],"strong",{},"Nativo",", ",[324,329,330],{},"Híbrido"," o ",[324,333,334],{},"Web",". El objetivo del proyecto es aplicar los conocimientos adquiridos a lo largo del curso para crear una aplicación funcional, atractiva y bien documentada, que cumpla con los requisitos establecidos y que sea capaz de resolver un problema o satisfacer una necesidad específica. El proyecto final se desarrollará en equipo, y se espera que los estudiantes colaboren de manera efectiva para lograr un resultado exitoso. El proyecto final se evaluará en función de la calidad de la aplicación desarrollada, la documentación proporcionada, las pruebas realizadas y la presentación del proyecto.",[315,337,339],{"id":338},"requisitos-del-proyecto","Requisitos del Proyecto",[341,342,343,347,350,353,356,363,366,369,372,375],"ol",{},[344,345,346],"li",{},"La aplicación debe ser desarrollada utilizando una de las tres formas de desarrollo vistas en clase (Nativo, Híbrido o Web).",[344,348,349],{},"La aplicación debe tener una identidad visual clara y coherente, que refleje el propósito y la funcionalidad de la aplicación.",[344,351,352],{},"La aplicación debe tener una arquitectura adecuada, que permita una fácil escalabilidad, mantenimiento y evolución de la aplicación.",[344,354,355],{},"La aplicación debe ser implementada utilizando tecnologías adecuadas, que permitan una buena performance, seguridad y usabilidad de la aplicación.",[344,357,358,359,362],{},"La aplicación debe contar con el uso de ",[324,360,361],{},"Acceso a Datos"," para almacenar y gestionar la información de manera eficiente y segura; y puede ser mediante el uso de DAO, ORM o cualquier otra técnica de acceso a datos que se considere adecuada para el proyecto.",[344,364,365],{},"La aplicación debe hacer uso de assets, como imágenes, íconos, fuentes, etc., para mejorar la apariencia y la experiencia de usuario de la aplicación.",[344,367,368],{},"La aplicación debe ser desplegada en un entorno adecuado, que permita a los usuarios acceder y utilizar la aplicación de manera fácil y segura. Es decir, puede ser desplegada en un servidor web, en un emulador o en un dispositivo físico, dependiendo de la forma de desarrollo elegida para el proyecto.",[344,370,371],{},"La aplicación debe contar con una documentación clara y completa, que incluya la descripción de la aplicación, la arquitectura utilizada, las tecnologías empleadas, las instrucciones de instalación y uso, y cualquier otra información relevante para entender y utilizar la aplicación.",[344,373,374],{},"La aplicación debe ser probada adecuadamente para asegurar la calidad de la aplicación, incluyendo pruebas unitarias, pruebas de integración y pruebas de aceptación, para garantizar que la aplicación funcione correctamente y cumpla con los requisitos establecidos.",[344,376,377],{},"La presentación del proyecto final debe ser clara y profesional, que permita mostrar el valor y la funcionalidad de la aplicación de manera efectiva, y que cuente con la participación activa de todos los miembros del equipo durante la presentación, para demostrar el trabajo colaborativo y el conocimiento compartido en el desarrollo del proyecto.",[315,379,381],{"id":380},"contenido-del-proyecto-final","Contenido del Proyecto Final",[320,383,384],{},"El proyecto final debe incluir los siguientes elementos:",[341,386,387,393,399,405,411,417,423,429,435,441,447,453],{},[344,388,389,392],{},[324,390,391],{},"Portada",": Una portada que incluya el título del proyecto, el nombre del equipo, el nombre de los integrantes del equipo, el nombre del curso y la fecha de presentación.",[344,394,395,398],{},[324,396,397],{},"Índice",": Un índice que muestre la estructura del proyecto y los contenidos incluidos en el proyecto.",[344,400,401,404],{},[324,402,403],{},"Introducción",": Una introducción que describa el propósito y la funcionalidad de la aplicación, así como el problema o necesidad que la aplicación busca resolver.",[344,406,407,410],{},[324,408,409],{},"Alcance Propuesto",": Una sección que describa el alcance del proyecto, incluyendo las funcionalidades a desarrollar, esto tomando en cuenta las limitaciones de tiempo y recursos disponibles para el desarrollo del proyecto, así como los requisitos establecidos para el proyecto.",[344,412,413,416],{},[324,414,415],{},"Identidad Visual",": Una sección que describa la identidad visual de la aplicación, incluyendo el diseño de la interfaz de usuario, los colores, las fuentes, los íconos y cualquier otro elemento visual utilizado en la aplicación.",[344,418,419,422],{},[324,420,421],{},"Arquitectura de la Aplicación",": Una sección que describa la arquitectura de la aplicación, incluyendo los componentes principales de la aplicación, las tecnologías utilizadas, la estructura del código y cualquier otro aspecto relevante para entender la arquitectura de la aplicación.",[344,424,425,428],{},[324,426,427],{},"Implementación de la Aplicación",": Una sección que describa la implementación de la aplicación, incluyendo el proceso de desarrollo, las tecnologías utilizadas, los desafíos enfrentados y las soluciones implementadas para superar esos desafíos.",[344,430,431,434],{},[324,432,433],{},"Despliegue de la Aplicación",": Una sección que describa el proceso de despliegue de la aplicación, incluyendo el entorno de despliegue utilizado, las instrucciones para acceder y utilizar la aplicación, y cualquier otro aspecto relevante para entender el proceso de despliegue de la aplicación.",[344,436,437,440],{},[324,438,439],{},"Código Fuente",": El código fuente de la aplicación, organizado de manera clara y estructurada, esto puede encontrarse en un repositorio de código, como GitHub, o puede ser incluido como parte del proyecto final o en un espacio en la nube, como Google Drive o Dropbox, para facilitar el acceso y la revisión.",[344,442,443,446],{},[324,444,445],{},"Pruebas Realizadas",": Una sección que describa las pruebas realizadas para asegurar la calidad de la aplicación, incluyendo las pruebas unitarias, las pruebas de integración y las pruebas de aceptación, así como los resultados obtenidos de esas pruebas y cualquier problema o error encontrado durante el proceso de pruebas.",[344,448,449,452],{},[324,450,451],{},"Conclusiones",": Una sección que describa las conclusiones del proyecto, incluyendo los resultados obtenidos, las lecciones aprendidas, las limitaciones del proyecto y las posibles mejoras o futuras líneas de desarrollo para la aplicación.",[344,454,455,458],{},[324,456,457],{},"Referencias",": Una sección que incluya las referencias bibliográficas y cualquier otra fuente de información utilizada para el desarrollo del proyecto, como libros, artículos, tutoriales, documentación de tecnologías utilizadas, etc.",[315,460,462],{"id":461},"evaluación-del-proyecto-final","Evaluación del Proyecto Final",[320,464,465],{},"La evaluación del proyecto final se basará en la siguiente checklist:",[467,468,469,482],"table",{},[470,471,472],"thead",{},[473,474,475,479],"tr",{},[476,477,478],"th",{},"Criterio",[476,480,481],{},"Puntuación",[483,484,485,494,502,510,517,524,531],"tbody",{},[473,486,487,491],{},[488,489,490],"td",{},"A. Definición clara de la identidad visual de la aplicación",[488,492,493],{},"10 puntos",[473,495,496,499],{},[488,497,498],{},"B. Diseño de la aplicación con una arquitectura adecuada",[488,500,501],{},"15 puntos",[473,503,504,507],{},[488,505,506],{},"C. Implementación de la aplicación con tecnologías adecuadas",[488,508,509],{},"20 puntos",[473,511,512,515],{},[488,513,514],{},"D. Despliegue de la aplicación en un entorno accesible",[488,516,493],{},[473,518,519,522],{},[488,520,521],{},"E. Documentación clara y completa de la aplicación",[488,523,501],{},[473,525,526,529],{},[488,527,528],{},"F. Pruebas adecuadas para asegurar la calidad de la aplicación",[488,530,501],{},[473,532,533,536],{},[488,534,535],{},"G. Presentación clara y profesional del proyecto final",[488,537,501],{},[539,540,541],"tip",{},"Recuerda que el proyecto final es una oportunidad para demostrar tus habilidades y conocimientos adquiridos a lo largo del curso, así como para aplicar los conceptos y técnicas aprendidos en un proyecto real. Es importante dedicar tiempo y esfuerzo para desarrollar una aplicación de calidad, que cumpla con los requisitos establecidos y que sea funcional, atractiva y bien documentada. De igual manera es importante preparar una presentación clara y profesional, que permita mostrar el valor y la funcionalidad de tu aplicación de manera efectiva; y contar con la participación activa de todos los miembros del equipo durante la presentación, para demostrar el trabajo colaborativo y el conocimiento compartido en el desarrollo del proyecto.",{"title":543,"searchDepth":544,"depth":544,"links":545},"",2,[546,547,548,549],{"id":317,"depth":544,"text":318},{"id":338,"depth":544,"text":339},{"id":380,"depth":544,"text":381},{"id":461,"depth":544,"text":462},"En esta sección se presenta el proyecto final del curso, que consiste en desarrollar una aplicación Java que integre los conceptos y técnicas aprendidos a lo largo del curso. Se proporcionan pautas y requisitos para el proyecto, así como ejemplos de proyectos anteriores para inspirar a los estudiantes.","md",null,{"editButton":104},true,{"title":299,"description":550},"kTyVdbXhxIhteWWEVhub6rRS_pSinUg22AfeZqq2_tY",[558,559],{"title":295,"path":296,"stem":297,"description":543,"icon":83,"children":-1},{"title":305,"path":306,"stem":307,"description":560,"children":-1},"En esta sección se presentan el calendario de revisiones por equipo para el proyecto final del cursos.",1777246213370]