5.14. Desarrollo Basado en Plataformas (Obligatorio)

5.14. Desarrollo Basado en Plataformas (Obligatorio)

Figura 5.14: Mapa de Conexión. CS2B1 Desarrollo Basado en Plataformas

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

  1. Comprender los aspectos compartidos y las restricciones únicas de las plataformas modernas.
  2. Desarrollar aplicaciones profesionales para entornos Web y Móviles.
  3. Aplicar principios de computación interactiva para mejorar la experiencia del usuario.
  4. 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

  1. Visión general de las plataformas de desarrollo (es decir, web, móvil, juegos, robótica, embebida e interactiva).
    1. Entrada/sensores/dispositivos de control/dispositivos hápticos
    2. Limitaciones de recursos
      1. Computacional
      2. Almacenamiento de datos
      3. Memoria
      4. Comunicación enumerate
      5. 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
      6. Salida/actuadores/dispositivos hápticos enumerate
      7. Programación mediante Interfaces de Programación de Aplicaciones (API) específicas de la plataforma vs construcción de aplicaciones tradicional
      8. 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)

      1. 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

      1. Visión general de los Lenguajes de plataforma (por ejemplo, Python, Swift, Lua, Kotlin)
      2. Técnicas para aprender y dominar un lenguaje de programación específico de la plataforma

      Aprendizaje esperado (Learning Outcomes)

      1. Enumerar las características de los lenguajes de scripting [Listar/Enumerar]
      2. Describir el modelo de tres capas (three-tier) de la programación web [Describir]
      3. 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

      1. Lenguajes de programación web (por ejemplo, HTML5, JavaScript, Typescript, CSS)
      2. Plataformas, frameworks o meta-frameworks web
        1. Servicios en la nube
        2. API, Componentes Web (Web Components) enumerate
        3. Software como Servicio (SaaS)
        4. Estándares web como el modelo de objetos del documento (DOM), accesibilidad Accesibilidad y Diseño Inclusivo
        5. Consideraciones de Seguridad y Privacidad Delitos y Ataques Informáticos , Leyes, Políticas y Responsabilidad en Seguridad

        Aprendizaje esperado (Learning Outcomes)

        1. Comparar y contrastar la programación web con la programación de propósito general [Comparar]
        2. Describir las diferencias entre Software-como-Servicio (SaaS) y productos de software tradicionales [Describir]
        3. Discutir cómo los estándares web impactan el desarrollo de software [Debatir]
        4. 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

        1. Desarrollo con
          1. Lenguajes de programación móvil
          2. Entornos de programación móvil enumerate
          3. Restricciones de la plataforma móvil
            1. Diseño de interfaz de usuario Comprender al Usuario: Objetivos individuales e interacciones con otros
            2. Seguridad enumerate
            3. Acceso
              1. Acceso a datos a través de APIs Construcción de Consultas
              2. Diseño de puntos finales de API (endpoints) para aplicaciones móviles: trampas y consideraciones de diseño
              3. Interfaces de red y web Modelado de Datos , Fundamentos de Redes y Comunicaciones enumerate

              Aprendizaje esperado (Learning Outcomes)

              1. Comparar la programación móvil con la programación de propósito general [Comparar]
              2. 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

              1. Desarrollo
                1. Desarrollo nativo (native) versus multiplataforma (cross-platform)
                2. 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
                3. Restricciones de la plataforma móvil
                  1. Diseño de interfaz de usuario responsivo (responsive) Accesibilidad y Diseño Inclusivo
                  2. Heterogeneidad y movilidad de los dispositivos
                  3. Diferencias en las experiencias de usuario (por ejemplo, entre aplicaciones móviles y basadas en web)
                  4. Compensación (tradeoff) entre energía y rendimiento enumerate
                  5. 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)

                  1. Desarrollar una aplicación móvil consciente de la ubicación con integración de API de datos [Crear]
                  2. Construir una aplicación móvil impulsada por sensores capaz de registrar datos en un servidor remoto [Crear]
                  3. 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

                  1. Capacidades (affordances) de la computación móvil
                    1. Aplicaciones conscientes de la ubicación (location-aware)
                    2. Computación impulsada por sensores (por ejemplo, giroscopio, acelerómetro, datos de salud de un reloj)
                    3. Telefonía y mensajería instantánea
                    4. Realidad aumentada Inmersión enumerate
                    5. Computación asíncrona Algoritmos
                      1. Diferencia con la programación síncrona tradicional
                      2. Manejo del éxito mediante devoluciones de llamada (callbacks)
                      3. Manejo de errores de forma asíncrona
                      4. Pruebas de código asíncrono y problemas típicos en las pruebas enumerate

                      Aprendizaje esperado (Learning Outcomes)

                      1. Desarrollar una aplicación móvil consciente de la ubicación con integración de API de datos [Crear]
                      2. Construir una aplicación móvil impulsada por sensores capaz de registrar datos en un servidor remoto [Crear]
                      3. 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

                      1. Pautas éticas al usar modelos de IA para ayudar en el periodismo y la creación de contenido
                      2. Rendición de cuentas (accountability) por las salidas generadas por IA
                      3. Comportamiento entre programadores de prompts (prompt programmers) y desarrolladores de IA
                      4. Confianza con el público al usar modelos de IA

                      Aprendizaje esperado (Learning Outcomes)

                      1. 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]
                      2. 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]
                      3. 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

                      1. Plataformas de Cuadernos Computacionales (por ejemplo, Cuadernos Jupyter; Google Colab; R; SPSS; Observable)
                      2. Plataformas de Análisis de Datos y SQL en la Nube (por ejemplo, BigQuery) Construcción de Consultas
                        1. Apache Spark
                        2. Visualizaciones de Datos Visualización enumerate
                        3. Presentaciones Interactivas Respaldadas por Datos
                        4. Herramientas de Diseño con Bucles de Retroalimentación de Baja Latencia (Low-Latency Feedback Loops)
                          1. Herramientas de renderizado
                          2. Herramientas de diseño gráfico enumerate

                          Aprendizaje esperado (Learning Outcomes)

                          1. Analizar grandes conjuntos de datos de forma interactiva [Analizar]
                          2. Crear una pista de acompañamiento para una interpretación musical, como la codificación en vivo (live coding) [Crear]
                          3. Crear cuadernos computacionales convincentes que construyan una narrativa para un objetivo/historia periodística dada [Crear]
                          4. Implementar código interactivo que use un conjunto de datos y genere gráficos exploratorios [Implementar]
                          5. Contextualizar los atributos de diferentes estilos de análisis de datos, como interactivo versus tubería (pipeline) de ingeniería [Contextualizar]
                          6. 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.

                          ¿Encontraste una errata, un curso desactualizado, un enlace roto, o tienes una sugerencia? Cuéntanos.

                          Escanea para abrir en tu teléfono