Curricula CS-UNI
5.14. CS2B1. Desarrollo Basado en Plataformas (Obligatorio)

5.14. CS2B1. 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;
  • Prerrequisitos:

    • CS112. Programación Orientada a Objetos I (2do Sem)

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

5.14.1. Justificación

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

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)

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

5.14.4.1. Aspectos Comunes I: Plataformas, APIs y Restricciones (5 horas) [Habilidades AG-C04,AG-C09]

Referencias Bibliográficas: [Fielding, 2000Gasca, 2021]

Temas

1.
Visión general de las plataformas de desarrollo (es decir, web, móvil, juegos, robótica, embebida e interactiva).
a)
Entrada/sensores/dispositivos de control/dispositivos hápticos
b)
Limitaciones de recursos
1)
Computacional
2)
Almacenamiento de datos
3)
Memoria
4)
Comunicación
c)
Requisitos - seguridad, disponibilidad de tiempo de actividad, tolerancia a fallos Ingeniería de Software (SE) -Reliability,SEC-Engineering
d)
Salida/actuadores/dispositivos hápticos
2.
Programación mediante Interfaces de Programación de Aplicaciones (API) específicas de la plataforma vs construcción de aplicaciones tradicional
3.
Programación bajo restricciones y requisitos de la plataforma (por ejemplo, herramientas de desarrollo disponibles, desarrollo, consideraciones de seguridad) Seguridad (SEC) -Foundations

Aprendizaje esperado (Learning Outcomes)

1.
Enumerar las restricciones de la programación móvil [Listar/Enumerar]
5.14.4.2. Aspectos Comunes II: Lenguajes de Plataforma y Patrones Web (3 horas) [Habilidades AG-C04,AG-C09]

Referencias Bibliográficas: [Fielding, 2000Gasca, 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]

Referencias Bibliográficas: [Flanagan, 2020Duckett, 2014Fielding, 2000]

Temas

1.
Lenguajes de programación web (por ejemplo, HTML5, JavaScript, Typescript, CSS)
2.
Plataformas, frameworks o meta-frameworks web
a)
Servicios en la nube
b)
API, Componentes Web (Web Components)
3.
Software como Servicio (SaaS)
4.
Estándares web como el modelo de objetos del documento (DOM), accesibilidad Interacción Humano-Computadora (HCI) -AccessibilityInclusiveDesign
5.
Consideraciones de Seguridad y Privacidad Sociedad, ética y la Profesión (SEP) -Security

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 I: Fundamentos del Desarrollo (6 horas) [Habilidades AG-C04,AG-C09]

Referencias Bibliográficas: [Deitel and Deitel, 2017Hellman, 2013]

Temas

1.
Desarrollo con
a)
Lenguajes de programación móvil
b)
Entornos de programación móvil
2.
Restricciones de la plataforma móvil
a)
Diseño de interfaz de usuario Interacción Humano-Computadora (HCI) -UnderstandingUser
b)
Seguridad
3.
Acceso
a)
Acceso a datos a través de APIs Gestión de Datos (DM) -QueryConstruction
b)
Diseño de puntos finales de API (endpoints) para aplicaciones móviles: trampas y consideraciones de diseño
c)
Interfaces de red y web Redes y Comunicaciones (NC) -Fundamentals,DM-DataModeling

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]

Referencias Bibliográficas: [Deitel and Deitel, 2017Hellman, 2013]

Temas

1.
Desarrollo
a)
Desarrollo nativo (native) versus multiplataforma (cross-platform)
b)
Patrones de diseño/arquitectura de software para aplicaciones móviles Ingeniería de Software (SE) -Design
2.
Restricciones de la plataforma móvil
a)
Diseño de interfaz de usuario responsivo (responsive) Interacción Humano-Computadora (HCI) -AccessibilityInclusiveDesign
b)
Heterogeneidad y movilidad de los dispositivos
c)
Diferencias en las experiencias de usuario (por ejemplo, entre aplicaciones móviles y basadas en web)
d)
Compensación (tradeoff) entre energía y rendimiento
3.
Especificación y pruebas Fundamentos de Desarrollo de Software (SDF) -Practices,SE-Validation

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]

Referencias Bibliográficas: [Deitel and Deitel, 2017Hellman, 2013]

Temas

1.
Capacidades (affordances) de la computación móvil
a)
Aplicaciones conscientes de la ubicación (location-aware)
b)
Computación impulsada por sensores (por ejemplo, giroscopio, acelerómetro, datos de salud de un reloj)
c)
Telefonía y mensajería instantánea
d)
Realidad aumentada Gráficos y Técnicas Interactivas (GIT) -Immersion
2.
Computación asíncrona Computación Paralela y Distribuida (PDC) -Algorithms
a)
Diferencia con la programación síncrona tradicional
b)
Manejo del éxito mediante devoluciones de llamada (callbacks)
c)
Manejo de errores de forma asíncrona
d)
Pruebas de código asíncrono y problemas típicos en las 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.7. SPD-SEP/Interactiva (10 horas) [Habilidades AG-C04,AG-C09]

Referencias Bibliográficas: [Duckett, 2014Deitel 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]

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) Gestión de Datos (DM) -QueryConstruction
a)
Apache Spark
b)
Visualizaciones de Datos Gráficos y Técnicas Interactivas (GIT) -Visualization
3.
Presentaciones Interactivas Respaldadas por Datos
4.
Herramientas de Diseño con Bucles de Retroalimentación de Baja Latencia (Low-Latency Feedback Loops)
a)
Herramientas de renderizado
b)
Herramientas de diseño gráfico

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

[Fielding, 2000]

[Gasca, 2021]

[Flanagan, 2020]

[Duckett, 2014]

[Deitel and Deitel, 2017]

[Hellman, 2013]

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

Escanea para abrir en tu teléfono