Cs Utec Plan2017
Cs Utec Plan2017
Cs Utec Plan2017
Ciencia de la Computación
http://cs.utec.edu.pe
– Reporte Final–
Equipo de trabajo
Resumen ejecutivo
Este documento representa el informe final de la nueva malla curricular 2017 del Escuela Profesional
de Ciencia de la Computación de la Universidad de Ingenierı́a y Tecnologı́a (http://www.utec.edu.pe)
en la ciudad de Lima-Perú.
Todo el contenido del documento está basado en la propuesta internacional denominada Computing
Curricula 1 en el área especı́fica de Ciencia de la Computación. Este documento es el resultado de un
trabajo conjunto de la Association for Computing Machinery (ACM) y la Sociedad de Computación
de IEEE (IEEE-CS) y puede ser accesado a través de la dirección http://www.acm.org/education en
sus versions CS2001, CS2008 y CS2013.
Considerando que existen peculiaridades menores al aplicar esta propuesta internacional a nuestros
paises, el modelo de Computing Curricula fue utilizado para proponer el documento base de la presente
malla.
La computación hoy en dı́a presenta 5 perfiles de formación profesional claramente definidos:
Ciencia de la Computación (Computer Science – CS),
Ingenierı́a de Computación (Computer Engineering – CE),
Sistemas de Información (Information Systems – IS),
Ingenierı́a de Software (Software Engineering – SE) y
Tecnologı́a de la Información (Information Technology – IT).
Los pilares fundamentales que consideramos en esta propuesta curricular son:
Una sólida formación profesional en el área de Ciencia de la Computación,
Preparación para la generación de empresas de base tecnológica,
Una sólida formación ética y proyección a la sociedad
Estos pilares redundarán en la formación de profesionales que se puedan desempeñar en cualquier
parte del mundo y que ayuden de forma clara al desarrollo de la Industria de Software de nuestro paı́s.
El resto de este documento está organizado de la siguiente forma: el Capı́tulo 1, define y explica
el campo de acción de la Ciencia de la Computación, además se hace una muy breve explicación de
las distintas carreras del área de computación propuestas por IEEE-CS y ACM.
El Capı́tulo 2, muestra las áreas de Conocimiento de la Ciencia de la Computación, indicando los
tópicos y objetivos de aprendizaje de los temas, pertenecientes a estos grupos.
El Capı́tulo 3 contiene la distribución por semestres, por áreas, por niveles, visión gráfica de la
malla curricular, comparación con las diversas propuestas internacionales, distribución de tópicos por
curso ası́ como la distribución de habilidades por materia.
El Capı́tulo 4 contiene información detallada para cada uno de los cursos incluyendo las habilidades
con las cuales contribuye, bibliografı́a por cada unidad ası́ como el número de horas mı́nimas por cada
unidad.
Finalmente, en el Capı́tulo 6 se presenta una sugerencia de los laboratorios requeridos para el
dictado de clases las mismas que podrı́an variar de acuerdo al volumen de alumnos que se tenga.
1 http://www.sigcse.org/cc2001/
Índice general
Agradecimientos XV
Abreviaturas XVII
1. Introducción 1
1.1. Definiciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Perfil Profesional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Campo y mercado ocupacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Importancia de la carrera en la sociedad . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5. Misión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6. Visión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.7. Resultados de la carrera Outcomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.8. Perfil de competencias profesionales (Resultados de la carrera) . . . . . . . . . . . . . 6
1.8.1. Competencias Generales del profesional en Computación . . . . . . . . . . . . . 6
1.8.2. Competencias Especı́ficas para Ciencia de la Computación (Computer Science) 8
1.9. Objetivos de Aprendizaje (Learning Outcomes) . . . . . . . . . . . . . . . . . . . . . . 8
1.10. Perfil del ingresante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.11. Perfil del egresado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.12. Perfil del docente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.13. Grados y Tı́tulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.14. Recursos para dictado de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6. Laboratorios 381
Índice de figuras
Índice de cuadros
Agradecimientos
Además de los autores directos de este documento, también deseamos dejar manifiesto de nuestro
agradecimiento a otros colegas de diversas universidades del paı́s y del mundo que gentilmente han
aportado parte de su tiempo a darnos sus sugerencias. Entre ellos debemos mencionar a:
De forma muy especial deseamos agradecer a las autoridades de UTEC Eduardo Hochschild, Carlos
Heeren, Melanie Cornejo pues antes de iniciar la formulacion de está carrera ya se tenı́a decisido de
forma muy clara el perfil internacional que se querı́a y ciertamente la decisión fue fundamental para
poder construir el resto encima de esa visión compartida.
Todo este equipo de trabajo asumió como premisa que el centro de nuestro esfuerzo, es la formación
académica y humana de los estudiantes para formar agentes de cambio positivo y disruptivo en la
sociedad.
A todos ellos deseamos agradecerles por su aporte que ha permitido generar este documento, único
en su género en nuestro paı́s, que servirá para sentar las bases de una carrera más sólida en esta
fantástica área que nos ha tocado estudiar y de la cual nos sentimos orgullosos de formar parte:
Computación.
Abreviaturas
Capı́tulo 1
Introducción
Problemática
Organizacional
y Sistemas
de Información
Tecnologı́as
de Aplicación
Tecnologı́as
y Métodos
de Software
Infraestructura
Información
de Sistemas
Arquitectura y
Hardware
Computacional
Teorı́a Aplicación
Principios Despliegue
Las Ciencias de la Computación cubren un amplio rango, desde sus fundamentos teóricos y al-
gorı́tmicos hasta los últimos desarrollos en robótica, visión por computadora, sistemas inteligentes,
1 El término europeo es derivado del vocablo francés Informatique.
Las Ciencias de la Computación cubren todo el rango desde la teorı́a hasta la programación.
Mientras otras disciplinas pueden producir titulados mejor preparados para trabajos especı́ficos, las
ciencias de la computación ofrecen un amplio fundamento que permite a sus titulados adaptarse a
nuevas tecnologı́as y nuevas ideas.
El profesional en CC se preocupa por casi todo en medio de estas áreas. En dirección hacia el
hardware, este profesional llega a desarrollar software que permite el funcionamiento de dispositivos
devices. En dirección a aspectos organizacionales, el profesional de CC ayuda a que los sistemas de
información operen correctamente en las organizaciones. Él genera la tecnologı́a que permite que otras
áreas como los sistemas de información se desarrollen adecuadamente.
El profesional en CC diseña y desarrolla todo tipo de software, desde infraestructura de plataformas
(sistemas operativos, programas de comunicación, etc.) hasta aplicación de tecnologı́as (navegadores
de Internet, bases de datos, motores de búsqueda, etc.). Este profesional crea estas capacidades, pero
no está orientado al uso de las mismas. Por lo tanto, el área sombreada (fig. 1.1) para CC se estrecha
y finaliza en la medida que nos movamos hacia la aplicación y configuración de productos.
Transformar, acelerar y ampliar los lı́mites de cualquier área del conocimiento a través de solu-
ciones innovadoras basadas en el uso eficiente de tecnologı́a computacional.
Trabajar y liderar equipos multidisciplinarios que llevan a cabo proyectos de innovación tecno-
lógica.
Incrementar las ventajas competitivas de cualquier organización a través del uso eficiente de
tecnologı́a computacional gracias a su alta capacidad de abstracción.
Empresas, instituciones y organizaciones que requieran software de calidad para mejorar sus
actividades y/o servicios ofertados.
Nuestro egresado puede desempeñarse en el mercado laboral sin ningún problema ya que, en gene-
ral, la exigencia del mercado y campo ocupacional está mucho más orientada al uso de herramientas.
Sin embargo, es poco común que los propios profesionales de esta carrera se pregunten: ¿qué tipo de
formación deberı́a tener si yo quisiera crear esas herramientas además de saber usarlas?. Ambos perfiles
(usuario y creador) son bastante diferentes pues no serı́a posible usar algo que todavı́a no fue creado.
En otras palabras, los creadores de tecnologı́a son los que dan origen a nuevos puestos de trabajo y
abren la posibilidad de que otros puedan usar esa tecnologı́a.
Debido a la formación basada en la investigación, nuestro profesional debe siempre ser un innova-
dor donde trabaje. Esta misma formación permite que el egresado piense también en crear su propia
empresa de desarrollo de software. Considerando que paı́ses como el nuestro tienen un costo de vida
mucho menor que Norte América ó Europa, una posibilidad que se muestra interesante es la exporta-
ción de software pero eso requiere que la calidad del producto sea al mismo nivel de lo ofrecido a nivel
internacional.
Este perfil profesional también posibilita que nuestros egresados se queden en nuestro paı́s; producir
software en nuestro paı́s y venderlo fuera es más rentable que salir al extranjero y comercializarlo allá.
El campo ocupacional de un egresado es amplio y está en continua expansión y cambio. Práctica-
mente toda empresa u organización hace uso de servicios de computación de algún tipo, y la buena
formación básica de nuestros egresados hace que puedan responder a los requerimientos de las mismas
exitosamente. Este egresado, no sólo podrá dar soluciones a los problemas existentes sino que deberá
proponer innovaciones tecnológicas que impulsen la empresa hacia un progreso constante.
A medida que la informatización básica de las empresas del paı́s avanza, la necesidad de personas
capacitadas para resolver los problemas de mayor complejidad aumenta y el plan de estudios que
hemos desarrollado tiene como objetivo satisfacer esta demanda considerandola a mediano y largo
plazo. El campo para las tareas de investigación y desarrollo de problemas complejos en computación
es también muy amplio y está creciendo dı́a a dı́a a nivel mundial.
Debido a la capacidad innovadora de nuestro egresado, existe una mayor la probabilidad de registrar
patentes con un alto nivel inventivo lo cual es especialmente importante en nuestros paı́ses.
utilizan estructuras de datos que ya existı́an hace algunas décadas. Es lógico pensar que la gente del
área académica no se dedique a estudiar en profundidad la última versión de un determinado software
cuando esa tecnologı́a ya la conocı́an hace mucho tiempo. Por esa misma razón es raro en el mundo
observar que una universidad tenga convenios con una transnacional de software para dictar solamente
esa tecnologı́a pues, nuestra función es generar esa tecnologı́a y no sólo saber usarla.
Tampoco debemos olvidar que los alumnos que ingresan hoy saldrán al mercado dentro de 5 años
aproximadamente y, en un mundo que cambia tan rápido, no podemos ni debemos enseñarles tomando
en cuenta solamente el mercado actual. Nuestros profesionales deben estar preparados para resolver
los problemas que habrá dentro de 10 o 15 años y eso sólo es posible a través de la investigación.
1.5. Misión
Por lo antes mencionado, nuestra misión es:
Contribuir al desarrollo cientı́fico, tecnológico y técnico del paı́s, formando profesionales compe-
tentes, orientados a la creación de nueva ciencia y tecnologı́a computacional, como motor que impulse
y consolide la industria del software en base a la investigación cientı́fica y tecnológica en áreas in-
novadoras formando, EN NUESTROS profesionales, un conjunto de habilidades y destrezas para la
solución de problemas computacionales con un compromiso social.
1.6. Visión
Queremos ser una carrera profesional acreditada con estándares internacionales que cuente con
el reconocimiento en función de la calidad y competitividad de sus docentes y egresados.
Queremos ser una carrera que trascienda por la relevancia y pertinencia de sus proyectos de
investigación básica y aplicada.
Queremos ser una carrera que promueva el desarrollo de la industria del software a nivel interna-
cional, incorporando a sus egresados a la industria ya establecida o generando nuevas empresas
desarrolladoras de software.
Queremos ser una carrera que comparta y difunda el conocimiento con todos los sectores de la
población y contribuya a la solución de los problemas estratégicos de nuestra sociedad.
ñ) Comprender que la formación de un buen profesional no se desliga ni se opone sino mas bien
contribuye al auténtico crecimiento personal. Esto requiere de la asimilación de valores sólidos,
horizontes espirituales amplios y una visión profunda del entorno cultural.
o) Mejorar las condiciones de la sociedad poniendo la tecnologı́a al servicio del ser humano.
Las competencias y/o resultados a)-k) propuestas en esta malla curricular corresponden a las
competencias y/o resultados propuestas por ABET2 . Por otro lado, las habilidades l)-o) son aportes
de este grupo de trabajo.
C2. Capacidad para tener una perspectiva crı́tica y creativa para identificar y resolver problemas
utilizando el pensamiento computacional.
C3. Una comprensión intelectual de, y el aprecio por el papel central de los algoritmos y estructuras
de datos.
C4. Una comprensión del hardware de la computadora desde la perspectiva del software, por ejemplo,
el uso del procesador, memoria, unidades de disco, pantalla, etc.
C6. Capacidad para diseñar y poner en práctica las unidades estructurales mayores que utilizan
algoritmos y estructuras de datos y las interfaces a través del cual estas unidades se comunican.
C7. Ser capaz de aplicar los principios y tecnologı́as de ingenierı́a de software para asegurar que las
implementaciones de software son robustos, fiables y apropiados para su público objetivo.
C10. Comprensión del impacto en las personas, las organizaciones y la sociedad de la implementación
de soluciones tecnológicas e intervenciones.
C11. Entendimiento del concepto del ciclo de vida, incluyendo la importancia de sus fases (planifica-
ción, desarrollo, implementación y evolución).
C12. Entender las implicaciones de ciclo de vida para el desarrollo de todos los aspectos de los sistemas
informáticos (incluyendo software, hardware, y la interfaz de la computadora humana).
C14. Entendimiento del concepto esencial del proceso en lo relacionado con la informática, especial-
mente la ejecución del programa y el funcionamiento del sistema.
C15. Entendimiento del concepto esencial del proceso, ya que se relaciona con la actividad profesional
sobre todo la relación entre la calidad del producto y el despliegue de los procesos humanos
apropiados durante el desarrollo de productos.
C16. Capacidad para identificar temas avanzados de computación y de la comprensión de las fronteras
de la disciplina.
C17. Capacidad para expresarse en los medios de comunicación orales y escritos como se espera de
un graduado.
C19. Capacidad para identificar eficazmente los objetivos y las prioridades de su trabajo / área /
proyecto con indicación de la acción, el tiempo y los recursos necesarios.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los acontecimientos
del mundo real que explican su pertinencia y utilidad.
C21. Comprender el aspecto profesional, legal, seguridad, asuntos polı́ticos, humanistas, ambientales,
culturales y éticos.
C22. Capacidad para demostrar las actitudes y prioridades que honrar, proteger y mejorar la estatura
y la reputación ética de la profesión.
CS1. Modelar y diseñar sistemas de computadora de una manera que se demuestre comprensión del
balance entre las opciones de diseño.
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.
CS3. Analizar el grado en que un sistema basado en el ordenador cumple con los criterios definidos
para su uso actual y futuro desarrollo.
CS4. Implementar la teorı́a apropiada, prácticas y herramientas para la especificación, diseño, imple-
mentación y mantenimiento, ası́ como la evaluación de los sistemas basados en computadoras.
CS5. Especificar, diseñar e implementar sistemas basados en computadoras.
CS6. Evaluar los sistemas en términos de atributos de calidad en general y las posibles ventajas y
desventajas que se presentan en el problema dado.
CS7. Aplicar los principios de una gestión eficaz de la información, organización de la información,
y las habilidades de recuperación de información a la información de diversos tipos, incluyendo
texto, imágenes, sonido y vı́deo. Esto debe incluir la gestión de los problemas de seguridad.
CS8. Aplicar los principios de la interacción persona-ordenador para la evaluación y la construcción
de una amplia gama de materiales, incluyendo interfaces de usuario, páginas web, sistemas
multimedia y sistemas móviles.
CS9. Identificar los riesgos (y esto incluye cualquier seguridad o los aspectos de seguridad) que pueden
estar involucrados en la operación de equipo de cómputo dentro de un contexto dado.
CS10. Implementar efectivamente las herramientas que se utilizan para la construcción y la documen-
tación de software, con especial énfasis en la comprensión de todo el proceso involucrado en el
uso de computadoras para resolver problemas prácticos. Esto debe incluir herramientas para el
control de software, incluyendo el control de versiones y gestión de la configuración.
CS11. Ser consciente de la existencia de software a disposición del público y la comprensión del
potencial de los proyectos de código abierto.
CS12. Operar equipos de computación y software eficaz de dichos sistemas.
Por ejemplo, para evaluar los niveles de dominio, consideremos la noción de iteración en el desarrollo
de software (for, while e iteradores). En el plano de la “familiaridad”, se espera que un estudiante tenga
una definición del concepto de iteración en el desarrollo de software y saber por qué esta técnica es
útil.
Con el fin de mostrar el dominio del nivel “Uso”, el estudiante debe ser capaz de escribir un
programa adecuadamente usando una forma de iteración.
En el nivel de “Evaluación”, en la iteración se requerirı́a que un estudiante comprenda múltiples
métodos de iteración y que sea capaz de seleccionar apropiadamente entre ellos para diferentes apli-
caciones.
Habilidades para:
1. Entender la relaciones entre los hechos y encontrar las causas que los produjeron, prever conse-
cuencias y ası́ poder resolver problemas de una manera coherente.
2. Diferenciar patrones, es decir, captar la diferencia entre la realidad observada y el modelo mental
o idea preconcebida que se ha tenido. Percibir las relaciones lógicas (de funcionamiento o de
comportamiento) existentes entre las observaciones realizadas.
3. Expresarse en forma oral o escrita de los procesos que llevan a la solución de un problema dado.
Actitudes de:
2. Disposición para el trabajo académico, en forma cooperativa y participativa, dentro y fuera del
aula de clases.
2. Aportar con su formación humana y sus capacidades cientı́ficas y profesionales con la solución
de los problemas sociales de nuestro entorno.
3. Transformar, acelerar y ampliar los lı́mites de cualquier área del conocimiento a través de solu-
ciones innovadoras basadas en el uso eficiente de tecnologı́a computacional.
Capı́tulo 2
2.1 Ciencia Computacional (CN) (Pág. 15) 2.3.8 Agentes (Pág. 33)
2.1.1 Introducción al modelamiento y simulación 2.3.9 Procesamiento del Lenguaje Natural (Pág. 33)
(Pág. 16)
2.3.10 Aprendizaje de máquina avanzado (Pág. 34)
2.1.2 Modelamiento y simulación (Pág. 17)
2.3.11 Robótica (Pág. 35)
2.1.3 Procesamiento (Pág. 18)
2.3.12 Visión y percepción por computador (Pág. 36)
2.1.4 Visualización interactiva (Pág. 19)
2.4 Aseguramiento y Seguridad de la Información
2.1.5 Datos, información y conocimiento (Pág. 20) (IAS) (Pág. 37)
2.2.5 Nuevas Tecnologı́as Interactivas (Pág. 25) 2.4.8 Seguridad de plataformas (Pág. 45)
2.2.6 Colaboración y Comunicación (Pág. 25) 2.4.9 Polı́tica de Seguridad y Gobernabilidad (Pág. 45)
2.2.7 Métodos estadı́sticos para HCI (Pág. 26) 2.4.10 Investigación digital (Digital Forensics)
(Pág. 46)
2.2.8 Factores Humanos y seguridad (Pág. 26)
2.4.11 Seguridad en Ingenierı́a de Software (Pág. 47)
2.2.9 HCI orientada al diseño (Pág. 27)
2.5 Gráficos y Visualización (GV) (Pág. 48)
2.2.10 Realidad virtual y aumentada mezcladas
(Pág. 27) 2.5.1 Conceptos Fundamentales (Pág. 49)
2.3 Sistemas Inteligentes (IS) (Pág. 28) 2.5.2 Rendering Básico (Pág. 50)
2.3.1 Cuestiones fundamentales (Pág. 28) 2.5.3 Modelado Geométrico (Pág. 51)
2.3.6 Representación Avanzada y Razonamiento 2.6.2 Representación de datos a nivel máquina (Pág. 56)
(Pág. 31)
2.6.3 Organización de la Máquina a Nivel Ensamblador
2.3.7 Razonamiento Bajo Incertidumbre (Pág. 32) (Pág. 56)
2.6.4 Organización y Arquitectura del Sistema de Me- 2.10.4 Propiedad Intelectual (Pág. 82)
moria (Pág. 57)
2.10.5 Privacidad y Libertades Civiles (Pág. 83)
2.6.5 Interfaz y comunicación (Pág. 58)
2.10.6 Comunicación profesional (Pág. 84)
2.6.6 Organización funcional (Pág. 59)
2.10.7 Sostenibilidad (Pág. 85)
2.6.7 Multiprocesamiento y arquitecturas alternativas
(Pág. 59) 2.10.8 Historia (Pág. 86)
2.6.8 Mejoras de rendimiento (Pág. 60) 2.10.9 Economı́a de la Computación (Pág. 87)
2.7 Estructuras Discretas (DS) (Pág. 60) 2.10.10 Polı́ticas de seguridad, Leyes y crı́menes compu-
tacionales (Pág. 87)
2.7.1 Funciones, relaciones y conjuntos (Pág. 61)
2.11 Ingenierı́a de Software (SE) (Pág. 88)
2.7.2 Lógica básica (Pág. 61)
2.11.1 Procesos de Software (Pág. 90)
2.7.3 Técnicas de demostración (Pág. 62)
2.11.2 Gestión de Proyectos de Software (Pág. 91)
2.7.4 Fundamentos de conteo (Pág. 63)
2.11.3 Herramientas y Entornos (Pág. 93)
2.7.5 Árboles y Grafos (Pág. 63)
2.11.4 Ingenierı́a de Requisitos (Pág. 93)
2.7.6 Probabilidad Discreta (Pág. 64)
2.11.5 Diseño de Software (Pág. 95)
2.8 Lenguajes de programación (PL) (Pág. 65)
2.11.6 Construcción de Software (Pág. 97)
2.8.1 Programación orientada a objetos (Pág. 65)
2.11.7 Verificación y Validación de Software (Pág. 98)
2.8.2 Programación funcional (Pág. 66)
2.11.8 Evolución de Software (Pág. 99)
2.8.3 Programación reactiva y dirigida por eventos
(Pág. 67) 2.11.9 Fiabilidad de Software (Pág. 100)
2.8.4 Sistemas de tipos básicos (Pág. 67) 2.11.10 Métodos Formales (Pág. 100)
2.8.5 Representación de programas (Pág. 69) 2.12 Sistemas Operativos (OS) (Pág. 101)
2.10.1 Contexto Social (Pág. 79) 2.14.2 Aplicaciones en red (Pág. 113)
2.10.2 Herramientas de Análisis (Pág. 80) 2.14.3 Entrega confiable de datos (Pág. 114)
2.10.3 Ética Profesional (Pág. 81) 2.14.4 Ruteo y reenvı́o (Pág. 114)
2.14.5 Redes de área local (Pág. 114) 2.16.9 Modelos y semántica formal (Pág. 129)
2.14.6 Asignación de recursos (Pág. 115) 2.17 Gestión de la información (IM) (Pág. 130)
2.16.1 Fundamentos de paralelismo (Pág. 123) 2.18.2 Estrategias Algorı́tmicas (Pág. 141)
2.16.2 Descomposición en paralelo (Pág. 124) 2.18.3 Algoritmos y Estructuras de Datos fundamenta-
les (Pág. 142)
2.16.3 Comunicación y coordinación (Pág. 124)
2.18.4 Computabilidad y complejidad básica de autó-
2.16.4 Análisis y programación de algoritmos paralelos matas (Pág. 143)
(Pág. 125)
2.18.5 Complejidad Computacional Avanzada
2.16.5 Arquitecturas paralelas (Pág. 126) (Pág. 144)
2.16.6 Desempeño en paralelo (Pág. 127) 2.18.6 Teorı́a y Computabilidad Avanzada de Autóma-
tas (Pág. 144)
2.16.7 Sistemas distribuı́dos (Pág. 128)
2.18.7 Estructuras de Datos Avanzadas y Análisis de
2.16.8 Cloud Computing (Pág. 129) Algoritmos (Pág. 145)
Objetivos de Aprendizaje:
Core-Tier1:
1. Describir las relaciones entre modelado y simulación, por ejemplo, pensar en la simulación como
un modelado dinámico [Familiarizarse]
2. Crear un modelo matemático formal, simple de una situación del mundo real y usa dicho modelo
en una simulación [Usar]
3. Distinguir entre los distintos tipos de simulación, incluyendo simulaciones fı́sicas, simulaciones
guiadas por humanos, y realidad virtual [Familiarizarse]
4. Describir diversos enfoques para la validación de modelos [Familiarizarse]
5. Crear una visualización simple de los resultados de una simulación [Usar]
7. Escoger una propuesta de modelado apropiada para un determinado problema o situación [Eva-
luar]
8. Comparar resultados de diferentes simulaciones del mismo fenómeno y explicar cualquier dife-
rencia [Evaluar]
2.1.3. CN/Procesamiento
El área temática de procesamiento incluye numerosos temas de otras áreas de conocimiento. En
concreto, la cobertura del tratamiento debe incluir un análisis de las arquitecturas de hardware, inclu-
yendo los sistemas paralelos, jerarquı́as de memoria, y las interconexiones entre procesadores. Estos
se tratan en AR / Interfaz y Comunicación, AR / multiprocesamiento y Alternativa Arquitecturas,
Mejoras AR / Rendimiento.
Tópicos:
Electivo
Métodos Numéricos 1. Algoritmos para encajar datos numéricamente (e.g. Método de Newton)
2. Algoritmos para computación numérica, incluyendo arquitecturas paralelas.
Objetivos de Aprendizaje:
Elective:
1. Explicar las caracterı́sticas y definir las propiedades de los algoritmos y como se relacionan con
el procesamiento de la maquina [Familiarizarse]
3. Identificar o bosquejar un flujo de trabajo para un proceso computacional existente tal como la
creación de un grafo basado en datos experimentales [Familiarizarse]
5. Resumir las fases del desarrollo de software y comparar varios ciclos de vida en comı́n [Fami-
liarizarse]
6. Explicar como los datos son representados en una máquina. Comparar representaciones de nú-
meros enteros a numeros flotantes. Describir underflow, overflow, redondeo, y truncamiento de
errores en la representación de datos [Familiarizarse]
7. Aplicar algoritmos numéricos estándar para resolver ecuaciones diferenciales ordinarias y par-
ciales. Usar sistemas computaciones para resolver sistemas de ecuaciones [Usar]
8. Describir las propiedades básicas de ancho de banda, latencia, escalabilidad y granularidad [Fa-
miliarizarse]
9. Describir los niveles de paralelismo incluyendo tareas, datos, y eventos de paralelismo [Familia-
rizarse]
10. Comparar y contrastar paradigmas de programación paralela reconociendo las fortalezas y de-
bilidades de cada una [Evaluar]
11. Identificar los problemas que afectan la corrección y eficiencia de un cálculo [Familiarizarse]
12. Diseñar, codificar, probar y depurar programas para un cálculo paralelo [Usar]
Gestión de Contenido modelos, marcos de trabajo, sistemas, métodos de diseño (cómo GI: Ges-
tión de Información).
Objetivos de Aprendizaje:
Elective:
3. Describir los requisitos tı́picos de usuario con respecto a los datos, información y conocimiento
[Familiarizarse]
4. Seleccione una adecuada implementación del sistema o el software para gestionar los datos,
información y conocimiento [Evaluar]
5. Listar y describir los informes, transacciones y otros procesos necesarios para una aplicación de
la ciencia computacional [Familiarizarse]
Objetivos de Aprendizaje:
Elective:
Contextos para IHC (cualquiera relacionado con una interfaz de usuario, p.e., página web, apli-
caciones de negocios, aplicaciones móviles y juegos)
Procesos para desarrollo centrado en usuarios, p.e., enfoque inicial en usuarios, pruebas empı́ri-
cas, diseño iterativo.
Diferentes medidas para evaluación, p.e., utilidad, eficiencia, facilidad de aprendizaje, satisfacción
de usuario.
Capacidades fı́sicas que informan diseño de interacción, p.e. percepción del color, ergonomı́a.
Modelos cognoscitivos que informan diseño de interacciones, p.e., atención, percepción y reco-
nocimiento, movimiento, memoria, golfos de expectativa y ejecución.
Modelos sociales que informan el diseño de interacción, e.g., cultura, comunicación, redes y
organizaciones.
Accesibilidad, p.e., interfaces para poblaciones con diferentes habilidades (p.e., invidentes, dis-
capacitados)
Interfaces para grupos de población de diferentes edades (p.e., niños, mayores de 80)
Objetivos de Aprendizaje:
Core-Tier1:
3. Desarrollar y usar un vocabulario conceptual para analizar la interación humana con el software:
disponibilidad, modelo conceptual, retroalimentación, y demás [Usar]
4. Define un proceso de diseño centralizado en el usario que de forma explı́cita considere el hecho
que un usuario no es como un desarrollador o como sus conocimientos [Usar]
5. Crear y dirigir una simple pruebga de usabilidad para una aplicación existente de software
[Evaluar]
2. Crear una aplicación simple, junto con la ayuda y la documentación, que soporta una interfaz
gráfica de usuario [Usar]
3. Llevar a cabo una evaluación cuantitativa y discutir / informar sobre los resultados [Usar]
Manejo de geometrı́a.
Ref: 2.5.3 Modelado Geométrico, Pág. 51
Elección de estilos de interacción y técnicas de interacción.
Diseño multiplataforma.
Diseño para dispositivos con restricción de recursos (ej. dispositivos pequeños, móviles)
Objetivos de Aprendizaje:
Elective:
2. Crear una aplicación con una moderna interfaz gráfica de usuario [Usar]
3. Identificar puntos comunes y las diferencias en las UIs a través de diferentes plataformas [Fa-
miliarizarse]
Evaluación sin usuarios, usando ambas técnicas cualitativas y cuantitativas. Ej. Revisión estruc-
turada, GOMS, análisis basado en expertos, heurı́sticas, lineamientos y estándar.
Evaluación con usuarios. Ej. Observación, Método de pensamiento en voz alta, entrevistas, en-
cuentas, experimentación.
Objetivos de Aprendizaje:
Elective:
1. Explicar cómo el diseño centrado en el usuario complementa a otros modelos de proceso software
[Familiarizarse]
2. Utilizar lo-fi (baja fidelidad) técnicas de prototipado para recopilar y reportar, las respuestas
del usuario [Usar]
3. Elegir los métodos adecuados para apoyar el desarrollo de una especı́fica interfaz de usuario
[Evaluar]
4. Utilizar una variedad de técnicas para evaluar una interfaz de usuario dada [Evaluar]
Pruebas T.
La asignación al azar (no paramétrica) pruebas, dentro vs. entre sujetos diseño.
Objetivos de Aprendizaje:
Elective:
2. Extraer y articular los argumentos estadı́sticos utilizados en papers que informan cuantitativa-
mente los estudios de usuarios [Usar]
4. Llevar a cabo e informar sobre un estudio que utiliza evalución cualitativa y cuantitativa [Usar]
Seguridad de economı́a.
Autenticacion biometrica.
Manejo de Identidad.
Objetivos de Aprendizaje:
Elective:
5. Analizar una polı́tica y/o procedimientos para demostrar si consideran o no se consideran, los
factores humanos de la seguridad [Usar]
Critically reflective HCI: 1. Práctica Crı́tica Técnica 2. Tecnologı́as para activismo polı́tico 3. Fi-
losofı́a de la experiencia de usuario 4. Etnografı́a y etnometodologı́a
Objetivos de Aprendizaje:
Elective:
1. Explicar que significa que ”La IHC es una disciplina orientada al diseño” [Familiarizarse]
2. Detallar los procesos de diseño apropiados para orientaciones especı́ficas de diseño [Familiari-
zarse]
Entrada del usuario: 1. Visor y seguimiento de objetos 2. Pose y gesto de reconocimiento 3. Los
acelerómetros 4. marcadores de referencia 5. Los problemas de interfaz de usuario de artı́culo
Objetivos de Aprendizaje:
Elective:
1. Describir el modelo óptico realizado por un sistema de gráficos por computadora para sintetizar
una visión estereoscópica [Familiarizarse]
3. Describir las diferencias entre geometria y realidad virtual basada en imágenes [Familiarizarse]
6. Describir varios usos posibles para los motores de juegos, incluyendo su potencial y sus limita-
ciones [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier2:
1. Traducir una sentencia en lenguaje natural (Por ejemplo español) en una declaración lógica de
predicados [Usar]
3. Aplicar resolución a un conjunto de declaraciones lógicas para responder una consulta [Usar]
4. Hacer una inferencia probabilı́stica para un problema real usando el teorema de Bayes para
determinar la probabilidad que se cumpla una hipótesis [Usar]
Aprendizaje inductivo
Objetivos de Aprendizaje:
Core-Tier2:
1. Listar las diferencias entre los tres principales tipos de aprendizaje: supervisado, no supervisado
y por refuerzo [Familiarizarse]
Objetivos de Aprendizaje:
Elective:
2. Diseñar e implementar un esquema de recocido simulado (simulated annealing) para evitar mı́-
nimos locales en un problema [Usar]
3. Diseñar e implementar una búsqueda A* y búsqueda en haz (beam search) para solucionar un
problema [Usar]
4. Aplicar búsqueda minimax con poda alfa-beta para simplifiar el espacio de búsqueda en un juego
con dos jugadores [Usar]
5. Comparar y contrastar los algoritmos genéticos con técnicas clásicas de búsqueda [Evaluar]
Argumentación
Redes semánticas.
Objetivos de Aprendizaje:
Elective:
1. Comparar y contrastar los modelos más usados para la representación del conocimiento estruc-
turado, destacando sus puntos fuertes y débiles [Evaluar]
6. Explicar la diferencia entre razonamiento temporal y espacial, y cómo se relacionan entre sı́.
[Familiarizarse]
Independecia Condicional
Objetivos de Aprendizaje:
Elective:
1. Aplicar la regla de Bayes para determinar el cumplimiento de una hipótesis [Usar]
2. Explicar cómo al tener independencia condicional permite una gran eficiencia en sistemas pro-
babilı́sticos [Evaluar]
3. Identificar ejemplos de representación de conocimiento para razonamiento bajo incertidumbre
[Familiarizarse]
9. Explicar como funciones de utilidad y razonamiento probabilı́stico puede ser combinado para
tomar decisiones razonables [Evaluar]
2.3.8. IS/Agentes
Tópicos:
Electivo
Definición de Agentes
Teorı́a de agentes
Agentes de aprendizaje
Objetivos de Aprendizaje:
Elective:
3. Describe las aplicaciones de teorı́a de agentes para dominios como agentes de software, asistentes
personales, y agentes creibles [Familiarizarse]
5. Demuestra mediante ejemplos adecuados como los sistemas multi-agente soportan interacción
entre agentes [Usar]
Algoritmos de parseo 1. Gramáticas libres de contexto (CFGs) y cuadros de parseo (e.g. Cocke-
Younger-Kasami CYK) 2. CFGs probabilı́sticos y ponderados CYK
Suavizado y back-off
Extracción de información
Traducción de lenguaje
Objetivos de Aprendizaje:
Elective:
4. Lista las ventajas de usar corpus estándares. Identifica ejemplos de corpus actuales para una
variedad de tareas de PLN [Familiarizarse]
Aprendizaje semi-supervisado.
Evaluación del desempeño (tal como cross-validation, area bajo la curva ROC)
Objetivos de Aprendizaje:
Elective:
1. Explica las diferencias entre los tres estilos de aprendizaje: supervisado, por refuerzo y no su-
pervisado [Familiarizarse]
3. Determina cuál de los tres estilos de aprendizaje es el apropiado para el dominio de un problema
en particular [Usar]
4. Compara y contrasta cada una de las siguientes técnicas, dando ejemplo de cuando una estrategia
es la mejor: árboles de decisión, redes neuronales, y redes bayesianas [Evaluar]
6. Describe el estado del arte en la teorı́a del aprendizaje, incluyendo sus logros y limitantes [Fa-
miliarizarse]
7. Explica el problema del sobreajuste, conjuntamente con técnicas para determinar y manejar el
problema [Usar]
2.3.11. IS/Robótica
Tópicos:
Electivo
Vision general: problemas y progreso 1. Estado del arte de los sistemas robóticos, incluyendo sus
sensores y una visión general de su procesamiento 2. Arquitecturas de control robótico, ejem.,
deliverado vs. control reactivo y vehiculos Braitenberg 3. Modelando el mundo y modelos de
mundo 4. Incertidumbre inherente en detección y control
Localización y mapeo.
Navegación y control.
Planeando el movimiento.
Coordinación multi-robots.
Objetivos de Aprendizaje:
Elective:
1. Listar capacidades y limitaciones de sistemas del estado del arte en robótica de hoy , incluyendo
sus sensores y el procesamiento del sensor crucial que informa a esos sistemas [Familiarizarse]
2. Integrar sensores, actuadores y software en un robot diseñado para emprender alguna tarea
[Usar]
3. Programar un robot para llevar a cabo tareas simples usando arquitecturas de control delivera-
tivo, reactivo y/o hı́brido [Usar]
5. Caracterizar las incertidumbres asociadas con sensores y actuadores de robot comunes; articular
estrategias para mitigar esas incertidumbres. [Familiarizarse]
6. Listar las diferencias entre representaciones de los robot de su enterno externo, incluyendo sus
fortalezas y defectos [Familiarizarse]
7. Comparar y contrastar al menos tres estrategias para la navegación de robots dentro de entornos
conocidos y/o no conocidos, incluyendo sus fortalezas y defectos [Evaluar]
Modularidad en reconocimiento.
Objetivos de Aprendizaje:
Elective:
4. Destinguir las metas de reconocimiento de sonido, palabras y del habla e identificar como la
señal de audio bruto sera manejada diferentemente en cada uno de esos casos. [Familiarizarse]
7. Implementar un algoritmo que combina caracterı́sticas en percepciones de más alto nivel, p.e.,
un contorno o poligono a partir de primitivas visuales o fonemas de una señal de audio [Usar]
10. Describir por lo menos tres enfoques de clasificación, sus pre requisitos para aplicabilidad, for-
talezas y deficiencias [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier1:
5. Reconocer de que hay problemas éticos más importantes que considerar en seguridad compu-
tacional, incluyendo problemas éticos asociados a arreglar o no arreglar vulnerabilidades y revelar
o no revelar vulnerabilidades [Familiarizarse]
Diseño abierto.
Ref: 2.11.8 Evolución de Software, Pág. 99
Diseño de seguridad.
Ref: 2.11.5 Diseño de Software, Pág. 95
Core Tier2
Mediación completa.
Economı́a del mecanismo (la reducción de la base informática de confianza, minimizar la super-
ficie de ataque)
Ref: 2.11.5 Diseño de Software, Pág. 95, 2.11.6 Construcción de Software, Pág. 97
Seguridad utilizable.
Ref: 2.2.1 Fundamentos, Pág. 22
Componibilidad de seguridad.
Objetivos de Aprendizaje:
Core-Tier1:
1. Describir el principio de privilegios mı́nimos y el aislamiento que se aplican al diseño del sistema
[Familiarizarse]
3. Discutir las implicaciones de depender de diseño abierto o secreto de diseño para la seguridad
[Familiarizarse]
6. Por cada etapa en el ciclo de vida de un producto, describir que consideraciones de seguridad
deberian ser evaluadas [Familiarizarse]
Core-Tier2:
9. Conocer los componentes estándar para las operaciones de seguridad, en lugar de reinventar las
operaciones fundamentales [Familiarizarse]
12. Describir problemas de seguridad que surgen en los lı́mites entre varios componentes [Familia-
rizarse]
Core Tier2
Electivo
Fuzzing
Programa de verificación.
Soporte del sistema operativo (por ejemplo, la asignación al azar del espacio de direcciones,
canarios)
Objetivos de Aprendizaje:
Core-Tier1:
1. Explicar por que la validación de entrada y desinfección de datos es necesario en el frente del
control contencioso del canal de entrada [Familiarizarse]
2. Explicar por que uno deberia escoger para desallorrar un programa en un lenguaje tipo seguro
como Java, en contraste con un lenguaje de programación no seguro como C/C++ [Familiari-
zarse]
4. Demostrar el uso de un lenguaje de programación de alto nivel cómo prevenir una condición de
competencia que ocurran y cómo manejar una excepción [Usar]
Core-Tier2:
6. Explique los riesgos de mal uso de las interfaces con código de terceros y cómo utilizar correcta-
mente el código de terceros [Familiarizarse]
Elective:
10. Explicar los diferentes tipos de mecanismos para detectar y mitigar los errores de desinfección
de datos [Familiarizarse]
11. Demostrar cómo se prueban los programas para el manejo de errores de entrada [Usar]
12. Usar herramientas estáticas y dinámicas para identificar errores de programación [Usar]
13. Describir cómo se utiliza la arquitectura de memoria para proteger de ataques en tiempo de
ejecución [Familiarizarse]
Los ejemplos de malware (por ejemplo, virus, gusanos, spyware, botnets, troyanos o rootkits)
Electivo
Objetivos de Aprendizaje:
Core-Tier2:
2. Discutir los limitantes de las medidas en contra del malware (ejm. detección basada en firmas,
detección de comportamiento) [Familiarizarse]
3. Identificar las instancias de los ataques de ingenierı́a social y de los ataques de negación de
servicios [Familiarizarse]
4. Discutir como los ataques de negación de servicos puede ser identificados y reducido [Familia-
rizarse]
Elective:
5. Describir los riesgos de la privacidad y del anonimato en aplicaciones comunmente usadas [Fa-
miliarizarse]
6. Discutir los conceptos de conversión de canales y otros procedimientos de filtrado de datos
[Familiarizarse]
4. Explicar como una infraestructura de Clave Pública soporta firmas digitales y encriptación y
discutir sus limitaciones/vulnerabilidades [Familiarizarse]
Elective:
8. Explicar como los protocolos de intercambio de claves trabajan y como es que pueden fallar
[Familiarizarse]
10. Describir aplicaciones del mundo real de primitivas criptográficas y sus protocolos [Familiari-
zarse]
11. Resumir definiciones precisas de seguridad, capacidades de ataque y sus metas [Familiarizarse]
12. Aplicar técnicas conocidas y apropiadas de criptografı́a para un escenario determinado [Usar]
13. Apreciar los peligros de inventarse cada uno sus propios métodos criptográficos [Familiarizarse]
Modelo de seguridad Web 1. Modelo de seguridad del navegador incluida la polı́tica de mismo
origen 2. Los lı́mites de confianza de cliente-servidor, por ejemplo, no pueden depender de la
ejecución segura en el cliente
Seguridad del lado del cliente : 1. Polı́tica de seguridad Cookies 2. Extensiones de seguridad
HTTP, por ejemplo HSTS 3. Plugins, extensiones y aplicaciones web 4. Seguimiento de los
usuarios Web
Herramientas de seguridad del lado del servidor, por ejemplo, los cortafuegos de aplicación Web
(WAFS) y fuzzers
Objetivos de Aprendizaje:
Elective:
1. Describe el modelo de seguridad de los navegadores incluyendo las polı́ticas del mismo origen y
modelos de amenazas en seguridad web [Familiarizarse]
2. Discutir los conceptos de sesiones web, canales de comunicación seguros tales como Seguridad
en la Capa de Transporte(TLS) y la importancia de certificados de seguridad, autenticación
incluyendo inicio de sesión único, como OAuth y Lenguaje de Marcado para Confirmaciones de
Seguridad(SAML) [Familiarizarse]
3. Investigar los tipos comunes de vulnerabilidades y ataques en las aplicaciones web, y defensas
contra ellos [Familiarizarse]
Testimonio.
Ruta confiable.
Objetivos de Aprendizaje:
Elective:
1. Explica el concepto de integridad de código y firma de códigos, ası́ como el alcance al cual se
aplica [Familiarizarse]
2. Discute los conceptos del origen de la confidencialidad y el de los procesos de arranque y carga
segura [Familiarizarse]
4. Resume las metas y las primitivas claves de los modelos de plataforma confiable (TPM) [Fami-
liarizarse]
7. Identifica ataques en plataformas con hardware que no son del tipo PC [Familiarizarse]
Polı́tica de privacidad.
Ref: 2.10.1 Contexto Social, Pág. 79, 2.10.3 Ética Profesional, Pág. 81, 2.10.5 Privacidad y
Libertades Civiles, Pág. 83
Objetivos de Aprendizaje:
Elective:
1. Describe el concepto de privacidad incluyendo información privada personal, violaciones poten-
ciales de privacidad debido a mecanismos de seguridad, y describe como los mecanismos de
protección de la privacidad se ejecutan en conflicto con los mecanismos de seguridad [Familia-
rizarse]
2. Describe como un atacante puede descubrir un secreto al interactuar con una base de datos
[Familiarizarse]
3. Explica como configurar una polı́tica de respaldo de datos o polı́tica de actualización de claves
[Familiarizarse]
4. Discute como configurar una polı́tica en caso de revelación de la información [Familiarizarse]
5. Describe las consecuencias del polı́ticas de retención de datos [Familiarizarse]
6. Identifica los riesgos de basarse en productos externos [Familiarizarse]
7. Identifica los riesgos y beneficios de emplear outsourcing en la nube [Familiarizarse]
8. Recupera datos basados en un determinado término de búsqueda en una imagen del sistema
[Usar]
12. Discute los retos asociados con técnicas forenses de dispositivos móviles [Familiarizarse]
13. Inspecciona un sistema (red, computadora, o aplicación) para determinar la presencia de malware
o de actividad maliciosa [Usar]
Asegure probar el proceso de las pruebas de que se cumplan los requisitos de seguridad (inclu-
yendo análisis estático y dinámico)
Objetivos de Aprendizaje:
Elective:
2. Aplicar los conceptos de los principios de diseño para mecanismos de protección, los principios
para seguridad de software (Viega and McGraw) y los principios de diseño de seguridad (Morrie
Gasser) en un proyecto de desarrollo de software [Usar]
4. Describir las mejores prácticas de desarrollo de software para minimizar las vulnerabilidades en
el código de programación [Familiarizarse]
5. Llevar a cabo una verificación de seguridad y la evaluación (estático y dinámico) de una aplicación
de software [Usar]
Elective:
8. Describir los procesos básico de la producción de movimiento continuo a partir de una secuencia
de cuadros discretos(algunas veces llamado it flicker fusion ) [Familiarizarse]
Representación poligonal
Ray tracing
Muestreo y anti-aliasing.
Objetivos de Aprendizaje:
Elective:
2. Describir la tuberı́a básica gráficos y cómo el factor de representación va hacia adelante y atrás
en esta [Familiarizarse]
4. Derivar la perspectiva lineal de triángulos semejantes por conversión de puntos (x,y,z) a puntos
(x/z, y/z, 1) [Usar]
6. Aplicar sistema de coordenadas de 3-dimensiones y los cambios necesarios para extender las
operaciones de transformación 2D para manejar las transformaciones en 3D [Usar]
11. Implementar un sencillo renderizador en tiempo real utilizando una API de rasterización (por
ejemplo, OpenGL) utilizando buffers de vértices y shaders [Usar]
13. Calcular las necesidades de espacio en base a la resolución y codificación de color [Evaluar]
14. Calcular los requisitos de tiempo sobre la base de las frecuencias de actualización, técnicas de
rasterización [Evaluar]
Modelado multiresolución.
Reconstrucción.
Representación de Geometrı́a Sólida Constructiva (GSC)
Objetivos de Aprendizaje:
Elective:
1. Representar curvas y superficies utilizando formas tanto implı́citas y paramétricas [Usar]
2. Crear modelos poliédrico simples por teselación de superficies [Usar]
3. Generar una representación de malla de una superficie implı́cita [Usar]
4. Generar un modelo fractal o terreno usando un método de procedimiento [Usar]
5. Generar una malla de un conjunto de puntos adquiridos por un scaner laser [Usar]
6. Construct modelos de geometrı́a sólida constructiva a partir de simples primitivas, tales como
cubos y superficies cuádricas [Usar]
7. Contrastar métodos de modelización con respecto a espacio y tiempo de complejidad y calidad
de imagen [Evaluar]
5. Discutir como una técnica artı́stica particular puede ser implementada en un renderizador [Fa-
miliarizarse]
6. Explicar como reconocer las técnicas gráficas usadas para crear una imagen en particular [Fa-
miliarizarse]
7. Implementar cualquiera de las técnicas gráficas especificadas utilizando un sistema gráfico pri-
mitivo a nivel de pı́xel individual [Usar]
8. Implementar un trazado de rayos(ray tracer) para escenas una simple Función de Distribución
de Reflectancia Bidireccional(BRDF) por ejemplo Phong’s, además de la reflexión y la refracción
[Usar]
Algoritmos Skinning.
Movimientos basado en la fı́sica, incluyendo la dinámica del cuerpo rı́gido, sistemas de partı́culas
fı́sicas, redes de masa-muelle de tela y la carne y el pelo.
Splines
Animación de Cámara.
Captura de Movimiento.
Objetivos de Aprendizaje:
Elective:
6. Discutir las ideas básicas detrás de algunos métodos para dinámica de fluidos para el modela-
miento de trayectorias balı́sticas, por ejemplo salpicaduras, polvo, fuego, o humo [Familiarizarse]
7. Usar el software de animación común para construir formas orgánicas simples usando metaball
y el esqueleto [Usar]
2.5.6. GV/Visualización
Tópicos:
Electivo
Visualización de campos escalares de 2D/3D: mapeado de color, isosurfaces.
Representación de datos Direct volume: ray-casting, funciones de transferencia, segmentación.
Visualización de: 1. Campos de vector y flujo de datos 2. Datos que varian en el tiempo 3. High-
dimensional data: reducción de dimensiones, coordenadas paralelas 4. Datos Non-espaciales:
multi-variados, estructurados en árbol/grafo, texto
Fundamentos perceptuales y cognitivos que conducen abstracciones visuales.
Diseño de visualización.
Evaluación de métodos de visualización.
Aplicaciones de visualización.
Objetivos de Aprendizaje:
Elective:
1. Describir los algitmos básicos para visualización escalar y vectorial [Familiarizarse]
2. Describir las ventajas y desventajas de los algoritmos de visualización en terminos de precisión
y desempeño [Evaluar]
3. Proponer un diseño de visualización adecuado para una combinación particular de caracterı́sticas
de datos y tareas de la aplicación [Evaluar]
4. Analizar la eficacia de una visualización dada para una tarea en particular [Evaluar]
5. Diseñar un proceso para evaluar la utilidad de un algoritmo de visualización o del sistema
[Evaluar]
6. Reconocer una variedad de aplicaciones de visualización incluyendo representaciones de datos
cientı́ficos, médicos y matemática; visualización de flujo; y análisis espacial [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier2:
3. Explicar las implicancias de los lı́mites de potencia para mejoras adicionales en el rendimiento
de los procesadores y también en el aprovechamiento del paralelismo [Familiarizarse]
6. Usar herramientas CAD para capturar, sistetizar, y simular bloques de construcción (como
ALUs, registros, movimiento entre registros) de un computador simple [Usar]
Objetivos de Aprendizaje:
Core-Tier2:
2. Describir cómo se ejecuta una instrucción en una máquina de von Neumann con extensión para
hebras, sincronización multiproceso y ejecucion SIMD (máquina vectorial) [Familiarizarse]
3. Describir el paralelismo a nivel de instrucciones y sus peligros, y cómo es esto tratado en pipelines
de proceso tı́picos [Familiarizarse]
4. Resumir cómo se representan las instrucciones, tanto a nivel de máquina bajo el contexto de un
ensamblador simbólico [Familiarizarse]
5. Demostrar cómo se mapean los patrones de lenguajes de alto nivel en notaciones en lenguaje
ensamblador o en código máquina [Familiarizarse]
6. Explicar los diferentes formatos de instrucciones, ası́ como el direccionamiento por instrucción,
y comparar formatos de tamaño fijo y variable [Familiarizarse]
7. Explicar como las llamadas a subrutinas son manejadas a nivel de ensamblador [Familiarizarse]
8. Explicar los conceptos básicos de interrupciones y operaciones de entrada y salida (I/O) [Fami-
liarizarse]
10. Ilustrar cómo los bloques constructores fundamentales en lenguajes de alto nivel son implemen-
tados a nivel de lenguaje máquina [Usar]
Objetivos de Aprendizaje:
Core-Tier2:
1. Identifique las principales tecnologı́as de memoria (Por ejemplo: SRAM, DRAM, Flash,Disco
Magnetico) y su relación costo beneficio [Familiarizarse]
3. Describa como el uso de jerarquı́a de memoria (caché, memoria virtual) es aplicado para reducir
el retardo efectivo en la memoria [Familiarizarse]
6. Calcule el tiempo de acceso promedio a memoria bajo varias configuraciones de caché y memoria
y para diversas combinaciones de instrucciones y referencias a datos [Usar]
Soporte Multimedia.
Arquitecturas RAID.
Objetivos de Aprendizaje:
Core-Tier2:
1. Explicar como las interrupciones son aplicadas para implementar control de entrada-salida y
transferencia de datos [Familiarizarse]
5. Identificar las interfaces entre capas necesarios para el acceso y presentación multimedia, desde
la captura de la imagen en almacenamiento remoto, a través del transporte por una red de
comunicaciones, hasta la puesta en la memoria local y la presentación final en una pantalla
gráfica [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier1:
3. Relacionar ejemplos prácticos para conjuntos funciones o modelos de relación apropiados e in-
terpretar la asociación de operaciones y terminologı́a en contexto [Evaluar]
Lógica proposicional.
Ref: 2.3.3 Raciocinio y representación básica de conocimiento, Pág. 30
Conectores lógicos.
Tablas de verdad.
Objetivos de Aprendizaje:
Core-Tier1:
1. Ilustrar mediante ejemplos la terminologı́a básica de teorı́a de grafos, y de alguna de las propie-
dades y casos especiales de cada tipo de grafos/árboles [Familiarizarse]
2. Demostrar diversos métodos de recorrer árboles y grafos, incluyendo recorridos pre, post e inor-
den de árboles [Usar]
3. Modelar una variedad de problemas del mundo real en ciencia de la computación usando for-
mas adecuadas de grafos y árboles, como son la representación de una topologı́a de red o la
organización jerárquica de un sistema de archivos [Usar]
4. Demuestrar como los conceptos de grafos y árboles aparecen en estructuras de datos, algoritmos,
técnicas de prueba (inducción estructurada), y conteos [Usar]
Core-Tier2:
5. Explicar como construir un árbol de expansión de un grafo [Usar]
6. Determinar si dos grafos son isomorfos [Usar]
Diseño orientado a objetos: 1. Descomposicion en objetos que almacenan estados y poseen com-
portamiento 2. Diseño basado en jerarquia de clases para modelamiento
Core Tier2
1. Escribir algoritmos básicos que eviten asignación a un estado mutable o considerar igualdad de
referencia [Usar]
2. Escribir funciones útiles que puedan tomar y retornar otras funciones [Usar]
3. Comparar y contrastar (1) el enfoque procedurar/funcional- definiendo una función por cada
operación con el cuerdo de la función proporcionando un caso por cada variación de dato - y (2)
el enfoque orientado a objetos - definiendo una clase por cada variación de dato con la definición
de la clase proporcionando un método por cada operación. Entender ambos enfoques como una
definición de variaciones y operaciones de una matriz [Evaluar]
Core-Tier2:
5. Usar mecanismos de encapsulamiento funcional, tal como closures e interfaces modulares [Usar]
6. Definir y usar iteradores y otras operaciones sobre agregaciones, incluyendo operaciones que
tienen funciones como argumentos, en múltiples lenguajes de programación, seleccionar la forma
mas natural por cada lenguaje [Usar]
Usos canónicos como interfaces gráficas de usuario, dispositivos móviles, robots, servidores.
Objetivos de Aprendizaje:
Core-Tier2:
1. Escribir manejadores de eventos para su uso en sistemas reactivos tales como GUIs [Usar]
2. Explicar porque el estilo de programación manejada por eventos es natural en dominios donde
el programa reacciona a eventos externos [Familiarizarse]
Tipos como conjunto de valores junto con un conjunto de operaciones. 1. Tipos primitivos (p.e.
numeros, booleanos) 2. Composición de tipos construidos de otros tipos (p.e., registros, uniones,
arreglos, listas, funciones, referencias)
Tipo de seguridad y los errores causados por el uso de valores de manera incompatible dadas
sus tipos previstos.
Metas y limitaciones de tipos estáticos 1. Eliminación de algunas clases de errores sin ejecutar
el programa 2. Indecisión significa que un análisis estatico puede aproximar el comportamiento
de un programa
Core Tier2
Tipos genéricos (polimorfismo paramétrico) 1. Definición 2. Uso de librerı́as genéricas tales como
colecciones. 3. Comparación con polimorfismo ad-hoc y polimorfismo de subtipos
Objetivos de Aprendizaje:
Core-Tier1:
1. Tanto para tipo primitivo y un tipo compuesto, describir de manera informal los valores que
tiene dicho tipo [Familiarizarse]
2. Para un lenguaje con sistema de tipos estático, describir las operaciones que están prohibidas de
forma estática, como pasar el tipo incorrecto de valor a una función o método [Familiarizarse]
5. Dar un ejemplo de un programa que no verifique tipos en un lenguaje particular y sin embargo
no tenga error cuando es ejecutado [Familiarizarse]
6. Usar tipos y mensajes de error de tipos para escribir y depurar programas [Usar]
Core-Tier2:
7. Explicar como las reglas de tipificación definen el conjunto de operaciones que legales para un
tipo [Familiarizarse]
8. Escribir las reglas de tipo que rigen el uso de un particular tipo compuesto [Usar]
9. Explicar por qué indecidibilidad requiere sistemas de tipo para conservadoramente aproximar el
comportamiento de un programa [Familiarizarse]
10. Definir y usar piezas de programas (tales como, funciones, clases, métodos) que usan tipos
genéricos, incluyendo para colecciones [Usar]
11. Discutir las diferencias entre, genéricos (generics), subtipo y sobrecarga [Familiarizarse]
Estratégias de análisis incluyendo técnicas de arriba a abajo (top-down) (p.e. descenso recursivo,
análisis temprano o LL) y de abajo a arriba (bottom-up) (ej, ‘llamadas hacia atrás - bracktrac-
king, o LR); rol de las gramáticas libres de contexto.
Generación de exploradores (scanners) y analizadores a partir de especificaciones declarativas.
Objetivos de Aprendizaje:
Elective:
Objetivos de Aprendizaje:
Elective:
1. Implementar analizadores sensibles al contexto y estáticos a nivel de fuente, tales como, veri-
ficadores de tipos o resolvedores de identificadores para identificar las ocurrencias de vinculo
[Usar]
2. Describir analizadores semanticos usando una gramatica con atributos [Usar]
Calendarización de instrucciones.
Asignación de registros.
1. Identificar todos los pasos esenciales para convertir automáticamente código fuente en código
emsamblador o otros lenguajes de bajo nivel [Familiarizarse]
2. Generar código de bajo nivel para llamadas a funciones en lenguajes modernos [Usar]
3. Discutir por qué la compilación separada requiere convenciones de llamadas uniformes [Fami-
liarizarse]
4. Discutir por qué la compilación separada limita la optimización debido a efectos de llamadas
desconocidas [Familiarizarse]
5. Discutir oportunidades para optimización introducida por la traducción y enfoques para alcanzar
la optimización, tales como la selección de la instrucción, planificación de instruccion, asignación
de registros y optimización de tipo mirilla (peephole optimization) [Familiarizarse]
Otras caracterı́sticas comunes de las máquinas virtuales, tales como carga de clases, hilos y
seguridad.
Objetivos de Aprendizaje:
Elective:
4. Discutir las ventajas, desventajas y dificultades del término (just-in-time) y recompilación au-
tomática [Familiarizarse]
5. Identificar los servicios proporcionados por los sistemas de tiempo de ejecución en lenguajes
modernos [Familiarizarse]
Representaciones relevantes de programas, tales como bloques básicos, grafos de control de flujos,
cadenas de definiciones y asignación estática simple.
Análisis y minúsculas de flujo, tales como la comprobación de tipos y puntero escalable y análisis
de alias.
Análisis sensibles al flujo, como hacia delante y hacia atrás de flujo de datos de análisis.
Objetivos de Aprendizaje:
Elective:
1. Definir análisis estáticos útiles en términos de un marco conceptual, como el análisis de flujo de
datos [Usar]
2. Explicar por qué los análisis estáticos de tipos no triviales (non-trivial sound static analyses)
deben ser aproximados [Familiarizarse]
5. Explicar por qué el aliasing potencial limita el análisis de tipos en los programas y como el
análisis de alias puede ayudar [Familiarizarse]
6. Usar los resultados de un análisis estático para una optimización de un programa y/o la correc-
titud parcial de dicho programa [Usar]
Sistemas modulares.
Soporte de los lenguajes para verificación de (assert), invariantes, pre y post condiciones.
Objetivos de Aprendizaje:
Elective:
2. Discutir cómo diversas construcciones de programación avanzada tienen como objetivo mejorar
la estructura del programa, la calidad del software y la productividad del programador [Fami-
liarizarse]
Modelos de Actor.
Futuros.
Objetivos de Aprendizaje:
Elective:
Constructores de tipo composicional, como tipos de producto (para agregados), tipos de suma
(para uniones), tipos de función, tipos cuantificados y tipos recursivos.
Comprobación de tipos.
Inferencia de tipos.
Sobrecarga estática.
Objetivos de Aprendizaje:
Elective:
2. Para varias construcciones de tipo fundamental, identificar los valores que describen y las inva-
riantes que hacen que se cumplan [Familiarizarse]
3. Precisar las invariantes preservadas por un sistema de tipos seguro (sound type system) [Fami-
liarizarse]
Cálculo Lambda.
Parametricidad.
Ref: 2.8.14 Sistemas de tipos, Pág. 73
Objetivos de Aprendizaje:
Elective:
2. Escribe un programa en cálculo lambda y muestra su evaluación hacia un forma normal [Usar]
4. Usa la inducción para demostrar las propiedades de todos los programas de un lenguaje [Usar]
5. Usa inducción para demostrar las propiedades de todos los programas de un lenguaje que es
bien tipado de acuerdo a un sistema formalmente definido de tipos [Usar]
7. Usa semánticas formales para construir un modelo formal de un sistema de software en vez de
un lenguaje de programación [Usar]
Objetivos de Aprendizaje:
Elective:
2. Utiliza criterios objetivos y nı́tidos para evaluar las decisiones en el diseño de un lenguaje [Usar]
3. Da un ejemplo de un programa cuyo resultado puede diferir dado diversas reglas de orden de
evaluación, precedencia, o asociatividad [Usar]
4. Muestra el uso de evaluación con retraso, como en el caso de abstracciones definidas y controladas
por el usuario [Familiarizarse]
5. Discute la necesidad de permitir llamadas a librerias externas y del sistema y las consecuencias
de su implementación en un lenguaje [Familiarizarse]
Unificación.
Bactracking y busqueda.
Cuts.
Objetivos de Aprendizaje:
Elective:
2. Usa un lenguaje lógico para implementar un algoritmo empleando búsqueda implı́cita usando
claúsulas, relaciones, y cortes [Usar]
2.9.1. PBD/Introducción
Esta unidad de conocimiento describe las diferencias fundamentales que la plataforma basada en
el Desarrollo tiene sobre el desarrollo de software tradicional.
Tópicos:
Electivo
Visión general de plataformas (ejemplo, Web, Mobil, Juegos, Industrial)
Programacı́on a través de APIs especı́ficos.
Visión general de lenguajes de plataforma (ejemplo, Objective C, HTML5)
Pogramacı́ón bajo restricciónes de plataforma.
Objetivos de Aprendizaje:
Elective:
1. Describir cómo el desarrollo basado en plataforma difiere de la programación de proposito general
[Familiarizarse]
2. Listar las caracterı́sticas de lenguajes de plataforma [Familiarizarse]
3. Escribir y ejecutar un programa simple basado en plataforma [Usar]
4. Listar las ventajas y desventajas de la programación con restricciones de plataforma [Familia-
rizarse]
Los estudiantes también tienen que desarrollar la capacidad de formular preguntas serias sobre el
impacto social de la computación y de evaluar las respuestas propuestas a esas preguntas. Los futuros
profesionales deben ser capaces de anticipar el impacto de la introducción de un producto dado en un
entorno determinado. ¿Será ese producto mejorar o degradar la calidad de vida? ¿Cuál será el impacto
sobre los individuos, los grupos y las instituciones?
Por último, los estudiantes deben ser conscientes de los derechos legales básicos de software y
hardware y los usuarios ası́ como y también tienen que apreciar los valores éticos que son la base
de estos derechos. Los futuros profesionales deben entender la responsabilidad que van a llevar y
las posibles consecuencias del fracaso. Ellos deben comprender sus propias limitaciones, ası́ como las
limitaciones de sus herramientas. Todos los profesionales deben hacer un compromiso a largo plazo
para permanecer al dı́a en sus especialidades elegidas y en la disciplina de la computación en su
conjunto.
Como los avances tecnológicos siguen afectando de manera significativa la forma en que vivimos
y el trabajo, la importancia crı́tica de asuntos sociales y práctica profesional continua aumentando;
nuevos productos basados en computadores y lugares plantean problemas cada vez más difı́ciles cada
año. Son nuestros estudiantes que deben entrar en el mundo laboral y el mundo académico con el
objetivo de identificar y resolver estos problemas.
Los educadores de ciencia de la computación pueden optar por enseñar este núcleo y el material
electivo en cursos independientes, integrados en cursos técnicos y teóricos tradicionales, o como uni-
dades especiales en cursos de fina de carrera y cursos de práctica profesional. El material en esta área
está mejor cubierto a través de una combinación de un curso obligartorio junto con módulos breves en
otros cursos. Por un lado, algunas unidades que figuran como Core Tier-1 (en particular, el contexto
social, herramientas de análisis, la ética profesional y la propiedad intelectual) no se prestan fácil-
mente a ser cubiertos en otros cursos tradicionales. Sin un curso independiente, es difı́cil cubrir estos
temas adecuadamente. Por otro lado, si las consideraciones éticas y sociales son cubiertas solamente
en el curso independiente y no en contexto, esto reforzará la falsa idea de que los procesos técnicos no
necesitan de estas otras cuestiones pertinentes.
Debido a esta amplia relevancia, es importante que varios cursos tradicionales incluyan módulos
con estudios de casos que analizan los aspectos éticos, legales, sociales y profesionales en el contexto de
la materia técnica del curso. Los cursos en áreas como la ingenierı́a de software, bases de datos, redes
de computadores, y seguridad aseguramiento de la información y la introducción a la computación
proporcionan un contexto obvio para el análisis de cuestiones éticas. Sin embargo, un módulo relacio-
nado con la ética podrı́a desarrollarse para casi cualquier curso en el currı́culo. Serı́a explı́citamente
en contra del espı́ritu de la recomendaciones tener sólo un curso independiente. A lo largo de todos los
asuntos en esta área existe la necesidad de hablar con el profesional para que siempre enfrente estos
problemas desde la perspectiva moral y técnica. Las cuestiones éticas discutidas en cualquier clase
deben surgen naturalmente de la materia objeto de esa clase. Los ejemplos incluyen una discusión
en el curso de base de datos de la agregación de datos o minerı́a de datos, o una discusión en el
curso de ingenierı́a de software de los posibles conflictos entre las obligaciones para con el cliente y las
obligaciones para el usuario y otras personas afectadas por su trabajo. Asignaciones de programación
construidas alrededor de aplicaciones tales controlar el movimiento de un láser durante la cirugı́a de
los ojos puede ayudar a hacer frente a los impactos profesionales, éticos y sociales de la computación.
El cuerpo docente que no esté familiarizados con el contenido y/o la pedagogı́a de la ética aplicada
debe aprovechar los recursos considerables de ACM, IEEE-CS, SIGCAS (grupo de interés especial en
las computadoras y la sociedad), y otras organizaciones.
Cabe señalar que la aplicación de un análisis ético subyace en cada sección de esta área de conoci-
miento. El Código ACM de Ética y Conducta Profesional (http://www.acm.org/about/code-of-ethics)
proporciona directrices que sirven como base para la realización de nuestro trabajo profesional. Los
imperativos morales generales proporcionan un mejor entendimiento de nuestro compromiso con la
responsabilidad personal, la conducta profesional y nuestros roles de liderazgo.
Core Tier2
A menudo se refiere como la brecha digital, las diferencias en el acceso a los recursos de la
tecnologı́a digital y sus ramificaciones resultantes para el género, la clase, la etnia, la geografı́a,
y/o los paı́ses subdesarrollados.
Elective:
Electivo
Objetivos de Aprendizaje:
Core-Tier1:
1. Escribe documentos técnicos claros, concisos y exactos siguiendo estándares bien definidos para
su formato y para la inclusión de tablas, figuras y referencias adecuadas [Usar]
2. Evalúa documentación técnica escrita para detectar problemas de diversos tipos [Evaluar]
4. Interacciones del plan (por ejemplo, cara a cara, documentos compartidos virtuales) con otros
en los que son capaces de obtener su punto de vista, escuchar con atención y apreciar los puntos
de los demás, incluso cuando no están de acuerdo y son capaces de transmitir a los demás que
han oı́do [Usar]
5. Describir las fortalezas y debilidades de las diversas formas de comunicación (por ejemplo, cara
a cara, documentos compartidos virtuales) [Familiarizarse]
6. Examinar las medidas adecuadas que se utilizan para comunicarse con las partes involucrados
en un proyecto [Usar]
7. Comparar y contrastar diversas herramientas de colaboración [Evaluar]
Elective:
8. Discutir formas de influir en el rendimiento y los resultados en equipos multi-culturales [Fami-
liarizarse]
9. Examine los puntos de equilibrio y las fuentes comunes de riesgo en proyectos relacionados con el
software de tecnologı́a, estructura/proceso, la calidad, la gente, el mercado y la parte financiera
[Usar]
10. Evaluar las fortalezas y debilidades personales para trabajar de forma remota como parte de un
equipo multinacional [Evaluar]
Core Tier2
Impactos ambientales de las elecciones de diseño en areas especı́ficas tal como los algoritmos de
los sistemas operativos, internet, bases de datos o interacción humano computador.
Ref: 2.11.8 Evolución de Software, Pág. 99, 2.2.9 HCI orientada al diseño, Pág. 27
Electivo
Lineamientos para estandares de diseño sostenible.
Efectos sistémicos de fenómenos complejos mediados por computador (e.g. teleconmutación o
compras web)
Computación penetrante; procesamiento integrado de información dentro de objetos cotidianos
y actividades, tal como sistemas de inteligentes de energı́a, redes sociales y sistemas retroali-
mentados para promover comportamiento sostenible, transporte, monitoreo del medio ambiente,
ciencias ciudadana y activismo.
Investigación de aplicaciones de la computación a problemas ambientales, como la energı́a, con-
taminación, uso de recursos, reciclaje y reutilización, administración de alimentos, agricultura y
otros.
La interdependencia de la sostenibilidad de los sistemas de software con sistemas sociales, inclu-
yendo el conocimiento y las habilidades de sus usuarios, procesos organizacionales y polı́ticas y
su contexto social (ejem. fuerzas del mercado, polı́ticas gubernamentales).
Objetivos de Aprendizaje:
Core-Tier1:
Core-Tier2:
3. Describir los impactos ambientales de las opciones de diseño en el campo de la informática que
se relacionan con el diseño de algoritmo, el diseño del sistema operativo, diseño de redes, diseño
de bases de datos, etc [Familiarizarse]
4. Investigar los impactos sociales y ambientales de los nuevos diseños de sistemas a través de
proyectos [Usar]
Elective:
7. Investigar la computación ubicua en áreas como los sistemas inteligentes de energı́a, redes socia-
les, el transporte, la agricultura, los sistemas de la cadena de suministro, monitoreo ambiental
y el activismo ciudadano [Usar]
2.10.8. SP/Historia
La historia de la computación nos provee de un camino de como los cambios rápidos en los impactos
computacionales en la sociedad y en escala global. esto amenudo se sabe en los conceptos fundamentales
al igual que los Fundamentos de Sistemas y los Fundamentos de desarrollo de software.
Tópicos:
Electivo
Pioneros de la Computación.
Historia de Internet.
Objetivos de Aprendizaje:
Elective:
4. Comparar la vida diaria antes y después de la llegada de los ordenadores personales y el Internet
[Evaluar]
Polı́ticas de Seguridad.
Ref: 2.4.9 Polı́tica de Seguridad y Gobernabilidad, Pág. 45
Objetivos de Aprendizaje:
Elective:
1. Listar ejemplos clásicos de delitos informáticos y incidentes de ingenierı́a social con impacto
social [Familiarizarse]
4. Examinar los problemas éticos y legales relacionados con el mal uso de accesos y diversas viola-
ciones en la seguridad [Usar]
5. Discutir el rol del profesional en seguridad y los problemas que están envueltos [Familiarizarse]
6. Investigar medidas que puedan ser consideradas por personas y organizaciones incluyendo al go-
bierno para prevenir o mitigar efectos indeseables de los delitos informáticos y robo de identidad
[Usar]
7. Escribir una politica de seguridad de una empresa, la cual incluye procedimientos para adminis-
trar contraseñas y monitorizar a los empleados [Usar]
de conocimiento, los temas y las especificaciones básicas horas de esta área de Ingenierı́a de Software
deben ser entendidos como asumiendo una exposición previa al material descrito en el 2.13.4 Métodos
de Desarrollo, Pág. 111.
Introducción a modelos del proceso de software (e.g., cascada, incremental, agil): 1. Actividades
con ciclos de vida de software.
Core Tier2
Electivo
Mejoramiento de procesos.
Objetivos de Aprendizaje:
Core-Tier1:
1. Describa cómo el software puede interactuar y participar en varios sistemas, incluyendo la gestión
de información, integración, control de procesos y sistemas de comunicaciones [Familiarizarse]
2. Describir las ventajas y desventajas relativas entre varios modelos importantes de procesos (por
ejemplo, la cascada, iterativo y ágil) [Familiarizarse]
3. Describir las diferentes prácticas que son componentes clave de los diversos modelos de procesos
[Familiarizarse]
5. Describir cómo la programación en grandes equipos difiere de esfuerzos individuales con respecto
a la comprensión de una gran base de código, lectura de código, comprensión de las construc-
ciones, y comprensión de contexto de cambios [Familiarizarse]
Core-Tier2:
6. Explicar el concepto de ciclo de vida del software y proporcionar un ejemplo que ilustra sus fases
incluyendo los entregables que se producen [Familiarizarse]
7. Comparar varios modelos comunes de procesos con respecto a su valor para el desarrollo de las
clases particulares de sistemas de software, teniendo en cuenta diferentes aspectos tales como,
estabilidad de los requisitos, tamaño y caracterı́sticas no funcionales [Usar]
Elective:
8. Definir la calidad del software y describir el papel de las actividades de aseguramiento de la
calidad en el proceso de software [Familiarizarse]
9. Describir el objetivo y similitudes fundamentales entre los enfoques de mejora de procesos [Fa-
miliarizarse]
10. Comparar varios modelos de mejora de procesos, tales como CMM, CMMI, CQI, Plan-Do-Check-
Act, o ISO9000 [Evaluar]
11. Evaluar un esfuerzo de desarrollo y recomendar cambios potenciales al participar en la mejora
de procesos (usando un modelo como PSP) o involucración en una retrospectiva de un proyecto
[Usar]
12. Explicar el papel de los modelos de madurez de procesos en la mejora de procesos [Familiarizarse]
13. Describir varias métricas de procesos para la evaluación y el control de un proyecto [Familiari-
zarse]
14. Usar las medidas en proyecto para describir el estado actual de un proyecto [Usar]
Objetivos de Aprendizaje:
Core-Tier2:
6. Utilizar un método ad hoc para estimar el esfuerzo de desarrollo del software (ejemplo, tiempo)
y comparar con el esfuerzo actual requerido [Usar]
Elective:
11. Describir como la elección de modelos de procesos afectan la estructura organizacional de equipos
y procesos de toma de decisiones [Familiarizarse]
12. Crear un equipo mediante la identificación de los roles apropiados y la asignación de funciones
a los miembros del equipo [Usar]
13. Evaluar y retroalimentar a los equipos e individuos sobre su desempeño en un ambiente de equipo
[Usar]
14. Usando un software particular procesar, describir los aspectos de un proyecto que encesita ser
planeado y monitoreado, (ejemplo, estimar el tamaño y esfuerzo, un horario, reasignación de
recursos, control de configuración, gestión de cambios, identificación de riesgos en un proyecto
y gestión) [Familiarizarse]
15. Realizar el seguimiento del progreso de alguna etapa de un proyecto que utiliza métricas de
proyectos apropiados [Usar]
16. Comparar las técnicas simples de tamaño de software y estimación de costos [Usar]
17. Usar una herramienta de gestión de proyectos para ayudar en la asignación y rastreo de tareas
en un proyecto de desarrollo de software [Usar]
19. Identificar riesgos y describir enfoques para manejar riesgos (evitar, aceptar, tranferir, mitigar)
y caracterizar fortalezas y defectos para cada uno [Familiarizarse]
20. Explicar cómo el riesgo afecta las decisiones en el proceso de desarrollo de software [Usar]
22. Demostrar un enfoque sistemático para la tarea de identificar los peligros y riesgos en una
situación particular [Usar]
23. Aplicar los principios básicos del manejo de riesgos en una variedad de escenarios simples inclu-
yendo una situación de seguridad [Usar]
25. Identificar y analizar alguno de los riesgos para un sistema entero que surgen de aspectos distintos
del software [Usar]
Administración de despliegues.
Objetivos de Aprendizaje:
Core-Tier2:
2. Describir como el control de versión puede ser usado para ayudar a manejar la administración
de versiones del software [Familiarizarse]
5. Describir los aspectos que son importantes en la selección de un conjunto de herramientas para
el desarrollo de un sistema de software en particular, incluyendo herramientas para el seguimien-
to de los requisitos, modelado de diseño, implementación, construcción automática y pruebas
[Familiarizarse]
impulsado tienden a producir documentos formales con los requisitos numerados. Enfoques ágiles
tienden a favorecer a las especificaciones menos formales que incluyen historias de usuario, casos de
uso y casos de prueba.
Tópicos:
Core Tier1
Al describir los requisitos funcionales utilizando, por ejemplo, los casos de uso o historias de los
usuarios.
Core Tier2
Descripción de datos del sistema utilizando, por ejemplo, los diagramas de clases o diagramas
entidad-relación.
Electivo
Prototipos.
Especificación de requisitos.
Validación de requisitos.
Rastreo de requisitos.
Objetivos de Aprendizaje:
Core-Tier1:
1. Enumerar los componentes clave de un caso de uso o una descripción similar de algún compor-
tamiento que es requerido para un sistema [Familiarizarse]
Core-Tier2:
4. Describir los retos fundamentales y técnicas comunes que se utilizan para la obtención de requi-
sitos [Familiarizarse]
5. Enumerar los componentes clave de un modelo de datos (por ejemplo, diagramas de clases o
diagramas ER) [Familiarizarse]
7. Realizar una revisión de un conjunto de requisitos de software para determinar la calidad de los
requisitos con respecto a las caracterı́sticas de los buenos requisitos [Usar]
Elective:
8. Aplicar elementos clave y métodos comunes para la obtención y el análisis para producir un
conjunto de requisitos de software para un sistema de software de tamaño medio [Usar]
9. Comparar los métodos ágiles y el dirigido por planes para la especificación y validación de
requisitos y describir los beneficios y riesgos asociados con cada uno [Familiarizarse]
10. Usar un método común, no formal para modelar y especificar los requisitos para un sistema de
software de tamaño medio [Usar]
11. Traducir al lenguaje natural una especificación de requisitos de software (por ejemplo, un con-
trato de componentes de software) escrito en un lenguaje de especificación formal [Usar]
12. Crear un prototipo de un sistema de software para reducir el riesgo en los requisitos [Usar]
13. Diferenciar entre el rastreo (tracing) hacia adelante y hacia atrás y explicar su papel en el proceso
de validación de requisitos [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier1:
2. Usar un paradigma de diseño para diseñar un sistema de software básico y explicar cómo los
principios de diseño del sistema se han aplicado en este diseño [Usar]
3. Construir modelos del diseño de un sistema de software simple los cuales son apropiado para el
paradigma utilizado para diseñarlo [Usar]
4. En el contexto de un paradigma de diseño simple, describir uno o más patrones de diseño que
podrı́an ser aplicables al diseño de un sistema de software simple [Familiarizarse]
Core-Tier2:
5. Para un sistema simple adecuado para una situación dada, discutir y seleccionar un paradigma
de diseño apropiado [Usar]
7. Explicar las relaciones entre los requisitos para un producto de software y su diseño, utilizando
los modelos apropiados [Evaluar]
8. Para el diseño de un sistema de software simple dentro del contexto de un único paradigma de
diseño, describir la arquitectura de software de ese sistema [Familiarizarse]
12. Describir una manera de refactorar y discutir cuando esto debe ser aplicado [Familiarizarse]
13. Seleccionar componentes adecuados para el uso en un diseño de un producto de software [Usar]
14. Explicar cómo los componentes deben ser adaptados para ser usados en el diseño de un producto
de software [Familiarizarse]
15. Diseñar un contrato para un tı́pico componente de software pequeño para el uso de un dado
sistema [Usar]
Elective:
16. Discutir y seleccionar la arquitectura de software adecuada para un sistema de software simple
para un dado escenario [Usar]
17. Aplicar modelos de cualidades internas y externas en el diseño de componentes de software para
lograr un equilibrio aceptable entre los aspectos de calidad en conflictos [Usar]
19. Analizar un diseño de software desde la perspectiva de un atributo significativo de calidad externa
[Evaluar]
20. Explicar el papel de los objetos en los sistemas de middleware y la relación con los componentes
[Familiarizarse]
21. Aplicar métodos orientado a componentes para el diseño de una amplia gama de software,
tales como el uso de componentes para la concurrencia y transacciones, para los servicios de
comunicación confiables, para la interacción con la base de datos que incluye los servicios de
consulta remota y gestión de bases de datos, o para la comunicación segura y el acceso [Usar]
22. Refactorizar una implementación de software existente para mejorar algún aspecto de su diseño
[Usar]
23. Determinar y aplicar los principios de mı́nimo privilegio y defectos-a prueba de errores [Fami-
liarizarse]
Elective:
8. Reescribir un programa sencillo para eliminar vulnerabilidades comunes, tales como desborda-
mientos de búffer, desbordamientos de enteros y condiciones de carrera [Usar]
9. Escribir un componente de software que realiza alguna tarea no trivial y es resistente a errores
en la entrada y en tiempo de ejecución [Usar]
1. Describir la especificación formal del rol y técnicas de análisis que pueden jugar en el desarrollo
de software complejo y comparar su uso como técnicas de validación y verificación con pruebas
[Familiarizarse]
2. Aplicar especificación formal y técnicas de análisis para diseños de software y programas con
baja complejidad [Usar]
3. Explicar los beneficios potenciales y desventajas de usar lenguajes de especificación formal [Fa-
miliarizarse]
4. Crear y evaluar validaciones de programa para una variedad de comportamientos que van desde
lo simple hasta lo complejo [Usar]
Objetivos de Aprendizaje:
Core-Tier1:
5. Identificar amenazas potenciales a sistemas operativos y las caracterı́sticas del diseño de seguri-
dad para protegerse de ellos [Familiarizarse]
Organización de dispositivos.
Objetivos de Aprendizaje:
Core-Tier1:
4. Describir como los recursos computacionales son usados por aplicaciones de software y adminis-
tradas por el software del sistema [Familiarizarse]
7. Explicar el uso de una lista de dispositivos y el controlador de colas de entrada y salida [Fami-
liarizarse]
Diagramas de estado.
Ref: 2.15.3 Estados y máquinas de estados, Pág. 118
Objetivos de Aprendizaje:
Core-Tier2:
3. Resumir el rango de mecanismos que pueden ser usados a nivel del sistema operativo para realizar
sistemas concurrentes y describir los beneficios de cada uno [Familiarizarse]
4. Explicar los diferentes estados por los que una tarea debe pasar y las estructuras de datos
necesarias para el manejo de varias tareas [Familiarizarse]
5. Resumir las técnicas para lograr sicronización en un sistema operativo(por ejemplo, describir
como implementar semáforos usando primitivas del sistema operativo.) [Familiarizarse]
6. Describir las razones para usar interruptores, despacho, y cambio de contexto para soportar
concurrencia en un sistema operativo [Familiarizarse]
7. Crear diagramas de estado y transición para los dominios de problemas simples [Usar]
Planificadores y polı́ticas.
Ref: 2.15.6 Asignación de recursos y planeamiento, Pág. 119, 2.16.6 Desempeño en paralelo,
Pág. 127
Procesos y subprocesos.
Ref: 2.15.1 Paradigmas computacionales, Pág. 116
Objetivos de Aprendizaje:
Core-Tier2:
1. Comparar y contrastar los algoritmos comunes que se utilizan tanto para un programa preferente
y no preferente de las tareas en los sistemas operativos, como la comparación de prioridad, el
rendimiento, y los esquemas de distribución equitativa [Usar]
2. Describir las relaciones entre los algoritmos de planificación y dominios de aplicación [Familia-
rizarse]
3. Discutir los tipos de planeamiento de procesos scheduling de corto, a mediano, a largo plazo y
I/O [Familiarizarse]
5. Comparar y contrastar enfoques estáticos y dinámicos para scheduling en tiempo real [Usar]
El almacenamiento en caché
Objetivos de Aprendizaje:
Core-Tier2:
2. Resumir los principios de memoria virtual tal como se aplica para el almacenamiento en cache
y paginación [Familiarizarse]
3. Evaluar las ventajas y desventajas en términos del tamaño de memoria (memoria principal,
memoria caché, memoria axiliar) y la velocidad del procesador [Evaluar]
4. Defiende las diferentes formas de asignar memoria a las tareas, citando las ventajas relativas de
cada uno [Evaluar]
6. Estudiar los conceptos de thrashing, tanto en términos de las razones por las que se produce y
las técnicas usadas para el reconocimiento y manejo del problema [Familiarizarse]
1. Explique la diferencia clave entre dispositivos seriales y paralelos e identificar las condiciones en
las cuales cada uno es apropiado [Familiarizarse]
2. Identificar la relación entre el hardware fı́sico y los dispositivos virtuales mantenidos por el
sistema operativo [Usar]
5. Describir las ventajas y desventajas de acceso directo a memoria y discutir las cirscunstancias
en cuales se justifica su uso [Usar]
7. Implementar un controlador de dispositivo simple para una gama de posibles equipos [Usar]
Objetivos de Aprendizaje:
Elective:
1. Describir las decisiones que deben tomarse en el diseño de sistemas de archivos [Familiarizarse]
3. Resumir cómo el desarrollo de hadware ha dado lugar a cambios en las prioridades para el diseño
y la gestión de sistemas de archivos [Familiarizarse]
4. Resumir el uso de diarios y como los sistemas de archivos de registro estructurado mejora la
tolerancia a fallos [Familiarizarse]
2. Explicar la presencia y describir las caracterı́sticas de latencia en sistemas de tiempo real [Fa-
miliarizarse]
3. Resumir los problemas especiales que los sistemas en tiempo real presentan, incluyendo el riesgo,
y cómo se tratan estos problemas [Familiarizarse]
Objetivos de Aprendizaje:
Elective:
¿Qué se va a evaluar?
Ref: 2.15.5 Cifras de desempeño de mérito., Pág. 119
Objetivos de Aprendizaje:
Elective:
1. Describir las medidas de rendimiento utilizados para determinar cómo el sistema funciona [Fa-
miliarizarse]
2. Explicar los principales modelos de evaluación utilizados para evaluar un sistema [Familiarizarse]
ejemplo, aplicando estructuras iterativas al procesar listas). Además, el dominio de los conceptos y ha-
bilidades de esta área de conocimiento requiere una cantidad significativa de experiencia en desarrollo
de software fuera de la clase
Objetivos de Aprendizaje:
Core-Tier1:
2. Discute como un problema puede ser resuelto por múltiples algoritmos, cada uno con propiedades
diferentes [Familiarizarse]
4. Usa un lenguaje de programación para implementar, probar, y depurar algoritmos para resolver
problemas simples [Usar]
6. Determina si una solución iterativa o recursiva es la más apropiada para un problema [Evaluar]
8. Aplica técnicas de descomposición para dividir un programa en partes más pequeñas [Usar]
10. Implementa un tipo de dato abstracto coherente, con la menor pérdida de acoplamiento entre
componentes y comportamientos [Usar]
11. Identifica las fortalezas y las debilidades relativas entre múltiples diseños e implementaciones de
un problema [Evaluar]
Tipos Abstractos de datos y sus implementaciones: 1. Pilas 2. Colas 3. Colas de prioridad 4. Con-
juntos 5. Mapas
Referencias y aliasing.
Listas enlazadas
Objetivos de Aprendizaje:
Core-Tier1:
2. Describe aplicaciones comunes para cada de las siguientes estructuras de datos: pila, cola, cola
de prioridad, conjunto y mapa [Familiarizarse]
3. Escribe programas que usen cada una de las siguientes estructuras de datos: arreglos, regis-
tros/estructuras, cadenas, listas enlazadas, pilas, colas, conjuntos, y mapas [Usar]
5. Describe cómo las referencias permiten que los objetos sean accesibles de diversas formas [Fa-
miliarizarse]
Comprensión de programas.
Exactitud del programa. 1. Tipos de error (sintaxis, logica, tiempo de ejecucion) 2. El concepto de
la especificacion 3. Programacion defensiva (ejem., codificacion segura, manejo de excepciones)
4. Revision de codigo 5. Fundamentos de testing y generacion de casos de prueba 6. El rol y el
uso de contratos, incluyendo pre- y post- condiciones 7. Pruebas unitarias
Refactorización simple.
Estrategias de depuración.
3. Identificar los errores de codificación comunes que conducen a programas inseguros (por ejemplo,
desbordamientos de buffer, pérdidas de memoria, código malicioso) y aplicar estrategias para
evitar este tipo de errores [Usar]
4. Llevar a cabo una revisión de código personal (centrado en los errores comunes de codificación)
en un componente del programa utilizando una lista de verificación [Usar]
5. Contribuir en un pequeño grupo para una revisión de código centrada en la corrección de com-
ponentes [Usar]
8. Aplicar una variedad de estrategias para la prueba y depuración de programas sencillos [Usar]
9. Contruir, ejecutar y depurar programas usando un IDE moderno y herramientas asociadas tales
como herramientas de pruebas de unidad y depuradores visuales [Usar]
10. Construir y depurar programas que utilizan las bibliotecas estándar disponibles con un lenguaje
de programación elegido [Usar]
11. Analizar el grado en que el código de otro programador cumple con los estándares de documen-
tación y de estilo de programación [Evaluar]
12. Aplicar los estandares de documentación y estilo de programación que contribuyan a la legibili-
dad y mantenimiento de software [Usar]
Objetivos de Aprendizaje:
Core-Tier1:
1. Enumerar los patrones comúnmente encontrados de cómo los cálculos son organizados [Fami-
liarizarse]
2. Describir los bloques de construcción básicos de las computadoras y su rol en desarrollo histórico
de la arquitectura del computador. [Familiarizarse]
3. Articular las diferencias entre un solo thread contra múltiples threads, un solo servidor contra
modelos de servidores múltiples, motivados por ejemplos del mundo real (recetas de cocina,
lineas de múltiples cajeros y parejas) [Familiarizarse]
5. Diseñar un circuito lógico simple usando los bloques de construcción fundamental del diseño
lógico [Usar]
6. Usar herramientas para la captura, sı́ntesis, y la simulación para evaluar un diseño lógico [Usar]
7. Escribir problema secuencial simple y una versión paralela simple de un mismo programa [Usar]
Confiabilidad.
Objetivos de Aprendizaje:
Core-Tier1:
1. Describir cómo los sistemas computacionales están construı́dos con capas sobre capas basada en
la separación de los problemas, con interfaces bien definidas, ocultando los detalles de las capas
bajas a las capas superiores [Familiarizarse]
2. Describir que el hardware, VM, OS, aplicación son capas adicional interpretación/procesamiento
[Familiarizarse]
3. Describir los mecanismos de como los errores se detectan, nos notificados hacia atrás y se manejan
a través de capas [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier1:
1. Describir los cálculos como un sistema que se caracteriza por un conjunto conocido de configu-
raciones con las transiciones de una configuración (estado) a otra (estado) [Familiarizarse]
2. Describir la distinción entre sistemas cuya salida es sólo una función de su entrada (combinacio-
nal) y los que tienen memoria/historia (secuencial) [Familiarizarse]
3. Describir una computadora como una máquina de estados que interpreta las instrucciones de la
máquina [Familiarizarse]
4. máquina de estados y que pueden existir representaciones alternativas para el mismo cálculo
[Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier1:
2. Demostrar sobre una linea de tiempo de ejecución que los eventos y operaciones paralelas pueden
tomar lugar simultaneamente (al mismo tiempo). Explicar como la carga de trabajo puede ser
realizada en menos tiempo si se explora el paralelismo [Familiarizarse]
4. Definir las diferencias entre los conceptos de Paralelismo a nivel de Instrucción, Paralelismo
a nivel de datos, Paralelimos/Multitareas a nivel de hebras, Paralelimos a nivel de Proce-
sos/Peticiones [Familiarizarse]
5. Escribir mas de un programa en paralelo (por ejemplo, un programa paralelo en mas de un pa-
radigma de programación paralela; un programa paralelo que administre recursos compartidos a
través de primitivas de sincronización; un programa paralelo que realiza operaciones simultaneas
sobre datos particionados a través de paralelización de tareas/procesos (por ejemplo, busqueda
de términos en paralelo; un programa que realiza paso a paso un procesamiento pipeline a través
de paso de mensajes)) [Usar]
6. Usar herramientas de desempeño para medir el speed-up alcanzado por un programa paralelo en
términos de tamaño de los datos y número de recursos [Evaluar]
La ecuación CPI (Cycles per Instruction) como una herramienta para entender puntos de equi-
librio en el diseño de un conjunto de instrucciones, secuencia de ejecución en un procesador y
organización de un sistema de memoria.
La ley de Amdahl: la parte de la computación que no se puede acelerar limita el efecto de las
partes que si pueden.
Objetivos de Aprendizaje:
Core-Tier1:
1. Explique cómo los componentes de la arquitectura del sistema contribuyen a la mejora del
rendimiento [Familiarizarse]
Clases de recursos (p.e., unidad de procesador, memoria, disco, ancho de banda neto)
Objetivos de Aprendizaje:
Core-Tier2:
1. Definir como recursos computacionales limitados (por ejemplo, participación de procesador, me-
moria, almacenamiento y ancho de banda) son gestionadas por una cuidadosa asignación para
entidades existentes [Familiarizarse]
2. Describir los algoritmos de planificación mediante el cual, recursos son asignados a entidades
competentes, y los factores de calidad por el cual se evaluan estos algoritmos, tal como equidad
(fairness) [Familiarizarse]
La velocidad de la luz y los computadores (un pie por nano segundo vs reloj de 1 GHz)
Memoria cache y coherencia de memoria cache en bases de datos, sistemas operativos, sistemas
distribuı́dos y arquitectura de computadores.
Objetivos de Aprendizaje:
Core-Tier2:
2. Describir por qué las cosas que están cerca en espacio toman menos tiempo para su acceso
[Familiarizarse]
Los niveles de indirección, ilustrados por la memoria virtual para la gestión de los recursos de
memoria fı́sica.
Objetivos de Aprendizaje:
Core-Tier2:
1. Explicar por qué es importante isolar y proteger la ejecución de programas individuales y am-
bientes que comparten recursos subyacentes comunes [Familiarizarse]
2. Describa cómo el concepto de indirección puede crear la ilusión de un equipo y recursos dedicados,
incluso cuando fı́sicamente esté compartida entre varios programas y entornos [Familiarizarse]
Nota general de referencias cruzadas: Fundamentos de Sistemas también contiene una introducción
al paralelismo (2.15.1 Paradigmas computacionales, Pág. 116, 2.15.4 Paralelismo, Pág. 118, 2.16.6
Desempeño en paralelo, Pág. 127).
La introducción al paralelismo en SF complementa el uno aquı́ y no hay restricción de pedido entre
ellos. En San Francisco, la idea es proporcionar una visión unificada del apoyo del sistema para su
ejecución simultánea en varios niveles de abstracción (el paralelismo es inherente a las puertas, proce-
sadores, sistemas operativos y servidores), mientras que aquı́ la atención se centra en una comprensión
preliminar de paralelismo como la computación primitivo y las complicaciones que surgen en paralelo
y la programación concurrente. Teniendo en cuenta estas diferentes perspectivas, las horas asignadas
a cada uno no son redundantes: ver los sistemas de capas y los conceptos computacionales de alto
nivel se contabilizan por separado en termsof las horas centrales.
Metas del Paralelismo (ej. rendimineto) frente a Concurrencia (ej. control de acceso a recursos
compartidos)
Objetivos de Aprendizaje:
Core-Tier1:
1. Distinguir el uso de recursos computacionales para una respuesta mas rápida para administrar
el acceso eficiente a un recurso compartido [Familiarizarse]
3. Distinguir datos de carrera (data races) a partir de carreras de mas alto nivel [Familiarizarse]
Objetivos de Aprendizaje:
Core-Tier1:
2. Dar un ejemplo de una ordenación de accesos entre actividades concurrentes (por ejemplo, un
programa con condición de carrera) que no son secuencialmente consistentes [Familiarizarse]
Core-Tier2:
3. Dar un ejemplo de un escenario en el que el bloqueo de mensajes enviados pueden dar deadlock
[Usar]
4. Explicar cuándo y por qué mensajes de multidifusión (multicast) o basado en eventos puede ser
preferible a otras alternativas [Familiarizarse]
5. Escribir un programa que termine correctamente cuando todo el conjunto de procesos concu-
rrentes hayan sido completados [Usar]
6. Usar una apropiada cola de sincronización para almacenar temporalmente datos pasados entre
actividades [Usar]
7. Explicar por qué verificaciones para precondiciones, y acciones basados en estas verificaciones,
deben compartir la misma unidad de atomicidad para ser efectivo [Familiarizarse]
8. Escribir un programa de prueba que pueda revelar un error de programación concurrente; por
ejemplo, falta una actualización cuando dos actividades intentan incrementar una variable [Usar]
10. Describir las ventajas relativas del control de concurrencia optimista y conservadora bajo dife-
rentes tipos de carrera entre actualizaciones [Familiarizarse]
11. Dar un ejemplo de un escenario en el que un intento optimista de actualización puede nunca
completarse [Familiarizarse]
Elective:
12. Usar semaforos o variables de condición para bloquear hebras hasta una necesaria precondición
de mantenga [Usar]
Aceleración y escalabilidad.
Electivo
Algoritmos de grafos paralelo (por ejemplo, la ruta más corta en paralelo, árbol de expansión
paralela)
Ref: 2.18.2 Estrategias Algorı́tmicas, Pág. 141
Cálculos de matriz paralelas.
Productor-consumidor y algoritmos paralelos segmentados.
Ejemplos de algoritmos paralelos no-escalables.
Objetivos de Aprendizaje:
Core-Tier2:
1. Definir: camino crı́tico, trabajo y span [Familiarizarse]
2. Calcular el trabajo y el span y determinar el camino crı́tico con respecto a un diagrama de
ejecución paralela. [Usar]
3. Definir speed-up y explicar la noción de escalabilidad de un algoritmo en este sentido [Familia-
rizarse]
4. Identificar tareas independientes en un programa que debe ser paralelizado [Usar]
5. Representar caracterı́sticas de una carga de trabajo que permita o evite que sea naturalmente
paralelizable [Familiarizarse]
6. Implementar un algoritmo dividir y conquistar paralelo (y/o algoritmo de un grafo) y medir
empiricamente su desempeño relativo a su analogo secuencial [Usar]
7. Descomponer un problema (por ejemplo, contar el número de ocurrencias de una palabra en un
documento) via operaciones map y reduce [Usar]
Elective:
8. Proporcionar un ejemplo de un problema que se corresponda con el paradigma productor-
consumidor [Familiarizarse]
9. Dar ejemplos de problemas donde el uso de pipelining serı́a un medio eficaz para la paralelización
[Familiarizarse]
10. Implementar un algoritmo de matriz paralela [Usar]
11. Identificar los problemas que surgen en los algoritmos del tipo productor-consumidor y los me-
canismos que pueden utilizarse para superar dichos problemas [Familiarizarse]
Electivo
GPU, coprocesamiento.
Taxonomia de Flynn.
Objetivos de Aprendizaje:
Core-Tier1:
Core-Tier2:
3. Distinguir los tipos de tareas que son adecuadas para máquinas SIMD [Familiarizarse]
Elective:
6. Describir el soporte a de nivel de lenguaje ensamblador para las operaciones atómicas [Familia-
rizarse]
8. Describir los desafı́os clave del desempeño en diferentes memorias y topologı́as de sistemas dis-
tribuidos [Familiarizarse]
Equilibrio de carga.
Programación y contención.
Ref: 2.12.4 Planificación y despacho, Pág. 103
Objetivos de Aprendizaje:
Elective:
Objetivos de Aprendizaje:
Elective:
2. Explicar las estrategias para sincronizar una vista comun de datos compartidos a través de una
colección de dispositivos [Familiarizarse]
4. Desplegar una aplicación que usa una infraestructura en la nube para computación y/o recursos
de datos [Usar]
Modelos formales de procesos y paso de mensajes, incluyendo algebras como Procesos Secuen-
ciales de Comunicación (CSP) y Pi-Calculus
Técnicas para especificar y comprobar las propiedades de corrección tales como atomicidad y la
libertad de las carreras de datos.
Objetivos de Aprendizaje:
Elective:
1. Modelar un proceso concurrente usando un modelo formal, por ejemplo, cálculo pi [Usar]
4. Usar un modelo para mostrar las garantias de progreso en un algoritmo paralelo [Usar]
5. Usar técnicas formales para mostrar que un algoritmo paralelo es correcto con respecto a la
seguridad o la propiedad liveness [Usar]
Core Tier2
Aplicaciones de Administración de la Información.
Análisis e Indexación.
Objetivos de Aprendizaje:
Core-Tier1:
1. Describir cómo los seres humanos obtienen acceso a información y datos para apoyar sus nece-
sidades [Familiarizarse]
2. Describir las ventajas y desventajas del control organizacional central sobre los datos [Evaluar]
3. Identificar las carreras/roles asociados con la gestión de la información (por ejemplo, el admi-
nistrador de base de datos, modelador de datos, desarrollador de la aplicación, el usuario final)
[Familiarizarse]
5. Demostrar usos del almacenamiento explicito de metadata/esquemas asociados con los datos
[Usar]
Core-Tier2:
7. Critique una solicitud de información con respecto a satisfacer las necesidades de información
del usuario [Evaluar]
10. Describir varias soluciones técnicas a los problemas relacionados con la privacidad de la infor-
mación, integridad, seguridad y preservación [Familiarizarse]
11. Explicar medidas de eficiencia (rendimiento, tiempo de respuesta) y efectividad (llamada, pre-
cisión) [Familiarizarse]
12. Describir métodos para aumentar la escala de los sistemas de información [Familiarizarse]
13. Identificar las vulnerabilidades y escenarios de fallo en las formas comunes de los sistemas de
información [Usar]
Electivo
Enfoques para la gestión de grandes volúmenes de datos (por ejemplo, sistemas de bases de datos
NoSQL, uso de MapReduce).
Objetivos de Aprendizaje:
Core-Tier2:
1. Explica las caracterı́sticas que distinguen un esquema de base de datos de aquellos basados en
la programación de archivos de datos [Familiarizarse]
2. Describe los diseños más comunes para los componentes base de sistemas de bases de datos
incluyendo el optimizador de consultas, ejecutor de consultas, administrador de almacenamiento,
métodos de acceso y procesador de transacciones [Familiarizarse]
3. Cita las metas básicas, funciones y modelos de un sistema de bases de datos [Familiarizarse]
4. Describe los componentes de un sistema de bases datos y da ejemplos de su uso [Familiarizarse]
5. Identifica las funciones principales de un SGBD y describe sus roles en un sistema de bases de
datos [Familiarizarse]
6. Explica los conceptos de independencia de datos y su importancia en un sistema de bases de
datos [Familiarizarse]
7. Usa un lenguaje de consulta declarativo para recoger información de una base de datos [Usar]
8. Describe las capacidades que las bases de datos brindan al apoyar estructuras y/o la secuencia
de flujo de datos, ejm. texto [Familiarizarse]
Elective:
9. Describe los enfoques principales para almacenar y procesar larges volúmenes de datos [Fami-
liarizarse]
2.17.4. IM/Indexación
Tópicos:
Electivo
Indexando texto.
Objetivos de Aprendizaje:
Elective:
4. Identificar los ı́ndices adecuados para determinado el esquema relacional y el conjunto de con-
sultas [Usar]
5. Estimar el tiempo para recuperar información, cuando son usados los ı́ndices comparado con
cuando no son usados [Usar]
6. Describir los desafı́os claves en el rastreo web, por ejemplo, la detección de documentos duplica-
dos, la determinación de la frontera de rastreo [Familiarizarse]
Dependencia funcional.
Descomposición de un esquema.
Teorı́a de la representación.
Objetivos de Aprendizaje:
Elective:
6. Determina la dependencia funcional entre dos o más atributos que son subconjunto de una
relación [Evaluar]
7. Conecta restricciones expresadas como clave primaria y foránea, con dependencias funcionales
[Usar]
9. Determina si un conjunto de atributos forma una superclave y/o una clave candidata de una
relación dada dependencias funcionales [Evaluar]
10. Evalua una descomposición propuesta, a fin de determinar si tiene una unión sin pérdidas o
preservación de dependencias [Evaluar]
11. Describe las propiedades de la FNBC, FNUP (forma normal unión de proyecto), 5FN [Familia-
rizarse]
12. Explica el impacto de la normalización en la eficacia de las operaciones de una base de datos
especialmente en la optimización de consultas [Familiarizarse]
13. Describe que es una dependencia de multi valor y cual es el tipo de restricciones que especifica
[Familiarizarse]
Selecciones
Proyecciones
Select-project-join
Agregaciones y agrupaciones.
Subconsultas.
Procedimientos almacenados.
Objetivos de Aprendizaje:
Elective:
1. Crear un esquema relacional de bases de datos en SQL que incorpora restricciones clave y
restricciones de integridad de entidad e integridad referencial [Usar]
2. Usar SQL para crear tablas y devuelve (SELECT) la información de una base de datos [Usar]
4. Crear una consulta no-procedimental al llenar plantillas de relacines para construir un ejemplo
del resultado de una consulta requerida [Usar]
5. Adicionar consultas orientadas a objetos en un lenguaje stand-alone como C++ o Java (ejm.
SELECT ColMethod() FROM Objeto) [Usar]
6. Escribe un procedimiento almacenado que trata con parámetros y con algo de flujo de control
de tal forma que tenga funcionalidad [Usar]
Transacciones.
Fallo y recuperación.
Control concurente.
Objetivos de Aprendizaje:
Elective:
3. Describir los problemas especificos para la ejecución de una transacción eficiente [Familiarizarse]
4. Explicar cuando y porqué se necesita un rollback, y cómo registrar todo asegura un rollback
adecuado [Evaluar]
5. Explicar el efecto de diferentes niveles de aislamiento sobre los mecanismos de control de concu-
rrencia [Evaluar]
7. Describe las relaciones entre hashing, compresión, y búsquedas eficientes en bases de datos
[Familiarizarse]
9. Explica como el diseño fı́sico de una base de datos afecta la eficiencia de las transacciones en
ésta [Familiarizarse]
Agrupación de datos.
Limpieza de datos.
Visualización de datos.
Ref: 2.5.6 Visualización, Pág. 54, 2.1.4 Visualización interactiva, Pág. 19
Objetivos de Aprendizaje:
Elective:
1. Compara y contrasta los diversos usos de la minerı́a de datos como se evidencia en campos tanto
de investigación como de aplicación [Evaluar]
3. Caracteriza los tipos de patrones que pueden ser descubiertos por minerı́a de reglas de asociación
[Evaluar]
4. Describe como expandir un sistema relacional para encontrar patrones usando reglas de asocia-
ción [Familiarizarse]
6. Identifica y caracteriza fuentes de ruido, redundancia y valores atı́picos en los datos presentes
[Evaluar]
8. Describe porqué los diversos procesos de cierre de ciclo mejoran la efectividad de la minerı́a de
datos [Familiarizarse]
Enrutamiento y filtrado.
Búsqueda multimedia.
Búsqueda por facetas (por ejemplo, el uso de citas, palabras clave, esquemas de clasificación).
Librerı́as digitales.
Metadata y catalogación.
Objetivos de Aprendizaje:
Elective:
2. Describe que temas son especı́ficos para una recuperación de la información eficiente [Familia-
rizarse]
las áreas avanzadas de la informática: inteligencia artificial, bases de datos, computación distribuida,
gráficos, redes, sistemas operativos, lenguajes de programación, de seguridad, y ası́ sucesivamente.
Algoritmos que tienen utilidad especı́fica en cada uno de éstos se enumeran en las áreas de conocimiento
relevantes. Criptografı́a, por ejemplo, aparece en la nueva área de conocimiento en 2.4 Aseguramiento
y Seguridad de la Información (IAS), Pág. 37, mientras que los algoritmos paralelos y distribuidos
aparecen el Área de Conocimiento de 2.16 Computación paralela y distribuı́da (PD), Pág. 122.
Al igual que con todas las áreas de conocimiento, el orden de los temas y sus agrupaciones no ne-
cesariamente se correlaciona con un orden especı́fico de presentación. Diferentes programas enseñarán
los temas en diferentes cursos y deben hacerlo en el orden que ellos creen es el más apropiado para
sus estudiantes.
área de Conocimiento (Knowledge Area-KA) (KA) Core Core Electivo
Tier1 Tier2
2.18.1 Análisis Básico (Pág. 140) 2 2 No
2.18.2 Estrategias Algorı́tmicas (Pág. 141) 5 1 No
2.18.3 Algoritmos y Estructuras de Datos fundamentales (Pág. 142) 9 3 No
2.18.4 Computabilidad y complejidad básica de autómatas 3 3 No
(Pág. 143)
2.18.5 Complejidad Computacional Avanzada (Pág. 144) Si
2.18.6 Teorı́a y Computabilidad Avanzada de Autómatas (Pág. 144) Si
2.18.7 Estructuras de Datos Avanzadas y Análisis de Algoritmos Si
(Pág. 145)
6. Realizar estúdios empı́ricos para validar una hipótesis sobre runtime stemming desde un análisis
matemático Ejecute algoritmos con entrada de varios tamaños y compare el desempeño [Evaluar]
7. Da ejemplos que ilustran las compensaciones entre espacio y tiempo que se dan en los algoritmos
[Familiarizarse]
Core-Tier2:
8. Use la notación formal de la Big O para dar lı́mites superiores asintóticos en la complejidad de
tiempo y espacio de los algoritmos [Usar]
9. Usar la notación formal Big O para dar lı́mites de casos esperados en el tiempo de complejidad
de los algoritmos [Usar]
10. Explicar el uso de la notación theta grande, omega grande y o pequeña para describir la cantidad
de trabajo hecho por un algoritmo [Familiarizarse]
11. Usar relaciones recurrentes para determinar el tiempo de complejidad de algoritmos recursiva-
mente definidos [Usar]
12. Resuelve relaciones de recurrencia básicas, por ejemplo. usando alguna forma del Teorema Maes-
tro [Usar]
Algoritmos voraces.
Divide y vencerás.
Ref: 2.13.1 Algoritmos y Diseño, Pág. 109
Bactraking recursivo.
Programación Dinámica.
Core Tier2
Ramificación y poda.
Heurı́sticas.
Objetivos de Aprendizaje:
Core-Tier1:
1. Para cada una de las estrategias (fuerza bruta, algoritmo goloso, divide y vencerás, recursividad
en reversa y programación dinámica), identifica un ejemplo práctico en el cual se pueda aplicar
[Familiarizarse]
2. Utiliza un enfoque voraz para resolver un problema especı́fico y determina si la regla escogida
lo guı́a a una solución óptima [Evaluar]
4. Usa recursividad en reversa a fin de resover un problema como en el caso de recorrer un laberinto
[Usar]
Core-Tier2:
9. Describe las compensaciones que se dan entre usar estrategias de fuerza bruta y aquellas basadas
en heurı́sticas [Evaluar]
10. Describe como un enfoque de ramificación y poda puede ser usado para mejorar el rendimiento
de un método heurı́stico [Familiarizarse]
Algoritmos numéricos simples, tales como el cálculo de la media de una lista de números, en-
contrar el mı́nimo y máximo.
Algoritmos de ordenamiento con peor caso o caso promedio en O(N lg N) (Quicksort, Heapsort,
Mergesort)
Core Tier2
Montı́culos (Heaps)
Objetivos de Aprendizaje:
Core-Tier1:
2. Implementar algoritmos de busqueda simple y explicar las diferencias en sus tiempos de com-
plejidad [Evaluar]
3. Ser capaz de implementar algoritmos de ordenamiento comunes cuádraticos y O(N log N) [Usar]
6. Discutir factores otros que no sean eficiencia computacional que influyan en la elección de algo-
ritmos, tales como tiempo de programación, mantenibilidad, y el uso de patrones especı́ficos de
la aplicación en los datos de entrada [Familiarizarse]
7. Explicar como el balanceamiento del arbol afecta la eficiencia de varias operaciones de un arbol
de búsqueda binaria [Familiarizarse]
8. Resolver problemas usando algoritmos básicos de grafos, incluyendo busqueda por profundidad
y busqueda por amplitud [Usar]
9. Demostrar habilidad para evaluar algoritmos, para seleccionar de un rango de posibles opciones,
para proveer una justificación por esa selección,y para implementar el algoritmo en un contexto
en especı́fico [Evaluar]
Core-Tier2:
10. Describir la propiedad del heap y el uso de heaps como una implementación de colas de prioridad
[Familiarizarse]
11. Resolver problemas usando algoritmos de grafos, incluyendo camino más corto de una sola fuente
y camino más corto de todos los pares, y como mı́nimo un algoritmo de arbol de expansion
minima [Usar]
Expresiones regulares.
Problema de la parada.
Core Tier2
Objetivos de Aprendizaje:
Core-Tier1:
2. Diseñe una máquina de estado finito determinista para aceptar un determinado lenguaje [Usar]
3. Genere una expresión regular para representar un lenguaje especı́fico [Usar]
4. Explique porque el problema de la parada no tiene solucion algorı́tmica [Familiarizarse]
Core-Tier2:
5. Diseñe una gramática libre de contexto para representar un lenguaje especificado [Usar]
6. Define las clases P y NP [Familiarizarse]
7. Explique el significado de NP-Completitud [Familiarizarse]
La tesis de Church-Turing.
Computabilidad.
Teorema de Rice.
Implicaciones de la no-computabilidad.
Objetivos de Aprendizaje:
Elective:
2. Convierte entre notaciones igualmente poderosas para un lenguaje, incluyendo entre estas AFDs,
AFNDs, expresiones regulares, y entre AP y GLCs [Usar]
3. Explica la tesis de Church-Turing y su importancia [Familiarizarse]
Árboles balanceados (ej. árboles AVL, Arboles red-black, Arboles biselados (splay trees), Treaps)
Redes de Flujo (ej. Flujo Máximo [Algoritmo de Ford-Fulkerson], Flujo Máximo - Mı́nimo Corte,
Máxima Asignación Bipartita)
Algortimos estocásticos.
Algoritmos de aproximación.
Análisis amortizado.
Análisis Probabilı́stico.
Algoritmos en lı́nea y análisis competitivo.
Objetivos de Aprendizaje:
Elective:
1. Entender el mapeamento de problemas del mundo real a soluciones algorı́tmicas (ejemplo, pro-
blemas de grafos, programas lineares,etc) [Evaluar]
Capı́tulo 3
Nivel
1xx = introductorio, 2xx = intermedio, 3xx = avanzado, 4xx = proyecto final de carrera
El tipo de curso esta determinado por sus 2 primeras letras. Los posibles códigos para estos tipos
son:
1. CS Área de Ciencia de la Computación (Computer Science);
Al mismo tiempo, y de acuerdo a la ley universitaria vigente, los cursos están clasificados en:
AF: Área formativa, AE: Área de especialidad, AB: Área básica, AC: Área complementaria.
Segundo Semestre
Código Curso Área HT HP HL Cr TIPO Requisitos
CS1D02 Estructuras Discretas II (Pág 180) AF 2 4 4 O CS1D01 (1er Sem)
CS1102 Programación Orientada a Objetos I (Pág 183) AF 2 4 4 O CS1100 (1er Sem)
ME0019 Fı́sica I (Pág 188) AB 4 4 O
GH1101 Inglés I (Pág 191) AC 10 3 O
GH0006 Laboratorio de Comunicación II (Pág 194) AC 2 2 3 O GH0005 (1er Sem)
EG0005 Matemática II (Pág 196) AB 2 4 4 O EG0003 (1er Sem)
22
Tercer Semestre
Código Curso Área HT HP HL Cr TIPO Requisitos
CS2B01 Desarrollo Basado en Plataformas (Pág 199) AF 1 2 2 O CS1102 (2do Sem)
CS2201 Arquitectura de Computadores (Pág 202) AF 2 2 3 O CS1D02 (2do Sem)
CS1103 Programación Orientada a Objetos II (Pág 207) AF 3 2 4 O CS1102 (2do Sem)
EN0021 Fı́sica II (Pág 214) AB 4 4 O ME0019 (2do Sem)
GH0007 Introducción al Desarrollo de Empresas (Pág 217) AC 1 2 2 O EG0004 (1er Sem)
GH1102 Inglés II (Pág 219) AC 10 3 O GH1101 (2do Sem)
EG0006 Matemática III (Pág 222) AB 4 4 O EG0005 (2do Sem)
147
147
22
148
148
Cuarto Semestre
Código Curso Área HT HP HL Cr TIPO Requisitos
CS2701 Bases de Datos I (Pág 224) AF 2 4 4 O CS1102 (2do Sem), CS1D02 (2do Sem)
CS2100 Algoritmos y Estructuras de Datos (Pág 229) AF 2 4 4 O CS1103 (3er Sem)
CS2101 Teorı́a de la Computación (Pág 231) AF 2 4 4 O CS1D02 (2do Sem)
IN0054 Estadı́stica y Probabilidades (Pág 234) AB 3 2 4 O EG0003 (1er Sem)
GH0009 Perú ¿paı́s industrial? (Pág 236) AC 2 2 O GH0006 (2do Sem)
GH2101 Inglés III (Pág 238) AC 10 3 O GH1102 (3er Sem)
GH0008 Gestión de Empresas (Pág 241) AC 1 2 2 O GH0007 (3er Sem)
EG0007 Proyecto Interdisciplinario I (Pág 243) XD 2 2 O EG0004 (1er Sem)
25
Quinto Semestre
Octavo Semestre
Código Curso Área HT HP HL Cr TIPO Requisitos
CS2H01 Interacción Humano Computador (Pág 315) AE 1 4 3 O CS3903 (6to Sem)
CS3I01 Seguridad en Computación (Pág 320) AE 1 4 3 O CS2301 (7mo Sem)
CS3P01 Computación Paralela y Distribuı́da (Pág 326) AF 2 4 4 O CS2102 (5to Sem), CS2301 (7mo Sem)
CS4002 Proyecto de Final de Carrera I (Pág 330) AF 3 3 O CS2102 (5to Sem)
GH1013 Crı́tica de la Modernidad (Pág 332) AC 2 2 O GH1002 (7mo Sem)
15
Noveno Semestre
Código Curso Área HT HP HL Cr TIPO Requisitos
CS4003 Proyecto de Final de Carrera II (Pág 337) AF 2 4 4 O CS4002 (8vo Sem)
CS3700 Big Data (Pág 344) AE 1 4 3 O CS2702 (5to Sem), CS3P01 (8vo Sem)
CS3602 Robótica (Pág 339) AE 2 4 4 E CS2601 (7mo Sem)
CS3501 Tópicos en Computación Gráfica (Pág 342) AE 2 4 4 E CS2501 (7mo Sem)
CS3901 Ingenierı́a de Software III (Pág 347) AE 2 4 4 E CS2902 (7mo Sem)
BI0021 Bioinformática (Pág 351) AE 3 2 4 O CS2102 (5to Sem)
GH0016 Liderazgo y Negociación (Pág 355) AC 2 2 3 O GH0015 (6to Sem), EG0009 (6to Sem)
149
149
18
150
150
Décimo Semestre
Código Curso Área HT HP HL Cr TIPO Requisitos
CS3P02 Cloud Computing (Pág 357) AE 1 4 3 O CS3700 (9no Sem)
CS3P03 Internet de las Cosas (Pág 361) AE 1 4 3 O CS3P01 (8vo Sem)
CS4004 Proyecto de Final de Carrera III (Pág 365) AF 2 8 6 O CS4003 (9no Sem)
GH0020 Behavioral Economics (Pág 367) AC 3 3 E
GH0017 Introducción al Quechua (Pág 368) AC 3 3 E
GH0019 Emprendedores en Acción (Pág 370) AC 3 3 E
GH0021 Diseño de Ficciones (Pág 373) AC 3 3 E
15
ME0019
CS1D01
GH0005
CS1D02
GH1101
GH0006
EG0003
EG0004
EG0005
CS1100
CS1102
QI0027
Competencia/Curso
a) Aplicar conocimientos de computación y de matemáticas. 2 2 3 1 3 2 3
b) Analizar problemas e identificar y definir los requerimientos computacionales.
c) Diseñar, implementar y evaluar un sistema, proceso, componente o programa 2 3
computacional.
d) Trabajar efectivamente en equipos. 2
e) Entender las implicancias profesionales, éticas, legales, de seguridad y sociales. 2
f) Comunicarse efectivamente. 2 2 2
g) Analizar el impacto local y global de la computación.
h) Aprender de forma continua. 2
i) Utilizar técnicas y herramientas actuales. 3 2 1 2 2
j) Aplicar matemática, algoritmos y la teorı́a de la CS en el modelamiento y diseño 2 3 1 2 3
de sistemas.
k) Aplicar los principios de desarrollo y diseño en software de complejidad variable.
l) Desarrollar principios de investigación con nivel internacional.
m) Transformar sus conocimientos en emprendimientos tecnológicos.
HU) Aplicar conocimientos de humanidades en su labor profesional.
FH) Comprender que la formación humana contribuye al auténtico crecimiento per-
sonal.
TASDSH) Poner la tecnologı́a al servicio del ser humano.
151
152
152
Tercer Sem Cuarto Sem
GH0007
GH1102
GH0009
GH2101
GH0008
CS2B01
EG0006
EG0007
EN0021
CS2201
CS1103
CS2701
CS2100
CS2101
IN0054
Competencia/Curso
a) Aplicar conocimientos de computación y de matemáticas. 2 2 3 2 3 2
b) Analizar problemas e identificar y definir los requerimientos 2 2 2 2 3
computacionales.
c) Diseñar, implementar y evaluar un sistema, proceso, componente 2 2
o programa computacional.
d) Trabajar efectivamente en equipos. 2 2 2 2 2
e) Entender las implicancias profesionales, éticas, legales, de seguri- 2 2
dad y sociales.
f) Comunicarse efectivamente. 2 2 2 2 2 2
g) Analizar el impacto local y global de la computación. 2
GH2102
GH0011
GH0010
GH0012
GH0015
EG0008
EG0009
CS2S01
CS2901
CS2702
CS2102
CS3402
CS3903
CS3102
CS3101
Competencia/Curso
a) Aplicar conocimientos de computación y de matemáticas. 3 3 1 2
b) Analizar problemas e identificar y definir los requerimientos 2 3 3 3 3 2 2
computacionales.
c) Diseñar, implementar y evaluar un sistema, proceso, componente 2 2 1
o programa computacional.
d) Trabajar efectivamente en equipos. 2 2 2 2
e) Entender las implicancias profesionales, éticas, legales, de seguri- 2 2 2 2
dad y sociales.
f) Comunicarse efectivamente. 2 2 2 2 2 2 2
g) Analizar el impacto local y global de la computación. 3
h) Aprender de forma continua. 2 2
i) Utilizar técnicas y herramientas actuales. 3 2 2 2 2
j) Aplicar matemática, algoritmos y la teorı́a de la CS en el mode- 2 3 1 2
lamiento y diseño de sistemas.
k) Aplicar los principios de desarrollo y diseño en software de com- 2 3
plejidad variable.
l) Desarrollar principios de investigación con nivel internacional.
m) Transformar sus conocimientos en emprendimientos tecnológicos.
HU) Aplicar conocimientos de humanidades en su labor profesional.
FH) Comprender que la formación humana contribuye al auténtico cre-
cimiento personal.
TASDSH) Poner la tecnologı́a al servicio del ser humano.
153
154
154
Séptimo Sem Octavo Sem
AM0037
GH1002
GH0014
GH1013
CS2H01
CS3P01
CS2301
CS2501
CS2601
CS2902
CS4002
CS3I01
Competencia/Curso
a) Aplicar conocimientos de computación y de matemáticas. 2 2 2 2 2
b) Analizar problemas e identificar y definir los requerimientos computacionales. 1 2 2 1 3 2 3
c) Diseñar, implementar y evaluar un sistema, proceso, componente o programa 2 2 3 3 2
computacional.
GH0016
GH0020
GH0017
GH0019
GH0021
CS3P02
CS3P03
CS4003
CS3602
CS3501
CS3700
CS3901
CS4004
BI0021
Competencia/Curso
a) Aplicar conocimientos de computación y de matemáticas. 3 2 2 2 2 2 2 3
b) Analizar problemas e identificar y definir los requerimientos compu- 3 2 2 2 3 2 2 3
tacionales.
c) Diseñar, implementar y evaluar un sistema, proceso, componente o 3 2 3
programa computacional.
d) Trabajar efectivamente en equipos. 2 2 2 2 2
e) Entender las implicancias profesionales, éticas, legales, de seguridad y 3 2 3 2 2 2
sociales.
f) Comunicarse efectivamente. 3 2 3 2 2 2
g) Analizar el impacto local y global de la computación.
h) Aprender de forma continua. 3 1 3
i) Utilizar técnicas y herramientas actuales. 3 2 2 2 2 2 2 3
j) Aplicar matemática, algoritmos y la teorı́a de la CS en el modelamiento 2 2 3 2 2
y diseño de sistemas.
k) Aplicar los principios de desarrollo y diseño en software de complejidad
variable.
l) Desarrollar principios de investigación con nivel internacional. 3 3 3
m) Transformar sus conocimientos en emprendimientos tecnológicos. 3
HU) Aplicar conocimientos de humanidades en su labor profesional.
FH) Comprender que la formación humana contribuye al auténtico creci-
miento personal.
TASDSH) Poner la tecnologı́a al servicio del ser humano.
155
3.5. Malla curricular
156
156
Este documento también puede ser analizado desde el punto de vista de los prerequisitos de forma gráfica.
CS (112)
53.7 %
1.9 % 10.0 %
BI (4) 3.8 % EG (21)
1.9
1.9%%
ME (8) 1.4
2.8%%
22.3 %
EN (4)
IN (4)
QI (3)
FG (6)
GH (46.5)
Figura 3.3: Distribución de cursos por áreas considerando creditaje.
AF AE AB AC
Primer Semestre 8 7 6 21
Segundo Semestre 8 8 6 22
Tercer Semestre 9 8 5 22
Cuarto Semestre 12 4 7 23
Quinto Semestre 15 2 5 22
Sexto Semestre 12 4 6 22
Séptimo Semestre 4 3 4 4 15
Octavo Semestre 7 6 2 15
Noveno Semestre 4 11 3 18
Décimo Semestre 6 6 3 15
Total 85 30 33 47 201
42.2 % 14.9 % 16.4 % 23.3 %
Referencias Bibliográficas
[ACM and IEEE-CS, 2005] ACM and IEEE-CS (2005). Computing curricula: Information technology.
Technical report, ACM, IEEE-CS.
[Dı́az-Herrera and Hilburn, 2004] Dı́az-Herrera, J. L. and Hilburn, T. B. (2004). Software engineering:
Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. Technical
report, ACM, IEEE. Last visit June 2004.
[Gorgone et al., 2002b] Gorgone, J. T., Gray, P., Feinstein, D., Kasper, G. M., Luftman, J. N., Stohr,
E. A., Valacich, J. S., and Wigand, R. (2002b). Model curriculum and guidelines for graduate degree
Introductorio (85)
40.7 %
6.2 %
30.4 % Proyecto Final (13)
Intermedio (63.5)
22.5 %
Avanzado (47)
Capı́tulo 4
Prerrequisitos: Ninguno
2. Fundamentación
Este es el primer curso en la secuencia de los cursos introductorios a la Ciencia de la Computación.
En este curso se pretende cubrir los conceptos señalados por la Computing Curricula IEEE-CS/ACM
2013, bajo el enfoque orientado a objetos. La programación es uno de los pilares de la Ciencia de la
Computación; cualquier profesional del Área, necesitará programar para concretizar sus modelos y
propuestas. Este curso introdución a los participantes en los conceptos fundamentales de este arte. Lo
tópicos incluyen tipos de datos, estructuras de control, funciones, listas, recursividad y la mecánica de
la ejecución, prueba y depuración.
C2. Capacidad para tener una perspectiva crı́tica y creativa para identificar y resolver problemas
utilizando el pensamiento computacional.⇒ Outcome c
Tópicos: I: Pre-historia – El mundo antes de 1946. II: Historia del hardware, software, redes.
III: Pioneros de la Computación. IV: Historia de Internet.
Tópicos: I: Tipos como conjunto de valores junto con un conjunto de operaciones. a) Tipos primitivos
(p.e. numeros, booleanos) b) Composición de tipos construidos de otros tipos (p.e., registros,
uniones, arreglos, listas, funciones, referencias) II: Asociación de tipos de variables, argumentos,
resultados y campos. III: Tipo de seguridad y los errores causados por el uso de valores de
manera incompatible dadas sus tipos previstos.
Objetivos de Aprendizaje I: Tanto para tipo primitivo y un tipo compuesto, describir de manera
informal los valores que tiene dicho tipo [Familiarizarse] II: Para un lenguaje con sistema de
tipos estático, describir las operaciones que están prohibidas de forma estática, como pasar el
tipo incorrecto de valor a una función o método [Familiarizarse] III: Describir ejemplos de
errores de programa detectadas por un sistema de tipos [Familiarizarse] IV: Para múltiples
lenguajes de programación, identificar propiedades de un programa con verificación estática y
propiedades de un programa con verificación dinámica [Usar] V: Usar tipos y mensajes de error
de tipos para escribir y depurar programas [Usar] VI: Definir y usar piezas de programas (tales
como, funciones, clases, métodos) que usan tipos genéricos, incluyendo para colecciones [Usar]
Tópicos: I: Sintaxis y semántica básica de un lenguaje de alto nivel. II: Variables y tipos de datos
primitivos (ej., numeros, caracteres, booleanos) III: Expresiones y asignaciones. IV: Opera-
ciones básicas I/O incluyendo archivos I/O. V: Estructuras de control condicional e iterativas.
VI: Paso de funciones y parámetros. VII: Concepto de recursividad.
y depura un programa que usa cada una de las siguientes estructuras de datos fundamentales:
cálculos básicos, E/S simple, condicional estándar y estructuras iterativas, definición de funcio-
nes, y paso de parámetros [Usar] VI: Escribe un programa que usa E/S de archivos para brindar
persistencia a través de ejecuciones múltiples [Usar] VII: Escoje estructuras de condición y re-
petición adecuadas para una tarea de programación dada [Familiarizarse] VIII: Describe el
concepto de recursividad y da ejemplos de su uso [Evaluar] IX: Identifica el caso base y el caso
general de un problema basado en recursividad [Familiarizarse]
Tópicos: I: Diferencias entre el mejor, el esperado y el peor caso de un algoritmo. II: Definición
formal de la Notación Big O. III: Clases de complejidad como constante, logarı́tmica, lineal,
cuadrática y exponencial. IV: Uso de la notación Big O. V: Análisis de algoritmos iterativos
y recursivos.
Objetivos de Aprendizaje I: Explique a que se refiere con “mejor”, “esperado” y “peor” caso de
comportamiento de un algoritmo [Familiarizarse] II: En el contexto de a algoritmos especı́ficos,
identifique las caracterı́sticas de data y/o otras condiciones o suposiciones que lleven a diferentes
comportamientos [Familiarizarse] III: Indique la definición formal de Big O [Familiarizarse]
IV: Use la notación formal de la Big O para dar lı́mites superiores asintóticos en la complejidad
de tiempo y espacio de los algoritmos [Usar] V: Usar la notación formal Big O para dar lı́mites
de casos esperados en el tiempo de complejidad de los algoritmos [Usar]
Tópicos: I: Algoritmos numéricos simples, tales como el cálculo de la media de una lista de números,
encontrar el mı́nimo y máximo. II: Algoritmos de búsqueda secuencial y binaria. III: Algoritmos
de ordenamiento de peor caso cuadrático (selección, inserción) IV: Algoritmos de ordenamiento
con peor caso o caso promedio en O(N lg N) (Quicksort, Heapsort, Mergesort) V: Tablas
Hash, incluyendo estratégias para evitar y resolver colisiones. VI: Árboles de búsqueda binaria:
a) Operaciones comunes en árboles de búsqueda binaria como seleccionar el mı́nimo, máximo,
insertar, eliminar, recorrido en árboles. VII: Grafos y algoritmos en grafos: a) Representación
de grafos (ej., lista de adyacencia, matriz de adyacencia) b) Recorrido en profundidad y amplitud
VIII: Montı́culos (Heaps) IX: Grafos y algoritmos en grafos: a) Algoritmos de la ruta más
corta (algoritmos de Dijkstra y Floyd) b) Árbol de expansión mı́nima (algoritmos de Prim y
Kruskal) X: Búsqueda de patrones y algoritmos de cadenas/texto (ej. búsqueda de subcadena,
búsqueda de expresiones regulares, algoritmos de subsecuencia común más larga)
rango de posibles opciones, para proveer una justificación por esa selección,y para implementar
el algoritmo en un contexto en especı́fico [Evaluar] X: Describir la propiedad del heap y el uso de
heaps como una implementación de colas de prioridad [Familiarizarse] XI: Resolver problemas
usando algoritmos de grafos, incluyendo camino más corto de una sola fuente y camino más
corto de todos los pares, y como mı́nimo un algoritmo de arbol de expansion minima [Usar]
XII: Trazar y/o implementar un algoritmo de comparación de string [Usar]
Objetivos de Aprendizaje I: Diseñar e implementar una clase [Usar] II: Usar subclase para di-
señar una jerarquı́a simple de clases que permita al código ser reusable por diferentes subclases
[Familiarizarse] III: Comparar y contrastar (1) el enfoque procedurar/funcional- definiendo
una función por cada operación con el cuerdo de la función proporcionando un caso por cada
variación de dato - y (2) el enfoque orientado a objetos - definiendo una clase por cada variación
de dato con la definición de la clase proporcionando un método por cada operación. Entender
ambos enfoques como una definición de variaciones y operaciones de una matriz [Familiarizarse]
IV: Explicar la relación entre la herencia orientada a objetos (codigo compartido y overriding)
y subtipificación (la idea de un subtipo es ser utilizable en un contexto en el que espera al su-
pertipo) [Familiarizarse] V: Usar mecanismos de encapsulación orientada a objetos, tal como
interfaces y miembros privados [Familiarizarse]
Bibliografı́a: [Guttag, 2013, Zelle, 2010]
Objetivos de Aprendizaje I: Construir y depurar programas que utilizan las bibliotecas estándar
disponibles con un lenguaje de programación elegido [Familiarizarse]
Bibliografı́a: [Guttag, 2013, Zelle, 2010]
6. Bibliografı́a
[Brookshear, 2011] Brookshear, J. G. (2011). Computer Science: An Overview. Addison-Wesley.
[Guttag, 2013] Guttag, J. V. (2013). . Introduction To Computation And Programming Using Python.
MIT Press.
[Zelle, 2010] Zelle, J. (2010). Python Programming: An Introduction to Computer Science. Franklin,
Beedle & Associates Inc.
Prerrequisitos: Ninguno
2. Fundamentación
Las estructuras discretas proporcionan los fundamentos teóricos necesarios para la computación.
Estos fundamentos no sólo son útiles para desarrollar la computación desde un punto de vista teórico
como sucede En el curso de la teorı́a computacional, pero también es útil para la práctica de la
informática; En particular en aplicaciones tales como verificación, Criptografı́a, métodos formales,
etc.
Modelar situaciones reales descritas en lenguaje natural, usando lógica proposicional y lógica
predicada.
Elijir el método de demostración más apropiado para determinar la veracidad de una propuesta
y construir argumentos matemáticos correctos.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los aconteci-
mientos del mundo real que explican su pertinencia y utilidad.⇒ Outcome i,j
cd
6. Bibliografı́a
[Epp, 2010] Epp, S. S. (2010). Discrete Mathematics with Applications. Brooks Cole, 4 ed edition.
[Grimaldi, 2003] Grimaldi, R. (2003). Discrete and Combinatorial Mathematics: An Applied Intro-
duction. Pearson, 5 ed. edition.
[Rosen, 2007] Rosen, K. H. (2007). Discrete Mathematics and Its Applications. Mc Graw Hill, 7 ed.
edition.
[Scheinerman, 2012] Scheinerman, E. R. (2012). Mathematics: A Discrete Introduction. Brooks Cole,
3 ed. edition.
SUMILLA
Prerrequisitos: Ninguno
2. Fundamentación
Este curso es útil en esta carrera para que el alumno aprenda a mostrar un alto grado de dominio
de las leyes de la Quı́mica General.
Objetivos de Aprendizaje I: Entender y trabajar con los principios de la Termodinámica. II: Abs-
traer de la naturaleza los conceptos de las transformaciones de los gases.
Tópicos: I: Concepto. Constante de equilibrio. II: Ley de acción de las masas. III: Equilibrios ho-
mogéneos. Equilibrios heterogéneos. Equilibrios múltiples. IV: Factores que afectan el equilibrio
quı́mico. Principio de Le Chatelier.
Objetivos de Aprendizaje I: Describir, conocer y aplicar los conceptos del equilibrio quı́mico.
II: Resolver problemas.
Objetivos de Aprendizaje I: Conocer e interpretar los modelos atómicos clásicos. II: Entender los
fundamentos de la teorı́a atómica moderna. III: Conocer los conceptos básicos de la mecánica
cuántica. IV: Resolver problemas.
Tópicos: I: Ley periódica. II: Descripción de la tabla periódica. Periodo y grupo. Ubicación de un
elemento. III: Propiedades periódicas: Radio atómico, radio iónico, energı́a de ionización, afini-
dad electrónica. Electronegatividad. IV: Variación de las propiedades quı́micas. V: Ejercicios
y problemas.
Objetivos de Aprendizaje I: Entender la estructura de la tabla periódica. II: Conocer las propie-
dades de los elementos. III: Resolver problemas.
Tópicos: I: Teorı́a de la valencia. Evolución. II: Regla del octeto. III: Teorı́a de Lewis. IV: Enlace
iónico y electrovalente. V: Formación del par iónico entre los elementos s y los elementos p.
Las energı́as iónicas de las redes cristalinas. VI: Ciclo de Born Haber. VII: Enlace covalente.
Compartición de pares de electrones. VIII: Carga formal y estructura de Lewis. Concepto de
resonancia. IX: Excepciones a la regla del octeto. Fuerzas en enlace covalente. X: Teorı́a de
la repulsión de pares electrónicos del nivel de valencia (RPENV). XI: Concepto de hibrida-
ción. Hibridación sp, sp2, sp3 y otros tipos de hibridación. XII: Teorı́a del orbital molecular.
XIII: Ejercicios y problemas.
Tópicos: I: Definición. Presión de un gas. II: Leyes de los gases: de Boyle, Gay-Lussac y Charles.
Ecuación de un gas ideal. III: Ley de presiones parciales de Dalton. IV: Teorı́a cinética de los
gases. Distribución de velocidades moleculares. Trayectoria libre media. V: Ley de Graham de la
difusión y efusión. VI: Gases reales. Ecuación de Van der Waals. VII: Ejercicios y problemas.
Objetivos de Aprendizaje I: Conocer los conceptos básicos de los gases ideales. II: Entender y
aplicar la teorı́a cinética de los gases. III: Conocer conceptos de difusión y efusión de gases.
IV: Entender los conceptos de gases reales. V: Resolver problemas.
Objetivos de Aprendizaje I: Conocer conceptos básicos de las fuerzas intermoleculares. II: Cono-
cer y aplicar conceptos de vaporización y ebullición. III: Conocer y aplicar conceptos de tensión
superficial y cambios de fase. IV: Resolver problemas.
Tópicos: I: Reacción quı́mica. Expresiones de las reacciones quı́micas en forma de ecuaciones. Carac-
terı́sticas de una ecuación quı́mica. II: Tipos de reacciones quı́micas: Precipitación, ácido-base,
óxido-reducción. Cantidad de reactivos y productos. III: Relaciones estequiométricas: moles,
masa y volumen. IV: Leyes ponderales y volumétricas. V: Reactivo limitante. Rendimiento de
las reacciones. VI: Ejercicios y problemas.
Objetivos de Aprendizaje I: Conocer conceptos básicos de las reacciones quı́micas. II: Conocer
y aplicar las leyes ponderales y volumétricas. III: Resolver problemas.
Bibliografı́a: [Masterson, 1998, Babor-Ibarz, 1983]
6. Bibliografı́a
[Ander and Sonnessa, 1983] Ander, P. and Sonnessa, A. (1983). PRINCIPIO DE QUIMICA. Editorial
LIMUSA Mexico.
[Babor-Ibarz, 1983] Babor-Ibarz (1983). QUIMICA GENERAL MODERNA. EDITORIAL MARIN
S.A., BARCELONA, 8 edition.
2. Fundamentación
A través de este curso, el alumno mejorará y fortalecerá sus capacidades para comunicarse tanto a
nivel oral como escrito en un contexto académico. Para ello, el alumno se ejercitará en la composición
de textos, tomando en cuenta las exigencias propias de un lenguaje formal académico: caracterı́sticas
de la redacción académica (reglas de puntuación, ortografı́a, competencia léxico gramatical, normativa)
y empleo correcto de la información. A su vez, el curso promueve una lectura comprensiva que no se
limita al nivel descriptivo, sino que abarca también lo conceptual y metafórico, pues solo de ese modo
el estudiante desarrollará su capacidad crı́tica y analı́tica. El estudiante afrontará lecturas académicas
y de divulgación cientı́fica que le permitirán distinguir los objetivos planteados en los distintos tipos de
textos, y reconocer al texto oral y escrito como una unidad coherente y cohesionada en cuanto a forma
y contenido. Alcanzados estos objetivos, el estudiante comprenderá que las habilidades comunicativas
orales y escritas son competencias centrales de su vida universitaria y, posteriormente, de su vida
profesional.
3. Objetivos del curso
Con este curso el estudiante desarrolla y fortalece sus habilidades comunicativas orales y escritas
en el marco de un contexto académico. Además, comprende conceptual y metafóricamente textos
expositivos, e identifica los objetivos, jerarquı́a de las ideas y estructura de dichos textos. Al
finalizar el curso, el estudiante es capaz de producir textos expositivos descriptivos e informativos.
Ası́ mismo, desarrolla su capacidad de apertura y tolerancia hacia la diversidad de puntos de
vista gracias al continuo trabajo grupal, autoevaluaciones y evaluaciones de pares que enfrentará
a lo largo del ciclo en el curso.
6. Bibliografı́a
[D, 1993] D, C. (1993). La cocina de la Escritura. Barcelona,España,Anagrama.
2. Fundamentación
El curso tiene como objetivo desarrollar en los estudiantes las habilidades para manejar modelos en
ciencia e ingenierı́a relacionados con habilidades de cálculo diferencial simple. En el curso se estudian
y aplican conceptos relacionados con el cálculo de Lı́mites, derivados e integrales de funciones reales y
vectoriales de variables reales únicas que se utilizarán como base y apoyo al estudio de nuevos conte-
nidos y materias. También busca lograr capacidades de razonamiento y aplicabilidad para interactuar
con problemas del mundo real proporcionando una base matemática para actividades de desarrollo.
3. Objetivos del curso
Aplicar los conceptos de números complejos y funciones para resolver problemas relacionados
con la ciencia.
Aplicar conceptos matemáticos y técnicas de cálculo diferencial de una variable para resolver
situaciones problemáticas de la ciencia
Calcular las expresiones matemáticas de las integrales indefinidas con exactitud, orden y claridad
en el tratamiento de los datos.
tomografı́a: volumen del cerebro, bomba de agua, masa en espesante, superformula, volumen en
máquina de Wankel, longitud de hélice de molécula de ADN, etc.[Evaluar].
Bibliografı́a: [Stewart, 2012, Larson, 2014]
6. Bibliografı́a
[Larson, 2014] Larson, R. (2014). Calculus. CENGAGE Learning, 10th edition.
[Stewart, 2012] Stewart, J. (2012). Calculus. CENGAGE Learning, 7th edition.
Prerrequisitos: Ninguno
2. Fundamentación
Durante las sesiones plenarias, se realizarán clases magistrales relacionadas a la metodologı́a de
Design Thinking ası́ como su uso e importancia en los procesos de creación . Ası́ mismo, durante
estas sesiones tendremos ponencias sobre emprendimientos y startups relacionados a la ingenierı́a o
tecnologı́a. Durante las sesiones de laboratorio, los alumnos forman equipos que mantienen durante
el ciclo. Con la guı́a del profesor y a través de la metodologı́a del Design Thinking desarrollada en
las plenarias, los alumnos deberán plantear soluciones innovadoras a problemas reales inspirados en
los Global Challenges de las Naciones Unidas. Los alumnos contarán con una Bitácora Digital que
será revisada constantemente por los docentes a cargo. En ella se encontrarán los avances, procesos y
referentes del proyecto grupal. El curso culmina con las presentaciones de las propuestas planteadas
por los grupos.
Capacidad para diseñar un sistema, un componente o un proceso para satisfacer las necesidades
deseadas dentro de restricciones realistas (Nivel 1)
ñ) Comprender que la formación de un buen profesional no se desliga ni se opone sino mas bien
contribuye al auténtico crecimiento personal. Esto requiere de la asimilación de valores sólidos,
horizontes espirituales amplios y una visión profunda del entorno cultural. (Usar)
6. Bibliografı́a
[E, 2015] E, U. (2015). Intuición, acción, creación: Graphic Design Thinking. México:Editorial Gus-
tavo Gili.
[R, 2012] R, C. (2012). Design methods 1: 200 ways to apply design thinking. EE.UU Design Com-
munity College Inc.
2. Fundamentación
Para entender las técnicas computacionales avanzadas, los estudiantes deberán tener un fuerte
conocimiento de las diversas estructuras discretas, estructuras que serán implementadas y usadas en
laboratorio en el lenguaje de programación.
3. Objetivos del curso
Que el alumno sea capaz de modelar problemas de ciencia de la computación usando grafos y
árboles relacionados con estructuras de datos
Que el alumno aplicar eficientemente estrategias de recorrido para poder buscar datos de una
manera óptima
Objetivos de Aprendizaje I: Aplicar argumentos de conteo, incluyendo las reglas del producto y de
la suma, principio de inclusión-exclusión y progresiones aritméticas/geométricas [Familiarizarse]
II: Aplicar el principio de las casillas en el contexto de una demostración formal [Familiarizarse]
III: Calcular permutaciones y combinaciones en un conjunto, e interpreta su significado en el
contexto de una aplicación en particular [Familiarizarse] IV: Mapear aplicaciones del mundo
real a formalismos de conteo adecuados, como el determinar el número de formas de acomodar
a un conjunto de personas alrededor de una mesa, sujeto a restricciones en la disposición de los
asientos, o en el número de maneras de determinar ciertas manos en juegos de cartas (ejm. una
casa llena) [Familiarizarse] V: Resolver una variedad de relaciones de recurrencia básicas [Fa-
miliarizarse] VI: Analizar un problema para determinar las relaciones de recurrencia implı́citas
[Familiarizarse] VII: Realizar cálculos que involucran aritmética modular [Familiarizarse]
Tópicos: I: Árboles. a) Propiedades b) Estrategias de recorrido II: Grafos no dirigidos III: Grafos
dirigidos IV: Grafos ponderados V: Arboles de expansion/bosques. VI: Isomorfismo en grafos.
Tópicos: I: Espacio de probabilidad finita, eventos. II: Axiomas de Probabilidad y medidas de pro-
babilidad. III: Probabilidad condicional, Teorema de Bayes. IV: Independencia. V: Variables
enteras aleatorias (Bernoulli, binomial). VI: Esperado, Linearidad del esperado. VII: Varianza.
VIII: Independencia Condicional.
6. Bibliografı́a
[Grimaldi, 1997] Grimaldi, R. (1997). Matemáticas Discretas y Combinatoria. Addison Wesley Ibe-
roamericana.
[Johnsonbaugh, 1999] Johnsonbaugh, R. (1999). Matemáticas Discretas. Prentice Hall, México.
[Micha, 1998] Micha, E. (1998). Matemáticas Discretas. Limusa.
[Rosen, 2007] Rosen, K. H. (2007). Discrete Mathematics and Its Applications. Mc Graw Hill, 7 ed.
edition.
Prerrequisitos:
2. Fundamentación
Este es el segundo curso en la secuencia de los cursos introductorios a la informática.El curso
servirá como puente entre el paradigma de la imperativo y el orientado al objeto, a demás introducirá
a los participantes en los diversos temas del área de computación como: algoritmos, estructuras de
datos, ingenierı́a del software, etc.
C3. Una comprensión intelectual de, y el aprecio por el papel central de los algoritmos y estructuras
de datos.⇒ Outcome c
CS1. Modelar y diseñar sistemas de computadora de una manera que se demuestre comprensión del
balance entre las opciones de diseño.⇒ Outcome c
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome c
Tópicos: I: Breve revisión de los paradigmas de programación. II: Comparación entre programación
funcional y programación imperativa. III: Historia de los lenguajes de programación.
persistencia a través de ejecuciones múltiples [Usar] VII: Escoje estructuras de condición y re-
petición adecuadas para una tarea de programación dada [Evaluar] VIII: Describe el concepto
de recursividad y da ejemplos de su uso [Familiarizarse] IX: Identifica el caso base y el caso
general de un problema basado en recursividad [Evaluar]
Tópicos: I: Diseño orientado a objetos: a) Descomposicion en objetos que almacenan estados y poseen
comportamiento b) Diseño basado en jerarquia de clases para modelamiento II: Lenguajes
orientados a objetos para la encapsulación: a) privacidad y la visibilidad de miembros de la
clase b) Interfaces revelan único método de firmas c) clases base abstractas III: Definición
de las categorı́as, campos, métodos y constructores. IV: Las subclases, herencia y método de
alteración temporal. V: Subtipificación: a) Polimorfismo artı́culo Subtipo; upcasts implı́citos
en lenguajes con tipos. b) Noción de reemplazo de comportamiento: los subtipos de actuar como
supertipos. c) Relación entre subtipos y la herencia. VI: Uso de coleccion de clases, iteradores,
y otros componentes de la libreria estandar. VII: Asignación dinámica: definición de método
de llamada.
Objetivos de Aprendizaje I: Diseñar e implementar una clase [Usar] II: Usar subclase para di-
señar una jerarquı́a simple de clases que permita al código ser reusable por diferentes subclases
[Usar] III: Razonar correctamente sobre el flujo de control en un programa mediante el envı́o
dinámico [Usar] IV: Comparar y contrastar (1) el enfoque procedurar/funcional- definiendo
una función por cada operación con el cuerdo de la función proporcionando un caso por cada
variación de dato - y (2) el enfoque orientado a objetos - definiendo una clase por cada variación
de dato con la definición de la clase proporcionando un método por cada operación. Enten-
der ambos enfoques como una definición de variaciones y operaciones de una matriz [Evaluar]
V: Explicar la relación entre la herencia orientada a objetos (codigo compartido y overriding)
y subtipificación (la idea de un subtipo es ser utilizable en un contexto en el que espera al su-
pertipo) [Familiarizarse] VI: Usar mecanismos de encapsulación orientada a objetos, tal como
interfaces y miembros privados [Usar] VII: Definir y usar iteradores y otras operaciones so-
bre agregaciones, incluyendo operaciones que tienen funciones como argumentos, en múltiples
lenguajes de programación, selecionar la forma mas natural por cada lenguaje [Usar]
divide y vencerás para resolver un problema [Usar] VIII: Aplica técnicas de descomposición
para dividir un programa en partes más pequeñas [Usar] IX: Identifica los componentes de
datos y el comportamiento de mútiples tipos de datos abstractos [Usar] X: Implementa un
tipo de dato abstracto coherente, con la menor pérdida de acoplamiento entre componentes y
comportamientos [Usar] XI: Identifica las fortalezas y las debilidades relativas entre múltiples
diseños e implementaciones de un problema [Evaluar]
Tópicos: I: Algoritmos de fuerza bruta. II: Algoritmos voraces. III: Divide y vencerás. IV: Bac-
traking recursivo. V: Programación Dinámica.
Objetivos de Aprendizaje I: Para cada una de las estrategias (fuerza bruta, algoritmo goloso, divi-
de y vencerás, recursividad en reversa y programación dinámica), identifica un ejemplo práctico
en el cual se pueda aplicar [Familiarizarse] II: Utiliza un enfoque voraz para resolver un proble-
ma especı́fico y determina si la regla escogida lo guı́a a una solución óptima [Evaluar] III: Usa
un algoritmo de divide-y-vencerás para resolver un determinado problema [Usar] IV: Usa recur-
sividad en reversa a fin de resover un problema como en el caso de recorrer un laberinto [Usar]
V: Usa programación dinámica para resolver un problema determinado [Usar] VI: Determi-
na el enfoque algorı́tmico adecuado para un problema [Evaluar] VII: Describe varios métodos
basados en heurı́sticas para resolver problemas [Familiarizarse]
Objetivos de Aprendizaje I: Explique a que se refiere con “mejor”, “esperado” y “peor” caso de
comportamiento de un algoritmo [Familiarizarse]
Tópicos: I: Algoritmos numéricos simples, tales como el cálculo de la media de una lista de números,
encontrar el mı́nimo y máximo. II: Algoritmos de búsqueda secuencial y binaria. III: Algoritmos
de ordenamiento de peor caso cuadrático (selección, inserción) IV: Algoritmos de ordenamiento
con peor caso o caso promedio en O(N lg N) (Quicksort, Heapsort, Mergesort) V: Tablas
Hash, incluyendo estratégias para evitar y resolver colisiones. VI: Árboles de búsqueda binaria:
a) Operaciones comunes en árboles de búsqueda binaria como seleccionar el mı́nimo, máximo,
insertar, eliminar, recorrido en árboles. VII: Grafos y algoritmos en grafos: a) Representación
de grafos (ej., lista de adyacencia, matriz de adyacencia) b) Recorrido en profundidad y amplitud
6. Bibliografı́a
[P.J and H.M, 2013] P.J, D. and H.M, D. (2013). C++ How to Program (Early Objects Version).
Deitel, How to Program. Prentice Hall.
[Stroustrup, 2013] Stroustrup, B. (2013). The C++ Programming Language. Addison-Wesley, 4th
edition.
Prerrequisitos: Ninguno
2. Fundamentación
Este curso es útil en esta carrera para que el alumno aprenda a mostrar un alto grado de dominio
de las leyes del movimiento de la Fı́sica General.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los aconteci-
mientos del mundo real que explican su pertinencia y utilidad.⇒ Outcome i,j
Objetivos de Aprendizaje I: Entender y trabajar con las magnitudes fı́sicas del SI. II: Abstraer
de la naturaleza los conceptos fı́sicos rigurosos y representarlos en modelos vectoriales. III: En-
tender y aplicar los conceptos vectoriales a problemas fı́sicos reales.
Tópicos: I: Desplazamiento, velocidad y rapidez. II: Velocidad instantánea. III: Aceleración media
e instantánea. IV: Movimiento con aceleración constante. V: Caı́da libre de los cuerpos.
VI: Ejercicios y problemas.
Tópicos: I: Fuerza e interacciones. II: Primera ley de Newton. III: Masa inercial. IV: Segunda
ley de Newton. V: Peso. VI: Diagramas de cuerpo libre. VII: Tercera Ley de newton.
VIII: Fuerzas de fricción. IX: Dinámica del movimiento circular. X: Ejercicios y problemas.
Objetivos de Aprendizaje I: Conocer los conceptos de fuerza. II: Conocer las interacciones mas
importantes de la naturaleza y representarlos en un diagrama de cuerpo libre. III: Conocer los
conceptos de equilibrio estático. IV: Conocer y aplicar las leyes del movimiento y caracterizarlos
vectorialmente. V: Conocer y aplicar las leyes de Newton. VI: Resolver problemas.
Tópicos: I: Trabajo realizado por una fuerza constante. II: Trabajo realizado por fuerzas variables.
III: Trabajo y energı́a cinética. IV: Potencia. V: Energı́a potencial gravitatoria. VI: Energı́a
potencial elástica. VII: Fuerzas conservativas y no conservativas. VIII: Principios de conser-
vación de la energı́a. IX: Ejercicios y problemas.
Objetivos de Aprendizaje I: Establecer los conceptos de energı́a fı́sica. (Fı́sica clásica) II: Conocer
algunas formas de energı́a. III: Establecer la relación entre trabajo y energı́a. IV: Conocer y
aplicar los conceptos de conservación de energı́a. V: Resolver problemas.
6. Bibliografı́a
[Alonso and Finn, 1995] Alonso, M. and Finn, E. (1995). Fı́sica. Addison Wesley Iberoamericana.
[Serway and Beichner, 2002] Serway, R. and Beichner, R. (2002). Fı́sica, para Ciencias e Ingenierias.
Mc Graw Hill.
SUMILLA
Prerrequisitos: Ninguno
2. Fundamentación
Parte fundamental de la formación integral de un profesional es la habilidad de comunicarse en
un idioma extranjero además del propio idioma nativo. No solamente amplı́a su horizonte cultural
sino que permite una visión más humana y comprensiva de la vida de las personas. En el caso de los
idiomas extranjeros, indudablemente el Inglés es el más prátcico porque es hablado alrededor de todo
el mundo. No hay paı́s alguno donde éste no sea hablado. En las carreras relacionadas con los servicios
al turista el Inglés es tal vez la herramienta práctica más importante que el alumno debe dominar
desde el primer momento, como parte de su formación integral.
Tópicos: I: Verbo To Be. II: Oraciones Afirmativas, Negativas y Preguntas. III: Expresiones
Numéricas. IV: Objetos y Paı́ses. V: Expresiones para saludar y hacer presentaciones.
Objetivos de Aprendizaje I: Al terminar la primera unidad, cada uno de los alumnos, compren-
diendo la gramática del tiempo presente es capaz de expresar una mayor cantidad de expresiones
de tiempo y además usar oraciones con el verbo To Be para expresar situación y estado. II: Que
el alumno sea capaz de analizar y expresar ideas acerca de fechas y números en orden.
Tópicos: I: Adjetivos Posesivos. II: Expresiones para averiguar precios. III: Expresiones de Po-
sesión. IV: Vocabulario de Familia, Comidas y Bebidas. V: Pedidos formales. VI: Cartas
informales.
Tópicos: I: Tiempo Presente Simple. Auxiliares. II: Oraciones Afirmativas, Negativas y Preguntas.
III: Verbos comunes y Ocupaciones. IV: Indicaciones para expresar la hora.
Objetivos de Aprendizaje I: Al terminar la tercera unidad, los alumnos habiendo reconocido las
caracterı́sticas del presente simple, lo utiliza para hacer descripciones de diversos tipos. Describen
personas y lugares y dan indicaciones de dirección. Expresa la hora.
Tópicos: I: Presente Simple 2. II: Oraciones Afirmativas, Negativas y Preguntas. III: Uso de
Verbos de entretenimiento. IV: Tiempo Libre. V: Las estaciones del año. VI: Expresiones de
actividades sociales.
Tópicos: I: Uso There is/There are. II: Oraciones con Preposiciones. III: Expresiones de Cantidad.
IV: Vocabulario de aviones y lugares. V: Expresiones de indicaciones de dirección.
6. Bibliografı́a
[Cambridge, 2006] Cambridge (2006). Diccionario Inglés-Espanol Cambridge. Editorial Oxford.
[MacGrew, 1999] MacGrew, J. (1999). Focus on Grammar Basic. Editorial Oxford.
[Soars and John, 2002d] Soars, L. and John (2002d). American Headway N 2 Student Book. Editorial
Oxford.
Prerrequisitos:
2. Fundamentación
Este laboratorio está orientado a consolidar las habilidades comunicativas del estudiante, tanto
a nivel oral como escrito en el marco de la disciplina que se estudia. En particular, el estudiante
fortalecerá sus capacidades expositivas al ejercitarse en toda la primera parte del curso en la escritura
de un tipo de texto que desarrollará a lo largo de su carrera como ingeniero: los informes de laboratorio.
Reflexionará sobre la situación retórica que enfrenta al escribir este tipo de texto: quién será su lector,
cuál es la intención comunicativa de ese texto y el tema sobre el que está escribiendo. En una segunda
parte, el curso se presenta como un espacio de discusión sobre el discurso argumentativo y de lectura
crı́tica de textos argumentativos, para que el alumno reflexione, conozca y emplee las herramientas
comunicativas para producir textos argumentativos formales. En este sentido, el curso se orienta hacia
la producción permanente de textos escritos y orales, por lo que el alumno participará no solo en foros
de discusión sino que se espera que sea capaz de debatir con sus compañeros sobre un tema propuesto
por el profesor. En suma, el curso busca consolidar las competencias de lectura, análisis y elaboración
de textos escritos y orales, tanto expositivos como argumentativos.
Comprender y producir textos expositivos en los que informen sobre la aplicación del conoci-
miento teórico en un experimento o contexto diferente.
Mostrar apertura y respeto para escuchar la diversidad de opiniones o puntos de vista de los
compañeros de clase.
6. Bibliografı́a
[D, 2008] D, C. (2008). Prácticas letradas contemporáneas. DF,México,Rı́os de tinta.
SUMILLA
Prerrequisitos:
2. Fundamentación
El curso desarrolla en los estudiantes las habilidades para manejar modelos de habilidades de
ingenierı́a y ciencia. En la primera parte Del curso un estudio de las funciones de varias variables,
derivadas parciales, integrales múltiples y una Introducción a campos vectoriales. Luego el estudiante
utilizará los conceptos básicos de cálculo para modelar y resolver ecuaciones diferenciales ordinarias
utilizando técnicas como las transformadas de Laplace y las series de Fourier.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los aconteci-
mientos del mundo real que explican su pertinencia y utilidad.⇒ Outcome j
Tópicos: I: Concepto de funciones multi-variables. II: Derivados Direccionales III: Lı́nea tangente,
plano normal a lı́nea de curva y plano tangente, lı́nea normal a un plano de curva. Conocer para
calcular sus ecuaciones. IV: Concepto de valor extremo y valor extremo condicional de funciones
multi-variables. V: Problemas de aplicación tales como modelización de la producción total de
un sistema económico, velocidad del sonido a través del océano, optimización del espesante, etc.
Tópicos: I: Integral doble, integral triple y naturaleza de la integral múltiple. II: Método de doble
integral III: Lı́nea integral IV: La Divergencia, Rotación y Laplaciano
Tópicos: I: Serie convergente. II: Serie Taylor y MacLaurin. III: Funciones ortogonales.
Tópicos: I: Concepto de ecuaciones diferenciales II: Métodos para resolver ecuaciones diferenciales
III: Métodos para resolver las ecuaciones diferenciales lineales de segundo orden IV: Ecua-
ciones diferenciales ordinarias lineales de orden superior V: Problemas de aplicaciones con las
transformaciones de Laplace
Objetivos de Aprendizaje I: Comprender ecuaciones diferenciales, soluciones, orden, solución ge-
neral, condiciones iniciales y soluciones especiales, etc. II: Dominar el método de cálculo para
las variables ecuación separable y ecuaciones lineales de primer orden. Conocido para resolver
la ecuación homogénea y las ecuaciones de Bernoulli (Bernoulli); Entender la sustitución de la
variable para resolver la ecuación. III: Diminio para resolver ecuaciones diferenciales totales.
IV: Ser capaz de utilizar el método de orden reducido para resolver ecuaciones. V: Comprender
la estructura de la ecuación diferencial lineal de segundo orden. VI: Dominio del cálculo para las
ecuaciones diferenciales lineales homogéneas de coeficiente constante; Y comprender el método
de cálculo para las ecuaciones diferenciales lineales homogéneas de orden superior. VII: Saber
aplicar el método de cálculo de ecuaciones diferenciales para resolver problemas simples de apli-
cación geométrica y fı́sica. VIII: Resolver correctamente ciertos tipos de ecuaciones diferenciales
utilizando transformadas de Laplace.
Bibliografı́a: [Stewart, 2012, Zill, 2013]
6. Bibliografı́a
[Stewart, 2012] Stewart, J. (2012). Calculus. CENGAGE Learning, 7th edition.
[Zill, 2013] Zill, D. G. (2013). Differential equations with Boundary value problems. CENGAGE
Learning, 8th edition.
Prerrequisitos:
2. Fundamentación
El mundo ha cambiado debido al uso de la web y tecnologı́as relacionadas, el acceso rápido,
oportuno y personalizado de la información, a través de la tecnologı́a web, ubı́cuo y pervasiva; han
cambiado la forma de ¿cómo hacemos las cosas?, ¿cómo pensamos? y ¿cómo la industria se desarrolla?.
Las tecnologı́as web, ubicuo y pervasivo se basan en el desarrollo de servicios web, aplicaciones web
y aplicaciones móviles, las cuales son necesarias entender la arquitectura, el diseño, y la implementación
de servicios web, aplicaciones web y aplicaciones móviles.
Que el alumno sea capaz de desarrollar aplicaciones móviles, administración de servidores web
en un sistema Unix y una introducción a la seguridad web, a un nivel intermedio.
g) Analizar el impacto local y global de la computación sobre los individuos, organizaciones y socie-
dad. (Usar)
o) Mejorar las condiciones de la sociedad poniendo la tecnologı́a al servicio del ser humano. (Usar)
C6. Capacidad para diseñar y poner en práctica las unidades estructurales mayores que utilizan
algoritmos y estructuras de datos y las interfaces a través del cual estas unidades se comunican.⇒
Outcome c,d,i
Tópicos: I: Visión general de plataformas (ejemplo, Web, Mobil, Juegos, Industrial) II: Progra-
macı́on a través de APIs especı́ficos. III: Visión general de lenguajes de plataforma (ejemplo,
Objective C, HTML5) IV: Pogramacı́ón bajo restricciónes de plataforma.
Tópicos: I: Lenguajes de programación web (e.g., HTML5, Javascript, PHP, CSS) II: Restricción
de plataformas web. III: Software como servicio. IV: Estándares web.
Objetivos de Aprendizaje I: Del lado del servidor lenguaje de scripting python: variables, tipos
de datos, operaciones, cadenas, funciones, sentencias de control, matrices, archivos y el acceso a
directorios, mantener el estado. [Usar] II: Enfoque de programación web usando python incrus-
tado. [Usar] III: El acceso y la manipulación de MySQL. [Usar] IV: El enfoque de desarrollo
de aplicaciones web Ajax. [Usar] V: DOM y CSS utilizan en JavaScript. [Usar] VI: Tecno-
logı́as de actualización de contenido ası́ncrono. [Usar] VII: Objetos XMLHttpRequest utilizar
para comunicarse entre clientes y servidores. [Usar] VIII: XML y JSON. [Usar] IX: XSLT y
XPath como mecanismos para transformar documentos XML. [Usar] X: Servicios web y APIs
(especialmente Google Maps). [Usar] XI: Marcos Ajax para el desarrollo de aplicaciones web
contemporánea. [Usar] XII: Los patrones de diseño utilizados en aplicaciones web. [Usar]
6. Bibliografı́a
[Annuzzi et al., 2013] Annuzzi, J., Darcey, L., and Conder, S. (2013). Introduction to Android Appli-
cation Development: Android Essentials. Developer’s Library. Pearson Education.
[Grove, 2009] Grove, R. (2009). Web Based Application Development. Jones & Bartlett Learning.
Prerrequisitos:
2. Fundamentación
Es necesario que el profesional en Ciencia de la Computación tenga sólido conocimiento de la
organización y funcionamiento de los diversos sistema de cómputo actuales en los cuales gira se instala
el entorno de programación. Con ello también sabrá establecer los alcances y lı́mites de las aplicaciones
que se desarrollen de acuerdo a la plataforma siendo usada.
Se tratarán los siguientes temas: componentes de lógica digital básicos en un sistema de compu-
tación, diseño de conjuntos de instrucciones, microarquitectura del procesador y ejecución en pipeli-
ning, organización de la memoria: caché y memoria virtual, protección y compartición, sistema I/O
e interrupciones, arquitecturas super escalares y ejecución fuera de orden, computadoras vectoriales,
arquitecturas para multithreading, multiprocesadores simétricos, modelo de memoria y sincronización,
sistemas integrados y computadores en paralelo.
Tratar los siguientes temas: componentes de lógica digital básicos en un sistema de computación,
diseño de conjuntos de instrucciones, microarquitectura del procesador y ejecución en pipelining,
organización de la memoria: caché y memoria virtual, protección y compartición, sistema I/O
e interrupciones, arquitecturas super escalares y ejecución fuera de orden, computadoras vec-
toriales, arquitecturas para multithreading, multiprocesadores simétricos, modelo de memoria y
sincronización, sistemas integrados y computadores en paralelo.
C8. Entendimiento de lo que las tecnologı́as actuales pueden y no pueden lograr.⇒ Outcome b,i
CS3. Analizar el grado en que un sistema basado en el ordenador cumple con los criterios definidos
para su uso actual y futuro desarrollo.⇒ Outcome i
Tópicos: I: Bits, Bytes y Words. II: Representacion de datos numérica y bases numéricas. III: Sis-
temas de punto flotante y punto fijo. IV: Representaciones con signo y complemento a 2.
V: Representación de información no numérica (códigos de caracteres, información gráfica)
VI: Representación de registros y arreglos.
Objetivos de Aprendizaje I: Explicar porqué en computación todo es datos, inclusive las instruc-
ciones [Evaluar] II: Explicar las razones de usar formatos alternativos para representar datos
numéricos [Familiarizarse] III: Describir cómo los enteros negativos se almacenan con represen-
taciones de bit de signo y complemento a 2 [Usar] IV: Explicar cómo las representaciones de
tamaño fijo afectan en la exactitud y la precisión [Usar] V: Describir la representación interna
de datos no numéricos como caracteres, cadenas, registros y arreglos [Usar] VI: Convertir datos
numéricos de un formato a otro [Usar]
Tópicos: I: Organización Básica de la Máquina de Von Neumann. II: Unidad de Control. III: Pa-
quetes de instrucciones y tipos (manipulación de información, control, I/O) IV: Assembler /
Programación en Lenguaje de Máquina. V: Formato de instrucciones. VI: Modos de direccio-
namiento. VII: Llamada a subrutinas y mecanismos de retorno. VIII: I/O e Interrupciones.
IX: Montı́culo (Heap) vs. Estático vs. Pila vs. Segmentos de código.
Bibliografı́a: [Parhami, 2005, Patterson and Hennessy, 2004, Hennessy and Patterson, 2006]
Objetivos de Aprendizaje I: Identifique las principales tecnologı́as de memoria (Por ejemplo: SRAM,
DRAM, Flash,Disco Magnetico) y su relación costo beneficio [Familiarizarse] II: Explique el
efecto del retardo de la memoria en tiempo de ejecución [Familiarizarse] III: Describa como el
uso de jerarquı́a de memoria (caché, memoria virtual) es aplicado para reducir el retardo efec-
tivo en la memoria [Usar] IV: Describa los principios de la administración de memoria [Usar]
V: Explique el funcionamiento de un sistema con gestión de memoria virtual [Usar] VI: Calcule
el tiempo de acceso promedio a memoria bajo varias configuraciones de caché y memoria y para
diversas combinaciones de instrucciones y referencias a datos [Evaluar]
Objetivos de Aprendizaje I: Explicar como las interrupciones son aplicadas para implementar
control de entrada-salida y transferencia de datos [Familiarizarse] II: Identificar diversos tipos
de buses en un sistema computacional [Familiarizarse] III: Describir el acceso a datos desde
una unidad de disco magnético [Usar] IV: Comparar organizaciones de red conocidas como
organizaciones en bus/Ethernet, en anillo y organizaciones conmutadas versus ruteadas [Evaluar]
V: Identificar las interfaces entre capas necesarios para el acceso y presentación multimedia,
desde la captura de la imagen en almacenamiento remoto, a través del transporte por una red
de comunicaciones, hasta la puesta en la memoria local y la presentación final en una pantalla
gráfica [Familiarizarse] VI: Describir las ventajas y limitaciones de las arquitecturas RAID
[Familiarizarse]
Tópicos: I: Ley potencial. II: Ejemplos de juego de instrucciones y arquitecturas SIMD y MIMD.
III: Redes de interconexión (Hypercube, Shuffle-exchange, Mesh, Crossbar) IV: Sistemas de
memoria de multiprocesador compartido y consistencia de memoria. V: Coherencia de cache
multiprocesador.
Objetivos de Aprendizaje I: Discutir el concepto de procesamiento paralelo mas allá del clásico
modelo de von Neumann [Evaluar] II: Describir diferentes arquitecturas paralelas como SIMD y
MIMD [Familiarizarse] III: Explicar el concepto de redes de interconexión y mostrar diferentes
enfoques [Usar] IV: Discutir los principales cuidados en los sistemas de multiprocesamiento
presentes con respecto a la gestión de memoria y describir como son tratados [Familiarizarse]
V: Describir las diferencias entre conectores electricos en paralelo backplane, interconexión
memoria procesador y memoria remota via red, sus implicaciones para la latencia de acceso y el
impacto en el rendimiento de un programa [Evaluar]
6. Bibliografı́a
[Denning, 2005] Denning, P. J. (2005). The locality principle. Commun. ACM, 48(7):19–24.
[Dongarra, 2006] Dongarra, J. (2006). Trends in high performance computing: a historical overview
and examination of future developments. Circuits and Devices Magazine, IEEE, 22(1):22–27.
[El-Rewini and Abd-El-Barr, 2005] El-Rewini, H. and Abd-El-Barr, M. (2005). Advanced Computer
Architecture and Parallel Processing. John Wiley & Sons, Hoboken, NJ.
[Hennessy and Patterson, 2006] Hennessy, J. L. and Patterson, D. A. (2006). Computer Architecture:
A Quantitative Approach. Morgan Kaufman, San Mateo, CA, 4th edition.
[Johnson, 1991] Johnson, M. (1991). Superscalar microprocessor design. Prentice Hall series in inno-
vative technology. Prentice Hall.
[Parhami, 2002] Parhami, B. (2002). Introduction to parallel processing: algorithms and architectures.
Plenum series in computer science. Plenum Press.
[Parhami, 2005] Parhami, B. (2005). Computer Architecture: From Microprocessors to Supercompu-
ters. Oxford Univ. Press, New York.
[Patterson and Hennessy, 2004] Patterson, D. A. and Hennessy, J. L. (2004). Computer Organization
and Design: The Hardware/Software Interface. Morgan Kaufman, San Mateo, CA, 3 edition.
[Stalings, 2010] Stalings, W. (2010). Computer Organization and Architecture: Designing for Perfor-
mance. Prentice Hall, Upper Saddle River, NJ, 8th edition.
Prerrequisitos:
2. Fundamentación
Este es el tercer curso en la secuencia de los cursos introductorios a la informática. En este curso
se pretende cubrir los conceptos señalados por la Computing Curricula IEEE(c)-ACM 2001, bajo
el enfoque functional-first. El paradigma orientado a objetos nos permite combatir la complejidad
haciendo modelos a partir de abstracciones de los elementos del problema y utilizando técnicas como
encapsulamiento, modularidad, polimorfismo y herencia. El dominio de estos temas permitirá que los
participantes puedan dar soluciones computacionales a problemas de diseño sencillos del mundo real.
C3. Una comprensión intelectual de, y el aprecio por el papel central de los algoritmos y estructuras
de datos.⇒ Outcome a
CS1. Modelar y diseñar sistemas de computadora de una manera que se demuestre comprensión del
balance entre las opciones de diseño.⇒ Outcome a
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome b
Tópicos: I: Árboles. a) Propiedades b) Estrategias de recorrido II: Grafos no dirigidos III: Grafos
dirigidos IV: Grafos ponderados V: Arboles de expansion/bosques. VI: Isomorfismo en grafos.
Tópicos: I: Sintaxis y semántica básica de un lenguaje de alto nivel. II: Variables y tipos de datos
primitivos (ej., numeros, caracteres, booleanos) III: Expresiones y asignaciones. IV: Opera-
ciones básicas I/O incluyendo archivos I/O. V: Estructuras de control condicional e iterativas.
VI: Paso de funciones y parámetros. VII: Concepto de recursividad.
[Usar] IV: Usa un lenguaje de programación para implementar, probar, y depurar algoritmos
para resolver problemas simples [Usar] V: Implementa, prueba, y depura funciones recursivas
simples y sus procedimientos [Usar] VI: Determina si una solución iterativa o recursiva es la más
apropiada para un problema [Usar] VII: Implementa un algoritmo de divide y vencerás para
resolver un problema [Usar] VIII: Aplica técnicas de descomposición para dividir un programa
en partes más pequeñas [Usar] IX: Identifica los componentes de datos y el comportamiento de
mútiples tipos de datos abstractos [Usar] X: Implementa un tipo de dato abstracto coherente,
con la menor pérdida de acoplamiento entre componentes y comportamientos [Usar] XI: Iden-
tifica las fortalezas y las debilidades relativas entre múltiples diseños e implementaciones de un
problema [Usar]
Bibliografı́a: [Stroustrup, 2013]
Tópicos: I: Algoritmos numéricos simples, tales como el cálculo de la media de una lista de números,
encontrar el mı́nimo y máximo. II: Algoritmos de búsqueda secuencial y binaria. III: Algoritmos
de ordenamiento de peor caso cuadrático (selección, inserción) IV: Algoritmos de ordenamiento
con peor caso o caso promedio en O(N lg N) (Quicksort, Heapsort, Mergesort) V: Tablas
Hash, incluyendo estratégias para evitar y resolver colisiones. VI: Árboles de búsqueda binaria:
a) Operaciones comunes en árboles de búsqueda binaria como seleccionar el mı́nimo, máximo,
insertar, eliminar, recorrido en árboles. VII: Grafos y algoritmos en grafos: a) Representación
de grafos (ej., lista de adyacencia, matriz de adyacencia) b) Recorrido en profundidad y amplitud
VIII: Montı́culos (Heaps) IX: Grafos y algoritmos en grafos: a) Algoritmos de la ruta más
corta (algoritmos de Dijkstra y Floyd) b) Árbol de expansión mı́nima (algoritmos de Prim y
Kruskal) X: Búsqueda de patrones y algoritmos de cadenas/texto (ej. búsqueda de subcadena,
búsqueda de expresiones regulares, algoritmos de subsecuencia común más larga)
Tópicos: I: Tipos como conjunto de valores junto con un conjunto de operaciones. a) Tipos primiti-
vos (p.e. numeros, booleanos) b) Composición de tipos construidos de otros tipos (p.e., registros,
uniones, arreglos, listas, funciones, referencias) II: Asociación de tipos de variables, argumen-
tos, resultados y campos. III: Tipo de seguridad y los errores causados por el uso de valores
de manera incompatible dadas sus tipos previstos. IV: Metas y limitaciones de tipos estáticos
a) Eliminación de algunas clases de errores sin ejecutar el programa b) Indecisión significa que
un análisis estatico puede aproximar el comportamiento de un programa V: Tipos genéricos
(polimorfismo paramétrico) a) Definición b) Uso de librerı́as genéricas tales como colecciones.
c) Comparación con polimorfismo ad-hoc y polimorfismo de subtipos VI: Beneficios com-
plementarios de tipos estáticos y dinámicos: a) Errores tempranos vs. errores tardı́os/evitados.
b) Refuerzo invariante durante el desarrollo y mantenimiento del código vs. decisiones pospuestas
de tipos durante la la creacion de prototipos y permitir convenientemente la codificación flexible
de patrones tales como colecciones heterogéneas. c) Evitar el mal uso del código vs. permitir más
reuso de código. d ) Detectar programas incompletos vs. permitir que programas incompletos se
ejecuten
Objetivos de Aprendizaje I: Tanto para tipo primitivo y un tipo compuesto, describir de manera
informal los valores que tiene dicho tipo [Usar] II: Para un lenguaje con sistema de tipos estáti-
co, describir las operaciones que están prohibidas de forma estática, como pasar el tipo incorrecto
de valor a una función o método [Usar] III: Describir ejemplos de errores de programa detec-
tadas por un sistema de tipos [Usar] IV: Para múltiples lenguajes de programación, identificar
propiedades de un programa con verificación estática y propiedades de un programa con verifi-
cación dinámica [Usar] V: Dar un ejemplo de un programa que no verifique tipos en un lenguaje
particular y sin embargo no tenga error cuando es ejecutado [Usar] VI: Usar tipos y mensajes
de error de tipos para escribir y depurar programas [Usar] VII: Explicar como las reglas de
tipificación definen el conjunto de operaciones que legales para un tipo [Usar] VIII: Escribir
las reglas de tipo que rigen el uso de un particular tipo compuesto [Usar] IX: Explicar por qué
indecidibilidad requiere sistemas de tipo para conservadoramente aproximar el comportamiento
de un programa [Usar] X: Definir y usar piezas de programas (tales como, funciones, clases,
métodos) que usan tipos genéricos, incluyendo para colecciones [Usar] XI: Discutir las diferen-
cias entre, genéricos (generics), subtipo y sobrecarga [Usar] XII: Explicar múltiples beneficios
y limitaciones de tipificación estática en escritura, mantenimiento y depuración de un software
[Usar]
Tópicos: I: Diseño orientado a objetos: a) Descomposicion en objetos que almacenan estados y po-
seen comportamiento b) Diseño basado en jerarquia de clases para modelamiento II: Definición
de las categorı́as, campos, métodos y constructores. III: Las subclases, herencia y método de
alteración temporal. IV: Asignación dinámica: definición de método de llamada. V: Subtipi-
ficación: a) Polimorfismo artı́culo Subtipo; upcasts implı́citos en lenguajes con tipos. b) Noción
de reemplazo de comportamiento: los subtipos de actuar como supertipos. c) Relación entre sub-
tipos y la herencia. VI: Lenguajes orientados a objetos para la encapsulación: a) privacidad
y la visibilidad de miembros de la clase b) Interfaces revelan único método de firmas c) clases
base abstractas VII: Uso de coleccion de clases, iteradores, y otros componentes de la libreria
estandar.
Objetivos de Aprendizaje I: Diseñar e implementar una clase [Usar] II: Usar subclase para di-
señar una jerarquı́a simple de clases que permita al código ser reusable por diferentes subclases
[Usar] III: Razonar correctamente sobre el flujo de control en un programa mediante el envı́o
dinámico [Usar] IV: Comparar y contrastar (1) el enfoque procedurar/funcional- definiendo una
función por cada operación con el cuerdo de la función proporcionando un caso por cada varia-
ción de dato - y (2) el enfoque orientado a objetos - definiendo una clase por cada variación de
dato con la definición de la clase proporcionando un método por cada operación. Entender ambos
enfoques como una definición de variaciones y operaciones de una matriz [Usar] V: Explicar la
relación entre la herencia orientada a objetos (codigo compartido y overriding) y subtipificación
(la idea de un subtipo es ser utilizable en un contexto en el que espera al supertipo) [Usar]
VI: Usar mecanismos de encapsulación orientada a objetos, tal como interfaces y miembros
privados [Usar] VII: Definir y usar iteradores y otras operaciones sobre agregaciones, incluyen-
do operaciones que tienen funciones como argumentos, en múltiples lenguajes de programación,
selecionar la forma mas natural por cada lenguaje [Usar]
Tópicos: I: Principios de diseño del sistema: niveles de abstracción (diseño arquitectónico y el diseño
detallado), separación de intereses, ocultamiento de información, de acoplamiento y de cohesión,
de reutilización de estructuras estándar. II: Diseño de paradigmas tales como diseño estructu-
rado (descomposición funcional de arriba hacia abajo), el análisis orientado a objetos y diseño,
orientado a eventos de diseño, diseño de nivel de componente, centrado datos estructurada,
orientada a aspectos, orientado a la función, orientado al servicio. III: Modelos estructura-
les y de comportamiento de los diseños de software. IV: Diseño de patrones. V: Relaciones
entre los requisitos y diseños: La transformación de modelos, el diseño de los contratos, in-
variantes. VI: Conceptos de arquitectura de software y arquitecturas estándar (por ejemplo,
cliente-servidor, n-capas, transforman centrados, tubos y filtros). VII: El uso de componentes de
diseño: seleccion de componentes,diseño,adaptacion y componentes de ensamblaje, componentes
y patrones, componentes y objetos(por ejemplo,construir una GUI usando un standar widget
set) VIII: Diseños de refactorización utilizando patrones de diseño IX: Calidad del diseño
interno, y modelos para: eficiencia y desempeño, redundancia y tolerancia a fallos, trazavilidad
de los requerimientos. X: Medición y análisis de la calidad de un diseño. XI: Compensasiones
entre diferentes aspectos de la calidad. XII: Aaplicaciones en frameworks. XIII: Middleware:
El paradigma de la orientacion a objetos con middleware, requerimientos para correr y cla-
sificar objetos, monitores de procesamiento de transacciones y el sistema de flujo de trabajo.
XIV: Principales diseños de seguridad y codificación(cross-reference IAS/Principles of securre
design). a) Principio de privilegios mı́nimos b) Principio de falla segura por defecto c) Principio
de aceptabilidad psicológica
6. Bibliografı́a
[Nakariakov, 2013] Nakariakov, S. (2013). The Boost C++ Libraries: Generic Programming. Crea-
teSpace Independent Publishing Platforml.
[Stroustrup, 2013] Stroustrup, B. (2013). The C++ Programming Language, 4th edition. Addison-
Wesley.
Prerrequisitos:
2. Fundamentación
Mostrar un alto grado de dominio de las leyes del movimiento ondulatorio, la naturaleza de los
fluidos y la termodinámica. Utilizando adecuadamente los conceptos de movimiento ondulatorio, de
fluidos y de termodinámica en la resolución de problemas de la vida cotidiana. Poseer capacidad
y habilidad en la interpretación de los fenómenos ondulatorios, de fluidos y termodinámicos, que
contribuyan en la elaboración de soluciones eficientes y útiles en diferentes áreas de la ciencia de la
computación.
Que el alumno aprenda y domine los principios del MAS, particularmente del movimiento on-
dulatorio.
Que el alumno aprenda a aplicar principios de la Fı́sica de fluı́dos, ondas y termodinámica para
desarrollar modelos computacionales.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los aconteci-
mientos del mundo real que explican su pertinencia y utilidad.⇒ Outcome i,j
Tópicos: I: Esfuerzo y deformación unitaria II: Módulo de Young III: Módulo y Coeficiente de
Poisson IV: Módulo de Rigidez V: Módulo y Coeficiente de comprensibilidad
Objetivos de Aprendizaje I: Entender y caracterizar los procesos de elasticidad II: Resolver pro-
blemas
Tópicos: I: Densidad y peso especı́fico II: Presión en los fluidos. Presión atmosférica y presión ma-
nométrica III: Principio de Pascal. Medición de la presión: manómetro y barómetro IV: Flo-
tabilidad y Principio de Arquı́medes V: Fluidos en movimiento: flujo y ecuación de continuidad
VI: Ecuación de Bernoulli. Aplicaciones del principio de Bernoulli: teorema de Torricelli, el
tubo ventura VII: Tensión superficial y capilaridad
Bibliografı́a: []
Tópicos: I: Introducción. Constante elástica de un resorte II: Movimiento armónico simple. Energı́a
en el oscilador armónico simple III: Cı́rculo de referencia: el perı́odo y la naturaleza senoidal
del movimiento armónico simple IV: Péndulo simple. V: Movimiento armónico amortiguado.
VI: Oscilaciones forzadas: resonancia.
Bibliografı́a: []
Tópicos: I: Movimiento ondulatorio. Tipos de ondas. Ondas viajeras unidimensionales II: Super-
posición e interferencia de ondas III: Velocidad de las ondas en una cuerda tensa. Reflexión
y transmisión de ondas IV: Ondas senoidales. Energı́a transmitida por ondas senoidales en
cuerdas V: Ondas estacionarias en una cuerda. Ondas sonoras. Velocidad de las ondas sonoras
VI: Ondas sonoras periódicas. Intensidad de ondas sonoras periódicas VII: Fuentes de sonido:
cuerdas vibratorias y columnas vibratorias de aire VIII: Efecto Doppler
Bibliografı́a: []
6. Bibliografı́a
[Eisberg and Lerner, 1998] Eisberg, R. and Lerner, L. (1998). Fı́sica: Fundamentos y Aplicaciones,
volume 1. Mc Graw Hill.
[Resnick and Halliday, 1998] Resnick, R. and Halliday, D. (1998). Fı́sica para Estudiantes de Ciencias
e Ingenierı́a. John Wiley.
[Sears, 1998a] Sears, F. (1998a). Fı́sica Universitaria. Addison Wesley-Longman.
2. Fundamentación
Este curso tiene como objetivo proporcionar a los estudiantes una experiencia práctica de la vida
real en los primeros pasos dentro de un ciclo de vida de negocios, a través del cual una idea se
transforma en un modelo de negocio formal. Es el primero de un conjunto de tres cursos diseñados para
acompañar a los estudiantes a medida que transforman una idea en un negocio o negocio prospectivo,
desde la idea hasta la revisión de la estrategia empresarial actual.
3. Objetivos del curso
Capacidad de Análisis de la información.
Interpretación de información y resultados.
Capacidad de Trabajo en equipo.
Ética.
Comunicación oral.
Comunicación escrita.
Comunicación gráfica.
Entender la necesidad de aprender de forma continua.
6. Bibliografı́a
[A and Y, 2010] A, O. and Y, P. (2010). Business Model Generation. .
Prerrequisitos:
2. Fundamentación
Parte fundamental de la formación integral de un profesional es la habilidad de comunicarse en
un idioma extranjero además del propio idioma nativo. No solamente amplı́a su horizonte cultural
sino que permite una visión más humana y comprensiva de la vida de las personas. En el caso de los
idiomas extranjeros, indudablemente el Inglés es el más práctico porque es hablado alrededor de todo
el mundo. No hay paı́s alguno donde éste no sea hablado. En las carreras relacionadas con los servicios
al turista el Inglés es tal vez la herramienta práctica más importante que el alumno debe dominar
desde el primer momento, como parte de su formación integral.
Tópicos: I: Pasado Simple II: Oraciones Negativas con ago. III: Conjunciones IV: Expresiones
de Tiempo en pasado V: Relaciones y sı́mbolos fonéticos VI: Expresiones para dar la fecha
Objetivos de Aprendizaje I: Al terminar la octava unidad, cada uno de los alumnos, compren-
diendo la gramática del tiempo pasado es capaz de expresar una mayor cantidad de expresiones
de tiempo y además usar preposiciones para describir lugares y tiempos variados. Además es
capaz de analizar y expresar ideas acerca de fechas y números en orden.
Tópicos: I: Sustantivos Contables y No Contables II: Expresiones con Would like y I’d like III: Cuan-
tificadores IV: Comidas alrededor del mundo V: Pedidos formales VI: Cartas formales
Tópicos: I: Adjetivos II: Oraciones con Adjetivos Comparativos. III: Oraciones con Adjetivos
Superlativos IV: Ciudades y el campo V: Indicaciones de dirección
Objetivos de Aprendizaje I: Al terminar la décima unidad, los alumnos habiendo reconocido las
caracterı́sticas de los adjetivos, utilizan éstos para hacer comparaciones de diversos tipos. Descri-
ben personas y lugares y dan indicaciones de dirección. Utilizarán conjunciones para unir ideas
tipo.
Tópicos: I: Presente Continuo II: Oraciones Afirmativas, Negativas y Preguntas III: Uso de Whose
IV: Pronombres Posesivos V: Ropa y colores VI: Expresiones a usar en tiendas de ropa
VII: Sı́mbolos fonéticos.
Objetivos de Aprendizaje I: Al terminar la décimo primera unidad, los alumnos habiendo iden-
tificado la idea de expresar ideas de acciones que suceden en el momento o que se relacionan a
cualquier tiempo estructuran oraciones en Presente Progresivo. Expresan ideas de posesión con
respecto a la ropa y los colores.
Tópicos: I: Uso de going to II: Oraciones en Tiempo Futuro III: Expresiones de Cantidad. IV: Ver-
bos de acción V: Vocabulario del clima VI: Expresiones de Sugerencia VII: Escribir una postal
6. Bibliografı́a
[Cambridge, 2006] Cambridge (2006). Diccionario Inglés-Espanol Cambridge. Editorial Oxford.
[MacGrew, 1999] MacGrew, J. (1999). Focus on Grammar Basic. Editorial Oxford.
[Soars and John, 2002a] Soars, L. and John (2002a). American Headway N 1 Student Book. Editorial
Oxford.
2. Fundamentación
Este curso introduce los primeros conceptos del álgebra lineal, ası́ como los métodos numéricos con
un énfasis en la resolución de problemas con el paquete de sotfware libe de código abierto Scilab. La
teorı́a matemática se limita a los fundamentos, mientras que la aplicación efectiva para la resolución
de problemas es privilegiada. En cada tópico, se enseña unos cuantos métodos de de relevancia para
la ingenierı́a. Los conocimientos sobre estos métodos prepara a los estudiantes para la búsqueda de
alternativas más avanzadas, si se lo requiere.
3. Objetivos del curso
Capacidad para aplicar los conocimientos sobre Matemáticas.
Capacidad para aplicar los conocimientos sobre Ingenierı́a.
Capacidad para aplicar los conocimientos, técnicas, habilidades y herramientas modernas de la
ingenierı́a moderna para la práctica de la ingenieria.
6. Bibliografı́a
[Anton and Rorres, 2014] Anton, H. and Rorres, C. (2014). Elementary Linear Algebra, Applications
Version. Wiley, 11th edition.
[Chapra and Canale, 2015] Chapra, S. and Canale, R. (12015). Numerical Methods for Engineers,,
volume 1. McGraw-Hill, 7th edition.
Prerrequisitos:
2. Fundamentación
La gestión de la información (IM) juega un rol principal en casi todas las áreas donde los compu-
tadores son usados. Esta área incluye la captura, digitalización, representación, organización, transfor-
mación y presentación de información; algorı́tmos para mejorar la eficiencia y efectividad del acceso y
actualización de información almacenada, modelamiento de datos y abstracción, y técnicas de alma-
cenamiento de archivos fı́sicos.
Este también abarca la seguridad de la información, privacidad, integridad y protección en un am-
biente compartido. Los estudiantes necesitan ser capaces de desarrollar modelos de datos conceptuales
y fı́sicos, determinar que métodos de (IM) y técnicas son apropiados para un problema dado, y ser
capaces de seleccionar e implementar una apropiada solución de IM que refleje todas las restricciones
aplicables, incluyendo escalabilidad y usabilidad.
Que el alumno aprenda los conceptos fundamentales de gestión de bases de datos. Esto incluye
aspectos de diseño de bases de datos, lenguajes de bases de datos y realización de bases de datos
Discutir el modelo de bases de datos con base en el álgebra relacional, cálculo relacional y en el
estudio de sentencias SQL.
C2. Capacidad para tener una perspectiva crı́tica y creativa para identificar y resolver problemas
utilizando el pensamiento computacional.⇒ Outcome d
C7. Ser capaz de aplicar los principios y tecnologı́as de ingenierı́a de software para asegurar que
las implementaciones de software son robustos, fiables y apropiados para su público objetivo.⇒
Outcome i
CS4. Implementar la teorı́a apropiada, prácticas y herramientas para la especificación, diseño, imple-
mentación y mantenimiento, ası́ como la evaluación de los sistemas basados en computadoras.⇒
Outcome i
Bibliografı́a: [Rob and Coronel, 2004, Elmasri and Navathe, 2004, Date, 2005, Korth and Silberschatz, 2002]
Tópicos: I: Modelado de datos II: Modelos conceptuales (e.g., entidad-relación, diagramas UML)
III: Modelos de hoja de cálculo IV: Modelos Relacionales. V: Modelos orientados a obje-
tos. VI: Modelos de datos semi-estructurados (expresados usando DTD o XML Schema, por
ejemplo)
tipos, encapsulación, herencia, polimorfismo, y versiones [Usar] VII: Describe las diferencias
entre modelos de datos relacionales y semi-estructurados [Usar] VIII: Da una semi estructura
equivalente (ejm. en DTD o Esquema XML) para un esquema relacional dado [Usar]
Bibliografı́a: [Simsion and Witt, 2004, Elmasri and Navathe, 2004, Korth and Silberschatz, 2002]
Objetivos de Aprendizaje I: Generar un archivo ı́ndice para una colección de recursos [Usar]
II: Explicar la función de un ı́ndice invertido en la localización de un documento en una colec-
ción [Usar] III: Explicar cómo rechazar y detener palabras que afectan a la indexación [Usar]
IV: Identificar los ı́ndices adecuados para determinado el esquema relacional y el conjunto de
consultas [Usar] V: Estimar el tiempo para recuperar información, cuando son usados los ı́ndices
comparado con cuando no son usados [Usar] VI: Describir los desafı́os claves en el rastreo web,
por ejemplo, la detección de documentos duplicados, la determinación de la frontera de rastreo
[Usar]
Bibliografı́a: [Whitehorn and Marklyn, 2001, Date, 2005, Korth and Silberschatz, 2002]
Bibliografı́a: [Whitehorn and Marklyn, 2001, Date, 2005, Korth and Silberschatz, 2002]
Tópicos: I: Visión general de lenguajes de base de datos. II: SQL (definición de datos, formulacion
de consultas, sublenguaje update, restricciones, integridad) III: Selecciones IV: Proyecciones
V: Select-project-join VI: Agregaciones y agrupaciones. VII: Subconsultas. VIII: Entornos
QBE de cuarta generación. IX: Diferentes maneras de invocar las consultas no procedimentales
en lenguajes convencionales. X: Introducción a otros lenguajes importantes de consulta (por
ejemplo, XPATH, SPARQL) XI: Procedimientos almacenados.
Objetivos de Aprendizaje I: Crear un esquema relacional de bases de datos en SQL que incor-
pora restricciones clave y restricciones de integridad de entidad e integridad referencial [Usar]
II: Usar SQL para crear tablas y devuelve (SELECT) la información de una base de datos [Usar]
III: Evaluar un conjunto de estrategias de procesamiento de consultas y selecciona la estrategia
óptima [Usar] IV: Crear una consulta no-procedimental al llenar plantillas de relacines para
construir un ejemplo del resultado de una consulta requerida [Usar] V: Adicionar consultas
orientadas a objetos en un lenguaje stand-alone como C++ o Java (ejm. SELECT ColMethod()
FROM Objeto) [Usar] VI: Escribe un procedimiento almacenado que trata con parámetros y
con algo de flujo de control de tal forma que tenga funcionalidad [Usar]
Bibliografı́a: [Dietrich, 2001, Elmasri and Navathe, 2004, Celko, 2005, Korth and Silberschatz, 2002]
Bibliografı́a: [Harrington, 2002, Elmasri and Navathe, 2004, Date, 2005, Korth and Silberschatz, 2002]
6. Bibliografı́a
[Celko, 2005] Celko, J. (2005). Joe Celko’s SQL Programming Style. Elsevier.
[Date, 2005] Date, C. (2005). Data Mining: Practical Machine Learning Tools and Techniques, Second
Edition. Elsevier.
[Dietrich, 2001] Dietrich, S. W. (2001). Understanding Relational Database Query Languages, First
Edition. Prentice Hall.
[Elmasri and Navathe, 2004] Elmasri, R. and Navathe, S. B. (2004). Fundamentals of Database Sys-
tems, Fourth Edition. Addison Wesley.
[Harrington, 2002] Harrington, J. L. (2002). Relational Database Design Clearly Explained, Second
Edition. Morgan Kaufmann.
[Korth and Silberschatz, 2002] Korth, H. F. and Silberschatz, A. (2002). Fundamentos de Base de
Datos. McGraw-Hill.
[Rob and Coronel, 2004] Rob, P. and Coronel, C. (2004). Database Systems: Design, Implementation
and Management, Sixth Edition. Morgan Kaufmann.
[Simsion and Witt, 2004] Simsion, G. and Witt, G. (2004). Data Modeling Essentials, Third Edition.
Morgan Kaufmann.
[Whitehorn and Marklyn, 2001] Whitehorn, M. and Marklyn, B. (2001). Inside Relational Databases,
Second Edition. Springer.
2. Fundamentación
El fundamento teórico de todas las ramas de la informática descansa sobre los algoritmos y estruc-
turas de datos, este curso brindará a los participantes una introducción a estos témas, formando ası́
una base que servirá para los siguientes cursos en la carrera.
3. Objetivos del curso
Hacer que el alumno entienda la importancia de los algoritmos para la solución de problemas.
Introducir al alumno hacia el campo de la aplicación de las estructuras de datos.
6. Bibliografı́a
[Cormen et al., 2009] Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2009). Introduction
to Algorithms. MIT Press, third edition edition. ISBN: 978-0-262-53305-8.
[Fager et al., 2014] Fager, J., Yépez, W. L. P., Villacrés, M., Martinez, L. A. P., Ochoa, D., and
Cuadros-Vargas, E. (2014). Estructura de datos. Iniciativa Latinoamericana de Libros de Texto
Abiertos (LATIN), first edition edition.
Prerrequisitos:
2. Fundamentación
Este curso hace fasis en los lenguajes formales, modelos de computación y computabilidad, además
de incluir fundamentos de la complejidad computacional y de los problemas NP completos.
Tópicos: I: Máquinas de estado finito. II: Expresiones regulares. III: Problema de la parada.
IV: Gramáticas libres de contexto. V: Introducción a las clases P y NP y al problema P
vs. NP. VI: Introducción y ejemplos de problemas NP- Completos y a clases NP-Completos.
VII: Máquinas de Turing, o un modelo formal equivalente de computación universal. VIII: Má-
quinas de Turing no determinı́sticas. IX: Jerarquı́a de Chomsky. X: La tesis de Church-Turing.
XI: Computabilidad. XII: Teorema de Rice. XIII: Ejemplos de funciones no computables.
XIV: Implicaciones de la no-computabilidad.
Objetivos de Aprendizaje I: Discute el concepto de máquina de estado finito [Evaluar] II: Dise-
ñe una máquina de estado finito determinista para aceptar un determinado lenguaje [Evaluar]
III: Genere una expresión regular para representar un lenguaje especı́fico [Evaluar] IV: Ex-
plique porque el problema de la parada no tiene solucion algorı́tmica [Evaluar] V: Diseñe una
gramática libre de contexto para representar un lenguaje especificado [Evaluar] VI: Define las
clases P y NP [Evaluar] VII: Explique el significado de NP-Completitud [Evaluar] VIII: Ex-
plica la tesis de Church-Turing y su importancia [Familiarizarse] IX: Explica el teorema de
Rice y su importancia [Familiarizarse] X: Da ejemplos de funciones no computables [Familia-
rizarse] XI: Demuestra que un problema es no computable al reducir un problema clásico no
computable en base a él [Familiarizarse]
Tópicos: I: Revisión de las clases P y NP; introducir spacio P y EXP. II: Jerarquı́a polimonial.
III: NP completitud (Teorema de Cook). IV: Problemas NP completos clásicos. V: Técnicas
de reducción.
6. Bibliografı́a
[Brookshear, 1993] Brookshear, J. G. (1993). Teorı́a de la Computación. Addison Wesley Iberoame-
ricana.
[Hopcroft and Ullman, 1993] Hopcroft, J. E. and Ullman, J. D. (1993). Introducción a la Teorı́a de
Autómatas, Lenguajes y Computación. CECSA.
[Kelley, 1995] Kelley, D. (1995). Teorı́a de Autómatas y Lenguajes Formales. Prentice Hall.
[Kolman, 1997] Kolman, Busby, R. (1997). Estructuras de Matemáticas Discretas para la Compu-
tación. Prentice Hall.
Prerrequisitos:
2. Fundamentación
Provee de una introducción a la teorı́a de las probabilidades e inferencia estadı́stica con aplicaciones,
necesarias en el análisis de datos, diseño de modelos aleatorios y toma de decisiones.
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome j
Objetivos de Aprendizaje I: Clasificar las variables relevantes identificadas según su tipo: continuo
(intervalo y razón), categórico (nominal, ordinario, dicotómico). II: Identificar las variables
relevantes de un sistema utilizando un enfoque de proceso.
6. Bibliografı́a
[Mendenhall, 2014] Mendenhall, B. (2014). Introducción a la probabilidad y estadı́stica. Cengage
Learning, 13th edition.
[M.Ross, 2014] M.Ross, S. (2014). Introduction to Probability and Statistics for Engineers and Scien-
tists. Academic Press, 5th edition.
2. Fundamentación
El objetivo de este curso es situar ala estudiante dentro de la historia del desarrollo de la indus-
tria peruana tomando como punto de partida la Reforma Agraria .Durante el curso , se espera que
el estudiante logre articular los distintos procesos que han dado forma a la industria peruana hoy
enfocándose especialmente en las industrias extractivas .Se Busca que el estudiante comprenda,como
partes de un todo cómo las condiciones sociales y polı́ticas, económicas y geográficas del Perú han
configurado nuestro desarrollo industrial en los últimos 50 años.En términos de aprendizaje, el curso
debeb ser capaz de desarrollar en el estudiante una narrativa más crı́tica y compleja de escenarios
como ,por ejemplo,Conga,el Baguazo o la minirı́a informal .En términos de competencias,este curso
debe centrarse en trabajar las capacidades de análisis e interpretación del estudiante.
3. Objetivos del curso
Capacidad de interpretar información.
Capacidad para identificar problemas.
Capacidad de comprender textos.
Interés por conocer sobre temas actuales en la sociedad peruana y el mundo.
6. Bibliografı́a
[Enrique, 1994] Enrique, M. (1994). Cuentos feos de la reforma agraria peruana. Lima,IEP Instituto
de Estudios Peruano:CEPES.
Prerrequisitos:
2. Fundamentación
Parte fundamental de la formación integral de un profesional es la habilidad de comunicarse en un
idioma extranjero además del propio idioma nativo. No solamente amplı́a su horizonte cultural sino
que permite una visión más humana y comprensiva de la vida. En el caso de los idiomas extranjeros,
indudablemente el Inglés es el más práctico porque es hablado alrededor de todo el mundo. No hay
paı́s alguno donde este no sea hablado. En las carreras relacionadas con los servicios al turista el
inglés es tal vez la herramienta práctica más importante que el alumno debe dominar desde el primer
momento como parte de su formación integral.
Tópicos: I: Tiempos Presente, Pasado y Futuro. II: Oraciones Interrogativas con Wh-. III: Palabras
con más de un significado. IV: Partes de la oración. V: Expresiones para tiempo libre.
Objetivos de Aprendizaje I: Al terminar la primera unidad, cada uno de los alumnos, compren-
diendo la gramática de los tiempos presente, pasado y futuro es capaz de expresar una mayor
cantidad de acciones en forma de oraciones. Además es capaz de expresar ideas en forma de
preguntas. Asume la idea de palabras con más de un significado. Utiliza expresiones sociales en
situaciones de entretenimiento.
Tópicos: I: Tiempo Presente Simple. II: Tiempo Presente Continuo. III: Colocaciones. IV: Vo-
cabulario de paı́ses del mundo. V: Expresiones de enojo. VI: Conectores.
Tópicos: I: Tiempo Pasado Simple. II: Tiempo Pasado Continuo. III: Verbos Irregulares. IV: Ex-
presiones de Tiempo. V: Conectores de tiempo.
Objetivos de Aprendizaje I: Al terminar la tercera unidad, los alumnos habiendo reconocido las
caracterı́sticas de los tiempos en pasado los utilizan adecuadamente. Utilizan prefijos y sufijos pa-
ra crear y reconocer nuevas palabras. Describen tiempo en forma amplia. Utilizarán conjunciones
para unir ideas tipo.
Objetivos de Aprendizaje I: Al terminar la cuarta primera unidad, los alumnos habiendo identi-
ficado la idea de cantidad expresan diversas situaciones que la involucran. Reconocen y aplican
artı́culos a sustantivos. Asumen la idea de ir de compras con la ayuda de expresiones. Expresan
precios e ideas de dinero. Llenan formatos varios. Expresan actitudes.
Tópicos: I: Patrones Verbales I. II: Intenciones Futuras. III: Verbos de Percepción. IV: Vocabu-
lario de sentimientos. V: Expresiones de Planes y Ambiciones.
6. Bibliografı́a
[Cambridge, 2006] Cambridge (2006). Diccionario Inglés-Espanol Cambridge. Editorial Oxford.
[MacGrew, 1999] MacGrew, J. (1999). Focus on Grammar Basic. Editorial Oxford.
[Soars and John, 2002d] Soars, L. and John (2002d). American Headway N 2 Student Book. Editorial
Oxford.
2. Fundamentación
Este curso tiene como objetivo proporcionar a los estudiantes con las herramientas necesarias para
ir un paso más allá de la idea inicial y modelo de negocio. Aprenderán los primeros pasos hacia la
conceptualización de una empresa y la construcción de su equipo. También explorarán los fundamentos
de la creación de un plan de negocios eficaz.Es el segundo de un conjunto de tres cursos diseñados para
acompañar a los estudiantes a medida que transforman una idea en un negocio o emprendimiento,
desde la ideación, hasta la revisión de la estrategia empresarial actual
3. Objetivos del curso
Entendimiento de los conceptos básicos del proceso de planificación de negocios y su papel dentro
del ciclo de vida empresarial
6. Bibliografı́a
[A, 2012] A, M. (2012). Running lean: Iterate from plan A to a plan that works. Sebastopol.
[P and F, 2003] P, K. and F, T. d. B. (2003). Marketing Lateral. Madrid,Person Prentice Hill.
SUMILLA
Prerrequisitos:
2. Fundamentación
Proyectos Interdisciplinarios I es un curso en el que los estudiantes trabajan en equipos en un
proyecto de investigación y desarrollo o emprendimiento, con el fin de plantear una solución a un
problema relevante. El desarrollo del proyecto se centra en el uso de herramientas de ingenierı́a, tec-
nologia y la ciencia de la computación para proponer soluciones a problemas técnicos, tecnológicos,
cientı́ficos y/o sociales. La integración del conocimiento y aspectos multidisciplinarios e interdiscipli-
narios es un elemento esencial para el éxito del proyecto. A lo largo del curso, el estudiante aprende
sobre el proceso de diseño, a aplicar los contenidos de su carrera a un contexto real; a identificar y
adquirir nuevos conocimientos relevantes; y a colaborar interdisciplinariamente. En este primer curso
de Proyectos Interdisciplinarios, el estudiante está expuesto a problemas de complejidad moderada,
con bajo nivel incertidumbre en la problemática y la solución, y cuenta con el apoyo y supervisión
cercana del asesor del proyecto. El curso enfatiza el desarrollo y reforzamiento de las habilidades de
comunicación efectiva y colaboración, para propiciar la formación de equipos de alto rendimiento. Se
aprende a gestionar proyectos, aplicando buenas prácticas y estándares internacionales.
Diseñar un componente o un proceso para satisfacer las necesidades deseadas dentro de restric-
ciones realistas
C19. Capacidad para identificar eficazmente los objetivos y las prioridades de su trabajo / área /
proyecto con indicación de la acción, el tiempo y los recursos necesarios.⇒ Outcome n
6. Bibliografı́a
[Zobel, 2014] Zobel, J. (2014). Writing for Computer Science. Springer,Londres.
Prerrequisitos:
2. Fundamentación
La taréa de desarrollar software, excepto para aplicaciones sumamente simples, exige la ejecución
de un proceso de desarrollo bien definido. Los profesionales de esta área requieren un alto grado de
conocimiento de los diferentes modelos e proceso de desarrollo, para que sean capaces de elegir el más
idóneo para cada proyecto de desarrollo. Por otro lado, el desarrollo de sistemas de mediana y gran
escala requiere del uso de bibliotecas de patrones y componentes y del dominio de técnicas relacionadas
al diseño basado en componentes.
Familiarizar al alumno con los procesos de modelamiento y construcción de software a través del
uso de herramientas CASE.
Los alumnos debe ser capaces de seleccionar Arquitecturas y Plataformas tecnológicas ad-hoc a
los escenarios de implementación.
Aplicar el modelamiento basado en componentes y fin de asegurar variables como calidad, costo
y time-to-market en los procesos de desarrollo.
Brindar a los alumnos mejores prácticas para la verificación y validación del software.
C8. Entendimiento de lo que las tecnologı́as actuales pueden y no pueden lograr.⇒ Outcome b,c,k
C12. Entender las implicaciones de ciclo de vida para el desarrollo de todos los aspectos de los siste-
mas informáticos (incluyendo software, hardware, y la interfaz de la computadora humana).⇒
Outcome c,i
CS1. Modelar y diseñar sistemas de computadora de una manera que se demuestre comprensión del
balance entre las opciones de diseño.⇒ Outcome c
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome b,c
CS4. Implementar la teorı́a apropiada, prácticas y herramientas para la especificación, diseño, imple-
mentación y mantenimiento, ası́ como la evaluación de los sistemas basados en computadoras.⇒
Outcome b,c,i
CS10. Implementar efectivamente las herramientas que se utilizan para la construcción y la docu-
mentación de software, con especial énfasis en la comprensión de todo el proceso involucrado
en el uso de computadoras para resolver problemas prácticos. Esto debe incluir herramientas
para el control de software, incluyendo el control de versiones y gestión de la configuración.⇒
Outcome i,k
Tópicos: I: Al describir los requisitos funcionales utilizando, por ejemplo, los casos de uso o historias
de los usuarios. II: Propiedades de requisitos, incluyendo la consistencia, validez, integridad y
viabilidad. III: Requisitos de software elicitatión. IV: Descripción de datos del sistema uti-
lizando, por ejemplo, los diagramas de clases o diagramas entidad-relación. V: Requisitos no
funcionales y su relación con la calidad del software. VI: Evaluación y uso de especificaciones
de requisitos. VII: Requisitos de las técnicas de modelado de análisis. VIII: La aceptabilidad
de las consideraciones de certeza/incertidumbre sobre el comportamiento del software/sistema.
IX: Prototipos. X: Conceptos básicos de la especificación formal de requisitos. XI: Especifi-
cación de requisitos. XII: Validación de requisitos. XIII: Rastreo de requisitos.
Objetivos de Aprendizaje I: Enumerar los componentes clave de un caso de uso o una descripción
similar de algún comportamiento que es requerido para un sistema [Evaluar] II: Describir
cómo el proceso de ingenierı́a de requisitos apoya la obtención y validación de los requisitos
de comportamiento [Evaluar] III: Interpretar un modelo de requisitos dada por un sistema
de software simple [Evaluar] IV: Describir los retos fundamentales y técnicas comunes que se
utilizan para la obtención de requisitos [Evaluar] V: Enumerar los componentes clave de un
modelo de datos (por ejemplo, diagramas de clases o diagramas ER) [Evaluar] VI: Identificar
los requisitos funcionales y no funcionales en una especificación de requisitos dada por un sistema
de software [Evaluar] VII: Realizar una revisión de un conjunto de requisitos de software para
determinar la calidad de los requisitos con respecto a las caracterı́sticas de los buenos requisitos
[Evaluar] VIII: Aplicar elementos clave y métodos comunes para la obtención y el análisis
para producir un conjunto de requisitos de software para un sistema de software de tamaño
medio [Evaluar] IX: Comparar los métodos ágiles y el dirigido por planes para la especificación
y validación de requisitos y describir los beneficios y riesgos asociados con cada uno [Evaluar]
X: Usar un método común, no formal para modelar y especificar los requisitos para un sistema
de software de tamaño medio [Evaluar] XI: Traducir al lenguaje natural una especificación
de requisitos de software (por ejemplo, un contrato de componentes de software) escrito en un
lenguaje de especificación formal [Evaluar] XII: Crear un prototipo de un sistema de software
para reducir el riesgo en los requisitos [Evaluar] XIII: Diferenciar entre el rastreo (tracing) hacia
adelante y hacia atrás y explicar su papel en el proceso de validación de requisitos [Evaluar]
Tópicos: I: Principios de diseño del sistema: niveles de abstracción (diseño arquitectónico y el diseño
detallado), separación de intereses, ocultamiento de información, de acoplamiento y de cohesión,
de reutilización de estructuras estándar. II: Diseño de paradigmas tales como diseño estructu-
rado (descomposición funcional de arriba hacia abajo), el análisis orientado a objetos y diseño,
orientado a eventos de diseño, diseño de nivel de componente, centrado datos estructurada,
orientada a aspectos, orientado a la función, orientado al servicio. III: Modelos estructura-
les y de comportamiento de los diseños de software. IV: Diseño de patrones. V: Relaciones
entre los requisitos y diseños: La transformación de modelos, el diseño de los contratos, in-
variantes. VI: Conceptos de arquitectura de software y arquitecturas estándar (por ejemplo,
cliente-servidor, n-capas, transforman centrados, tubos y filtros). VII: El uso de componentes de
diseño: seleccion de componentes,diseño,adaptacion y componentes de ensamblaje, componentes
y patrones, componentes y objetos(por ejemplo,construir una GUI usando un standar widget
set) VIII: Diseños de refactorización utilizando patrones de diseño IX: Calidad del diseño
interno, y modelos para: eficiencia y desempeño, redundancia y tolerancia a fallos, trazavilidad
de los requerimientos. X: Medición y análisis de la calidad de un diseño. XI: Compensasiones
entre diferentes aspectos de la calidad. XII: Aaplicaciones en frameworks. XIII: Middleware:
El paradigma de la orientacion a objetos con middleware, requerimientos para correr y cla-
sificar objetos, monitores de procesamiento de transacciones y el sistema de flujo de trabajo.
XIV: Principales diseños de seguridad y codificación(cross-reference IAS/Principles of securre
design). a) Principio de privilegios mı́nimos b) Principio de falla segura por defecto c) Principio
de aceptabilidad psicológica
para el uso de un dado sistema [Usar] XVI: Discutir y seleccionar la arquitectura de software
adecuada para un sistema de software simple para un dado escenario [Usar] XVII: Aplicar
modelos de cualidades internas y externas en el diseño de componentes de software para lograr
un equilibrio aceptable entre los aspectos de calidad en conflictos [Usar] XVIII: Analizar un
diseño de software desde la perspectiva de un atributo significativo de la calidad interna [Eva-
luar] XIX: Analizar un diseño de software desde la perspectiva de un atributo significativo de
calidad externa [Evaluar] XX: Explicar el papel de los objetos en los sistemas de middleware y
la relación con los componentes [Familiarizarse] XXI: Aplicar métodos orientado a componen-
tes para el diseño de una amplia gama de software, tales como el uso de componentes para la
concurrencia y transacciones, para los servicios de comunicación confiables, para la interacción
con la base de datos que incluye los servicios de consulta remota y gestión de bases de datos,
o para la comunicación segura y el acceso [Usar] XXII: Refactorizar una implementación de
software existente para mejorar algún aspecto de su diseño [Usar] XXIII: Determinar y aplicar
los principios de mı́nimo privilegio y defectos-a prueba de errores [Familiarizarse]
Bibliografı́a: [Pressman, 2005, Sommerville, 2008, Larman, 2008]
6. Bibliografı́a
[Larman, 2008] Larman, C. (2008). Applying UML and Patterns. Prentice Hall.
[Pressman, 2005] Pressman, R. S. (2005). Software Engineering: A Practitioner’s Approach. McGraw-
Hill, 6th edition.
[Sommerville, 2008] Sommerville, I. (2008). Software Engineering. Addison Wesley, 7th edition. ISBN:
0321210263.
2. Fundamentación
La Gestión de la Información (IM-Information Management ) juega un rol principal en casi todas
las áreas donde los computadores son usados. Esta área incluye la captura, digitalización, representa-
ción, organización, transformación y presentación de información; algorı́tmos para mejorar la eficiencia
y efectividad del acceso y actualización de información almacenada, modelamiento de datos y abstrac-
ción, y técnicas de almacenamiento de archivos fı́sicos.
Este también abarca la seguridad de la información, privacidad, integridad y protección en un am-
biente compartido. Los estudiantes necesitan ser capaces de desarrollar modelos de datos conceptuales
y fı́sicos, determinar que métodos de IM y técnicas son apropiados para un problema dado, y ser
capaces de seleccionar e implementar una apropiada solución de IM que refleje todas las restricciones
aplicables, incluyendo escalabilidad y usabilidad.
3. Objetivos del curso
Hacer que el alumno entienda las diferentes aplicaciones que tienen las bases de datos, en las
diversas áreas de conocimiento.
Mostrar las formas adecuadas de almacenamiento de información basada en sus diversos enfoques
y su posterior recuperación de información.
Tópicos: I: Almacenamiento y estructura de archivos. II: Archivos indexados. III: Archivos Hash.
IV: Archivos de Firma. V: Árboles B. VI: Archivos con ı́ndice denso. VII: Archivos con
registros de tamaño variable. VIII: Eficiencia y Afinación de Bases de Datos.
Objetivos de Aprendizaje I: Explica los conceptos de registro, tipos de registro, y archivos, ası́
como las diversas técnicas para colocar registros de archivos en un disco [Usar] II: Da ejem-
plos de la aplicación de ı́ndices primario, secundario y de agrupamiento [Usar] III: Distingue
entre un ı́ndice no denso y uno denso [Usar] IV: Implementa ı́ndices de multinivel dinámicos
usando árboles-B [Usar] V: Explica la teorı́a y la aplicación de técnicas de hash internas y ex-
ternas [Usar] VI: Usa técnicas de hasp para facilitar la expansión de archivos dinámicos [Usar]
VII: Describe las relaciones entre hashing, compresión, y búsquedas eficientes en bases de datos
[Usar] VIII: Evalúa el costo y beneficio de diversos esquemas de hashing [Usar] IX: Explica
como el diseño fı́sico de una base de datos afecta la eficiencia de las transacciones en ésta [Usar]
Tópicos: I: Transacciones. II: Fallo y recuperación. III: Control concurente. IV: Interacción de
gestión de transacciones con el almacenamiento, especialmente en almacenamiento.
Tópicos: I: Documentos, publicación electrónica, markup, y lenguajes markup. II: Tries, archi-
vos invertidos, Árboles PAT, archivos de firma, indexación. III: Análisis Morfológico, stem-
ming, frases, stop lists. IV: Distribuciones de frecuencia de términos, incertidumbre, fuzifica-
ción (fuzzyness), ponderación. V: Espacio vectorial, probabilidad, lógica, y modelos avanzados.
VI: Necesidad de Información , Relevancia, evaluación, efectividad. VII: Thesauri, ontologı́as,
clasificación y categorización, metadata. VIII: Información bibliográfica, bibliometrı́a, citacio-
nes. IX: Enrutamiento y filtrado. X: Búsqueda multimedia. XI: Información de resumen y
visualización. XII: Búsqueda por facetas (por ejemplo, el uso de citas, palabras clave, esquemas
de clasificación). XIII: Librerı́as digitales. XIV: Digitalización, almacenamiento, intercambio,
objetos digitales, composición y paquetes. XV: Metadata y catalogación. XVI: Nombramiento,
repositorios, archivos XVII: Archivamiento y preservación, integrdad XVIII: Espacios (Con-
ceptual, geográfico, 2/3D, Realidad virtual) XIX: Arquitecturas (agentes, autobuses, envolturas
/ mediadores), de interoperabilidad. XX: Servicios (búsqueda, de unión, de navegación, y ası́ su-
cesivamente). XXI: Gestión de derechos de propiedad intelectual, la privacidad y la protección
(marcas de agua).
Objetivos de Aprendizaje I: Explicar las técnicas usadas para la fragmentación de datos, replica-
ción, y la asignación durante el proceso de diseño de base de datos distribuida [Usar] II: Evaluar
estrategias simples para la ejecución de una consulta distribuida para seleccionar una estrategia
que minimise la cantidad de transferencia de datos [Usar] III: Explicar como el protocolo de
dos fases de commit es usado para resolver problemas de transacciones que acceden a bases de
datos almacenadas en múltiples nodos [Usar] IV: Describir el control concurrente distribuido
basados en técnicas de copia distinguidos y el método de votación. [Usar] V: Describir los tres
niveles del software en el modelo cliente servidor [Usar]
Bibliografı́a: [M. Tamer Ozsu, 1999, Date, 2005]
6. Bibliografı́a
[Burleson, 2004] Burleson, D. K. (2004). Physical Database Design Using Oracle. CRC Press.
[Celko, 2005] Celko, J. (2005). Joe Celko’s SQL Programming Style. Elsevier.
[Date, 2005] Date, C. (2005). Data Mining: Practical Machine Learning Tools and Techniques, Second
Edition. Elsevier.
[M. Tamer Ozsu, 1999] M. Tamer Ozsu, P. V. (1999). Principles of Distributed Database Systems,
Second Edition. Prentice Hall.
[Peter Brusilovsky, 1998] Peter Brusilovsky, Alfred Kobsa, J. V. (1998). Adaptive Hypertext and Hy-
permedia, First Edition. Springer.
[Philip A. Bernstein, 1997] Philip A. Bernstein, E. N. (1997). Principles of Transaction Processing,
First Edition. Morgan Kaufmann.
[Ramez Elmasri, 2004] Ramez Elmasri, S. B. N. (2004). Fundamentals of Database Systems, Fourth
Edition. Addison Wesley.
Prerrequisitos:
2. Fundamentación
Un algoritmo es, esencialmente, un conjunto bien definido de reglas o instrucciones que permitan
resolver un problema computacional. El estudio teórico del desempeño de los algoritmos y los recursos
utilizados por estos, generalmente tiempo y espacio, nos permite evaluar si un algoritmo es adecuado
para un resolver un problema especı́fico, compararlo con otros algoritmos para el mismo problema o
incluso delimitar la frontera entre lo viable y lo imposible.
Esta materia es tan importante que incluso Donald E. Knuth definió a Ciencia de la Computación
como el estudio de algoritmos.
En este curso serán presentadas las técnicas más comunes utilizadas en el análisis y diseño de algo-
ritmos eficientes, con el propósito de aprender los principios fundamentales del diseño, implementación
y análisis de algoritmos para la solución de problemas computacionales.
Estudiar los algoritmos más representativos, introductorios de las clases más importantes de
problemas tratados en computación.
Ser capaz de responder a las siguientes preguntas cuando le sea presentado un nuevo algoritmo:
¿Cuán buen desempeño tiene?, ¿Existe una mejor forma de resolver el problema?
C2. Capacidad para tener una perspectiva crı́tica y creativa para identificar y resolver problemas
utilizando el pensamiento computacional.⇒ Outcome b
C3. Una comprensión intelectual de, y el aprecio por el papel central de los algoritmos y estructuras
de datos.⇒ Outcome b
C6. Capacidad para diseñar y poner en práctica las unidades estructurales mayores que utilizan
algoritmos y estructuras de datos y las interfaces a través del cual estas unidades se comunican.⇒
Outcome i
C16. Capacidad para identificar temas avanzados de computación y de la comprensión de las fronteras
de la disciplina.⇒ Outcome h
Tópicos: I: Diferencias entre el mejor, el esperado y el peor caso de un algoritmo. II: Análisis
asintótico de complejidad de cotas superior y esperada. III: Definición formal de la Notación
Big O. IV: Clases de complejidad como constante, logarı́tmica, lineal, cuadrática y exponencial.
V: Uso de la notación Big O. VI: Relaciones recurrentes. VII: Análisis de algoritmos iterativos
y recursivos. VIII: Algunas versiones del Teorema Maestro.
Objetivos de Aprendizaje I: Explique a que se refiere con “mejor”, “esperado” y “peor” caso de
comportamiento de un algoritmo [Evaluar] II: En el contexto de a algoritmos especı́ficos, iden-
tifique las caracterı́sticas de data y/o otras condiciones o suposiciones que lleven a diferentes
comportamientos [Evaluar] III: Determine informalmente el tiempo y el espacio de compleji-
dad de simples algoritmos [Evaluar] IV: Indique la definición formal de Big O [Evaluar] V: Lista
y contraste de clases estándares de complejidad [Evaluar] VI: Use la notación formal de la Big
O para dar lı́mites superiores asintóticos en la complejidad de tiempo y espacio de los algoritmos
[Evaluar] VII: Usar la notación formal Big O para dar lı́mites de casos esperados en el tiempo
de complejidad de los algoritmos [Evaluar] VIII: Explicar el uso de la notación theta grande,
omega grande y o pequeña para describir la cantidad de trabajo hecho por un algoritmo [Eva-
luar] IX: Usar relaciones recurrentes para determinar el tiempo de complejidad de algoritmos
recursivamente definidos [Evaluar] X: Resuelve relaciones de recurrencia básicas, por ejemplo.
usando alguna forma del Teorema Maestro [Evaluar]
Bibliografı́a: [Kleinberg and Tardos, 2005, Dasgupta et al., 2006, Rivest and Stein, 2009, Sedgewick and Flajolet, 20
Knuth, 1997]
Tópicos: I: Algoritmos de fuerza bruta. II: Algoritmos voraces. III: Divide y vencerás. IV: Pro-
gramación Dinámica.
Objetivos de Aprendizaje I: Para cada una de las estrategias (fuerza bruta, algoritmo goloso, divi-
de y vencerás, recursividad en reversa y programación dinámica), identifica un ejemplo práctico
en el cual se pueda aplicar [Evaluar] II: Utiliza un enfoque voraz para resolver un problema
especı́fico y determina si la regla escogida lo guı́a a una solución óptima [Evaluar] III: Usa un
algoritmo de divide-y-vencerás para resolver un determinado problema [Evaluar] IV: Usa pro-
gramación dinámica para resolver un problema determinado [Evaluar] V: Determina el enfoque
algorı́tmico adecuado para un problema [Evaluar]
Bibliografı́a: [Kleinberg and Tardos, 2005, Dasgupta et al., 2006, Rivest and Stein, 2009, Alsuwaiyel, 1999]
Tópicos: I: Algoritmos numéricos simples, tales como el cálculo de la media de una lista de números,
encontrar el mı́nimo y máximo. II: Algoritmos de búsqueda secuencial y binaria. III: Algoritmos
de ordenamiento de peor caso cuadrático (selección, inserción) IV: Algoritmos de ordenamiento
con peor caso o caso promedio en O(N lg N) (Quicksort, Heapsort, Mergesort) V: Grafos y
algoritmos en grafos: a) Representación de grafos (ej., lista de adyacencia, matriz de adyacencia)
b) Recorrido en profundidad y amplitud VI: Montı́culos (Heaps) VII: Grafos y algoritmos
en grafos: a) Algoritmos de la ruta más corta (algoritmos de Dijkstra y Floyd) b) Árbol de
expansión mı́nima (algoritmos de Prim y Kruskal)
Bibliografı́a: [Kleinberg and Tardos, 2005, Dasgupta et al., 2006, Rivest and Stein, 2009, Sedgewick and Wayne, 2011,
Goodrich and Tamassia, 2009]
Tópicos: I: Introducción a las clases P y NP y al problema P vs. NP. II: Introducción y ejemplos
de problemas NP- Completos y a clases NP-Completos.
Bibliografı́a: [Kleinberg and Tardos, 2005, Dasgupta et al., 2006, Rivest and Stein, 2009]
6. Bibliografı́a
[Alsuwaiyel, 1999] Alsuwaiyel, H. (1999). Algorithms: Design Techniques and Analysis. World Scien-
tific.
[Dasgupta et al., 2006] Dasgupta, S., Papadimitriou, C., and Vazirani, U. (2006). Algorithms.
McGraw-Hill Education.
[Goodrich and Tamassia, 2009] Goodrich, M. T. and Tamassia, R. (2009). Algorithm Design: Foun-
dations, Analysis and Internet Examples. John Wiley & Sons, Inc., 2nd edition.
[Kleinberg and Tardos, 2005] Kleinberg, J. and Tardos, E. (2005). Algorithm Design. Addison-Wesley
Longman Publishing Co., Inc.
[Knuth, 1997] Knuth, D. (1997). The Art of Computer Programming: Fundamental algorithms Vol 1.
Addison-Wesley, third edition edition.
[Rawlins, 1992] Rawlins, G. (1992). Compared to What?: An Introduction to the Analysis of Algo-
rithms. Computer Science Press.
[Rivest and Stein, 2009] Rivest, T. H. C. C. E. L. . R. L. and Stein, C. (2009). Introduction to
Algorithms, Third Edition. The MIT Press, 3rd edition.
[Sedgewick and Flajolet, 2013] Sedgewick, R. and Flajolet, P. (2013). An Introduction to the Analysis
of Algorithms. Pearson Education.
[Sedgewick and Wayne, 2011] Sedgewick, R. and Wayne, K. (2011). Algorithms. Pearson Education.
[Tarjan, 1983] Tarjan, R. E. (1983). Data Structures and Network Algorithms. Society for Industrial
and Applied Mathematics.
Prerrequisitos:
2. Fundamentación
Que el alumno conozca y comprenda los conceptos y principios fundamentales de la teorı́a de
compilación para realizar la construcción de un compilador
Tópicos: I: Programas que tienen otros programas como entrada tales como interpretes, compilado-
res, revisores de tipos y generadores de documentación. II: Arboles de sintaxis abstracta, para
contrastar la sintaxis correcta. III: Estructuras de datos que representan código para ejecución,
traducción o transmisión. IV: Compilación en tiempo just-in time y re-compilación dinámica.
V: Otras caracterı́sticas comunes de las máquinas virtuales, tales como carga de clases, hilos y
seguridad.
Objetivos de Aprendizaje I: Explicar como programas que procesan otros programas tratan a los
otros programas como su entrada de datos [Familiarizarse] II: Describir un árbol de sintaxis
abstracto para un lenguaje pequeño [Familiarizarse] III: Describir los beneficios de tener repre-
sentaciones de programas que no sean cadenas de código fuente [Familiarizarse] IV: Escribir
un programa para procesar alguna representación de código para algún propósito, tales como un
interprete, una expresión optimizada, o un generador de documentación [Familiarizarse] V: Ex-
plicar el uso de metadatos en las representaciones de tiempo de ejecución de objetos y registros de
activación, tales como los punteros de la clase, las longitudes de arreglos, direcciones de retorno,
y punteros de frame [Familiarizarse] VI: Discutir las ventajas, desventajas y dificultades del
término (just-in-time) y recompilación automática [Familiarizarse] VII: Identificar los servicios
proporcionados por los sistemas de tiempo de ejecución en lenguajes modernos [Familiarizarse]
Bibliografı́a: [Louden, 2004b, Pratt and V.Zelkowitz, 1998]
Bibliografı́a: [Aho et al., 2008, Aho, 1990, Louden, 2004a, Teufel and Schmidt, 1998, A.Lemone, 1996,
Appel, 2002]
6. Bibliografı́a
[Aho, 1990] Aho, A. (1990). Compiladores Principios, técnicas y herramientas. Addison Wesley.
[Aho et al., 2008] Aho, A., Lam, M., Sethi, R., and Ullman, J. D. (2008). Compiladores. Principios,
técnicas y herramientas. Addison Wesley, 2nd edition. ISBN:10-970-26-1133-4.
[A.Lemone, 1996] A.Lemone, K. (1996). Fundamentos de Compiladores. CECSA-Mexico.
[Appel, 2002] Appel, A. W. (2002). Modern compiler implementation in Java. Cambridge University
Press, 2.a edición edition.
[Louden, 2004a] Louden, K. C. (2004a). Construccion de Compiladores Principios y Practica. Thom-
son.
[Louden, 2004b] Louden, K. C. (2004b). Lenguajes de Programacion. Thomson.
[Pratt and V.Zelkowitz, 1998] Pratt, T. W. and V.Zelkowitz, M. (1998). Lenguajes de Programacion
Diseño e Implementacion. Prentice-Hall Hispanoamericana S.A.
[Teufel and Schmidt, 1998] Teufel, B. and Schmidt, S. (1998). Fundamentos de Compiladores. Addi-
son Wesley Iberoamericana.
Prerrequisitos:
2. Fundamentación
Parte fundamental de la formación integral de un profesional es la habilidad de comunicarse en un
idioma extranjero además del propio idioma nativo. No solamente amplı́a su horizonte cultural sino
que permite una visión más humana y comprensiva de la vida. En el caso de los idiomas extranjeros,
indudablemente el Inglés es el más práctico porque es hablado alrededor de todo el mundo. No hay
paı́s alguno donde este no sea hablado. En las carreras relacionadas con los servicios al turista el
inglés es tal vez la herramienta práctica más importante que el alumno debe dominar desde el primer
momento como parte de su formación integral.
Tópicos: I: Auxiliares de Modo should, must y have got to. II: Oraciones afirmativas, negativas e
interrogativas con modals. III: Términos para cartas formales. IV: Partes de las respuestas
cortas. V: Expresiones para ocupaciones.
Objetivos de Aprendizaje I: Al terminar la octava unidad, cada una de las alumnas, compren-
diendo la gramática de los auxiliares should y must es capaz de expresar una mayor cantidad
de acciones en forma obligación y sugerencia. Además es capaz de expresar ideas describiendo
ocupaciones. Asume la necesidad de escribir cartas formales.
Tópicos: I: Tiempo Presente Simple y Futuro con Will II: Primer Condicional III: Colocaciones
IV: Vocabulario de preposiciones de lugar y de tiempo V: Expresiones de conexión de ideas
Tópicos: I: Patrones de Verbos Infinitivos y gerundios II: What + Infinitivo III: Something +
infinitive IV: Expresiones de sentimientos V: Exclamaciones de sorpresa
Objetivos de Aprendizaje I: Al terminar la décimo unidad los alumnos serán capaces de recono-
cer y utilizar patrones tiempos en pasado los utilizan adecuadamente. Utilizan expresiones de
exclamación. Y describen sentimientos.Utilizarán conjunciones para unir ideas tipo.
Tópicos: I: Voz Pasiva II: Oraciones Afirmativas, Negativas y Preguntas III: Uso de Participios,
verbos y sustantivos que van unidos IV: Señales. Signos y notas V: Resúmenes VI: Expresiones
para indicar prohibición
Objetivos de Aprendizaje I: Al terminar la décimo primera primera unidad, los alumnos habiendo
identificado la idea de acciones pasivas describen acciones adecuadamente en diversas situaciones
que la involucran. Reconocen y aplican participios. Asumen la idea de respetar signos y señales
públicas. Expresan ideas de hábitos . Hacen resúmenes.
Tópicos: I: Segundo Condicional II: Auxiliar de Modo Might III: Verbos de Frase IV: Vocabulario
de expresiones sociales V: Adverbios VI: Expresiones para dar consejo
6. Bibliografı́a
[Cambridge, 2006] Cambridge (2006). Diccionario Inglés-Espanol Cambridge. Editorial Oxford.
[MacGrew, 1999] MacGrew, J. (1999). Focus on Grammar Basic. Editorial Oxford.
[Soars and John, 2002d] Soars, L. and John (2002d). American Headway N 2 Student Book. Editorial
Oxford.
2. Fundamentación
Este curso está diseñado para proporcionar a los estudiantes una sólida comprensión del proceso
de innovación dentro de una empresa. Se centra en la aplicación de las habilidades de innovación
empresarial en una empresa bien establecida. Esto se conoce como Intrapreneurship. Es el tercero de
un conjunto de tres cursos diseñados para acompañar a los estudiantes a medida que transforman
una idea en un negocio o empresa potencial. El estudiante experimentará el proceso desde la fase
de ideación hasta la revisión de las estrategias de negocios actuales. El material visto en este curso
responde a 2 preguntas principales: ¿‘ Qué debe hacer?”Y ¿‘ Cómo debe hacerlo?”.
3. Objetivos del curso
Identificar cómo se relaciona la innovación con el proceso emprendedor e intraempresarial
Familiarizarse con las herramientas de innovación y practicar cómo hacer uso de ellas.
Aprender a integrar la innovación en el ciclo económico.
Comprender la importancia de la estrategia y la implementación y cómo una idea debe ir acom-
pañada de un plan de implementación efectivo
Análisis de la información
Interpretación de información y resultados.
Trabajo en equipo.
Ética.
Comunicación oral.
Comunicación escrita
Comunicación gráfica
Entiendimiento de la necesidad de aprender de forma continua
6. Bibliografı́a
[Mario, 2013] Mario, M. (2013). Adiós a los MItos de la Innovación : Una Guı́a Práctica para Innovar
en América Latina. San José,Costa Rica: Innovare.
2. Fundamentación
Este curso busca proporcionar a los y las estudiantes ciertos marcos referenciales con los cuales
analizar las disyuntivas que se pueden presentar en su ejercicio profesional. El curso pone en práctica
constante el razonamiento crı́tico y responsable de los y las estudiantes, siendo esta una competencia
fundamental para los procesos de toma de decisión que asumiremos como profesionales y ciudadanos.
3. Objetivos del curso
Introducir a los estudiantes al pensamiento crı́tico y ético aplicado a su campo profesional.
Desarrollar la competencia de mirar un fenómeno desde varias disciplinas y perspectivas genera
en la persona empatı́a y respeto a la diversidad de opinión.
Capacidad de trabajo en equipo.
Capacidad para identificar problemas.
Capacidad de comunicación oral.
Tiene interés por conocer sobre temas actuales de la sociedad peruana y del mundo.
Capacidad de comunicación escrita.
6. Bibliografı́a
[Alonso, 2006] Alonso, G. (2006). Ética o Filosofı́a moral. México,Editorial Trillas.
SUMILLA
Prerrequisitos:
2. Fundamentación
Proyectos Interdisciplinarios II es un curso en el que los estudiantes trabajan en equipos en un
proyecto de investigación y desarrollo o emprendimiento, con el fin de plantear una solución a un pro-
blema relevante. El desarrollo del proyecto se centra en el uso de herramientas de ingenierı́a, tecnologia
y la ciencia de la computación para proponer soluciones a problemas técnicos, tecnológicos, cientı́ficos
y/o sociales. La integración del conocimiento y aspectos multidisciplinarios e interdisciplinarios es un
elemento esencial para el éxito del proyecto. A lo largo del curso, el estudiante aprende sobre el proceso
de diseño, a aplicar los contenidos de su carrera a un contexto real; a identificar y adquirir nuevos
conocimientos relevantes; y a colaborar interdisciplinariamente. En este segundo curso de Proyectos
Interdisciplinarios, el estudiante está expuesto a problemas de complejidad moderada, con bajo nivel
incertidumbre en la problemática y la solución, y cuenta con el apoyo y supervisión cercana del asesor
del proyecto. El curso enfatiza el desarrollo y reforzamiento de las habilidades de comunicación efectiva
y colaboración, para propiciar la formación de equipos de alto rendimiento. Se aprende a gestionar
proyectos, aplicando buenas prácticas y estándares internacionales.
Diseñar un componente o un proceso para satisfacer las necesidades deseadas dentro de restric-
ciones realistas.
C19. Capacidad para identificar eficazmente los objetivos y las prioridades de su trabajo / área /
proyecto con indicación de la acción, el tiempo y los recursos necesarios.⇒ Outcome n
6. Bibliografı́a
[Zobel, 2014] Zobel, J. (2014). Writing for Computer Science. Springer,Londres.
Prerrequisitos:
2. Fundamentación
Analizar técnicas para la correcta implementación de Sistemas de Información escalables, robustos,
confiables y eficientes en las organizaciones.
C8. Entendimiento de lo que las tecnologı́as actuales pueden y no pueden lograr.⇒ Outcome c
C16. Capacidad para identificar temas avanzados de computación y de la comprensión de las fronteras
de la disciplina.⇒ Outcome k
CS4. Implementar la teorı́a apropiada, prácticas y herramientas para la especificación, diseño, imple-
mentación y mantenimiento, ası́ como la evaluación de los sistemas basados en computadoras.⇒
Outcome k
CS6. Evaluar los sistemas en términos de atributos de calidad en general y las posibles ventajas y
desventajas que se presentan en el problema dado.⇒ Outcome i
CS10. Implementar efectivamente las herramientas que se utilizan para la construcción y la docu-
mentación de software, con especial énfasis en la comprensión de todo el proceso involucrado
en el uso de computadoras para resolver problemas prácticos. Esto debe incluir herramientas
para el control de software, incluyendo el control de versiones y gestión de la configuración.⇒
Outcome k
6. Bibliografı́a
[Pressman and Maxim, 2014] Pressman, R. S. and Maxim, B. (2014). Software Engineering: A Prac-
titioner’s Approach. McGraw-Hill, 8th edition.
[Sommerville, 2010] Sommerville, I. (2010). Software Engineering. Addison-Wesley, 9th edition.
SUMILLA
Prerrequisitos:
2. Fundamentación
Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y la máquina.
El propósito de un sistema operativo es proveer un ambiente en que el usuario pueda ejecutar sus
aplicaciones.
En este curso se estudiará el diseño del núcleo de los sistemas operativos. Además el curso con-
templa actividades prácticas en donde se resolverán problemas de concurrencia y se modificará el
funcionamiento de un pseudo Sistema Operativo.
g) Analizar el impacto local y global de la computación sobre los individuos, organizaciones y socie-
dad. (Evaluar)
C6. Capacidad para diseñar y poner en práctica las unidades estructurales mayores que utilizan
algoritmos y estructuras de datos y las interfaces a través del cual estas unidades se comunican.⇒
Outcome h
Objetivos de Aprendizaje I: Comparar y contrastar los algoritmos comunes que se utilizan tanto
para un programa preferente y no preferente de las tareas en los sistemas operativos, como la
comparación de prioridad, el rendimiento, y los esquemas de distribución equitativa [Evaluar]
II: Describir las relaciones entre los algoritmos de planificación y dominios de aplicación [Fami-
liarizarse] III: Discutir los tipos de planeamiento de procesos scheduling de corto, a mediano, a
largo plazo y I/O [Familiarizarse] IV: Describir las diferencias entre procesos y hebras [Fami-
liarizarse] V: Comparar y contrastar enfoques estáticos y dinámicos para scheduling en tiempo
real [Evaluar] VI: Hablar sobre la necesidad de tiempos lı́mites de scheduling [Familiarizarse]
VII: Identificar formas en que la lógica expresada en algoritmos de planificación son de aplica-
ción a otros ámbitos, tales como I/O del disco, la programación de disco de red, programación
de proyectos y problemas más allá de la computación [Familiarizarse]
Bibliografı́a: [Avi Silberschatz, 2012, Stallings, 2005, Tanenbaum, 2006, Tanenbaum, 2001, Mateu, 1999]
Bibliografı́a: [Avi Silberschatz, 2012, Stallings, 2005, Tanenbaum, 2006, Tanenbaum, 2001, Mateu, 1999]
Tópicos: I: Visión general de la seguridad del sistema . II: Polı́tica / mecanismo de separación.
III: Métodos de seguridad y dispositivos. IV: Protección, control de acceso y autenticación.
V: Las copias de seguridad.
Bibliografı́a: [Avi Silberschatz, 2012, Stallings, 2005, Tanenbaum, 2006, Tanenbaum, 2001, Mateu, 1999]
Tópicos: I: Tipos de virtualización (incluyendo Hardware / Software, OS, Servidor, Servicio, Red)
II: Paginación y la memoria virtual. III: Sistemas de archivos virtuales. IV: Los Hypervisor.
V: Virtualización portátil; emulación vs aislamiento. VI: Costo de la virtualización.
Bibliografı́a: [Avi Silberschatz, 2012, Stallings, 2005, Tanenbaum, 2006, Tanenbaum, 2001, Mateu, 1999]
Tópicos: I: Caracterı́sticas de los dispositivos serie y paralelo. II: Haciendo de abstracción de dis-
positivos. III: Estrategias de buffering. IV: Acceso directo a memoria. V: La recuperación
de fallos.
Bibliografı́a: [Avi Silberschatz, 2012, Stallings, 2005, Tanenbaum, 2006, Tanenbaum, 2001, Mateu, 1999]
Objetivos de Aprendizaje I: Describir las decisiones que deben tomarse en el diseño de sistemas de
archivos [Familiarizarse] II: Comparar y contrastar los diferentes enfoques para la organización
de archivos, el reconocimiento de las fortalezas y debilidades de cada uno. [Evaluar] III: Resumir
cómo el desarrollo de hadware ha dado lugar a cambios en las prioridades para el diseño y la
gestión de sistemas de archivos [Familiarizarse] IV: Resumir el uso de diarios y como los sistemas
de archivos de registro estructurado mejora la tolerancia a fallos [Familiarizarse]
Bibliografı́a: [Avi Silberschatz, 2012, Stallings, 2005, Tanenbaum, 2006, Tanenbaum, 2001, Mateu, 1999]
6. Bibliografı́a
[Avi Silberschatz, 2012] Avi Silberschatz, Peter Baer Galvin, G. G. (2012). Operating System Con-
cepts, 9/E. John Wiley & Sons, Inc.
[Mateu, 1999] Mateu, L. (1999). Apuntes de Sistemas Operativos. Universidad de Chile.
[Stallings, 2005] Stallings, W. (2005). Operating Systems: Internals and Design Principles, 5/E. Pren-
tice Hall.
[Tanenbaum, 2001] Tanenbaum, A. S. (2001). Modern Operating Systems, 2/E. Prentice Hall.
[Tanenbaum, 2006] Tanenbaum, A. S. (2006). Operating Systems Design and Implementation, 3/E.
Prentice Hall.
Prerrequisitos:
2. Fundamentación
Los algoritmos y estructuras de datos son una parte fundamental de la ciencia de la computación
que nos permiten organizar la información de una manera más eficiente, por lo que es importante para
todo profesional del área tener una sólida formación en este aspecto.
En el curso de estructuras de datos avanzadas nuestro objetivo es que el alumno conozca y analize
estructuras complejas, como los Métodos de Acceso Multidimensional, Métodos de Acceso Espacio-
Temporal y Métodos de Acceso Métrico, etc.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los aconteci-
mientos del mundo real que explican su pertinencia y utilidad.⇒ Outcome b
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome c
6. Bibliografı́a
[Chávez et al., 2001] Chávez, E., Navarro, G., Baeza-Yates, R., and Marroquı́n, J. (2001). Proximity
searching in metric spaces. ACM Computing Surveys, 33(3):273–321.
[Cuadros-Vargas et al., 2004] Cuadros-Vargas, E., Romero, R. A. F., Mock, M., and Brisaboa,
N. (2004). Implementing data structures: An incremental approach. http://socios.spc.org
.pe/ecuadros/cursos/pdfs/.
[Gaede and Günther, 1998] Gaede, V. and Günther, O. (1998). Multidimensional Access Methods.
ACM Computing Surveys, 30(2):170–231.
[Gamma et al., 1994] Gamma, E., Helm, R., Johnson, R., and Vlissides, J. M. (1994). Design Patterns:
Elements of Reusable Object-Oriented Software. Computing Series. Addison-Wesley Professional.
ISBN-10: 0201633612.
[Knuth, 2007a] Knuth, D. E. (2007a). The Art of Computer Programming, Fundamental Algorithms,
volume I. Addison-Wesley, 3rd edition. 0-201-89683-4.
[Knuth, 2007b] Knuth, D. E. (2007b). The Art of Computer Programming, Sorting and Searching,
volume II. Addison-Wesley, 2nd edition. 0-201-89685-0.
[PGregory Shakhnarovich and Indyk, 2006] PGregory Shakhnarovich, T. D. and Indyk, P. (2006).
Nearest-Neighbor Methods in Learning and Vision: Theory and Practice. MIT Press, 1st edition.
ISBN 0-262-19547-X.
[Samet, 2006] Samet, H. (2006). Foundations of Multidimensional and Metric Data Structures. Else-
vier/Morgan Kaufmann, illustrated edition.
[Traina Jr et al., 2000] Traina Jr, C., Traina, A. J. M., Seeger, B., and Faloutsos, C. (2000). Slim-
Trees: High Performance Metric Trees Minimizing Overlap between Nodes. In Advances in Database
Technology - EDBT 2000, 6th International Conference on Extending Database Technology, volume
1777 of Lecture Notes in Computer Science, pages 51–65, Konstanz, Germany. Springer.
[Zezula et al., 2007] Zezula, P., Amato, G., Dohnal, V., and Batko, M. (2007). Similarity Search: The
Metric Space Approach. Springer, 1st edition. ISBN-10: 0387291466.
Prerrequisitos:
2. Fundamentación
La Programación Competitiva combina retos de solucionar problemas con la diversión de competir
con otras personas. Enseña a los participantes a pensar más rápido y desarrollar habilidades para
resolver problemas, que son de gran demanda en la industria. Este curso enseñará la resolución de
problemas algorı́tmicos de manera rápida combinando la teorı́a de algoritmos y estructuras de datos
con la práctica la solución de los problemas.
Que el alumno aplique los conceptos aprendidos para la aplicación sobre un problema real.
Que el alumno investigue la posibilidad de crear un nuevo algoritmo y/o técnica nueva para
resolver un problema real.
6. Bibliografı́a
[Cormen et al., 2009] Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2009). Introduction
to Algorithms. MIT Press.
Prerrequisitos:
2. Fundamentación
Este curso busca introducir al estudiante a los conceptos generales de microeconomı́a y macroeco-
nomı́a. El objetivo es que los estudiantes puedan explicar procesos de la realidad desde la lógica de
la economı́a. Después de haber llevado los módulos de micro y macroeconomı́a, los estudiantes deben
elegir uno de los dos tracks electivos propuestos. Los tracks electivos son i) Casos de economı́as de
rápido crecimiento y de dramáticas recesiones y ii) polı́ticas públicas para la reducción de la pobreza
en América Latina.
C17. Capacidad para expresarse en los medios de comunicación orales y escritos como se espera de
un graduado.⇒ Outcome f
C21. Comprender el aspecto profesional, legal, seguridad, asuntos polı́ticos, humanistas, ambientales,
culturales y éticos.⇒ Outcome e
6. Bibliografı́a
[N, 2002] N, G. (2002). Principios de Economı́a. Mc Graw Hill.
2. Fundamentación
El curso de Imagen y Marca Personal , es el primero de dos cursos del área de desarrollo de
competencias personales y profesionales. Este curso brinda oportunidades al estudiante para que se
autoevalúe y reconozca las oportunidades de mejora, sentirse capaz de realizar cada uno de los retos
que se le proponga a nivel personal y profesional y de realizar un adecuado análisis de su situación,
ejecución y propuesta de resolución. El aprendizaje a través de la experiencia, le ayudará a evaluar
desde su propia perspectiva, las diferentes formas de pensar y la capacidad de aportar individualmente
o en equipo al logro de un determinado objetivo; a través del intercambio de ideas, la evaluación de
propuestas y la ejecución de la alternativa de solución idónea.
3. Objetivos del curso
Comprende las responsabilidades profesional y ética
Capacidad de comunicación oral
Capacidad de comunicación escrita
Reconoce la necesidad del aprendizaje permanente
Tópicos: I: Repaso de los compromisos y acuerdos de la clase . II: Assessment center de autoeva-
luación. III: Dinámica sobre el autoconocimiento, la identificación de FODA personal y visión
de futuro personal
Tópicos: I: Teorı́a. Personal branding. Plan de posicionamiento en el mercado (como voy hacer que
mis competencias puedan ingresar al mercado). II: Cómo uno se debe comunicar, la utilización
de la voz para potenciar sus habilidades y conseguir seguridad y eficacia en su comunicación.
III: Teorı́a ¿Qué es un CV? ¿Cómo crear un CV innovador? Implementación de proyectos;
actualización de datos, armado de portafolio de proyectos; comunicación virtual. IV: Creación
de un CV por grupo.
Tópicos: I: Charla: Expectativas del mercado laboral.¿Qué busca y quiere el mercado? II: Tipos
de entrevistas y evaluaciones en el proceso de reclutamiento y selección. Uso de estrategias de
persuasión; formas y técnicas exitosas para entrevistas, tips y recomendaciones. III: Entrega del
Reto 1: Envı́o del CV IV: Charla VOLCAN: Tips de entrevistas y evaluaciones de reclutamiento
y selección en Jueves del Conocimiento V: Tarea. Después de conocerse y saber lo que quiere
el mercado, se crean los elementos para diseñar la propia estrategia de cada alumno
Tópicos: I: Conversatorio sobre los resultados de la clase anterior II: Taller fuera del salón: Proac-
tividad, análisis de problemas, pensamiento analı́tico y planificación y organización, trabajo en
equipo y liderazgo, adaptabilidad, comunicación asertiva, ética. Se tendrá el feedback.
Tópicos: I: Entrevista a expertos: El mundo real laboral desde la visión del área de recursos humanos
-RRHH, con jefes corporativos de selección como invitados
Objetivos de Aprendizaje I: Fomentar la actitud positiva hacia el trabajo y la pasión por sobre-
salir en las prácticas preprofesionales mediante la detección de oportunidades de mejora y la
formulación de un proyecto de ingenierı́a.
Tópicos: I: Caso de Estudio II: Competencias: Planificación y organización y confianza en sı́ mismo,
asociado a la resolución de problemas. III: Feedback de resultados sobre la dinámica de refuerzo.
6. Bibliografı́a
[Jorge, 2009] Jorge, G. (2009). Cómo te vendes te contratan. México,Mc Graw Hill.
[Richard, 2015] Richard, B. (2015). What color is your parachute? New York, Ten Speed Press -
Random House Company.
[Stephen, 2005] Stephen, R. (2005). Comportamiento Organizacional. Pearson Pentice Hall, décima
edición edition.
SUMILLA
Prerrequisitos:
2. Fundamentación
Proyectos Interdisciplinarios III es un curso en el que los estudiantes trabajan en equipos en un
proyecto de investigación y desarrollo o emprendimiento, con el fin de plantear una solución a un
problema relevante. El desarrollo del proyecto se centra en el uso de herramientas de ingenierı́a, tec-
nologia y la ciencia de la computación para proponer soluciones a problemas técnicos, tecnológicos,
cientı́ficos y/o sociales. La integración del conocimiento y aspectos multidisciplinarios e interdiscipli-
narios es un elemento esencial para el éxito del proyecto. A lo largo del curso, el estudiante aprende
sobre el proceso de diseño, a aplicar los contenidos de su carrera a un contexto real; a identificar y
adquirir nuevos conocimientos relevantes; y a colaborar interdisciplinariamente. En este tercer curso
de Proyectos Interdisciplinarios, el estudiante está expuesto a problemas de complejidad moderada,
con bajo nivel incertidumbre en la problemática y la solución, y cuenta con el apoyo y supervisión
cercana del asesor del proyecto. El curso enfatiza el desarrollo y reforzamiento de las habilidades de
comunicación efectiva y colaboración, para propiciar la formación de equipos de alto rendimiento. Se
aprende a gestionar proyectos, aplicando buenas prácticas y estándares internacionales.
Diseñar un componente o un proceso para satisfacer las necesidades deseadas dentro de restric-
ciones realistas.
C19. Capacidad para identificar eficazmente los objetivos y las prioridades de su trabajo / área /
proyecto con indicación de la acción, el tiempo y los recursos necesarios.⇒ Outcome n
6. Bibliografı́a
[Zobel, 2014] Zobel, J. (2014). Writing for Computer Science. Springer,Londres.
Prerrequisitos:
2. Fundamentación
El siempre creciente desarrollo de las tecnologı́as de comunicación y la información hace que exista
una marcada tendencia a establecer más redes de computadores que permitan una mejor gestión de
la información.
En este segundo curso se brindará a los participantes una introducción a los problemas que con-
lleva la comunicación entre computadores, a través del estudio e implementación de protocolos de
comunicación como TCP/IP y la implementación de software sobre estos protocolos.
Que el alumno domine las técnicas de transmisión de datos utilizadas por los protocolos de red
existentes.
g) Analizar el impacto local y global de la computación sobre los individuos, organizaciones y socie-
dad. (Evaluar)
C6. Capacidad para diseñar y poner en práctica las unidades estructurales mayores que utilizan
algoritmos y estructuras de datos y las interfaces a través del cual estas unidades se comunican.⇒
Outcome c,b
C7. Ser capaz de aplicar los principios y tecnologı́as de ingenierı́a de software para asegurar que
las implementaciones de software son robustos, fiables y apropiados para su público objetivo.⇒
Outcome c
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome g,b
Objetivos de Aprendizaje I: Listar las diferencias y las relaciones entre los nombres y direcciones
en una red [Familiarizarse] II: Definir los principios detrás de esquemas de denominación y
ubicación del recurso [Familiarizarse] III: Implementar una aplicación simple cliente-servidor
basada en sockets [Usar]
Tópicos: I: Enrutamiento vs reenvı́o . II: Enrutamiento estático . III: Protocolo de Internet (IP)
IV: Problemas de escalabilidad (direccionamiento jerárquico)
Tópicos: I: Problemas de Acceso Múltiple. II: Enfoques comunes a Acceso múltiple (exponencial
backoff, multiplexación por división de tiempo, etc) III: Redes de área local . IV: Ethernet .
V: Switching .
Objetivos de Aprendizaje I: Describir como los paquetes son enviados en una red Ethernet [Fa-
miliarizarse] II: Describir las relaciones entre IP y Ethernet [Familiarizarse] III: Describir las
relaciones entre IP y Ethernet [Familiarizarse] IV: Describir las etapas usadas en un enfoque
común para el problema de múltiples accesos [Familiarizarse]
Tópicos: I: Necesidad de asignación de recursos . II: Asignación fija (TDM, FDM, WDM) versus
la asignación dinámica . III: De extremo a extremo frente a las red de enfoque asistida .
IV: Justicia. V: Principios del control de congestión. VI: Enfoques para la congestión (por
ejemplo, redes de distribución de contenidos)
Objetivos de Aprendizaje I: Describir como los recursos pueden ser almacenados en la red [Fami-
liarizarse] II: Describir los problemas de congestión en una red grande [Familiarizarse] III: Com-
parar y contrastar las técnicas de almacenamiento estático y dinámico [Familiarizarse] IV: Com-
parar y contrastar los enfoques actuales de la congestión [Familiarizarse]
Tópicos: I: Principios de redes celulares. II: Redes 802.11 III: Problemas en el apoyo a los nodos
móviles (agente local)
6. Bibliografı́a
[Kurose and Ross, 2013] Kurose, J. and Ross, K. (2013). Computer Networking: A Top-down Ap-
proach. Always learning. Pearson.
Prerrequisitos:
2. Fundamentación
Ofrece una introducción para el área de Computación Gráfica, la cual es una parte importante
dentro de Ciencias de la Computación. El proposito de este curso es investigar los principios, técnicas
y herramientas fundamentales para esta área.
Dar al alumno las herramientas necesarias para determinar que software gráfico y que plataforma
son los más adecuados para desarrollar una aplicación especı́fica.
C2. Capacidad para tener una perspectiva crı́tica y creativa para identificar y resolver problemas
utilizando el pensamiento computacional.⇒ Outcome b
C4. Una comprensión del hardware de la computadora desde la perspectiva del software, por ejemplo,
el uso del procesador, memoria, unidades de disco, pantalla, etc.⇒ Outcome i
C8. Entendimiento de lo que las tecnologı́as actuales pueden y no pueden lograr.⇒ Outcome i
Objetivos de Aprendizaje I: Explicar en términos generales cómo las señales analógicas pueden
ser representadas por muestras discretas, por ejemplo,cómo las imagenes pueden ser represen-
tadas por pixeles [Familiarizarse] II: Describir modelos de color y su uso en los dispositivos de
visualización de gráficos [Familiarizarse] III: Describir las ventajas y desventajas entre el alma-
cenamiento de información vs almacenar suficiente información para reproducir la información,
como en la diferencia entre el vector y la representación de la trama [Familiarizarse] IV: Des-
cribir los procesos básico de la producción de movimiento continuo a partir de una secuencia de
cuadros discretos(algunas veces llamado it flicker fusion ) [Familiarizarse]
Bibliografı́a: [Hearn and Baker, 1990, Hughes et al., 2013, Wolff, 2011, Shreiner et al., 2013]
Tópicos: I: Manejo de eventos e interacción de usuario. II: Enfoques para el diseño, implementa-
ción y evaluación de la interacción sin mouse a) Interfaces táctiles y multitáctiles. b) Interfaces
compartidas, incorporadas y grandes c) Nuevas modalidades de entrada (tales como datos de
sensores y localización) d ) Nuevas ventanas, por ejemplo, iPhone, Android e) Reconocimiento
de voz y procesamiento del lenguaje natural f ) Interfaces utilizables y tangibles g) Interacción
persuasiva y emoción h) Tecnologı́as de interacción ubicuas y contextuales (Ubicomp) i) Inferen-
cia bayesiana (por ejemplo, texto predictivo, orientación guiada) j ) Visualización e interacción
de ambiente / periféricos
Objetivos de Aprendizaje I: Discute las ventajas (y desventajas) de las interfaces no basadas en
ratón [Evaluar]
Bibliografı́a: [Hearn and Baker, 1990]
6. Bibliografı́a
[Hearn and Baker, 1990] Hearn, D. and Baker, P. (1990). Computer Graphics in C. Prentice Hall.
[Hughes et al., 2013] Hughes, J. F., Dam, A. V., Mcguire, M., Sklar, D. F., Foley, J. D., Feiner, S. K.,
and Akeley, K. (2013). Computer Graphics - Principles and Practice 3rd Edition. Addison-Wesley.
[Shreiner et al., 2013] Shreiner, D., Sellers, G., Kessenich, J., and Licea-Kane, B. (2013). OpenGL,
Programming Guide, Eighth Edition. Addison-Wesley.
[Wolff, 2011] Wolff, D. (2011). OpenGL 4.0 Shading Language Cookbook. Packt Publishing.
SUMILLA
Prerrequisitos:
2. Fundamentación
La investigación en Inteligencia Artificial ha conducido al desarrollo de numerosas tónicas relevan-
tes, dirigidas a la automatización de la inteligencia humana, dando una visión panorámica de diferentes
algoritmos que simulan los diferentes aspectos del comportamiento y la inteligencia del ser humano.
Construir una noción de inteligencia que soporte después las tareas de su simulación.
C20. Posibilidad de conectar la teorı́a y las habilidades aprendidas en la academia a los aconteci-
mientos del mundo real que explican su pertinencia y utilidad.⇒ Outcome c
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome i,j
Bibliografı́a: [Goldberg, 1989, Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
Objetivos de Aprendizaje I: Comparar y contrastar los modelos más usados para la representación
del conocimiento estructurado, destacando sus puntos fuertes y débiles [Usar] II: Identificar los
componentes de razonamiento no monótono y su utilidad como mecanismo de representación
de los sistemas de confianza [Usar] III: Comparar y contrastas las técnicas básicas para la
representación de la incertidumbre [Usar] IV: Comparar y contrastar las técnicas básicas para
la representación cualitativa [Usar] V: Aplicar cálculo de situaciones y eventos a problemas de
acción y cambios [Usar] VI: Explicar la diferencia entre razonamiento temporal y espacial, y
cómo se relacionan entre sı́. [Usar] VII: Explicar la diferencia entre técnicas de razonamiento
basado en modelos, basado en casos y basados en reglas [Usar] VIII: Definir el concepto de un
sistema planificación y cómo se diferencia de las técnicas de búsqueda clásicas [Usar]
Bibliografı́a: [Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
Tópicos: I: Definición de Agentes II: Arquitectura de agentes (Ej. reactivo, en capa, cognitivo)
III: Teorı́a de agentes IV: Racionalidad, teorı́a de juegos: a) Agentes de decisión teórica
b) Procesos de decisión de Markov (MDP) V: Agentes de Software, asistentes personales, y ac-
ceso a información: a) Agentes colaborativos b) Agentes de recolección de información c) Agentes
creı́bles (carácter sintético, modelamiento de emociones en agentes) VI: Agentes de aprendi-
zaje VII: Sistemas Multi-agente a) Agentes Colaborativos b) Equipos de Agentes c) Agentes
Competitivos (ej., subastas, votaciones) d ) Sistemas de enjambre y modelos biológicamente ins-
pirados
Objetivos de Aprendizaje I: Lista las caracterı́sticas que definen un agente inteligente [Usar]
II: Describe y contrasta las arquitecturas de agente estándares [Usar] III: Describe las apli-
caciones de teorı́a de agentes para dominios como agentes de software, asistentes personales, y
agentes creibles [Usar] IV: Describe los paradigmas primarios usados por agentes de aprendiza-
je [Usar] V: Demuestra mediante ejemplos adecuados como los sistemas multi-agente soportan
interacción entre agentes [Usar]
Bibliografı́a: [Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
Bibliografı́a: [Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
Objetivos de Aprendizaje I: Listar las diferencias entre los tres principales tipos de aprendizaje:
supervisado, no supervisado y por refuerzo [Usar] II: Identificar ejemplos de tareas de clasifica-
ción, considerando las caracterı́sticas de entrada disponibles y las salidas a ser predecidas [Usar]
III: Explicar la diferencia entre aprendizaje inductivo y deductivo [Usar] IV: Describir el sobre
ajuste (overfitting) en el contexto de un problema [Usar] V: Aplicar un algoritmo de aprendizaje
estadı́stico simple como el Clasificador Naive Bayesiano e un problema de clasificacion y medirla
precisión del clasificador [Usar]
Bibliografı́a: [Haykin, 1999, Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
Tópicos: I: Vision general: problemas y progreso a) Estado del arte de los sistemas robóticos, in-
cluyendo sus sensores y una visión general de su procesamiento b) Arquitecturas de control
robótico, ejem., deliverado vs. control reactivo y vehiculos Braitenberg c) Modelando el mundo
Objetivos de Aprendizaje I: Listar capacidades y limitaciones de sistemas del estado del arte en
robótica de hoy , incluyendo sus sensores y el procesamiento del sensor crucial que informa
a esos sistemas [Usar] II: Integrar sensores, actuadores y software en un robot diseñado para
emprender alguna tarea [Usar] III: Programar un robot para llevar a cabo tareas simples usando
arquitecturas de control deliverativo, reactivo y/o hı́brido [Usar] IV: Implementar algoritmos
de planificación de movimientos fundamentales dentro del espacio de configuración de un robot
[Usar] V: Caracterizar las incertidumbres asociadas con sensores y actuadores de robot comunes;
articular estrategias para mitigar esas incertidumbres. [Usar] VI: Listar las diferencias entre
representaciones de los robot de su enterno externo, incluyendo sus fortalezas y defectos [Usar]
VII: Comparar y contrastar al menos tres estrategias para la navegación de robots dentro de
entornos conocidos y/o no conocidos, incluyendo sus fortalezas y defectos [Usar] VIII: Describir
al menos una aproximación para la coordinación de acciones y detección de varios robots para
realizar una simple tarea [Usar]
Bibliografı́a: [Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
Bibliografı́a: [Nilsson, 2001, Russell and Norvig, 2003, Ponce-Gallegos et al., 2014]
6. Bibliografı́a
[De Castro, 2006] De Castro, L. (2006). Fundamentals of natural computing: basic concepts, algo-
rithms, and applications. CRC Press.
[Goldberg, 1989] Goldberg, D. (1989). Genetic Algorithms in Search, Optimization and Machine
Learning. Addison Wesley.
[Haykin, 1999] Haykin, S. (1999). Neural networks: A Comprehensive Foundation. Prentice Hall.
[Nilsson, 2001] Nilsson, N. (2001). Inteligencia Artificial: Una nueva visión. McGraw-Hill.
[Ponce-Gallegos et al., 2014] Ponce-Gallegos, J., Torres-Soto, A., tima Quezada Aguilera, Silva-
Sprock, A., Flor, E. M., Casali, A., Scheihing, E., Tupac, Y., Soto, M. T., Zapata, F. O., A., J. H.,
D., C. Z., Vakhnia, N., and Pedreño, O. (2014). Inteligencia Artificial. Iniciativa Latinoamericana
de Libros de Texto Abiertos (LATIn).
[Russell and Norvig, 2003] Russell, S. and Norvig, P. (2003). Inteligencia Artifical: Un enfoque mo-
derno. Prentice Hall.
Prerrequisitos:
2. Fundamentación
Los tópicos de este curso extienden las ideas del diseño y desarrollo de software desde la secuencia
de introducción a la programación para abarcar los problemas encontrados en proyectos de gran escala.
Es una visión más amplia y completa de la Ingenierı́a de Software apreciada desde un punto de vista
de Proyectos.
Crear, evaluar e implementar un plan de prueba para segmentos de código de tamaño medio ,
Distinguir entre los diferentes tipos de pruebas , sentar las bases para crear, mejorar los proce-
dimientos de prueba y las herramientas utilizadas con ese propósito.
Crear, mejorar y utilizar los patrones existentes para el mantenimiento de software . Dar a
conocer las caracterı́sticas y patrones de diseño para la reutilización de software.
Identificar y discutir diferentes sistemas especializados , crear , mejorar y utilizar los patrones
especializados para el diseño , implementación , mantenimiento y prueba de sistemas especiali-
zados
C8. Entendimiento de lo que las tecnologı́as actuales pueden y no pueden lograr.⇒ Outcome b,c,k
C11. Entendimiento del concepto del ciclo de vida, incluyendo la importancia de sus fases (planifi-
cación, desarrollo, implementación y evolución).⇒ Outcome c
C12. Entender las implicaciones de ciclo de vida para el desarrollo de todos los aspectos de los siste-
mas informáticos (incluyendo software, hardware, y la interfaz de la computadora humana).⇒
Outcome c,i
CS1. Modelar y diseñar sistemas de computadora de una manera que se demuestre comprensión del
balance entre las opciones de diseño.⇒ Outcome c
CS2. Identificar y analizar los criterios y especificaciones apropiadas a los problemas especı́ficos, y
planificar estrategias para su solución.⇒ Outcome b,c
CS4. Implementar la teorı́a apropiada, prácticas y herramientas para la especificación, diseño, imple-
mentación y mantenimiento, ası́ como la evaluación de los sistemas basados en computadoras.⇒
Outcome b,c,i
CS10. Implementar efectivamente las herramientas que se utilizan para la construcción y la docu-
mentación de software, con especial énfasis en la comprensión de todo el proceso involucrado
en el uso de computadoras para resolver problemas prácticos. Esto debe incluir herramientas
para el control de software, incluyendo el control de versiones y gestión de la configuración.⇒
Outcome i,k
Bibliografı́a: [Pressman, 2004, Blum, 1992, Schach, 2004, Wang and King, 2000, Keyes, 2004, Windle and Abreo, 2002,
Priest and Sanchez, 2001, Schach, 2004, Montangero, 1996, Ambriola, 2001, Conradi, 2000, Oquendo, 2003]
Bibliografı́a: [Pressman, 2004, Blum, 1992, Schach, 2004, Wang and King, 2000, Keyes, 2004, Windle and Abreo, 2002,
Priest and Sanchez, 2001, Schach, 2004, Montangero, 1996, Ambriola, 2001, Conradi, 2000, Oquendo, 2003]
6. Bibliografı́a
[Ambriola, 2001] Ambriola, V. (2001). Software Process Technology. Springer.
[Blum, 1992] Blum, B. I. (1992). Software Engineering: A Holistic View. Oxford University Press US,
7th edition.
[Conradi, 2000] Conradi, R. (2000). Software Process Technology. Springer.
[Keyes, 2004] Keyes, J. (2004). Software Configuration Management. CRC Press.
[Montangero, 1996] Montangero, C. (1996). Software Process Technology. Springer.
[Oquendo, 2003] Oquendo, F. (2003). Software Process Technology. Springer.
[Pressman, 2004] Pressman, R. S. (2004). Software Engineering: A Practitioner’s Approach. McGraw-
Hill, 6th edition.
[Priest and Sanchez, 2001] Priest, J. W. and Sanchez, J. M. (2001). Product Development and Design
for Manufacturing. Marcel Dekker.
[Schach, 2004] Schach, S. R. (2004). Object-Oriented and Classical Software Engineering. McGraw-
Hill.
[Wang and King, 2000] Wang, Y. and King, G. (2000). Software Engineering Processes: Principles
and Applications. CRC Press.
[Windle and Abreo, 2002] Windle, D. R. and Abreo, L. R. (2002). Software Requirements Using the
Unified Process. Prentice Hall.
2. Fundamentación
La introducción y la innovación de este curso empieza con la presentación selecta de los funda-
mentos generales sobre Ciencia de los materiales e Ingenierı́a. Luego, se enfoca en seminarios sobre la
familia de materiales: metales y aleaciones, cerámicos y vidrios, polı́meros y copolı́meros, y compues-
tos y nanomateriales. Las aplicaciones abarcan materiales tradicionales y de vanguardia. EL estudido
de estas aplicaciones cubre el papel desempeñado por los materiales, las mismas aplicaciones y su
relevancia. Casos avanzados sobre materiales e innovadores aplicaciones de relevancia potencial sobre
el contexto peruano son cubiertos.
3. Objetivos del curso
Capacidad de trabajo en equipo.
Capacidad para identificar problemas de ingenierı́a.
Capacidad para comunicarse oralmente.
Capacidad para comunicarse por escrito.
Objetivos de Aprendizaje I: Comprender los fundamentos generales y las funciones deseables para
los materiales. II: Reconociendo la importancia de adquirir una comprensión básica de los
materiales para avanzar de forma autónoma en el área.
6. Bibliografı́a
[Callister and Rethwisch, 2014] Callister, W. and Rethwisch, D. (2014). Materials Science and Engi-
neering: An Introduction. John Wiley & Sons, Inc.
Prerrequisitos:
2. Fundamentación
El curso busca dar una visión global, histórica y crı́tica de las transformaciones y sinergias del arte
contemporáneo. Donde los alumnos se aproximan a dos componentes del arte y diseño contemporáneo:
las prácticas interdisciplinarias y a los puntos de contacto entre las artes y los procesos tecnológicos y
de ingenierı́a.
o) Mejorar las condiciones de la sociedad poniendo la tecnologı́a al servicio del ser humano. (Usar)
C17. Capacidad para expresarse en los medios de comunicación orales y escritos como se espera de
un graduado.⇒ Outcome f
C21. Comprender el aspecto profesional, legal, seguridad, asuntos polı́ticos, humanistas, ambientales,
culturales y éticos.⇒ Outcome e
6. Bibliografı́a
[J, 2012] J, M. (2012). Processing: A Programming Handbook for Visual Designers and Artists. Cam-
bridge: The MIT Press.
[S, 2002] S, W. (2002). Intersections of Art, Science and Technology. Cambridge: The MIT Press.
Prerrequisitos:
2. Fundamentación
El objetivo del curso es que el estudiante comprenda la interrelación que existe entre los sistemas
polı́ticos y económicos de un paı́s o región. El hilo conductor de este curso será el libro ”Why Nations
Fail: The Origins of Power, Prosperity, and Poverty”de Acemoglu-Robinson. El aprendizaje del curso
debe ser una interpretación informada de distintas dinámicas sociales en las que se organiza y reparte
poder, sea de carácter simbólico, económico y/o polı́tico. Este curso debe trabajar la capacidad del
estudiante de utilizar conceptos más complejos y desarrollar interpretaciones más elaboradas de la
realidad.
C17. Capacidad para expresarse en los medios de comunicación orales y escritos como se espera de
un graduado.⇒ Outcome d
C21. Comprender el aspecto profesional, legal, seguridad, asuntos polı́ticos, humanistas, ambientales,
culturales y éticos.⇒ Outcome e
6. Bibliografı́a
[Larry, 2015] Larry, L. (2015). Our democracy no longer represents the people. here’s how we fix it.
Youtube.
2. Fundamentación
El lenguaje ha sido una de las creaciones más significativas de la humanidad. Desde el lenguaje
corporal y gestual, pasando por la comunicación verbal y escrita, hasta códigos simbólicos icónicos y
otros, ha posibilitado interacciones complejas entre los seres humanos y facilitado considerablemente la
comunicación de información. Con la invención de dispositivos automáticos y semiautomáticos, entre
los que se cuentan las computadoras, la necesidad de lenguajes o interfaces para poder interactuar con
ellos, ha cobrado gran importancia.
La usabilidad del software, aunada a la satisfacción del usuario y su incremento de productividad,
depende de la eficacia de la Interfaz Usuario-Computador. Tanto es ası́, que a menudo la interfaz
es el factor más importante en el éxito o el fracaso de cualquier sistema computacional. El diseño e
implementación de adecuadas Interfaces Humano-Computador, que además de cumplir los requisitos
técnicos y la lógica transaccional de la aplicación, considere las sutiles implicaciones psicológicas,
culturales y estéticas de los usuarios, consume buena parte del ciclo de vida de un proyecto software, y
requiere habilidades especializadas, tanto para la construcción de las mismas, como para la realización
de pruebas de usabilidad.
3. Objetivos del curso
Conocer y aplicar criterios de usabilidad y accesibilidad al diseño y construcción de interfaces
humano-computador, buscando siempre que la tecnologı́a se adapte a las personas y no las
personas a la tecnologı́a.
Que el alumno tenga una visión centrada en la experiencia de usuario al aplicar apropiados
enfoques conceptuales y tecnológicos.
Entender como la tecnologica emergente hace posible nuevos estilos de interacción.
Determinar los requerimientos básicos a nivel de interfaces, hardware y software para la cons-
trucción de ambientes inmersivos.
C7. Ser capaz de aplicar los principios y tecnologı́as de ingenierı́a de software para asegurar que
las implementaciones de software son robustos, fiables y apropiados para su público objetivo.⇒
Outcome c
C15. Entendimiento del concepto esencial del proceso, ya que se relaciona con la actividad profesional
sobre todo la relación entre la calidad del producto y el despliegue de los procesos humanos
apropiados durante el desarrollo de productos.⇒ Outcome g
CS10. Implementar efectivamente las herramientas que se utilizan para la construcción y la docu-
mentación de software, con especial énfasis en la comprensión de todo el proceso involucrado
en el uso de computadoras para resolver problemas prácticos. Esto debe incluir herramientas
para el control de software, incluyendo el control de versiones y gestión de la configuración.⇒
Outcome d
Tópicos: I: Contextos para IHC (cualquiera relacionado con una interfaz de usuario, p.e., página
web, aplicaciones de negocios, aplicaciones móviles y juegos) II: Heurı́stica de usabilidad y
los principios de pruebas de usabilidad. III: Procesos para desarrollo centrado en usuarios,
p.e., enfoque inicial en usuarios, pruebas empı́ricas, diseño iterativo. IV: Principios del buen
diseño y buenos diseñadores; ventajas y desventajas de ingenierı́a. V: Diferentes medidas para
evaluación, p.e., utilidad, eficiencia, facilidad de aprendizaje, satisfacción de usuario.
Bibliografı́a: [Dix et al., 2004, Stone et al., 2005, Rogers and Sharp, 2011]
Tópicos: I: Modelos cognoscitivos que informan diseño de interacciones, p.e., atención, percepción
y reconocimiento, movimiento, memoria, golfos de expectativa y ejecución. II: Capacidades
fı́sicas que informan diseño de interacción, p.e. percepción del color, ergonomı́a. III: Accesibili-
dad, p.e., interfaces para poblaciones con diferentes habilidades (p.e., invidentes, discapacitados)
IV: Interfaces para grupos de población de diferentes edades (p.e., niños, mayores de 80)
Objetivos de Aprendizaje I: Crear y dirigir una simple pruebga de usabilidad para una aplicación
existente de software [Familiarizarse]
Bibliografı́a: [Dix et al., 2004, Stone et al., 2005, Rogers and Sharp, 2011, Mathis, 2011, Norman, 2004]
Objetivos de Aprendizaje I: Llevar a cabo una evaluación cuantitativa y discutir / informar sobre
los resultados [Familiarizarse] II: Para un grupo de usuarios determinado, realizar y documen-
tar un análisis de sus necesidades [Familiarizarse] III: Discutir al menos un standard nacional
o internacional de diseño de interfaz de usuario [Familiarizarse] IV: Explicar cómo el diseño
centrado en el usuario complementa a otros modelos de proceso software [Familiarizarse] V: Uti-
lizar lo-fi (baja fidelidad) técnicas de prototipado para recopilar y reportar, las respuestas del
usuario [Usar] VI: Elegir los métodos adecuados para apoyar el desarrollo de una especı́fica in-
terfaz de usuario [Evaluar] VII: Utilizar una variedad de técnicas para evaluar una interfaz de
usuario dada [Evaluar] VIII: Comparar las limitaciones y beneficios de los diferentes métodos
de evaluación [Evaluar]
Bibliografı́a: [Dix et al., 2004, Stone et al., 2005, Rogers and Sharp, 2011, Mathis, 2011, Buxton, 2007]
Tópicos: I: Principios de interfaces gráficas de usuario (GUIs) II: Elementos de diseño visual (dis-
posición, color, fuentes, etiquetado) III: Manejo de fallas humanas/sistema. IV: Estándares de
interfaz de usuario. V: Presentación de información: navegación, representación, manipulación.
VI: Técnicas de animación de interfaz (ej. grafo de escena) VII: Clases Widget y bibliotecas.
VIII: Internacionalización, diseño para usuarios de otras culturas, intercultural. IX: Elección
de estilos de interacción y técnicas de interacción.
Objetivos de Aprendizaje I: Crear una aplicación simple, junto con la ayuda y la documentación,
que soporta una interfaz gráfica de usuario [Usar]
Bibliografı́a: [Dix et al., 2004, Stone et al., 2005, Rogers and Sharp, 2011, Johnson, 2010, Mathis, 2011,
Leavitt and Shneiderman, 2006]
Tópicos: I: Elección de estilos de interacción y técnicas de interacción. II: Enfoques para el diseño,
implementación y evaluación de la interacción sin mouse a) Interfaces táctiles y multitáctiles.
b) Interfaces compartidas, incorporadas y grandes c) Nuevas modalidades de entrada (tales
como datos de sensores y localización) d ) Nuevas ventanas, por ejemplo, iPhone, Android e) Re-
conocimiento de voz y procesamiento del lenguaje natural f ) Interfaces utilizables y tangibles
Objetivos de Aprendizaje I: Describe cuando son adecuadas las interfaces sin uso de ratón [Fa-
miliarizarse] II: Comprende las posibilidades de interacción que van más allá de las interfaces
de ratón y puntero [Familiarizarse] III: Discute las ventajas (y desventajas) de las interfaces no
basadas en ratón [Usar] IV: Describir el modelo óptico realizado por un sistema de gráficos por
computadora para sintetizar una visión estereoscópica [Familiarizarse] V: Describir los princi-
pios de las diferentes tecnologias de seguimiento de espectador [Familiarizarse] VI: Determinar
los requerimientos básicos en interfaz, software, hardware, y cofiguraciones de software de un
sistema VR para una aplicación especı́fica [Evaluar]
Bibliografı́a: [Dix et al., 2004, Stone et al., 2005, Rogers and Sharp, 2011, Wigdor and Wixon, 2011,
Mathis, 2011]
Tópicos: I: La comunicación ası́ncrona en grupo, por ejemplo, el correo electrónico, foros, redes so-
ciales. II: Medios de comunicación social, informática social, y el análisis de redes sociales.
III: Colaboración en lı́nea, espacios ”inteligentes” y aspectos de coordinación social de tecno-
logı́as de flujo de trabajo. IV: Comunidades en lı́nea. V: Personajes de Software y agentes
inteligentes, mundos virtuales y avatares. VI: Psicologı́a Social
Bibliografı́a: [Dix et al., 2004, Stone et al., 2005, Rogers and Sharp, 2011]
6. Bibliografı́a
[Buxton, 2007] Buxton, B. (2007). Sketching User Experiences: Getting the Design Right and the
Right Design. Morgan Kaufmann Publishers Inc.
[Dix et al., 2004] Dix, A., Finlay, J., Abowd, G., and Beale, R. (2004). Human-computer Interaction.
Prentice-Hall, Inc, 3 ed. edition.
[Johnson, 2010] Johnson, J. (2010). Designing with the Mind in Mind: Simple Guide to Understanding
User Interface Design Rules. Morgan Kaufmann Publishers Inc., 3 ed. edition.
[Leavitt and Shneiderman, 2006] Leavitt, M. and Shneiderman, B. (2006). Research-Based Web De-
sign & Usability Guidelines. Health and Human Services Dept.
[Mathis, 2011] Mathis, L. (2011). Designed for Use: Create Usable Interfaces for Applications and the
Web. Pragmatic Bookshelf.
[Norman, 2004] Norman, D. A. (2004). Emotional Design: Why We Love (or Hate) Everyday Things.
Basic Book.
[Rogers and Sharp, 2011] Rogers, Y. and Sharp, H. & Preece, J. (2011). Interaction Design: Beyond
Human-Computer Interaction. John Wiley and Sons Ltd, 3 ed. edition.
[Stone et al., 2005] Stone, D., Jarrett, C., Woodroffe, M., and Minocha, S. (2005). User Interface
Design and Evaluation. Morgan Kaufmann Series in Interactive Technologies.
[Wigdor and Wixon, 2011] Wigdor, D. and Wixon, D. (2011). Brave NUI World: Designing Natural
User Interfaces for Touch and Gesture. Morgan Kaufmann Publishers Inc.
Prerrequisitos:
2. Fundamentación
Hoy en dia la información es uno de los activos más preciados en cualquier organización. Este
cursos está orientado a poder brindar al alumno los elementos de seguridad orientados a proteger la
información de la organización y principalmente poder preveer los posibles problemas relacionados
con este rubro. Esta materia involucra el desarrollo de una actitud preventiva por parte del alumno
en todas las áreas relacionadas al desarrollo de software.
g) Analizar el impacto local y global de la computación sobre los individuos, organizaciones y socie-
dad. (Evaluar)
C8. Entendimiento de lo que las tecnologı́as actuales pueden y no pueden lograr.⇒ Outcome j,g
C22. Capacidad para demostrar las actitudes y prioridades que honrar, proteger y mejorar la estatura
y la reputación ética de la profesión.⇒ Outcome h,c
CS7. Aplicar los principios de una gestión eficaz de la información, organización de la información,
y las habilidades de recuperación de información a la información de diversos tipos, incluyendo
texto, imágenes, sonido y vı́deo. Esto debe incluir la gestión de los problemas de seguridad.⇒
Outcome i,h,c
CS9. Identificar los riesgos (y esto incluye cualquier seguridad o los aspectos de seguridad) que
pueden estar involucrados en la operación de equipo de cómputo dentro de un contexto dado.⇒
Outcome j,b
CS11. Ser consciente de la existencia de software a disposición del público y la comprensión del
potencial de los proyectos de código abierto.⇒ Outcome g,b
Objetivos de Aprendizaje I: Analizar las ventajas y desventajas de equilibrar las propiedades clave
de seguridad(Confidenciabilidad, Integridad, Disponibilidad) [Familiarizarse] II: Describir los
conceptos de riesgo, amenazas, vulnerabilidades y vectores de ataque(incluyendo el hecho de
que no existe tal cosa como la seguridad perfecta) [Familiarizarse] III: Explicar los conceptos
de autentificación, autorización, control de acceso [Familiarizarse] IV: Explicar el concepto
de confianza y confiabilidad [Familiarizarse] V: Reconocer de que hay problemas éticos más
importantes que considerar en seguridad computacional, incluyendo problemas éticos asociados
a arreglar o no arreglar vulnerabilidades y revelar o no revelar vulnerabilidades [Familiarizarse]
Tópicos: I: Menor privilegio y aislamiento. II: Valores predeterminados a prueba de fallos. III: Di-
seño abierto. IV: La seguridad de extremo a extremo. V: La defensa en profundidad (por
ejemplo, la programación defensiva, defensa en capas) VI: Diseño de seguridad. VII: Las
tensiones entre la seguridad y otros objetivos de diseño. VIII: Mediación completa. IX: El
uso de componentes de seguridad vetados. X: Economı́a del mecanismo (la reducción de la
base informática de confianza, minimizar la superficie de ataque) XI: Seguridad utilizable.
XII: Componibilidad de seguridad. XIII: Prevención, detección y disuasión.
Tópicos: I: Red de amenazas y tipos de ataques especı́ficos (por ejemplo, la denegación de servicio,
spoofing, olfateando y la redirección del tráfico, el hombre en el medio, ataques integridad de
los mensajes, los ataques de enrutamiento, y el análisis de tráfico) II: El uso de cifrado de
datos y seguridad de la red . III: Arquitecturas para redes seguras (por ejemplo, los canales
seguros, los protocolos de enrutamiento seguro, DNS seguro, VPN, protocolos de comunicación
anónimos, aislamiento) IV: Los mecanismos de defensa y contramedidas (por ejemplo, monitoreo
de red, detección de intrusos, firewalls, suplantación de identidad y protección DoS, honeypots,
seguimientos) V: Seguridad para redes inalámbricas, celulares . VI: Otras redes no cableadas
(por ejemplo, ad hoc, sensor, y redes vehiculares) VII: Resistencia a la censura. VIII: Gestión
de la seguridad operativa de la red (por ejemplo, control de acceso a la red configure)
Tópicos: I: Terminologı́a básica de criptografı́a cubriendo las nociones relacionadas con los diferentes
socios (comunicación), canal seguro / inseguro, los atacantes y sus capacidades, cifrado, descifra-
do, llaves y sus caracterı́sticas, firmas. II: Tipos de cifrado (por ejemplo, cifrado César, cifrado
affine), junto con los métodos de ataque tı́picas como el análisis de frecuencia. III: Apoyo a la
infraestructura de clave pública para la firma digital y el cifrado y sus desafı́os. IV: Criptografı́a
de clave simétrica: a) El secreto perfecto y el cojı́n de una sola vez b) Modos de funcionamien-
to para la seguridad semántica y encriptación autenticada (por ejemplo, cifrar-entonces-MAC,
OCB, GCM) c) Integridad de los mensajes (por ejemplo, CMAC, HMAC) V: La criptografı́a
de clave pública: a) Permutación de trampilla, por ejemplo, RSA b) Cifrado de clave pública,
por ejemplo, el cifrado RSA, cifrado El Gamal c) Las firmas digitales d ) Infraestructura de cla-
ve pública (PKI) y certificados e) Supuestos de dureza, por ejemplo, Diffie-Hellman, factoring
entero VI: Protocolos de intercambio de claves autenticadas, por ejemplo, TLS . VII: Pri-
mitivas criptográficas: a) generadores pseudo-aleatorios y cifrados de flujo b) cifrados de bloque
(permutaciones pseudo-aleatorios), por ejemplo, AES c) funciones de pseudo-aleatorios d ) fun-
ciones de hash, por ejemplo, SHA2, resistencia colisión e) códigos de autenticación de mensaje
f ) funciones derivaciones clave
Tópicos: I: Modelo de seguridad Web a) Modelo de seguridad del navegador incluida la polı́tica de
mismo origen b) Los lı́mites de confianza de cliente-servidor, por ejemplo, no pueden depender
de la ejecución segura en el cliente II: Gestión de sesiones, la autenticación: a) Single Sign-On
b) HTTPS y certificados III: Vulnerabilidades de las aplicaciones y defensas : a) Inyección
SQL b) XSS c) CSRF IV: Seguridad del lado del cliente : a) Polı́tica de seguridad Cookies
b) Extensiones de seguridad HTTP, por ejemplo HSTS c) Plugins, extensiones y aplicaciones
web d ) Seguimiento de los usuarios Web V: Herramientas de seguridad del lado del servidor,
por ejemplo, los cortafuegos de aplicación Web (WAFS) y fuzzers
Tópicos: I: Integridad de código y firma de código. II: Arranque seguro, arranque medido, y la
raı́z de confianza. III: Testimonio. IV: TPM y coprocesadores seguros. V: Las amenazas
de seguridad de los periféricos, por ejemplo, DMA, IOMMU. VI: Ataques fı́sicos: troyanos de
hardware, sondas de memoria, ataques de arranque en frı́o. VII: Seguridad de dispositivos
integrados, por ejemplo, dispositivos médicos, automóviles. VIII: Ruta confiable.
6. Bibliografı́a
[W and L, 2014] W, S. and L, B. (2014). Computer Security: Principles and Practice. Pearson Edu-
cation, Limited.
Prerrequisitos:
2. Fundamentación
La última década ha traı́do un crecimiento explosivo en computación con multiprocesadores, inclu-
yendo los procesadores de varios núcleos y centros de datos distribuidos. Como resultado, la compu-
tación paralela y distribuida se ha convertido de ser un tema ampliamente electivo para ser uno de
los principales componentes en la malla estudios en ciencia de la computación de pregrado. Tanto
la computación paralela como la distribuida implica la ejecución simultánea de múltiples procesos,
cuyas operaciones tienen el potencial para intercalar de manera compleja. La computación paralela
y distribuida construye sobre cimientos en muchas áreas, incluyendo la comprensión de los conceptos
fundamentales de los sistemas, tales como: concurrencia y ejecución en paralelo, consistencia en el
estado/manipulación de la memoria, y latencia. La comunicación y la coordinación entre los procesos
tiene sus cimientos en el paso de mensajes y modelos de memoria compartida de la computación y
conceptos algorı́tmicos como atomicidad, el consenso y espera condicional. El logro de aceleración
en la práctica requiere una comprensión de algoritmos paralelos, estrategias para la descomposición
problema, arquitectura de sistemas, estrategias de implementación y análisis de rendimiento. Los sis-
temas distribuidos destacan los problemas de la seguridad y tolerancia a fallos, hacen hincapié en el
mantenimiento del estado replicado e introducen problemas adicionales en el campo de las redes de
computadoras.
Que el alumno sea capaz de convertir, cuando la situación lo amerite, aplicaciones secuenciales
a paralelas de forma eficiente.
Objetivos de Aprendizaje I: Usar exclusión mútua para evitar una condición de carrera [Usar]
II: Dar un ejemplo de una ordenación de accesos entre actividades concurrentes (por ejemplo,
un programa con condición de carrera) que no son secuencialmente consistentes [Familiarizarse]
III: Dar un ejemplo de un escenario en el que el bloqueo de mensajes enviados pueden dar
deadlock [Usar] IV: Explicar cuándo y por qué mensajes de multidifusión (multicast) o basado
en eventos puede ser preferible a otras alternativas [Familiarizarse] V: Escribir un programa que
termine correctamente cuando todo el conjunto de procesos concurrentes hayan sido completa-
dos [Usar] VI: Dar un ejemplo de un escenario en el que un intento optimista de actualización
puede nunca completarse [Familiarizarse] VII: Usar semaforos o variables de condición para
bloquear hebras hasta una necesaria precondición de mantenga [Usar]
Tópicos: I: Caminos crı́ticos, el trabajo y la duración y la relación con la ley de Amdahl. II: Acelera-
ción y escalabilidad. III: Naturalmente (vergonzosamente) algoritmos paralelos. IV: Patrones
Algoritmicos paralelos (divide-y-conquista, map/reduce, amos-trabajadores, otros) a) Algorti-
mos especı́ficos (p.e., MergeSort paralelo) V: Algoritmos de grafos paralelo (por ejemplo,
la ruta más corta en paralelo, árbol de expansión paralela) VI: Cálculos de matriz paralelas.
VII: Productor-consumidor y algoritmos paralelos segmentados. VIII: Ejemplos de algoritmos
paralelos no-escalables.
Objetivos de Aprendizaje I: Definir: camino crı́tico, trabajo y span [Familiarizarse] II: Calcular
el trabajo y el span y determinar el camino crı́tico con respecto a un diagrama de ejecución
paralela. [Usar] III: Definir speed-up y explicar la noción de escalabilidad de un algoritmo en
este sentido [Familiarizarse] IV: Identificar tareas independientes en un programa que debe
ser paralelizado [Usar] V: Representar caracterı́sticas de una carga de trabajo que permita o
evite que sea naturalmente paralelizable [Familiarizarse] VI: Implementar un algoritmo dividir
y conquistar paralelo (y/o algoritmo de un grafo) y medir empiricamente su desempeño rela-
tivo a su analogo secuencial [Usar] VII: Descomponer un problema (por ejemplo, contar el
número de ocurrencias de una palabra en un documento) via operaciones map y reduce [Usar]
VIII: Proporcionar un ejemplo de un problema que se corresponda con el paradigma productor-
consumidor [Usar] IX: Dar ejemplos de problemas donde el uso de pipelining serı́a un medio
eficaz para la paralelización [Usar] X: Implementar un algoritmo de matriz paralela [Usar]
XI: Identificar los problemas que surgen en los algoritmos del tipo productor-consumidor y los
mecanismos que pueden utilizarse para superar dichos problemas [Usar]
Bibliografı́a: [Matloff, 2014, Quinn, 2003]
6. Bibliografı́a
[Kirk and mei W. Hwu, 2013] Kirk, D. B. and mei W. Hwu, W. (2013). Programming Massively
Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 2nd edition.
[Matloff, 2014] Matloff, N. (2014). Programming on Parallel Machines. University of California, Davis.
[Pacheco, 2011] Pacheco, P. S. (2011). An Introduction to Parallel Programming. Morgan Kaufmann,
1st edition.
[Quinn, 2003] Quinn, M. J. (2003). Parallel Programming in C with MPI and OpenMP. McGraw-Hill
Education Group, 1st edition.
[Sanders and Kandrot, 2010] Sanders, J. and Kandrot, E. (2010). CUDA by Example: An Introduction
to General-Purpose GPU Programming. Addison-Wesley Professional, 1st edition.
Prerrequisitos:
2. Fundamentación
Este curso tiene por objetivo que el alumno pueda realizar un estudio del estado del arte de un
que el alumno ha elegido como tema para su tesis.
Que el alumno elija un docente que domine el de investigación elegida como asesor.
6. Bibliografı́a
[Association for Computing Machinery, 2008] Association for Computing Machinery (2008). Digital
Libray. Association for Computing Machinery. http://portal.acm.org/dl.cfm.
[CiteSeer.IST, 2008] CiteSeer.IST (2008). Scientific Literature Digital Libray. College of Information
Sciences and Technology, Penn State University. http://citeseer.ist.psu.edu.
[IEEE-Computer Society, 2008] IEEE-Computer Society (2008). Digital Libray. IEEE-Computer So-
ciety. http://www.computer.org/publications/dlib.
Prerrequisitos:
2. Fundamentación
El curso de Imagen y Marca Personal , es el primero de dos cursos del área de desarrollo de
competencias personales y profesionales. Este curso brinda oportunidades al estudiante para que se
autoevalúe y reconozca las oportunidades de mejora, sentirse capaz de realizar cada uno de los retos
que se le proponga a nivel personal y profesional y de realizar un adecuado análisis de su situación,
ejecución y propuesta de resolución. El aprendizaje a través de la experiencia, le ayudará a evaluar
desde su propia perspectiva, las diferentes formas de pensar y la capacidad de aportar individualmente
o en equipo al logro de un determinado objetivo; a través del intercambio de ideas, la evaluación de
propuestas y la ejecución de la alternativa de solución idónea.
C17. Capacidad para expresarse en los medios de comunicación orales y escritos como se espera de
un graduado.⇒ Outcome f
C21. Comprender el aspecto profesional, legal, seguridad, asuntos polı́ticos, humanistas, ambientales,
culturales y éticos.⇒ Outcome e
Tópicos: I: Repaso de los compromisos y acuerdos de la clase . II: Assessment center de autoeva-
luación. III: Dinámica sobre el autoconocimiento, la identificación de FODA personal y visión
de futuro personal
Tópicos: I: Teorı́a. Personal branding. Plan de posicionamiento en el mercado (como voy hacer que
mis competencias puedan ingresar al mercado). II: Cómo uno se debe comunicar, la utilización
de la voz para potenciar sus habilidades y conseguir seguridad y eficacia en su comunicación.
III: Teorı́a ¿Qué es un CV? ¿Cómo crear un CV innovador? Implementación de proyectos;
actualización de datos, armado de portafolio de proyectos; comunicación virtual. IV: Creación
de un CV por grupo.
Tópicos: I: Charla: Expectativas del mercado laboral.¿Qué busca y quiere el mercado? II: Tipos
de entrevistas y evaluaciones en el proceso de reclutamiento y selección. Uso de estrategias de
persuasión; formas y técnicas exitosas para entrevistas, tips y recomendaciones. III: Entrega del
Reto 1: Envı́o del CV IV: Charla VOLCAN: Tips de entrevistas y evaluaciones de reclutamiento
y selección en Jueves del Conocimiento V: Tarea. Después de conocerse y saber lo que quiere
el mercado, se crean los elementos para diseñar la propia estrategia de cada alumno
Tópicos: I: Conversatorio sobre los resultados de la clase anterior II: Taller fuera del salón: Proac-
tividad, análisis de problemas, pensamiento analı́tico y planificación y organización, trabajo en
equipo y liderazgo, adaptabilidad, comunicación asertiva, ética. Se tendrá el feedback.
Tópicos: I: Entrevista a expertos: El mundo real laboral desde la visión del área de recursos humanos
-RRHH, con jefes corporativos de selección como invitados
Objetivos de Aprendizaje I: Fomentar la actitud positiva hacia el trabajo y la pasión por sobre-
salir en las prácticas preprofesionales mediante la detección de oportunidades de mejora y la
formulación de un proyecto de ingenierı́a.
Tópicos: I: Caso de Estudio II: Competencias: Planificación y organización y confianza en sı́ mismo,
asociado a la resolución de problemas. III: Feedback de resultados sobre la dinámica de refuerzo.
6. Bibliografı́a
[Jorge, 2009] Jorge, G. (2009). Cómo te vendes te contratan. México,Mc Graw Hill.
[Richard, 2015] Richard, B. (2015). What color is your parachute? New York, Ten Speed Press -
Random House Company.
[Stephen, 2005] Stephen, R. (2005). Comportamiento Organizacional. Pearson Pentice Hall, décima
edición edition.
Prerrequisitos:
2. Fundamentación
Este curso tiene por objetivo que el alumno concluya su proyecto de tesis.
Avance parcial: Avance del plan de tesis incluyendo motivación y contexto, definición del
problema, objetivos, cronograma de actividades hasta el proyecto final de tesis y el estado
del arte del tema abordado.
Final: Plan de tesis completo y Avance de la Tesis incluyendo los capı́tulos de marco teórico,
trabajos relacionados y resultados (formales o estadı́sticos) preliminares orientados a su
tema de tesis.
6. Bibliografı́a
[Association for Computing Machinery, 2008] Association for Computing Machinery (2008). Digital
Libray. Association for Computing Machinery. http://portal.acm.org/dl.cfm.
[CiteSeer.IST, 2008] CiteSeer.IST (2008). Scientific Literature Digital Libray. College of Information
Sciences and Technology, Penn State University. http://citeseer.ist.psu.edu.
[IEEE-Computer Society, 2008] IEEE-Computer Society (2008). Digital Libray. IEEE-Computer So-
ciety. http://www.computer.org/publications/dlib.
2. Fundamentación
Que el alumno conozca y comprenda los conceptos y principios fundamentales de control, plani-
ficación de caminos y definición de estratégias en robótica móvil ası́ como conceptos de percepción
robótica de forma que entienda el potencial de los sistemas robóticos actuales
3. Objetivos del curso
Sintetizar el potencial y las limitaciones del estado del arte de los sistemas robóticos actuales.
Implementar algoritmos de planeamiento de movimientos simples.
Explicar las incertezas asociadas con sensores y la forma de tratarlas.
Diseñar una arquitectura de control simple
Describir varias estratégias de navegación
Entender el rol y las aplicaciones de la percepción robótica
Describir la importancia del reconocimiento de imagenes y objetos en sistemas inteligentes
Delinear las principales técnicas de reconocimiento de objetos
Describir las diferentes caracterı́sticas de las tecnologı́as usadas en percepción
Tópicos: I: Vision general: problemas y progreso a) Estado del arte de los sistemas robóticos, inclu-
yendo sus sensores y una visión general de su procesamiento b) Arquitecturas de control robótico,
ejem., deliverado vs. control reactivo y vehiculos Braitenberg c) Modelando el mundo y modelos
de mundo d ) Incertidumbre inherente en detección y control II: Configuración de espacio y
mapas de entorno.
Objetivos de Aprendizaje I: Listar capacidades y limitaciones de sistemas del estado del arte en
robótica de hoy , incluyendo sus sensores y el procesamiento del sensor crucial que informa a
esos sistemas [Familiarizarse] II: Integrar sensores, actuadores y software en un robot diseñado
para emprender alguna tarea [Usar]
Tópicos: I: Interpretando datos del sensor con incertidumbre. II: Localización y mapeo.
Objetivos de Aprendizaje I: Programar un robot para llevar a cabo tareas simples usando arqui-
tecturas de control deliverativo, reactivo y/o hı́brido [Usar] II: Implementar algoritmos de
planificación de movimientos fundamentales dentro del espacio de configuración de un robot
[Usar]
6. Bibliografı́a
[M et al., 2007] M, S., V, H., and R, B. (2007). Image Processing, Analysis and Machine Vision.
Cengage-Engineering.
[R and R, 2007] R, C, G. and R, E, W. (2007). Digital Image Processing. Prentice Hall.
[S et al., 2005] S, T., W, B., and D, F. (2005). Probabilistic Robotics. Intelligent Robots and Auto-
nomous Agents. The MIT Press.
[Siegwart and Nourbakhsh, 2004] Siegwart, R. and Nourbakhsh, I. (2004). Introduction to Autono-
mous Mobile Robots. The MIT Press.
[Stone, 2000] Stone, P. (2000). Layered Learning in Multiagent Systems. Intelligent Robots and
Autonomous Agents. The MIT Press.
Prerrequisitos:
2. Fundamentación
En este curso se puede profundizar en alguno de los tópicos mencionados en el área de Computación
Gráfica (Graphics and Visual Computing - GV).
Éste curso está destinado a realizar algun curso avanzado sugerido por la curricula de la ACM/IEEE.
[Hughes et al., 2013, Hearn and Baker, 1990]
Que el alumno aplique los conceptos aprendidos para crear una aplicación sobre un problema
real.
Que el alumno investigue la posibilidad de crear un nuevo algoritmo y/o técnica nueva para
resolver un problema real.
6. Bibliografı́a
[Hearn and Baker, 1990] Hearn, D. and Baker, P. (1990). Computer Graphics in C. Prentice Hall.
[Hughes et al., 2013] Hughes, J. F., Dam, A. V., Mcguire, M., Sklar, D. F., Foley, J. D., Feiner, S. K.,
and Akeley, K. (2013). Computer Graphics - Principles and Practice 3rd Edition. Addison-Wesley.
2. Fundamentación
En la actualidad conocer enfoques escalables para procesar y almacenar grande volumenes de
información (terabytes, petabytes e inclusive exabytes) es fundamental en cursos de ciencia de la
computación. Cada dia, cada hora, cada minuto se genera gran cantidad de información la cual necesitá
ser procesada, almacenada, analisada.
3. Objetivos del curso
Que el alumno sea capaz de crear aplicaciones paralelas para procesar grandes volumenes de
información.
Que el alumno sea capaz de comparar las alternativas para el procesamiento de big data.
Que el alumno sea capaz de proponer arquitecturas para una aplicación escalable.
6. Bibliografı́a
[Baluja et al., 2008] Baluja, S., Seth, R., Sivakumar, D., Jing, Y., Yagnik, J., Kumar, S., Ravichan-
dran, D., and Aly, M. (2008). Video suggestion and discovery for youtube: Taking random walks
through the view graph. In Proceedings of the 17th International Conference on World Wide Web,
WWW ’08, pages 895–904, New York, NY, USA. ACM.
[Buyya et al., 2013] Buyya, R., Vecchiola, C., and Selvi, S. T. (2013). Mastering Cloud Computing:
Foundations and Applications Programming. Morgan Kaufmann Publishers Inc., San Francisco,
CA, USA, 1st edition.
[Coulouris et al., 2011] Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. (2011). Distributed
Systems: Concepts and Design. Addison-Wesley Publishing Company, USA, 5th edition.
[Hwang et al., 2011] Hwang, K., Dongarra, J., and Fox, G. C. (2011). Distributed and Cloud Compu-
ting: From Parallel Processing to the Internet of Things. Morgan Kaufmann Publishers Inc., San
Francisco, CA, USA, 1st edition.
[Low et al., 2012] Low, Y., Bickson, D., Gonzalez, J., Guestrin, C., Kyrola, A., and Hellerstein, J. M.
(2012). Distributed graphlab: A framework for machine learning and data mining in the cloud.
Proc. VLDB Endow., 5(8):716–727.
[Malewicz et al., 2010] Malewicz, G., Austern, M. H., Bik, A. J., Dehnert, J. C., Horn, I., Leiser, N.,
and Czajkowski, G. (2010). Pregel: A system for large-scale graph processing. ACM SIGMOD
Record., pages 135–146.
Prerrequisitos:
2. Fundamentación
El desarrollo de software requiere del uso de mejores prácticas de desarrollo, gestión de proyectos
de TI, manejo de equipos y uso eficiente y racional de frameworks de aseguramiento de la calidad,
estos elemento son pieza clave y transversal durante todo el proceso productivo.
La construcción de software contempla la implementación y uso de procesos, métodos, modelos y
herramientas que permitan lograr la realización de los atributos de calidad de un producto.
Los alumnos deben comprender los conceptos fundamentales de CMMI, PSP, TSP para que sean
adoptados en los proyectos de software.
Describir y comprender los modelos de aseguramiento de la calidad como marco clave para el
éxitos de los proyectos de TI.
o) Mejorar las condiciones de la sociedad poniendo la tecnologı́a al servicio del ser humano. (Usar)
C12. Entender las implicaciones de ciclo de vida para el desarrollo de todos los aspectos de los siste-
mas informáticos (incluyendo software, hardware, y la interfaz de la computadora humana).⇒
Outcome j,m
C13. Comprender la relación entre la calidad y la gestión del ciclo de vida.⇒ Outcome c,i,m
C19. Capacidad para identificar eficazmente los objetivos y las prioridades de su trabajo / área /
proyecto con indicación de la acción, el tiempo y los recursos necesarios.⇒ Outcome j
CS6. Evaluar los sistemas en términos de atributos de calidad en general y las posibles ventajas y
desventajas que se presentan en el problema dado.⇒ Outcome c,i,m
CS7. Aplicar los principios de una gestión eficaz de la información, organización de la información,
y las habilidades de recuperación de información a la información de diversos tipos, incluyendo
texto, imágenes, sonido y vı́deo. Esto debe incluir la gestión de los problemas de seguridad.⇒
Outcome d,i,o
CS9. Identificar los riesgos (y esto incluye cualquier seguridad o los aspectos de seguridad) que
pueden estar involucrados en la operación de equipo de cómputo dentro de un contexto dado.⇒
Outcome c,d,m
Objetivos de Aprendizaje I: Identificar los problemas principales asociados con la evolución del
software y explicar su impacto en el ciclo de vida del software [Familiarizarse] II: Estimar el
impacto del cambio de requerimientos en productos existentes de tamaño medio [Usar] III: Usar
refactorización en el proceso de modificación de un componente de sosftware [Usar] IV: Estudiar
los desafios de mejorar sistemas en un entorno cambiante [Familiarizarse] V: Perfilar los procesos
de pruebas de regresión y su rol en el manejo de versiones [Familiarizarse] VI: Estudiar las
ventajas y desventajas de diferentes tipos de niveles de confiabilidad [Familiarizarse]
Tópicos: I: La participación del equipo: a) Procesos elemento del equipo, incluyendo responsabili-
dades de tarea, la estructura de reuniones y horario de trabajo b) Roles y responsabilidades en
un equipo de software c) Equipo de resolución de conflictos d ) Los riesgos asociados con los
equipos virtuales (comunicación, la percepción, la estructura) II: Estimación de esfuerzo (a
nivel personal) III: Riesgo. a) El papel del riesgo en el ciclo de vida b) Categorı́as elemento
Objetivos de Aprendizaje I: Discutir los comportamientos comunes que contribuyen al buen fun-
cionamiento de un equipo [Familiarizarse] II: Crear y seguir un programa para una reunión del
equipo [Usar] III: Identificar y justificar las funciones necesarias en un equipo de desarrollo de
software [Usar] IV: Entender las fuentes, obstáculos y beneficios potenciales de un conflicto de
equipo [Usar] V: Aplicar una estrategia de resolución de conflictos en un ambiente de equipo
[Usar] VI: Utilizar un método ad hoc para estimar el esfuerzo de desarrollo del software (ejem-
plo, tiempo) y comparar con el esfuerzo actual requerido [Usar] VII: Listar varios ejemplos de
los riesgos del software [Familiarizarse] VIII: Describir el impacto del riesgo en el ciclo de vida
de desarrollo de software [Familiarizarse] IX: Describir las diferentes categorı́as de riesgo en
los sistemas de software [Familiarizarse] X: Demostrar a través de la colaboración de proyec-
tos de equipo los elementos centrales de la contrucción de equipos y gestión de equipos [Usar]
XI: Describir como la elección de modelos de procesos afectan la estructura organizacional de
equipos y procesos de toma de decisiones [Familiarizarse] XII: Crear un equipo mediante la
identificación de los roles apropiados y la asignación de funciones a los miembros del equipo
[Usar] XIII: Evaluar y retroalimentar a los equipos e individuos sobre su desempeño en un
ambiente de equipo [Usar] XIV: Usando un software particular procesar, describir los aspectos
de un proyecto que encesita ser planeado y monitoreado, (ejemplo, estimar el tamaño y esfuerzo,
un horario, reasignación de recursos, control de configuración, gestión de cambios, identificación
de riesgos en un proyecto y gestión) [Familiarizarse]
Tópicos: I: Consideraciones a nivel de sistemas, ejem., la interacción del software con su entorno.
II: Introducción a modelos del proceso de software (e.g., cascada, incremental, agil): a) Acti-
vidades con ciclos de vida de software. III: Programación a gran escala versus programación
individual. IV: Evaluación de modelos de proceso de software. V: Conceptos de calidad de
software. VI: Mejoramiento de procesos. VII: Modelos de madurez de procesos de software.
VIII: Mediciones del proceso de software.
Objetivos de Aprendizaje I: Describa cómo el software puede interactuar y participar en varios
sistemas, incluyendo la gestión de información, integración, control de procesos y sistemas de
comunicaciones [Usar] II: Describir las ventajas y desventajas relativas entre varios mode-
los importantes de procesos (por ejemplo, la cascada, iterativo y ágil) [Usar] III: Describir
las diferentes prácticas que son componentes clave de los diversos modelos de procesos [Usar]
IV: Diferenciar entre las fases de desarrollo de software [Usar] V: Describir cómo la progra-
mación en grandes equipos difiere de esfuerzos individuales con respecto a la comprensión de
una gran base de código, lectura de código, comprensión de las construcciones, y comprensión
de contexto de cambios [Usar] VI: Explicar el concepto de ciclo de vida del software y pro-
porcionar un ejemplo que ilustra sus fases incluyendo los entregables que se producen [Usar]
VII: Comparar varios modelos comunes de procesos con respecto a su valor para el desarrollo
de las clases particulares de sistemas de software, teniendo en cuenta diferentes aspectos tales
como, estabilidad de los requisitos, tamaño y caracterı́sticas no funcionales [Usar] VIII: Definir
la calidad del software y describir el papel de las actividades de aseguramiento de la calidad en
el proceso de software [Usar] IX: Describir el objetivo y similitudes fundamentales entre los
enfoques de mejora de procesos [Usar] X: Comparar varios modelos de mejora de procesos, tales
como CMM, CMMI, CQI, Plan-Do-Check-Act, o ISO9000 [Usar] XI: Evaluar un esfuerzo de
desarrollo y recomendar cambios potenciales al participar en la mejora de procesos (usando un
modelo como PSP) o involucración en una retrospectiva de un proyecto [Usar] XII: Explicar el
papel de los modelos de madurez de procesos en la mejora de procesos [Usar] XIII: Describir
varias métricas de procesos para la evaluación y el control de un proyecto [Usar] XIV: Usar las
medidas en proyecto para describir el estado actual de un proyecto [Usar]
Bibliografı́a: [Pressman and Maxim, 2014, Sommerville, 2010]
6. Bibliografı́a
[Pressman and Maxim, 2014] Pressman, R. S. and Maxim, B. (2014). Software Engineering: A Prac-
titioner’s Approach. McGraw-Hill, 8th edition.
[Sommerville, 2010] Sommerville, I. (2010). Software Engineering. Addison-Wesley, 9th edition.
Prerrequisitos:
2. Fundamentación
El uso de métodos computacionales en las ciencias biológicas se ha convertido en una de las herra-
mientas claves para el campo de la biologı́a molecular, siendo parte fundamental en las investigaciones
de esta área.
En Biologı́a Molecular, existen diversas aplicaciones que involucran tanto al ADN, al análisis de pro-
teı́nas o al secuenciamiento del genoma humano, que dependen de métodos computacionales. Muchos
de estos problemas son realmente complejos y tratan con grandes conjuntos de datos.
Este curso puede ser aprovechado para ver casos de uso concretos de varias áreas de conocimiento de
Ciencia de la Computacion como: Lenguajes de Programación (PL), Algoritmos y Complejidad (AL),
Probabilidades y Estadı́stica, Manejo de Información (IM), Sistemas Inteligentes (IS).
Que el alumno sea capaz de abstraer la esencia de los diversos problemas biológicos para plantear
soluciones usando sus conocimientos de Ciencia de la Computación
C3. Una comprensión intelectual de, y el aprecio por el papel central de los algoritmos y estructuras
de datos.⇒ Outcome b,l
C5. Capacidad para implementar algoritmos y estructuras de datos en el software.⇒ Outcome a,b
6. Bibliografı́a
[Aluru, 2006] Aluru, S., editor (2006). Handbook of Computational Molecular Biology. Computer and
Information Science Series. Chapman & Hall, CRC, Boca Raton, FL.
[Clote and Backofen, 2000] Clote, P. and Backofen, R. (2000). Computational Molecular Biology: An
Introduction. John Wiley & Sons Ltd. 279 pages.
[Durbin et al., 1998] Durbin, R., Eddy, S., Krogh, A., and Mitchison, G. (1998). Biological Sequence
Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge University Press.
[Krogh et al., 1994] Krogh, A., Brown, M., Mian, I. S., Sjölander, K., and Haussler, D. (1994). Hidden
markov models in computational biology, applications to protein modeling. J Molecular Biology,
235:1501–1531.
[Pevzner, 2000] Pevzner, P. A. (2000). Computational Molecular Biology: an Algorithmic Approach.
The MIT Press, Cambridge, Massachusetts.
[Setubal and Meidanis, 1997] Setubal, J. C. and Meidanis, J. (1997). Introduction to computational
molecular biology. Boston: PWS Publishing Company.
2. Fundamentación
Este curso está diseñado para ayudar a los estudiantes a desarrollar habilidades relacionadas al
liderazgo, ası́ como también, introducirlos en los elementos esenciales de una negociación, de modo que
ganen experiencia y confianza para desenvolverse en sus ámbitos laborales. El curso busca entrenar a
los estudiantes en las herramientas necesarias para formar profesionales ı́ntegros y resueltos, capaces
de enfrentar retos a nivel individual y colectivo. El aprendizaje se da a través de la experiencia y el
pensamiento crı́tico. Para ello, se expondrán a los estudiantes a diferentes temas y actividades que
permitan distintas formas pensar y de tomar decisiones. Siempre sobre la base de tres ejes: las reglas
éticas, la constante auto evaluación y la planificación de actividades.
3. Objetivos del curso
Capacidad de analizar información
Capacidad para identificar problemas
Capacidad para formular alternativas de solución
Comprende las responsabilidades profesional y ética
Capacidad de liderar un equipo
6. Bibliografı́a
[Baltazar, 2011] Baltazar, C. (2011). ¿Qué tipo de liderazgo necesita el Perú? Lima:Universidad del
Pacı́fico.
[Stephen, 2004] Stephen, R. (2004). Comportamiento Organizacional. México,Pearson Educación.
2. Fundamentación
Para entender las técnicas computacionales avanzadas, los estudiantes deberán tener un fuerte
conocimiento de las diversas estructuras discretas, estructuras que serán implementadas y usadas en
laboratorio en el lenguaje de programación.
3. Objetivos del curso
Que el alumno sea capaz de modelar problemas de ciencia de la computación usando grafos y
árboles relacionados con estructuras de datos.
Que el alumno aplicar eficientemente estrategias de recorrido para poder buscar datos de una
manera óptima.
Tópicos: I: Fallos: a) Fallos basados en red (incluyendo particiones) y fallos basados en nodos b) Im-
pacto en garantı́as a nivel de sistema (p.e., disponibilidad) II: Envı́o de mensajes distribuido:
a) Conversión y transmisión de datos b) Sockets c) Secuenciamiento de mensajes d ) Almacenan-
do Buffering, renviando y desechando mensajes III: Compensaciones de diseño para Sistemas
Distribuidos: a) Latencia versus rendimiento b) Consistencia, disponibilidad, tolerancia de par-
ticiones IV: Diseño de Servicio Distribuido: a) Protocolos y servicios Stateful versus stateless
b) Diseños de Sesión (basados en la conexión) c) Diseños reactivos (provocados por E/S) y dise-
ños de múltiples hilos V: Algoritmos de Distribución de Núcleos: a) Elección, descubrimiento
Objetivos de Aprendizaje I: Distinguir las fallas de red de otros tipos de fallas [Familiarizarse]
II: Explicar por qué estructuras de sincronización como cerraduras simples (locks) no son úti-
les en la presencia de fallas distribuidas [Familiarizarse] III: Escribir un programa que realiza
cualquier proceso de marshalling requerido y la conversión en unidades de mensajes, tales como
paquetes, para comunicar datos importantes entre dos hosts [Usar] IV: Medir el rendimiento
observado y la latencia de la respuesta a través de los hosts en una red dada [Usar] V: Explicar
por qué un sistema distribuido no puede ser simultaneamente Consistente (Consistent), Dispo-
nible (Available) y Tolerante a fallas (Partition tolerant). [Familiarizarse] VI: Implementar un
servidor sencillo - por ejemplo, un servicio de corrección ortográfica [Usar] VII: Explicar las
ventajas y desventajas entre: overhead, escalabilidad y tolerancia a fallas entre escojer un diseño
sin estado (stateless) y un diseño con estado (stateful) para un determinado servicio [Familiari-
zarse] VIII: Describir los desafios en la escalabilidad, asociados con un servicio cresciente para
soportar muchos clientes, ası́ como los asociados con un servicio que tendrá transitoriamente
muchos clientes [Familiarizarse] IX: Dar ejemplos de problemas donde algoritmos de consenso
son requeridos, por ejemplo, la elección de lı́der [Usar]
Tópicos: I: Visión global de Cloud Computing. II: Historia. III: Visión global de las tecnologias
que envuelve. IV: Beneficios, riesgos y aspectos económicos. V: Servicios en la nube. a) Infra-
estructura como servicio 1) Elasticidad de recursos 2) APIs de la Platforma b) Software como
servicio c) Securidad d ) Administración del Costo VI: Computación a Escala de Internet:
a) Particionamiento de Tareas b) Acceso a datos c) Clusters, grids y mallas
Objetivos de Aprendizaje I: Describir la evolución de los Data Centers. [Familiarizarse] II: Es-
bozar la arquitectura de un data center en detalle. [Familiarizarse] III: Indicar consideraciones
de diseño y discutir su impacto. [Familiarizarse]
Tópicos: I: Visión global de los modelso de programación basados en cloud computing. II: Modelo de
Programación MapReduce. III: Modelo de programación para aplicaciones basadas en Grafos.
6. Bibliografı́a
[Baluja et al., 2008] Baluja, S., Seth, R., Sivakumar, D., Jing, Y., Yagnik, J., Kumar, S., Ravichan-
dran, D., and Aly, M. (2008). Video suggestion and discovery for youtube: Taking random walks
through the view graph. In Proceedings of the 17th International Conference on World Wide Web,
WWW ’08, pages 895–904, New York, NY, USA. ACM.
[Buyya et al., 2013] Buyya, R., Vecchiola, C., and Selvi, S. T. (2013). Mastering Cloud Computing:
Foundations and Applications Programming. Morgan Kaufmann Publishers Inc., San Francisco,
CA, USA, 1st edition.
[Coulouris et al., 2011] Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. (2011). Distributed
Systems: Concepts and Design. Addison-Wesley Publishing Company, USA, 5th edition.
[Hwang et al., 2011] Hwang, K., Dongarra, J., and Fox, G. C. (2011). Distributed and Cloud Compu-
ting: From Parallel Processing to the Internet of Things. Morgan Kaufmann Publishers Inc., San
Francisco, CA, USA, 1st edition.
[Low et al., 2012] Low, Y., Bickson, D., Gonzalez, J., Guestrin, C., Kyrola, A., and Hellerstein, J. M.
(2012). Distributed graphlab: A framework for machine learning and data mining in the cloud.
Proc. VLDB Endow., 5(8):716–727.
[Malewicz et al., 2010] Malewicz, G., Austern, M. H., Bik, A. J., Dehnert, J. C., Horn, I., Leiser, N.,
and Czajkowski, G. (2010). Pregel: A system for large-scale graph processing. Proc. ACM SIGMOD,
pages 135–146.
2. Fundamentación
La última década ha traı́do un crecimiento explosivo en computación con multiprocesadores, inclu-
yendo los procesadores de varios núcleos y centros de datos distribuidos. Como resultado, la compu-
tación paralela y distribuida se ha convertido de ser un tema ampliamente electivo para ser uno de
los principales componentes en la malla estudios en ciencia de la computación de pregrado. Tanto la
computación paralela como la distribuida implica la ejecución simultánea de múltiples procesos en
diferentes dispositivos que cambian de posición.
3. Objetivos del curso
Que el alumno sea capaz de crear aplicaciones paralelas de mediana complejidad aprovechando
eficientemente distintos dispositivos móviles.
Objetivos de Aprendizaje I: Distinguir el uso de recursos computacionales para una respuesta mas
rápida para administrar el acceso eficiente a un recurso compartido [Familiarizarse] II: Distinguir
múltiples estructuras de programación suficientes para la sincronización que pueden ser inter-
implementables pero tienen ventajas complementarias [Familiarizarse] III: Distinguir datos de
carrera (data races) a partir de carreras de mas alto nivel [Familiarizarse]
Objetivos de Aprendizaje I: Explicar las diferencias entre memoria distribuida y memoria com-
partida [Evaluar] II: Describir la arquitectura SMP y observar sus principales caracteristi-
cas [Evaluar] III: Distinguir los tipos de tareas que son adecuadas para máquinas SIMD [Usar]
IV: Describir las ventajas y limitaciones de GPUs vs CPUs [Usar] V: Explicar las caracteristicas
de cada clasificación en la taxonomı́a de Flynn [Usar] VI: Describir los desafı́os para mantener
la coherencia de la caché [Familiarizarse] VII: Describir los desafı́os clave del desempeño en
diferentes memorias y topologı́as de sistemas distribuidos [Familiarizarse]
Bibliografı́a: [Pacheco, 2011, Kirk and mei W. Hwu, 2013, Sanders and Kandrot, 2010]
Objetivos de Aprendizaje I: Usar exclusión mútua para evitar una condición de carrera [Usar]
II: Dar un ejemplo de una ordenación de accesos entre actividades concurrentes (por ejemplo,
un programa con condición de carrera) que no son secuencialmente consistentes [Familiarizarse]
III: Dar un ejemplo de un escenario en el que el bloqueo de mensajes enviados pueden dar
deadlock [Usar] IV: Explicar cuándo y por qué mensajes de multidifusión (multicast) o basado
en eventos puede ser preferible a otras alternativas [Familiarizarse] V: Escribir un programa que
termine correctamente cuando todo el conjunto de procesos concurrentes hayan sido completa-
dos [Usar] VI: Dar un ejemplo de un escenario en el que un intento optimista de actualización
puede nunca completarse [Familiarizarse] VII: Usar semaforos o variables de condición para
bloquear hebras hasta una necesaria precondición de mantenga [Usar]
Tópicos: I: Caminos crı́ticos, el trabajo y la duración y la relación con la ley de Amdahl. II: Acelera-
ción y escalabilidad. III: Naturalmente (vergonzosamente) algoritmos paralelos. IV: Patrones
Algoritmicos paralelos (divide-y-conquista, map/reduce, amos-trabajadores, otros) a) Algorti-
mos especı́ficos (p.e., MergeSort paralelo) V: Algoritmos de grafos paralelo (por ejemplo,
la ruta más corta en paralelo, árbol de expansión paralela) VI: Cálculos de matriz paralelas.
VII: Productor-consumidor y algoritmos paralelos segmentados. VIII: Ejemplos de algoritmos
paralelos no-escalables.
Objetivos de Aprendizaje I: Definir: camino crı́tico, trabajo y span [Familiarizarse] II: Calcular
el trabajo y el span y determinar el camino crı́tico con respecto a un diagrama de ejecución
paralela. [Usar] III: Definir speed-up y explicar la noción de escalabilidad de un algoritmo en
este sentido [Familiarizarse] IV: Identificar tareas independientes en un programa que debe
ser paralelizado [Usar] V: Representar caracterı́sticas de una carga de trabajo que permita o
evite que sea naturalmente paralelizable [Familiarizarse] VI: Implementar un algoritmo dividir
y conquistar paralelo (y/o algoritmo de un grafo) y medir empiricamente su desempeño rela-
tivo a su analogo secuencial [Usar] VII: Descomponer un problema (por ejemplo, contar el
número de ocurrencias de una palabra en un documento) via operaciones map y reduce [Usar]
VIII: Proporcionar un ejemplo de un problema que se corresponda con el paradigma productor-
consumidor [Usar] IX: Dar ejemplos de problemas donde el uso de pipelining serı́a un medio
eficaz para la paralelización [Usar] X: Implementar un algoritmo de matriz paralela [Usar]
XI: Identificar los problemas que surgen en los algoritmos del tipo productor-consumidor y los
mecanismos que pueden utilizarse para superar dichos problemas [Usar]
6. Bibliografı́a
[Kirk and mei W. Hwu, 2013] Kirk, D. B. and mei W. Hwu, W. (2013). Programming Massively
Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 2nd edition.
[Matloff, 2014] Matloff, N. (2014). Programming on Parallel Machines. University of California, Davis.
[Pacheco, 2011] Pacheco, P. S. (2011). An Introduction to Parallel Programming. Morgan Kaufmann,
1st edition.
[Quinn, 2003] Quinn, M. J. (2003). Parallel Programming in C with MPI and OpenMP. McGraw-Hill
Education Group, 1st edition.
[Sanders and Kandrot, 2010] Sanders, J. and Kandrot, E. (2010). CUDA by Example: An Introduction
to General-Purpose GPU Programming. Addison-Wesley Professional, 1st edition.
2. Fundamentación
Este curso tiene por objetivo que el alumno logre finalizar adecuadamente su borrador de tesis.
3. Objetivos del curso
Que el alumno complete este curso con su tesis elaborada en calidad suficiente como para una
inmediata sustentación.
Que el alumno presente formalmente el borrador de tesis ante las autoridades de la facultad.
Los entregables de este curso son:
Parcial: Avance del proyecto de tesis incluyendo en el documento: introducción, marco teorico,
estado del arte, propuesta, análisis y/o experimentos y bibliografı́a sólida.
Final: Documento de tesis completo y listo para sustentar en un plazo no mayor de quince dı́as.
5.1 Escritura del Borrador del trabajo de final de carrera (tesis), 60 hr(s)
Competencias: C1,C20,CS2
Tópicos: I: Redacción y correccion del trabajo de final de carrera
Objetivos de Aprendizaje I: Parte experimental concluı́da (si fuese adecuado al proyecto) [Eva-
luar] II: Verificar que el documento cumpla con el formato de tesis de la carrera [Evaluar]
III: Entrega del borrador de tesis finalizado y considerado listo para una sustentación pública
del mismo (requisito de aprobación) [Evaluar]
Bibliografı́a: [IEEE-Computer Society, 2008, Association for Computing Machinery, 2008, CiteSeer.IST, 2008]
6. Bibliografı́a
[Association for Computing Machinery, 2008] Association for Computing Machinery (2008). Digital
Libray. Association for Computing Machinery. http://portal.acm.org/dl.cfm.
[CiteSeer.IST, 2008] CiteSeer.IST (2008). Scientific Literature Digital Libray. College of Information
Sciences and Technology, Penn State University. http://citeseer.ist.psu.edu.
[IEEE-Computer Society, 2008] IEEE-Computer Society (2008). Digital Libray. IEEE-Computer So-
ciety. http://www.computer.org/publications/dlib.
2. Fundamentación
.
3. Objetivos del curso
.
.
Bibliografı́a: [? line:36 ]
6. Bibliografı́a
Prerrequisitos: Ninguno
2. Fundamentación
El curso de Quechua comunicativo permite acercar a los estudiantes al uso práctico de la lengua
andina en su variedad chanca. Esta es una de las variedades de mayor difusión y modelo para abordar
otras variedades del denominado quechua sureño o quechua II. Además, se presenta sencilla en su
aprendizaje por compartir sonidos con el castellano. Asimismo, el curso busca familiarizar al alumno
con las estructuras básicas de esta lengua, ası́ como con la traducción y producción de textos. El obje-
tivo último es proporcionar las herramientas básicas de aprendizaje de modo que el estudiante pueda
expresarse en ella a un nivel básico y funcional, ası́ como conducir y desarrollar su propio aprendizaje
de la lengua. Consideramos que hablar quechua en ciertas situaciones donde los ingenieros UTEC
tienen que desarrollarse es una ventaja importantı́sima: los hablantes nativos de quechua practican
un trato diferenciado con las personas que lo hablan por sentir que se está respetando su tradición y,
a la vez, se está haciendo un esfuerzo por entablar un diálogo en su propia lengua. Esto representa
ventajas operativas muy puntuales en el trato y el acuerdo de intereses.
Acercar al estudiante a las estructuras básicas de la lengua con el fin de dirigir su estudio y auto
aprendizaje.
Dar herramientas para reconocer la procedencia del quechua al cual se enfrentan a través de
elementos de análisis lingüı́stico
o) Mejorar las condiciones de la sociedad poniendo la tecnologı́a al servicio del ser humano. (Usar)
6. Bibliografı́a
[Ridder, 1982] Ridder, P. (1982). Léxico del quechua de Pacaraos. Lima: Centro de Investigación de
Lingüı́stica Aplicada - Universidad Nacional Mayor de San Marcos.
[Rodolfo, 1976] Rodolfo, C. (1976). Gramática quechua junı́n-huanca. Lima: Ministerio de Educación-
Instituto de Estudios Peruanos.
2. Fundamentación
El propósito de este curso es que los estudiantes adquieran las herramientas y conocimientos es-
pecı́ficos para realizar un análisis de mercado que se refleje en: (i) un plan de negocios; Y (ii) el
desarrollo de habilidades de liderazgo, trabajo en equipo y comunicación efectiva. Esto se logrará
trabajando junto con un empresario, llevando al alumno a los problemas cotidianos que surgen en las
empresas. Este curso es prácticamente práctico, donde lo que se aprende en el aula se utilizará para
analizar el mercado junto con el empresario, siguiendo la estructura de un plan de negocios. Por lo
tanto, el estudiante aplicará este conocimiento y adquirirá durante su carrera, siempre guiado por el
profesor y los ayudantes. Por un lado, el alumno estará conectado con un caso real de emprendimien-
to, para que aprenda mediante la técnica .aprender haciendo”. Por otra parte, se intentará reducir
la tasa de fracaso de los empresarios (según Small Business Administration [http://www.sba.gov]),
el 95 porciento de los empresarios fallan antes del quinto año, debido principalmente a la falta De
diferenciación Con competencia y falta de una estrategia de marketing efectiva). Los empresarios que
serán asesorados en el curso de Emprendimiento Aplicado pertenecen a la Fundación Independizate
(www.fundacionindependizate.cl), y son personas con un nivel técnico o profesional que saben mucho
sobre su producto pero que tienen fallas en análisis de mercado y estrategias. Ventas Y comercializa-
ción.
3. Objetivos del curso
Analizar las partes que componen un plan de negocios, tales como segmentación, estrategias de
marketing y flujos de efectivo.
Analizar el mercado y las oportunidades que existen para abrir un nuevo negocio, donde se hará
hincapié en la identificación de estas oportunidades y la propuesta de valor.
Comprender el funcionamiento actual de la empresa, sus debilidades y fortalezas, y luego hacer
una propuesta con valor para el empresario.
Entender cómo hacer avanzar un proyecto, liberándolo del ”valle de la muerte”, donde los em-
presarios a menudo se quedan atascados.
Aplicar los conocimientos adquiridos por el alumno a lo largo de su carrera a través del trabajo
práctico con emprendedores, que representa el eje principal de este curso.
Desarrollar liderazgo en investigación y desarrollo de metodologı́as de evaluación de pequeñas
empresas.
Bibliografı́a: [? line:40 ]
Bibliografı́a: [? line:51 ]
Bibliografı́a: [? line:62 ]
Bibliografı́a: [? line:72 ]
Bibliografı́a: [? line:82 ]
Bibliografı́a: [? line:93 ]
Bibliografı́a: [? line:103 ]
6. Bibliografı́a
Prerrequisitos: Ninguno
2. Fundamentación
El curso de Imagen y Marca Personal , es el primero de dos cursos del área de desarrollo de
competencias personales y profesionales. Este curso brinda oportunidades al estudiante para que se
autoevalúe y reconozca las oportunidades de mejora, sentirse capaz de realizar cada uno de los retos
que se le proponga a nivel personal y profesional y de realizar un adecuado análisis de su situación,
ejecución y propuesta de resolución. El aprendizaje a través de la experiencia, le ayudará a evaluar
desde su propia perspectiva, las diferentes formas de pensar y la capacidad de aportar individualmente
o en equipo al logro de un determinado objetivo; a través del intercambio de ideas, la evaluación de
propuestas y la ejecución de la alternativa de solución idónea.
C17. Capacidad para expresarse en los medios de comunicación orales y escritos como se espera de
un graduado.⇒ Outcome f
C21. Comprender el aspecto profesional, legal, seguridad, asuntos polı́ticos, humanistas, ambientales,
culturales y éticos.⇒ Outcome e
Tópicos: I: Repaso de los compromisos y acuerdos de la clase . II: Assessment center de autoeva-
luación. III: Dinámica sobre el autoconocimiento, la identificación de FODA personal y visión
de futuro personal
Tópicos: I: Teorı́a. Personal branding. Plan de posicionamiento en el mercado (como voy hacer que
mis competencias puedan ingresar al mercado). II: Cómo uno se debe comunicar, la utilización
de la voz para potenciar sus habilidades y conseguir seguridad y eficacia en su comunicación.
III: Teorı́a ¿Qué es un CV? ¿Cómo crear un CV innovador? Implementación de proyectos;
actualización de datos, armado de portafolio de proyectos; comunicación virtual. IV: Creación
de un CV por grupo.
Tópicos: I: Charla: Expectativas del mercado laboral.¿Qué busca y quiere el mercado? II: Tipos
de entrevistas y evaluaciones en el proceso de reclutamiento y selección. Uso de estrategias de
persuasión; formas y técnicas exitosas para entrevistas, tips y recomendaciones. III: Entrega del
Reto 1: Envı́o del CV IV: Charla VOLCAN: Tips de entrevistas y evaluaciones de reclutamiento
y selección en Jueves del Conocimiento V: Tarea. Después de conocerse y saber lo que quiere
el mercado, se crean los elementos para diseñar la propia estrategia de cada alumno
Tópicos: I: Conversatorio sobre los resultados de la clase anterior II: Taller fuera del salón: Proac-
tividad, análisis de problemas, pensamiento analı́tico y planificación y organización, trabajo en
equipo y liderazgo, adaptabilidad, comunicación asertiva, ética. Se tendrá el feedback.
Tópicos: I: Entrevista a expertos: El mundo real laboral desde la visión del área de recursos humanos
-RRHH, con jefes corporativos de selección como invitados
Objetivos de Aprendizaje I: Fomentar la actitud positiva hacia el trabajo y la pasión por sobre-
salir en las prácticas preprofesionales mediante la detección de oportunidades de mejora y la
formulación de un proyecto de ingenierı́a.
Tópicos: I: Caso de Estudio II: Competencias: Planificación y organización y confianza en sı́ mismo,
asociado a la resolución de problemas. III: Feedback de resultados sobre la dinámica de refuerzo.
6. Bibliografı́a
[Jorge, 2009] Jorge, G. (2009). Cómo te vendes te contratan. México,Mc Graw Hill.
[Richard, 2015] Richard, B. (2015). What color is your parachute? New York, Ten Speed Press -
Random House Company.
[Stephen, 2005] Stephen, R. (2005). Comportamiento Organizacional. Pearson Pentice Hall, décima
edición edition.
A continuación se pueden observar las equivalencias de la presente malla con el(los) Plan(es) curricular(es) anterior(ES). Para ver mayores detalles de
la malla propuesta observar la sección 3.3 Pág. 149.
375
375
376 Escuela Profesional de Ciencia de la Computación, Malla 2017
Capı́tulo 6
Laboratorios