- ES Español

- EN English

5.14. Desarrollo Basado en Plataformas (Obligatorio)
- Semestre: 3er Sem. Créditos: 3
- Horas del curso: Teoría: 1 horas; Práctica: 2 horas; Laboratorio: 2 horas;
- Sílabo:
- htmlonly

Español

English - Prerrequisitos:
- CS112 Programación Orientada a Objetos I (2do Sem) itemize
5.14.1. Justificación ↑ Volver arriba
El desarrollo basado en plataformas se enfoca en el diseño y la implementación de aplicaciones dentro de entornos informáticos específicos. Este curso utiliza el marco de Proceso y Diseño de Software (SPD) para explorar las restricciones y capacidades únicas de las plataformas Web, Móviles e Interactivas. Los estudiantes aprenderán a aplicar preocupaciones arquitectónicas compartidas y APIs específicas de plataforma para construir soluciones de software robustas, escalables y centradas en el usuario.
5.14.2. Objetivos Generales ↑ Volver arriba
- Comprender los aspectos compartidos y las restricciones únicas de las plataformas modernas.
- Desarrollar aplicaciones profesionales para entornos Web y Móviles.
- Aplicar principios de computación interactiva para mejorar la experiencia del usuario.
- Diseñar arquitecturas de software que aprovechen los servicios específicos de la plataforma.
5.14.3. Contribución a los resultados (Outcomes) ↑ Volver arriba
- AG-C09) Diseño y Desarrollo de Soluciones: Diseña, implementa y evalúa soluciones para problemas complejos de computación. (Usage)
- AG-C04) Comunicación: Se comunica de forma efectiva en actividades complejas de computación. (Usage)
5.14.4. Contenido ↑ Volver arriba
5.14.4.1. Aspectos Comunes: Plataformas, APIs y Restricciones (5 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Fielding, 2000; Gasca, 2021)
Temas
- Visión general de las plataformas de desarrollo (es decir, web, móvil, juegos, robótica, embebida e interactiva).
- Entrada/sensores/dispositivos de control/dispositivos hápticos
- Limitaciones de recursos
- Computacional
- Almacenamiento de datos
- Memoria
- Comunicación enumerate
- Requisitos - seguridad, disponibilidad de tiempo de actividad, tolerancia a fallos Conceptos de Confiabilidad , Ingeniería de Confiabilidad , Diseño e Ingeniería de Controles de Seguridad , Análisis de Amenazas e Ingeniería de Seguridad , Computación Confiable e Ingeniería de Privacidad
- Salida/actuadores/dispositivos hápticos enumerate
- Programación mediante Interfaces de Programación de Aplicaciones (API) específicas de la plataforma vs construcción de aplicaciones tradicional
- Programación bajo restricciones y requisitos de la plataforma (por ejemplo, herramientas de desarrollo disponibles, desarrollo, consideraciones de seguridad) Seguridad en IA y Hardware , Control de Acceso y Aplicaciones , Principios y Mentalidad de Seguridad
Aprendizaje esperado (Learning Outcomes)
- Enumerar las restricciones de la programación móvil [Listar/Enumerar]
5.14.4.2. Aspectos Comunes: Lenguajes de Plataforma y Patrones Web (3 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Fielding, 2000; Gasca, 2021)
Temas
- Visión general de los Lenguajes de plataforma (por ejemplo, Python, Swift, Lua, Kotlin)
- Técnicas para aprender y dominar un lenguaje de programación específico de la plataforma
Aprendizaje esperado (Learning Outcomes)
- Enumerar las características de los lenguajes de scripting [Listar/Enumerar]
- Describir el modelo de tres capas (three-tier) de la programación web [Describir]
- Describir cómo se mantiene el estado en la programación web [Describir]
5.14.4.3. Frontend, Frameworks y Estándares Web (12 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Flanagan, 2020; Duckett, 2014; Fielding, 2000)
Temas
- Lenguajes de programación web (por ejemplo, HTML5, JavaScript, Typescript, CSS)
- Plataformas, frameworks o meta-frameworks web
- Servicios en la nube
- API, Componentes Web (Web Components) enumerate
- Software como Servicio (SaaS)
- Estándares web como el modelo de objetos del documento (DOM), accesibilidad Accesibilidad y Diseño Inclusivo
- Consideraciones de Seguridad y Privacidad Delitos y Ataques Informáticos , Leyes, Políticas y Responsabilidad en Seguridad
Aprendizaje esperado (Learning Outcomes)
- Comparar y contrastar la programación web con la programación de propósito general [Comparar]
- Describir las diferencias entre Software-como-Servicio (SaaS) y productos de software tradicionales [Describir]
- Discutir cómo los estándares web impactan el desarrollo de software [Debatir]
- Evaluar una aplicación web existente contra los estándares web actuales [Evaluar]
5.14.4.4. Plataformas Móviles: Fundamentos del Desarrollo (6 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Deitel and Deitel, 2017; Hellman, 2013)
Temas
- Desarrollo con
- Lenguajes de programación móvil
- Entornos de programación móvil enumerate
- Restricciones de la plataforma móvil
- Diseño de interfaz de usuario Comprender al Usuario: Objetivos individuales e interacciones con otros
- Seguridad enumerate
- Acceso
- Acceso a datos a través de APIs Construcción de Consultas
- Diseño de puntos finales de API (endpoints) para aplicaciones móviles: trampas y consideraciones de diseño
- Interfaces de red y web Modelado de Datos , Fundamentos de Redes y Comunicaciones enumerate
Aprendizaje esperado (Learning Outcomes)
- Comparar la programación móvil con la programación de propósito general [Comparar]
- Evaluar los pros y los contras del desarrollo de aplicaciones móviles nativas y multiplataforma [Evaluar]
5.14.4.5. Plataformas Móviles: Arquitectura y Restricciones (3 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Deitel and Deitel, 2017; Hellman, 2013)
Temas
- Desarrollo
- Desarrollo nativo (native) versus multiplataforma (cross-platform)
- Patrones de diseño/arquitectura de software para aplicaciones móviles Diseño de API y Modelado , Principios y Arquitectura de Software , Calidad y Evaluación del Diseño enumerate
- Restricciones de la plataforma móvil
- Diseño de interfaz de usuario responsivo (responsive) Accesibilidad y Diseño Inclusivo
- Heterogeneidad y movilidad de los dispositivos
- Diferencias en las experiencias de usuario (por ejemplo, entre aplicaciones móviles y basadas en web)
- Compensación (tradeoff) entre energía y rendimiento enumerate
- Especificación y pruebas Prácticas de Desarrollo de Software , Pruebas de Rendimiento y Evaluación Comparativa , Herramientas y Análisis de Pruebas , Conceptos de verificación y validación , Planificación y Tipos de Pruebas , Prácticas Avanzadas de Pruebas
Aprendizaje esperado (Learning Outcomes)
- Desarrollar una aplicación móvil consciente de la ubicación con integración de API de datos [Crear]
- Construir una aplicación móvil impulsada por sensores capaz de registrar datos en un servidor remoto [Crear]
- Crear una aplicación de comunicación que incorpore telefonía y mensajería instantánea [Crear]
5.14.4.6. Plataformas Móviles: Capacidades y Computación Asíncrona (3 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Deitel and Deitel, 2017; Hellman, 2013)
Temas
- Capacidades (affordances) de la computación móvil
- Aplicaciones conscientes de la ubicación (location-aware)
- Computación impulsada por sensores (por ejemplo, giroscopio, acelerómetro, datos de salud de un reloj)
- Telefonía y mensajería instantánea
- Realidad aumentada Inmersión enumerate
- Computación asíncrona Algoritmos
- Diferencia con la programación síncrona tradicional
- Manejo del éxito mediante devoluciones de llamada (callbacks)
- Manejo de errores de forma asíncrona
- Pruebas de código asíncrono y problemas típicos en las pruebas enumerate
Aprendizaje esperado (Learning Outcomes)
- Desarrollar una aplicación móvil consciente de la ubicación con integración de API de datos [Crear]
- Construir una aplicación móvil impulsada por sensores capaz de registrar datos en un servidor remoto [Crear]
- Crear una aplicación de comunicación que incorpore telefonía y mensajería instantánea [Crear]
5.14.4.7. SPD-SEP/Interactiva (10 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Duckett, 2014; Deitel and Deitel, 2017)
Temas
- Pautas éticas al usar modelos de IA para ayudar en el periodismo y la creación de contenido
- Rendición de cuentas (accountability) por las salidas generadas por IA
- Comportamiento entre programadores de prompts (prompt programmers) y desarrolladores de IA
- Confianza con el público al usar modelos de IA
Aprendizaje esperado (Learning Outcomes)
- Indicar un marco para la rendición de cuentas (accountability) en el despliegue de modelos de IA, incluyendo documentación clara y atribución [Evaluar]
- Discutir códigos de conducta éticos y estándares profesionales relevantes para la programación de prompts (prompt programming) y el desarrollo de IA [Debatir]
- Crear planes y materiales de comunicación para educar al público sobre las capacidades, limitaciones y salvaguardas éticas de la IA [Crear]
5.14.4.8. Plataformas Interactivas de Datos y Análisis (6 horas) [Habilidades AG-C04,AG-C09] ↑ Volver arriba
Referencias Bibliográficas: (Flanagan, 2020)
Temas
- Plataformas de Cuadernos Computacionales (por ejemplo, Cuadernos Jupyter; Google Colab; R; SPSS; Observable)
- Plataformas de Análisis de Datos y SQL en la Nube (por ejemplo, BigQuery) Construcción de Consultas
- Apache Spark
- Visualizaciones de Datos Visualización enumerate
- Presentaciones Interactivas Respaldadas por Datos
- Herramientas de Diseño con Bucles de Retroalimentación de Baja Latencia (Low-Latency Feedback Loops)
- Herramientas de renderizado
- Herramientas de diseño gráfico enumerate
Aprendizaje esperado (Learning Outcomes)
- Analizar grandes conjuntos de datos de forma interactiva [Analizar]
- Crear una pista de acompañamiento para una interpretación musical, como la codificación en vivo (live coding) [Crear]
- Crear cuadernos computacionales convincentes que construyan una narrativa para un objetivo/historia periodística dada [Crear]
- Implementar código interactivo que use un conjunto de datos y genere gráficos exploratorios [Implementar]
- Contextualizar los atributos de diferentes estilos de análisis de datos, como interactivo versus tubería (pipeline) de ingeniería [Contextualizar]
- Escribir un programa usando una plataforma de computación de cuadernos (por ejemplo, búsqueda, ordenación o manipulación de grafos) [Escribir]
5.14.5. Referencias Bibliográficas ↑ Volver arriba
Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine.
Gasca, J. (2021). Web Security for Developers. No Starch Press.
Flanagan, D. (2020). JavaScript: The Definitive Guide. O'Reilly Media, 7th edition.
Duckett, J. (2014). JavaScript and JQuery: Interactive Front-End Web Development. Wiley.
Deitel, H. and Deitel, P. (2017). C++17: The Complete Guide. Pearson.
Hellman, E. (2013). Android Programming: Pushing the Limits. Wiley.