INTRODUCCIÓN AL CURSO¶
En la implementación de experiencias interactivas es necesario capturar información del mundo físico usando sensores; procesar dicha información con las reglas definidas en el diseño de la experiencia interactiva por medio de plataformas de software interactivas; y modificar el mundo físico usando actuadores. La correcta INTEGRACIÓN de los tres procesos anteriores es fundamental para el funcionamiento adecuado de la experiencia. Este curso buscará entonces que el estudiante entienda y use los fundamentos, herramientas y procesos mediante los cuales es posible INTEGRAR sensores, sistemas de cómputo y actuadores para la correcta construcción de experiencias interactivas. En el curso se aprenderá a modelar y programar el software de los controladores usando máquinas de estado; a comunicar los diferentes sistemas mediante protocolos de comunicación seriales de tipo binario, ASCII e híbridos; y las técnicas de programación concurrente en la plataforma de software para integrar los datos de los sensores al contenido digital de la experiencia.
Finalmente, para abordar este curso, es necesario que el estudiante tenga las competencias de programación adquiridas en los cursos de fundamentos de programación y programación y diseño orientada a objetos. Adicionalmente, es deseable que tenga las competencias en sistemas embebidos desarrolladas en taller 5.
¿Para qué sirve este curso?¶
Para aprender a integrar sistemas de cómputo con sensores y actuadores conectados a controladores mediante la utilización de puertos de comunicación serial.
Descripción del curso¶
El objetivo del curso es aprender a integrar sensores y actuadores a sistemas de cómputo para la producción de experiencias interactivas.
Propósito del curso¶
El entendimiento y la creación de sistemas que integren sensores, actuadores y sistemas de cómputo que permitan leer el entorno físico y también modificarlo permitiendo de esta manera el prototipado y la producción de experiencias interactivas.
Capacidades humanas y competencias¶
- Materializa sistemas intermediados por el entretenimiento digital para resolver problemas de acuerdo con requerimientos condicionados por el contexto (Materialización).
- Construye aplicaciones que posibilitan la interacción entre personas, mediada por tecnologías digitales, utilizando lenguajes y metodologías apropiadas según el contexto (Ingeniería de software).
Estructura y metodología del curso¶
El curso está divido en 4 unidades:
- Unidad 1: Software para sistemas embebidos
- Unidad 2: Protocolos ascii
- Unidad 3: Protocolos binarios
- Unidad 4: Plataformas de software interactivas de tiempo real
Cada unidad estará constituida por tres fases:
- Fase 1: fundamentación. En esta fase estudiarás los conceptos teóricos más relevantes de cada unidad. Así mismo complementarás con lecturas. En esta fase debes repasar los conceptos olvidados de los semestres anteriores.
- Fase 2: proyecto. En esta fase se realizarán uno o más proyecto.
- Fase 3: evaluación. En esta fase se discute el resultado de los proyectos de la unidad.
Cronograma¶
Te recomiendo que organices tu tiempo para hacer cada 4 semanas una unidad del curso.
Evaluación¶
Cada unidad tiene un peso del 25% en la nota final.
La unidad solo se considera terminada cuando termines todos los ejercicios y los proyectos que están en ella al 100%. Por tanto, la nota de cada unidad, una vez la termines, será 5.
Puedes entregar cada unidad cuando quieras, pero considera lo siguiente:
En la semana 8 haré un primer corte del 50% y reportaré al sistema las unidades terminadas. Ten presente que la evaluación se realiza mediante una entrevista con el profesor en la cual discutiremos los resultados de tu trabajo y recibirás retroalimentación personalizada. Para la semana 8 deberías tener terminadas las unidades 1 y 2. Si no alcanzas, cuando las termines se actualizará tu nota.
En la semana 17 se reportaré al sistema todas las unidades terminadas. ES MUY IMPORTANTE que tengas en cuenta que una unidad se considera terminada SI y SOLO si la completaste al 100% y realizaste el proceso de evaluación con el docente.
Dedicación¶
Este curso es de 3 créditos repartidos en 2 horas de trabajo presencial mediado por TIC y 7 horas de trabajo autónomo.
Actividades de cada unidad¶
Actividad 1: encuentros sincrónicos¶
- Fechas: miércoles a las 2 p.m.
- Descripción: asesorías en tiempo real y evaluación.
- Recursos: ingresa a Discord
- Duración de la actividad: sesiones de 1:40.
- Forma de trabajo: individual-colaborativo/sincrónico
Actividad 2: fundamentación¶
- Descripción: realiza los ejercicios, retos y preguntas propuestas.
- Recursos: trayecto de actividades en cada unidad.
- Duración de la actividad: depende de ti.
- Forma de trabajo: individual-colaborativo
Actividad 3: proyectos y sustentación¶
- Descripción: realiza los proyectos, usa las herramientas de control de versión y productividad y actualiza tu portafolio.
- Duración de la actividad: depende de ti.
- Forma de trabajo: individual.
Evidencias de evaluación¶
Código de honor¶
Para realizar el trabajo de cada unidad se espera que hagas lo siguiente:
- Colabora con tus compañeros cuando así se indique.
- Trabaja de manera individual cuando la actividad así te lo proponga.
- No busques la solución a los ejercicios y proyectos porque DAÑARÍAS tu proceso de aprendizaje. Recuerda, se trata de seguir un camino y aprender en el recorrido.
- ¿Entonces qué hacer si no me funciona algo? Te propongo que experimentes, crea hipótesis, experimenta de nuevo, observa y concluye.
- NO OLVIDES, este curso se trata de pensar y experimentar NO de BUSCAR soluciones en Internet.
Detalle de las evidencias¶
Vamos a utilizar dos herramientas para la presentación de evidencias, tanto para los ejercicios de fundamentación como para los proyectos.
- GitHub
- Notion
En GitHub mantendrás todo tu código bajo control de versión y debe reflejar un flujo de trabajo. Debes evidenciar el flujo de trabajo.
En Notion vas a presentar la documentación de la fundamentación y del proyecto o proyectos de cada unidad. El formato de tu documentación es libre, pero deberás incluir al menos lo siguiente:
- ¿De qué se trataba el proyecto? ¿Cuál era el problema a resolver?
- Presenta tus resultados: muestra un video del proyecto funcionando.
- Explica cómo resolviste el problema.
- No olvides dejar un enlace a tu repositorio público en GitHub.
- Tu repositorio público debe reflejar un PROCESO por tanto debes tener commits muy frecuentes. Conserva la rama principal de tu repositorio estable, es decir, cada que implementes características nuevas en tu código crea una rama y luego realiza merges a la rama principal. No es necesario que borres las ramas que crees.
¿Cómo inicio con Notion? Te dejo aquí un enlace.
Control de versión¶
- Crea una cuenta en GitHub con tu correo institucional de la UPB. Si tienes la cuenta, tanto mejor.
- Explora este sitio y solicita, por medio de tu cuenta de GitHub, el paquete de herramientas para estudiantes. Este proceso requiere aprobación, así que te recomiendo que lo hagas YA.
- Ingresa a este sitio y realiza el curso corto sobre Git.
- Finalmente, observa el siguiente video para que analices un posible flujo de trabajo típico con una herramienta de control de versión y de productividad (puedes emplear notion para la creación de tus boards de tareas)