[{"data":1,"prerenderedAt":466},["ShallowReactive",2],{"navigation_docs":3,"-introduction":298,"-introduction-surround":463},[4,18,70,105,149,178,212,257],{"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",{"id":299,"title":10,"body":300,"description":456,"extension":457,"links":458,"meta":459,"navigation":460,"path":6,"seo":461,"stem":7,"__hash__":462},"docs\u002F1.introduction\u002F1.index.md",{"type":301,"value":302,"toc":447},"minimark",[303,308,315,319,323,356,360,363,377,380,383,386,406,409,412,418,422,425,428,431,434,440,444],[304,305,307],"h2",{"id":306},"competencia-de-la-asignatura","Competencia de la asignatura",[309,310,311],"ul",{},[312,313,314],"li",{},"Desarrollar soluciones de software para resolver problemas en diversos contextos utilizando programación concurrente, acceso a datos, que soporten interfaz gráfica de usuario y consideren dispositivos móviles",[304,316,318],{"id":317},"los-temas-del-curso","Los temas del curso",[320,321,322],"p",{},"A lo largo del semestre, exploraremos una variedad de temas para el desarrollo de aplicaciones utilizando librerías visuales y recolección de datos, así como una introducción a la programación móvil. Los temas que se cubrirán incluyen:",[324,325,326,333,339,345,350],"ol",{},[312,327,328,332],{},[329,330,331],"strong",{},"Interfaz gráfica de usuario",": Introducción a la creación de interfaces gráficas utilizando librerías visuales en Java. Se abordarán conceptos básicos como ventanas, botones, etiquetas y manejo de eventos.",[312,334,335,338],{},[329,336,337],{},"Componentes y librerías",": Diseño y e implementación de componentes personalizados utilizando librerías visuales. Se explorarán diferentes librerías y se aprenderá a integrarlas en aplicaciones Java.",[312,340,341,344],{},[329,342,343],{},"Programación concurrente (MultiHilos)",": Fundamentos de la programación concurrente en Java. Se estudiarán los conceptos de hilos, sincronización y comunicación entre hilos para desarrollar aplicaciones que aprovechen el paralelismo.",[312,346,347,349],{},[329,348,150],{},": Técnicas para acceder y manipular datos en aplicaciones Java. Se cubrirán temas como JDBC, manejo de bases de datos y operaciones CRUD (Crear, Leer, Actualizar, Eliminar).",[312,351,352,355],{},[329,353,354],{},"Programación de dispositivos móviles",": Introducción al desarrollo de aplicaciones móviles utilizando Java 2 Micro Edition (J2ME) o Android. Se explorarán los conceptos básicos de la programación móvil, diseño de interfaces y acceso a recursos del dispositivo, así como el lenguaje Kotlin.",[304,357,359],{"id":358},"porcentaje-de-evaluación","Porcentaje de Evaluación",[320,361,362],{},"Para los temas 1 a 4, el curso se evaluará de la siguiente manera:",[309,364,365,371],{},[312,366,367,370],{},[329,368,369],{},"Actividades y Tareas",": 40%",[312,372,373,376],{},[329,374,375],{},"Exámenes",": 60%",[320,378,379],{},"Por su parte, el tema 5 se evaluará íntegramente con un proyecto final que representará el 100% de la calificación del tema.",[320,381,382],{},"Es importante que los estudiantes se preparen adecuadamente para cada evaluación, revisando los materiales del curso y participando activamente en las sesiones sincrónicas. El objetivo es asegurar una comprensión sólida de los conceptos y habilidades impartidas durante el curso.",[320,384,385],{},"Así mismo, se llevarán a cabo tres periodos de evaluación:",[309,387,388,394,400],{},[312,389,390,393],{},[329,391,392],{},"1er Periodo",": Se realizará una evaluación parcial al finalizar el tema 2, cubriendo los temas tratados hasta ese momento.",[312,395,396,399],{},[329,397,398],{},"2do Periodo",": Se realizará una evaluación parcial al finalizar el tema 4, cubriendo los contenidos vistos en esta sección del curso.",[312,401,402,405],{},[329,403,404],{},"3er Periodo",": Se realizará una evaluación parcial al finalizar el tema 5, cubriendo los contenidos vistos en esta sección del curso.",[320,407,408],{},"Estos periodos permitirán a los estudiantes demostrar su comprensión de los conceptos aprendidos y aplicar sus conocimientos en situaciones prácticas y solo son figurativos para los exámenes parciales, ya que las actividades y tareas se irán evaluando por tema.",[320,410,411],{},"En otras palabras, al finalizar cada tema del curso, se llevará a cabo una evaluación que consistirá en el promedio de las actividades y tareas relacionadas con el contenido del tema, así como un examen que evaluará la comprensión de los conceptos abordados en los períodos correspondientes.",[413,414,415],"warning",{},[329,416,417],{},"Es importante destacar que es necesario obtener al menos un 70% en cada actividad o tarea, como en los exámenes para aprobar cada uno de los temas del curso. Esto garantiza que los estudiantes tengan un conocimiento adecuado y puedan aplicar los conceptos aprendidos de manera efectiva.",[304,419,421],{"id":420},"sobre-las-actividades-y-tareas","Sobre las actividades y tareas",[320,423,424],{},"Las actividades y tareas serán asignadas en sesión de clase y deberán ser entregadas en las fechas establecidas. Estas actividades están diseñadas para reforzar los conceptos aprendidos y proporcionar práctica adicional en la programación orientada a objetos con Java y la creación de interfaces gráficas, así como en la programación concurrente y el acceso a datos.",[320,426,427],{},"Sin embargo, si un estudiante no puede completar una actividad o tarea a tiempo debido a circunstancias imprevistas, se permitirá una extensión de hasta un día previo al examen del periodo correspondiente. Es importante que los estudiantes comuniquen cualquier dificultad para cumplir con los plazos establecidos con anticipación y busquen apoyo si es necesario, ya que la comunicación oportuna es clave para el éxito en el curso.",[320,429,430],{},"Por otro lado, las actividades y tareas no podrán ser recuperadas después de la fecha límite establecida, incluso si el estudiante ha solicitado una extensión. Esto enfatiza la importancia de la gestión del tiempo y la responsabilidad en el cumplimiento de los plazos académicos.",[320,432,433],{},"Por último, es importante destacar que desde el tema 2 en adelante, algunas actividades y tareas serán entregadas en equipos de trabajo. Los equipos serán creados por los estudiantes y deberán estar conformados por un mínimo de 1 y un máximo de 5 integrantes. Esta dinámica fomentará la colaboración y el trabajo en equipo, habilidades esenciales en el ámbito de la programación y el desarrollo de software.",[413,435,436,439],{},[329,437,438],{},"El número máximo de integrantes podrá ser ajustado por el profesor según las necesidades del curso y la cantidad de alumnos inscritos",".",[304,441,443],{"id":442},"segundas-oportunidades","Segundas Oportunidades",[320,445,446],{},"En caso de no aprobar alguno de los temas del curso, se ofrecerá una segunda oportunidad para recuperar la calificación. Esta oportunidad consistirá en la entrega de la o las actividades y tareas pendientes, así como la presentación de un examen adicional que abarque los contenidos del tema correspondiente, si es necesario.",{"title":448,"searchDepth":449,"depth":449,"links":450},"",2,[451,452,453,454,455],{"id":306,"depth":449,"text":307},{"id":317,"depth":449,"text":318},{"id":358,"depth":449,"text":359},{"id":420,"depth":449,"text":421},{"id":442,"depth":449,"text":443},"Conozcamos el método de evaluación que utilizaremos para medir tu comprensión y progreso a lo largo del curso.","md",null,{"editButton":104},{"icon":11},{"title":10,"description":456},"VpGnAac6yKwPfDcj3CNq9blqBYvSOq1Wb_6N5X_l56o",[458,464],{"title":13,"path":14,"stem":15,"description":465,"icon":16,"children":-1},"Conozcamos la plataforma y estructura del curso para facilitar tu aprendizaje.",1775101368126]