Posgrados en Tecnología informática CONTENIDOS MÍNIMOS Actividades curriculares obligatorias 01- Elementos avanzados de bases de datos Principales desafíos del mapeo objeto-relacional. Diferencias entre el paradigma orientado a objetos y el paradigma relacional. Diferencias en las interpretaciones de los mismos conceptos (jerarquía, herencia). Mapeo de cada uno de los conceptos de objetos. Estrategias de mapeo. Esquemas optimistas /pesimistas. Transacciones. Versionamiento. Patrón de diseño DAO. Framework de mapeo Hibernate. Bases de datos XML. Introducción. Conceptos básicos de XPath y XQuery: historia, navegación en XPath. Acceso a nodos XML. Acceso a contenidos de los nodos XML. Instrucciones de XQuery, for, let, order by, where, return. Ejemplos básicos de bases de datos XML nativas. Ejemplos de utilización de bases de datos XML para el almacenamiento de documentos e información de la estructura de directorios. Consultas básicas. Bases de datos orientadas a objetos. Introducción. Principales conceptos: navegación, manifiesto de las bases de datos. Características obligatorias y opcionales, demarcación de transacciones, versionamiento, cambios en el esquema, cambios hard y cambios soft, invariantes. Persistencia por alcance, Operaciones C.R.U.D. Patrón de diseño Root Object, Patrón de diseño Repository, Lenguaje de consulta OQL. Conceptos avanzados. Manejo de transacciones. Utilización de aspectos. Utilización del framework Spring. Inyección de dependencias. 02- Redes y Sistemas Distribuidos Arquitectura de las Redes. Redes de Área Local de Acceso Aleatorio y determinístico. Redes LAN inalámbricas. Tecnología de redes maduras. Tecnologías dominantes en las redes TCP/IP. Otros protocolos empleados en redes WAN. Seguridad en redes de datos. Sistemas Distribuidos. 03- Diseño Avanzado Orientado a Objetos Software como Modelos Ejecutables: Modelado de Software, Razonamiento sobre el dominio. Lenguajes de Clasificación y prototipados. Heurísticas de Diseño: Abstracción y Cohesión entre Objetos. Herencia vs Clasificación. Inmutabilidad de Objetos. Creación de Objetos. Esencia de los objetos. Protocolos como especificación de comportamiento. Patrones avanzados de Diseño: Patrones de Diseño, Captura de soluciones Recurrentes. Desarrollo de Software basado en Test: Introducción al Test Driven Development. Conceptualización Teórica del diseño de software. Modelos ejecutables vs modelos estáticos. 04. Métodos Formales en la Ingeniería de Software Lógica proposicional: La lógica. Lenguajes, modelos, satisfacción, verdad, deducción. Sintaxis y semántica: enunciados y conectivas, funciones de verdad, reglas de manipulación y sustitución. Conjuntos adecuados de conectivas. Definición de un sistema deductivo. El teorema de la deducción. Corrección y completitud. Técnicas de prueba: La estructura de una prueba formal. Prueba directa. Prueba por contraejemplo. Prueba por contradicción. Prueba por inducción matemática. Lógica de predicados de primer orden: Sintaxis: predicados y cuantificadores, Scope, variables libres y ligadas. Semántica: interpretaciones, satisfacción Plan de Estudios Maestría en Tecnología Informática y verdad. Definición de un sistema deductivo. Corrección y completitud. Decidibilidad. Teorías Matemáticas de primer orden: sistemas de primer orden con igualdad, teoría de grupos, aritmético de primer orden, teoría de conjuntos. Lenguajes Formales de modelado: Características generales de los lenguajes de modelado formales. Ventajas y desventajas. Presentación y análisis de los principales lenguajes formales de modelado: Object-Z. UML/OCL. Verificación de programas: Lógica Modal y programas. Razonando sobre programas: estados, ejecuciones, verificación parcial y total. Lógica de Hoare. Spec#. JML. 05. Metodología de la investigación El conocimiento científico. La ciencia: un proceso histórico. El trabajo científico: Paradigmas científicos. Los métodos científicos. Presupuestos epistemológicos. La investigación científica. Investigación en ciencias experimentales. Investigación en ciencias teóricas. Fuentes bibliográficas para la investigación científica. Ciencias formales, método axiomático deductivo. Ciencias Fácticas, método hipotético deductivo. Diferencias entre ciencia y tecnología Ciencia, tecnología y método científico. Investigación en informática. Investigación teórica. Investigación experimental. Investigación aplicada. Investigación cuantitativa y cualitativa. Método de investigación científico y tecnológico. El método científico en las ciencias informáticas 06- Seminario de Actualización Tecnológica Actualizaciones referidas a temas o problemas emergentes en las áreas de Ingeniería de Software, e ingeniería WEB 07- Seminario de trabajo final La problemática de la escritura y defensa del trabajo final de posgrado. El plan de trabajo final. Planteamiento del problema de investigación. Objetivos de la investigación. Preguntas de investigación. Justificación de la investigación. Principales problemas al escribir un artículo científico. Plagio. Diferencias entre citas y referencias bibliográficas. Tipos de citas: textuales, referencias no literales. Intertextualidad. Normas y estilos de referencia. Pautas generales para presentación de trabajos en forma oral. Plan de trabajo final: Titulo del trabajo; Introducción, fundamentos y antecedentes. Objetivos del trabajo (generales y específicos); Cronograma de trabajo. Propuesta iterativa e incremental para el desarrollo del plan de trabajo final. El planteo de hipótesis en la investigación científica. Variables, tipos y relaciones entre variables. Hipótesis: conceptos generales. Planteo de hipótesis, prueba de hipótesis. Las hipótesis en las ciencias informáticas. El marco teórico en las ciencias informáticas. Funciones del marco teórico. Elaboración del marco teórico. Características del marco teórico en ciencias Informáticas. Marco teórico vs trabajos relacionados. Las partes principales de la tesis o trabajo final. Resumen. Introducción, Fundamentación, Objetivos, Metodología, Resultados. Desarrollo. Conclusiones Futuras líneas de investigación. Modelo genérico de trabajo final. 08- Optativa Los espacios optativos ofrecen oportunidad de profundización, y/o actualizaciones de conocimientos, en áreas específicas del campo objeto de estudio abordado, permitiendo que los alumnos complementen la formación con asignaturas de libre elección conforme a sus intereses. 09- Optativa 2 Plan de Estudios Maestría en Tecnología Informática Los espacios optativos ofrecen oportunidad de profundización, y/o actualizaciones de conocimientos, en áreas específicas del campo objeto de estudio abordado, permitiendo que los alumnos complementen la formación con asignaturas de libre elección conforme a sus intereses. 10- Optativa Los espacios optativos ofrecen oportunidad de profundización, y/o actualizaciones de conocimientos, en áreas específicas del campo objeto de estudio abordado, permitiendo que los alumnos complementen la formación con asignaturas de libre elección conforme a sus intereses. 11- Pasantía Tecnológica El Trabajo de Pasantía Tecnológica constituye una actividad curricular obligatoria, destinadas a los alumnos cursantes de la Carrera de Postgrado cuyo propósito se centra en la promoción de oportunidades contextualizadas, para la actualización, profundización y optimización de las competencias investigativas inherentes al perfil. La pasantía tecnológica deberá ajustarse a lo establecido en anexo II del reglamento de la carrera. 12- Trabajo final de Maestría El alumno deberá elaborar y defender oralmente un Trabajo Final de Maestría de carácter individual. Asume el carácter de un proyecto que evidencie la integración de los aprendizajes realizados en el proceso formativo, la profundización de conocimientos del campo profesional y el manejo de destrezas y perspectivas innovadoras en la profesión. El Trabajo Final deberá ajustarse a lo establecido en el Anexo I del Reglamento de la Carrera. 3.1. Asignaturas Optativas 13- Ingeniería de Requerimientos Las dificultades esenciales del software. Problemática de la representación / modelo / descripción. Dificultades para comprender los requerimientos. El punto de vista de los diferentes stakeholders. Requerimientos. Clasificación de requerimientos. Importancia de requerimientos. Requerimientos funcionales y requerimientos no funcionales. Ingeniería de Requerimientos. Alcance de la Ingeniería de Requerimientos. Especificación de Requerimientos de Software (SRS). Usos y usuarios de la especificación. Características de la SRS. Estándar IEEE 830. Esquemas posibles de una especificación de requerimientos. Análisis del proceso de requerimientos en las metodologías Agiles. Comparación con su aplicación en enfoques de desarrollo tradicionales. Concepto de Gestión de Requerimientos. Actividades y mejores prácticas de la Gestión de Requerimientos. Políticas y prácticas para la trazabilidad. Priorización de requerimientos. Glosarios en la especificación de requerimientos. Léxico Extendido del Lenguaje. Objetivo y estructura. Categorización de símbolos. Descripción de las distintas categorías. Proceso de construcción. Construcción del LEL. Descripción de noción e impactos. Utilización de referencias. Frases débiles. Relaciones “es un”, “desempeña rol” y “tiene un”. Identificación de características transversales (crosscutting concerns). Organización de los símbolos de acuerdo con los estados. Estrategia de conteo de referencias. Derivación de requerimientos. Requerimientos 3 Plan de Estudios Maestría en Tecnología Informática del estilo IEEE 380. Historias del Usuario (User Stories). Casos de Uso (Use Cases) Cálculo del tamaño de la aplicación en forma temprana usando el LEL. 14- Desarrollo de software con Métodos Formales y UML Características generales de los lenguajes de modelado gráficos. Los principales diagramas UML (Lenguaje Unificado de modelado). La filosofía y etapas del proceso de desarrollo de software. Proceso de desarrollo iterativo e incremental (RUP) basado en Modelos a través de un caso de estudio. Uso de OCL (lenguaje de restricción de objetos) para especificar operaciones y restricciones (invariantes, etc.) del modelo en general. La técnica del metamodelado. Background. Foundation Core. Foundation. Tipos de datos. Elementos de comportamiento: comportamiento común. Colaboraciones. Use Cases. Máquinas de estado. Mecanismos de extensión en UML. Estereotipos: semántica, notación, ejemplos. Sintaxis abstracta, reglas de buena formación. El Modelado de Procesos (BPM) en la Ingeniería de Software. Diagramas de Actividad UML para el modelado de procesos. BPMN (Business Process Modeling Notation). Introducción, Elementos, Metamodelo. Uso y aceptación por parte de los usuarios y los ingenieros de software. Análisis y uso de CASE-tools existentes (Enterprise Architect y Papyrus) y su relación con los métodos formales. 15- Reingeniería y Refactoring de Software Introducción a patrones como técnica de documentación. Identificación de problemas y soluciones recurrentes. Tipos de patrones: diseño, análisis, arquitectura de software, usabilidad. Introducción a la técnica de refactoring. Cuándo, cómo y por qué surge esta técnica. Su relación con las metodologías ágiles. Refactoring de código. Catálogos de refactoring de lenguajes orientados a objetos y lenguajes estructurados. Automatización del refactoring. Componentes principales de las herramientas de refactoring y funcionamiento de estas herramientas. Refactoring hacia patrones. Introducción de patrones de diseño una vez que la aplicación ha sido desarrollada, para mejorar su estructura interna. Refactoring para mejorar atributos de calidad externos de una aplicación. Refactorings para mejorar usabilidad. 16- Conceptos Avanzados de Transformaciones de Modelos El desarrollo de software basado en modelos (MBD). El desarrollo de software dirigido por modelos (MDD). Propuestas concretas para MDD. Tipos de modelos y transformaciones. Lenguajes de modelado y transformación. Herramientas de soporte para MDD. Mecanismos para definir la sintaxis de un lenguaje de modelado. La arquitectura de 4 capas de modelado de OMG. El uso del metamodelado en MDD. MOF: el lenguaje de modelado más abstracto. Implementación de MOF – Ecore. El rol de OCL en el metamodelado. Principales mecanismos para definir transformaciones modelo a modelo. Requisitos para los lenguajes M2M. El estándar QVT para expresar transformaciones de modelos. El estándar de-facto ATL para expresar transformaciones de modelos. Características de los lenguajes modelo a texto. Motivación para su definición. Requisitos. El estándar Mof2Text para expresar transformaciones modelo a texto. Traceability (rastreo de elementos desde texto). Verificación y validación. Tipos de pruebas. U2TP. JUnit y EasyMock. Transformación de modelos de prueba a código. Validación de la semántica de la transformación. Las promesas de MDD. Los obstáculos que enfrenta MDD. Las tendencias del desarrollo de software dirigido por modelos 4 Plan de Estudios Maestría en Tecnología Informática 17- Ontología y Web Semántica La Web Semántica. Motivación de la aplicación de tecnologías de la Web Semántica. Datos en la Web. Introducción a la Web de Datos. Análisis de aplicaciones que se basan en la Web de datos (MAshUps, tecnologías móviles, recomendadores, RSS). Formas de datos en la Web 1. Datos estructurados. Ejemplos de datos publicados en la Web: documentos estructurados (XML y XSLT), microformatos (vCard), microdatos+schema.org. Reutilización de datos estructurados. Formas de datos en la Web 2. Introducción Tecnologías de la Web Semántica. Necesidad de la semántica en la Web. Tecnologías Web Semánticas: el enfoque en capas. Metadatos: RDF - Expresión de sentencias sobre objetos. Recursos. Propiedades. Sentencias: ternas, representación basada en grafos, representación en XML. Ontologías: RDF schema: clases, propiedades, jerarquía de clases, jerarquía de propiedades. Web Ontology Language (OWL) clases, propiedades, instancias, tipos de datos. Espacio de nombres. Clases de Clases. Clase de Equivalencia. La Web de Datos. URIs para nombrar cosas. Dereferenciación de URIs. Usando RDF schema. Pensar aplicaciones linkeando datos. Links relacionales, de identidad de vocabularios. El movimiento LOD (linking open data). Las 5 estrellas de LOD. Consultas y Sparql. Frameworks para la web semántica. Búsquedas semánticas. Linking Open Data. MashUps semánticos. Consumiendo datos en la web. Criterios de selección de datos, de vocabularios. Combinación de datos. Criterios de combinación de datos. 18- Verificación Formal de Software Verificación Formal: Lineamientos generales del área y sus fundamentos. Especificación Formal del Comportamiento: Notaciones Declarativas. Lógicas Temporales Lineales Lógicas Temporales de tipo Branching. Notaciones Operacionales. Sistemas de Transición Etiquetados. Model Checking: Tipos de Model Checking. Fundamentos. Algoritmos de Model Checking. Casos de Estudio utilizando herramientas relevantes. SPIN, NuSMV, NuXMv, MTSA. Modelado de Procesos: Procesos secuenciales. Composición Paralela de Procesos. Concurrencia, deadlock, livelock. Especificación Avanzada: Propiedades de tipo Safety. Propiedades de tipo Liveness. Nociones de Fairness. Relación con Modelado de Software. Especificaciones formales a partir de casos de uso. Especificaciones formales a partir de diagramas de Secuencia. Automatización de modelos 19- Desarrollo de Aplicaciones Empresariales Características generales de las Metodologías Ágiles. Ejemplos: Scrum, Kanban, Lean. Artefactos de requerimientos usuales: Mockups, User Stories, Use Cases. Prototipado. Herramientas de planning. Testing: tipos, usos, técnicas. Test-Driven Development Versionado de código. APIs REST. Desarrollo modular. Técnicas de escalabilidad para frontend y backend (colas, threads, CDNs.). Integraciones Infraestructura: Load balancing, autoscaling, containers. Single-Page Web Applications. Responsive Design. AMPs y Progressive Web Applications. Tecnologías Mobile. Tecnologías Nativas. Tecnologías Híbridas. Tecnologías Nativas/Híbridas. Infraestructura y virtualización. Docker. Servicios Cloud. Monitoreo, detección de problemas en producción 20- Desarrollo de aplicaciones web dirigidas por modelos Conceptos básicos de aplicaciones Web (Nodos, links, páginas) Tipos de aplicaciones en el Web. Desarrollo conducido por modelos. Modelos, transformaciones de modelos. Modelos en la Web, Introducción. Diseño de Navegación. Diseño de Interfaces. Maquetado, y diseño abstracto. Del Diseño a la Implementación. Personalización de aplicaciones Web. 5 Plan de Estudios Maestría en Tecnología Informática Modelización de roles. Reuso de diseño: Patrones de navegación y de interfaz. Introducción al maquetado de interfaces. Ejemplos. Herramientas. Conceptos básicos de testing. Introducción a TDD. Desarrollo de aplicaciones Web dirigido por pruebas. Introducción a AngularJS. Introducción iterativa de funcionalidad. Pruebas con tests de regresión. Pasaje a producción introduciendo recursos. MockupDD vs AngularJS. Introducción a WebML. Ejemplos. WebRatio. 21- Usabilidad en Aplicaciones Web Aspectos cognitivos pertinentes a la interacción con productos de software. Los modelos mentales y el modelo de las siete fases de la acción. Manejo de errores. La importancia de la representación. Diagnóstico de problemas. Procedimientos y técnicas para el análisis de casos. Recorrido cognitivo: recursos necesarios, planificación, definición de la tarea. Evaluación de los datos. Patrones y buenas prácticas de diseño. Técnicas de relevamiento y especificación orientadas a las tareas. Personajes. Arquitectura de información. Herramientas de diseño: modelos conceptuales en el diseño de software. Reglas heurísticas de usabilidad. Uso de prototipos. Pruebas de usuario. Diseño de tareas, preparación del laboratorio, reclutamiento de voluntarios. Ejecución de pruebas y análisis de datos. 22- Ingeniería Web La problemática de construcción de aplicaciones Web complejas. Desventajas de enfrentar el desafío mediante codificación. Ingeniería de software en aplicaciones WEB. Arquitecturas específicas y frameworks de desarrollo. Visión de un modelo de aplicación Web como unión de modelos de distintas incumbencias. Modelos conceptuales, comparación con modelos E/R y OO. Modelos Navegacionales. Mapeo de modelo conceptual a navegacional. Modelo de interfaz y navegación. Diferencias con interfaz concreta. Generación de código a partir de transformaciones de modelos. OOHDM. UWE. WebML. NDT. El impacto de UML en el desarrollo de software. IFML, el lenguaje estándar para interacción. Sintaxis y semántica de IFML. Comportamientos sofisticados de interfaz (RIA). Limitaciones de los métodos existentes. 23- Personalización de contenido y adaptación de interfaces de usuario en aplicaciones Web Introducción a la Web. Aspectos fundamentales de las aplicaciones Web: arquitectura, protocolos. Personalización de contenido: Modelado de perfil de usuario. Algoritmos de recomendación. Mecanismos de adaptación. Adaptabilidad: Conceptos básicos. Plasticidad. Métodos y mecanismos de adaptación de UI. La Web adaptativa: Hipermedia adaptativa. Mecanismos de adaptación de UI en aplicaciones Web en MDWE. Adaptación de Web en dispositivos móviles. Nuevas dimensiones para la adaptación Web, ej.: DUI. Estudio de un dominio: Accesibilidad. Adaptación externa de aplicación Web: Introducción y motivación. Requerimientos no contemplados de usuarios finales. Arquitecturas: proxy vs client-side. Técnicas: transcoding, mashups, aumentación web, UI Refactoring. El rol de End-User Programming en la Web. Experiencia de usuario final: más allá de la adaptación Web. 24- Dispositivos Móviles: Diseño, Tecnologías y Aplicaciones Dispositivos Móviles. Tecnologías, Conectividad. Aplicaciones: Diferencias entre APP nativas y Móviles Sistemas Operativos: Características de los Sistemas Operativos Móviles. Conceptos y su aplicación: Accesibilidad, Usabilidad, Experiencia de Usuario. Pruebas con usuarios finales. Prototipados: Herramientas y Características. Diseño Adaptativo: 6 Plan de Estudios Maestría en Tecnología Informática Principios y Pautas. Enfoque Mobile First. Gamificación: Elementos, Componentes y Aplicación. Estándares: Análisis de los estándares del W3C. Estandarización: Etapas de estandarización y Grados de Madurez. Estado del Arte: Mapa de ruta, nuevos estándares. Hardware: Componentes y sensores disponibles en dispositivos móviles. Aplicaciones Sensibles al Contexto. Interfases tangibles: Nuevas Formas de Interacción. Desafíos tecnológicos. Nuevos campos de aplicación. Soluciones innovadoras 25- Metodologías Ágiles Metodología. Conceptos. Tipos de Metodologías. Ciclos de Vida durante el proceso de desarrollo de software. Fases de análisis y diseño. WaterFall. Espiral. Prototipos. Ámbitos de aplicación. Proceso de software orientado a aspectos. Proceso Unificado. Fases. Calidad del software. Del Modelo en Cascada a las Metodologías Ágiles. Introducción. Historia. El manifesto ágil. Metodologías de gestión y de desarrollo de software. Concepto de agilidad. Característic as generales. Ventajas y Desventajas. Principios de agilidad. Factores Humanos. Scrum: Características. Artefactos. Roles. Dinámica. Múltiples equipos de scrum. Gestión de equipos distribuidos. Lista de comprobación del scrum master. Técnicas de retrospectiva. Programación Extrema: Características. Combinación con Scrum. Desarrollo guiado por pruebas. Pruebas unitarias. Pruebas de integración. TDD. ATDD. Integración y entrega continua. Desarrollo Evolutivo. Proceso ágil de análisis. Historias de usuario eficientes. Historias técnicas. Estimación ágil. Planning Poker. Métodos Delphi. Release plan. Release y backlog burndown chart. Costo del proyecto. 26- Diseño de Aplicaciones Móviles Colaborativas Dispositivos móviles. Introducción a los conceptos básicos en el contexto de los dispositivos móviles. Sistemas operativos Móviles. Tipos de Aplicaciones Móviles: Aplicaciones Nativas, Móviles Web e Híbridas. Usos y Aplicaciones. Diseño de aplicaciones Mobile. Arquitecturas Mobile. Sensores y componentes de los dispositivos móviles por medio de APIs. Trabajo Colaborativo. Concepto de trabajo colaborativo. Actividades de coordinación, cooperación y colaboración. Concepto de software para trabajo en grupo o Groupware. Tipos de software para trabajo en grupo. Concepto de Awareness. Patrones de colaboración y Thinklets. Crowdsourcing. Concepto de Crowdsourcing. Tipos de Crowdsourcing. Uso y aplicaciones. Metodología de Crowdsourcing en la interacción de participantes. Crowdsourcer. Interacción entre el Crowdsoucer y los colaboradores. Problemáticas y niveles de criticidad. Metodología de colaboración. Escenarios de aceptación y rechazo. Aplicaciones colaborativas. Introducción a Webservices. Manejo de herramientas para diseñar aplicaciones móviles colaborativa. Definición e implementación de Frameworks para el desarrollo de aplicaciones móviles colaborativas. Boostrap. Proyectos Responsive y Mobile-First. Tipos de Bases de datos mobile. 27- Tópicos Avanzados de Ingeniería de Requerimientos Las dificultades esenciales del software. Problemática de la representación / modelo / descripción. Dificultades para comprender los requerimientos. El punto de vista de los diferentes stakeholders. Requerimientos. Clasificación de requerimientos. Importancia de requerimientos. Requerimientos funcionales y requerimientos no funcionales. Ingeniería de Requerimientos. Alcance de la Ingeniería de Requerimientos. Especificación de Requerimientos de Software (SRS). Usos y usuarios de la especificación. Características de la SRS. Estándar IEEE 830. Esquemas posibles de una especificación de requerimientos. Análisis del proceso de requerimientos en las metodologías Agiles. Comparación con su 7 Plan de Estudios Maestría en Tecnología Informática aplicación en enfoques de desarrollo tradicionales. Concepto de Gestión de Requerimientos. Actividades y mejores prácticas de la Gestión de Requerimientos. Políticas y prácticas para la trazabilidad. Priorización de requerimientos. Glosarios en la especificación de requerimientos. Léxico Extendido del Lenguaje. Objetivo y estructura. Categorización de símbolos. Descripción de las distintas categorías. Proceso de construcción. Construcción del LEL. Descripción de noción e impactos. Utilización de referencias. Frases débiles. Relaciones “es un”, “desempeña rol” y “tiene un”. Identificación de características transversales (crosscutting concerns). Organización de los símbolos de acuerdo a los estados. Estrategia de conteo de referencias. Derivación de requerimientos. Requerimientos del estilo IEEE 380. Historias del Usuario (User Stories). Casos de Uso (Use Cases) Cálculo del tamaño de la aplicación en forma temprana usando el LEL. 28- Data Analitic y Big Data Preprocesamiento de datos. Limpieza de Datos. Integración y transformación de datos. Reducción: diversas técnicas. Discretización. Principios de Data Warehousing. Arquitecturas OLAP, MOLAP, ROLAP, HOLAP. El Data Mining. Fases. Tipos de tareas. Aplicaciones. Enfoque al problema de clasificación. Árboles de inducción. Medidas de calidad. Fenómeno de precisión y overfitting. Estrategias. Interpretación del error. Manejo y elicitación. Arquitecturas de clasificadores. Las redes neuronales. Entropía y vector quantization. Algoritmos y heurísticos de aprendizaje. Tipos de regresiones. Algoritmos. Comparativa. Aglomeración contra particionamiento Tipos de distancias. Aplicaciones a Kmeans. Medidas de validez. Variables. Funciones difusas y conversión a variables métricas. Operadores y operaciones. Algorítmica. BIRCH y Two Steps. Survival Analysis y CURE. Deep Neural Networds. Deep Belief Networks. 29- Ciencia Abierta y Ciudadana Tipos de proyectos de ciencia ciudadana. La ciencia ciudadana como un sistema computacional humano a larga escala. Formas de participación de los ciudadanos. Formas de retribución y reconocimiento a los voluntarios. Recolección, clasificación, y transformación de muestras. Resolución de problemas complejos. Patrones frecuentes en la definición y ejecución de proyectos de ciencia ciudadana. Aspectos multidisciplinares. Desafíos metodológicos. Ingeniería de colaboración. Asociaciones de Ciencia Ciudadana. Principios de la ciencia ciudadana. Groupware y trabajo colaborativo. Tecnologías para tareas de muestreo. Tecnologías para clasificación de muestras. Tecnologías para análisis y transformación de muestras. Tecnologías para resolver problemas específicos. Principios colaboración en la resolución de problemas complejos. Formas de crowdsourcing. Tecnologías y servicios de crowdsourcing. Casos más representativos. Escala y actividad de una comunidad saludable de voluntarios. Estrategias para consolidar y sostener una comunidad saludable. La ludificación como estrategia de gestión de la comunidad. 30- Trabajo y Aprendizaje Colaborativo Asistido por TIC Revisión de los orígenes del software para trabajo colaborativo y su evolución. El On-Line System de Engelbart. Del CSCW a las redes sociales. De la web unidireccional a los blogs/wikis y el bookmarking social. Groupware: definiciones, clasificaciones y principios del software para trabajo colaborativo. El groupware como una herramienta en el CSCW (trabajo colaborativo) y CSCL (aprendizaje Colaborativo). Coordinación/Comunicación/Colaboración. Awareness. Groupware de Conversación: EMail, Mensajería, Teleconferencia: principios y especializaciones. Sistemas de 8 Plan de Estudios Maestría en Tecnología Informática argumentación. Workflows de conversación. Herramientas ad-hoc de conversación (p.e., en entornos educativos). Groupware de Coordinación: Workflows. Workflows basados en datos/estado vs workflows basados en tareas. Estándar de definición de workflows. Tecnologías para construcción de workflows. Listas de tareas. Calendarios compartidos. Groupware de Colaboración: Editores colaborativos sincrónicos y asincrónicos. Groupware combinando grandes pantallas y dispositivos móviles. Groupware de moderación de reuniones. Sistemas de diseño colaborativo. Sistema de soporte a la toma de decisión en grupo. Diseño de groupware: Principios y métodos para el diseño de software para trabajo colaborativo. Porqués del fracaso/éxito del groupware. Principio de co-evolución. Tailoring. Implementación de groupware: Estrategias y técnicas para la implementación de software para trabajo colaborativo. Redes (y aplicaciones) Peer 2 Peer. Frameworks de groupware. Software Social: Redes sociales. Los usuarios como autores de contenidos y aplicaciones. Mundos/Culturas virtuales (MUDs, SecondLife). Blogs y Wikis. Enterprise 2.0: software social en la empresa. Ingeniería de colaboración: Facilitación. Sistemas de facilitación electrónica. Patrones de colaboración: Thinklets 31- Desarrollo por Usuarios Finales de Aplicaciones de Aumentación Web Manipulación del DOM del lado del cliente. Bookmarklets, userscripts. Mobile Web Augmentation. Sensado del contexto físico del usuario. Selectores para recuperar elementos del DOM: identificadores, clases, tabs, query selectors, XPaths. Técnicas para la manipulación del DOM del lado del cliente. Manipulación del DOM desde la consola Web y del navegador. Diferencias en términos de privilegios. Weavers para la inyección de scripts en páginas Web de terceros. Manipulación del DOM desde Greasemonkey/Tampermonkey. Análisis de scripts existentes. Introducción a webextensions. Qué son las webextensions. Diferencias con SDKs previos. Tipos de scripts y sus privilegios: content vs background. Interfaz del navegador: qué componentes pueden agregarse desde una webextension, con especial foco en los action buttons del toolbar. Internacionalización de las extensiones. NPM y el manejo de dependencias. Tipo de datos soportados como parámetros. Uso de Promesas desde los mensajes. Parametrización vs Desarrollo por Usuarios finales. Configuración de una extensión y persistencia de valores usando el LocalStorage. Formas de interacción con los elementos del DOM: event listeners sobre el contenido existente, y adición de nuevas secciones: sidebar nativo frente a la adición de un iframe al DOM La necesidad de técnicas de Desarrollo por Usuario Final (DUF). Parameterization/Customization vs Recomposition/Integration vs Extension/Altering. Técnicas de DUF y enfoques existentes: Programming by Example. Lenguaje Específico de Dominio Textual. Programación Visual. Natural Programming. Programación Dirigida por Modelos. From Search Engines to Augmented Search Services: An End-User Development Approach. MoWA Authoring: an End-User Development approach for Mobile Web Augmentation. Web Objects Ambient: an integrated platform supporting new kinds of Personal Web experiences. 32- Cloud Robotics Historia de la robótica. Autómatas. Conceptos básicos sobre Inteligencia Artificial. Tipos de comunicación para robots. Robots colaborativos. Elementos básicos de hardware para armar un robot. Programación de placas micro - controladas. Definición de Cloud Computing. Modelos de Servicios: IaaS, PaaS y SaaS. Modelos de Despliegue Cloud: Público, Privado e Híbrido. Beneficios y Riesgos. Tecnologías de Virtualización. Cloud Público. Internet de las Cosas, tecnologías, protocolos, seguridad, casos prácticos. Microcontroladores y microcomputadoras. Plataformas de IoT. 9 Plan de Estudios Maestría en Tecnología Informática 33- Diseño y Evaluación de Proyectos Tecnológicos en Educación Diseño de Proyectos TIC: Formulación de problemas. Antecedentes. Análisis de contextos de implementación o uso. Caracterización de beneficiarios/usuarios. Marco de referencia. Análisis de riesgos. Búsqueda de soluciones. Recursos humanos, materiales y financieros. Programación de actividades. Procesos de prototipeado. Implementación/Ejecución. Rediseño. Evaluación de proyectos TIC: Evaluación de impacto. Evaluación de competencias TIC de docentes y estudiantes, niveles de integración de TIC en el desarrollo curricular, cuestiones metodológicas. Lectura y análisis de las evaluaciones. 34- Diseño y Gestión de Entornos Virtuales De la modalidad a distancia a la educación en línea. Diseño y gestión de ambientes virtuales de aprendizaje. Campus virtuales. Plataformas propietarias y de código abierto, casos de uso. Gestión académica y administración de campus virtuales. Criterios de intervención pedagógica en ambientes en línea: diseño de propuestas didácticas, evaluación del aprendizaje. Colaboración e interacción en entornos virtuales; estrategias de moderación. Prospectiva de futuro. Las redes físicas y digitales. Entornos pedagógicos híbridos. Entornos de aprendizaje personales y ubicuos. Análisis de experiencias en espacios de educación formal y no formal. 35- Simuladores y Videojuegos Potencial del uso de las tecnologías de juego para el aprendizaje. Simulación educativa y enfoque constructivista: solución de problemas complejos, desarrollo de capacidades g tecnología, storyline, modos de juego, opciones de juego, mecánicas del juego, entornos, recursos del juego. Concept Art. Los niveles. HUD de realidad. La importancia del guion y la puesta en escena. Formatos híbridos novedosos que utilizan la realidad como materia. Postproducción. 36- Diseño Avanzado Orientado a Objetos Software como Modelos Ejecutables: Modelado de Software, Razonamiento sobre el dominio. Lenguajes de Clasificación y prototipados. Heurísticas de Diseño: Abstracción y Cohesión entre Objetos. Herencia vs Clasificación. Inmutabilidad de Objetos. Creación de Objetos. Esencia de los objetos. Protocolos como especificación de comportamiento. Patrones avanzados de Diseño: Patrones de Diseño, Captura de soluciones Recurrentes. Desarrollo de Software basado en Test: Introducción al Test Driven Development. Conceptualización Teórica del diseño de software. Modelos ejecutables vs modelos estáticos. 10