765
Resumen ejecutivo Este documento representa el informe final de la nueva malla curricular 2010 del Programa Profesional de Ciencia de la Computaciónde la Universidad Católica San Pablo (http://www.ucsp.edu.pe ) en la ciudad de Arequipa-Perú. En la actualidad esta carrera está siendo orientada a Ciencia de la Computación, el Bachillerato ya está con esta denominación y el título profesional ya fue cambiado a Ciencia de la Computación en Consejo Universitario de fecha 14 de Octubre de 2010. Todo el contenido del documento está basado en el estandar internacional denominado Computing Curricula 0.2 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), Ingeniería de Software (Software Engineering - SE), Sistemas de Información (Information Systems - IS) 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, 1

Reforma Curricular Universidad Catolica Del Peru

Embed Size (px)

Citation preview

Resumen ejecutivoEste documento representa el informe final de la nueva malla curricular 2010 del Programa Profesional de Ciencia de la Computacinde la Universidad Catlica San Pablo (http://www.ucsp.edu.pe) en la ciudad de Arequipa-Per. En la actualidad esta carrera est siendo orientada a Ciencia de la Computacin, el Bachillerato ya est con esta denominacin y el ttulo profesional ya fue cambiado a Ciencia de la Computacin en Consejo Universitario de fecha 14 de Octubre de 2010.Todo el contenido del documento est basado en el estandar internacional denominadoComputing Curricula0.2en el rea especfica de Ciencia de la Computacin. Este documento es el resultado de un trabajo conjunto de laAssociation for Computing Machinery(ACM) y la Sociedad de Computacin de IEEE (IEEE-CS) y puede ser accesado a travs de la direccinhttp://www.acm.org/educationen sus versions CS2001, CS2008 y CS2013.Considerando que existen peculiaridades menores al aplicar esta propuesta internacional a nuestros paises, el modelo deComputing Curriculafue utilizado para proponer el documento base de la presente malla.La computacin hoy en da presenta 5 perfiles de formacin profesional claramente definidos: Ciencia de la Computacin(Computer Science- CS), Ingeniera de Computacin (Computer Engineering- CE), Ingeniera de Software (Software Engineering- SE), Sistemas de Informacin (Information Systems- IS) y Tecnologa de la Informacin (Information Technology- IT).Los pilares fundamentales que consideramos en esta propuesta curricular son: Una slida formacin profesional en el rea de Ciencia de la Computacin, Preparacin para la generacin de empresas de base tecnolgica, Una slida formacin tica y proyeccin a la sociedadEstos pilares redundarn en la formacin de profesionales que se puedan desempear en cualquier parte del mundo y que ayuden de forma clara al desarrollo de la Industria de Software de nuestro pas.Un pilar que merece especial consideracin en el caso de la Universidad Catlica San Pablo es el aspecto de valores humanos, bsicos y cristianos debido a que forman parte fundamental de los lineamientos bsicos de la existencia de la institucin.El resto de este documento est organizado de la siguiente forma: el Captulo1, define y explica el campo de accin de la Ciencia de la Computacin (Informtica), adems se hace una muy breve explicacin de las distintas carreras del rea de computacin propuestas por IEEE-CS y ACM.El Captulo2, muestra los 14 grupos que forman el centro del conocimiento de la Ciencia de la Computacin, indicando los tpicos y objetivos cubiertos por cada uno de los temas, pertenecientes a estos grupos.El Captulo3contiene la distribucin por semestres, por reas, por niveles, visin grfica de la malla curricular, comparacin con las diversas propuestas internacionales, distribucin de tpicos por curso as como la distribucin de habilidades por materia.El Captulo4contiene informaci[on detallada para cada uno de los cursos incluyendo las habilidades con las cuales contribuye, bibliografa por cada unidad as como el nmero de horas mnimas por cada unidad.En el Captulo5se presentan las tablas de equivalencias con otros planes curriculares.Finalmente, en el Captulo6se presenta una sugerencia de los laboratorios requeridos para el dictado de clases las mismas que podran variar de acuerdo al volumen de alumnos que se tenga.ndice General Resumen ejecutivo ndice de Figuras ndice de Tablas Agradecimientos Abreviaturas 1. Introduccin 1.1 Definiciones bsicas 1.2 Perfil Profesional 1.3 Campo y mercado ocupacional 1.4 Importancia de la carrera en la sociedad 1.5 Misin 1.6 Visin 1.7 Perfil de competencias profesionales (Resultados de la carrera) 1.8 Naturaleza de los objetivos de aprendizaje 1.9 Grados y Ttulos 1.10 Recursos para dictado de clases 2. Cuerpo del conocimiento de Ciencia de la Computacin 2.1 DS. Matemticas Discretas (43 horas como mnimo) 2.1.1 DS/Funciones, Relaciones y Conjuntos. (6 horas) 2.1.2 DS/Lgica Bsica. (10 horas) 2.1.3 DS/Tcnicas de Prueba. (12 horas) 2.1.4 DS/Conceptos Bsicos de Conteo. (5 horas) 2.1.5 DS/Grfos y rboles. (4 horas) 2.1.6 DS/Probabilidad Discreta. (6 horas) 2.2 PF. Fundamentos de Programacin (47 horas como mnimo) 2.2.1 PF/Construcciones fundamentales. (9 horas) 2.2.2 PF/Algoritmos y Resolucin de Problemas. (6 horas) 2.2.3 PF/Estructuras de Datos. (10 horas) 2.2.4 PF/Recursividad. (4 horas) 2.2.5 PF/Programacin Orientada a Eventos. (4 horas) 2.2.6 PF/Orientacin a Objetos. (8 horas) 2.2.7 PF/Fundamentos de seguridad de la Informacin. (4 horas) 2.2.8 PF/Programacin segura. (2 horas) 2.3 AL. Algoritmos y Complejidad (31 horas como mnimo) 2.3.1 AL/Anlisis Bsico de Algoritmos. (4 horas) 2.3.2 AL/Estrategias Algortmicas. (6 horas) 2.3.3 AL/Algoritmos Fundamentales. (12 horas) 2.3.4 AL/Algoritmos Distribuidos. (3 horas) 2.3.5 AL/Computabilidad Bsica. (6 horas) 2.3.6 AL/Clases de Complejidad P y NP. 2.3.7 AL/Teora de Autmatas. 2.3.8 AL/Anlisis Avanzado de Algoritmos. 2.3.9 AL/Algoritmos Criptogrficos. 2.3.10 AL/Algoritmos Geomtricos. 2.3.11 AL/Algoritmos Paralelos. 2.4 AR. Arquitectura y Organizacin (36 horas como mnimo) 2.4.1 AR/Lgica Digital y Representacin de Datos. (7 horas) 2.4.2 AR/Arquitectura y Organizacin de Computadores. (9 horas) 2.4.3 AR/Interfases y Estrategias de I/O. (3 horas) 2.4.4 AR/Arquitectura de Memoria. (5 horas) 2.4.5 AR/Organizacin Funcional. (6 horas) 2.4.6 AR/Multiprocesamiento. (6 horas) 2.4.7 AR/Mejoras de Desempeo. 2.4.8 AR/Arquitecturas Distribuidas. 2.4.9 AR/Dispositivos. 2.4.10 AR/Tendencias en Computacin. 2.5 OS. Sistemas Operativos (16 horas como mnimo) 2.5.1 OS/Visin General de los Sistemas Operativos. (2 horas) 2.5.2 OS/Principios de los Sistemas Operativos. (2 horas) 2.5.3 OS/Concurrencia. (6 horas) 2.5.4 OS/Planeamiento y Despacho. (3 horas) 2.5.5 OS/Administracin de Memoria. (3 horas) 2.5.6 OS/Administracin de Dispositivos. 2.5.7 OS/Seguridad y Proteccin. 2.5.8 OS/Sistema de Archivos. 2.5.9 OS/Sistemas Empotrados y de Tiempo Real. 2.5.10 OS/Tolerancia a Fallas. 2.5.11 OS/Evaluacin del Desempeo de Sistemas. 2.5.12 OS/Scripting. 2.5.13 OS/Anlisis Forense Digital. 2.5.14 OS/Modelos de seguridad. 2.6 NC. Computacin Centrada en Redes (18 horas como mnimo) 2.6.1 NC/Introduccin. (2 horas) 2.6.2 NC/Comunicacin de Redes. (7 horas) 2.6.3 NC/Seguridad de Red. (6 horas) 2.6.4 NC/Organizacin de la Web. (3 horas) 2.6.5 NC/Aplicaciones en redes. 2.6.6 NC/Administracin de Redes. 2.6.7 NC/Compresin y Descompresin. 2.6.8 NC/Tecnologa de Datos Multimedia. 2.6.9 NC/Computacin Mvil e Inalmbrica. 2.7 PL. Lenguajes de Programacin (21 horas como mnimo) 2.7.1 PL/Visin General de los Lenguajes de Programacin. (2 horas) 2.7.2 PL/Mquinas Virtuales. (1 hora) 2.7.3 PL/Introduccin a la Traduccin de Lenguajes. (2 horas) 2.7.4 PL/Declaracin y Tipos. (3 horas) 2.7.5 PL/Mecanismos de Abstraccin. (3 horas) 2.7.6 PL/Programacin Orientada a Objetos. (10 horas) 2.7.7 PL/Programacin Funcional. 2.7.8 PL/Sistemas de Traduccin del Lenguaje. 2.7.9 PL/Tipos. 2.7.10 PL/Semntica de los Lenguajes de Programacin. 2.7.11 PL/Diseo de Lenguajes de Programacin. 2.8 HC. Interaccin Humano-Computador (8 horas como mnimo) 2.8.1 HC/Fundamentos de la Interaccin Hombre-Computador (HCI) (6 horas) 2.8.2 HC/Construccin de Interfaces Grficas de Usuario. (2 horas) 2.8.3 HC/Evaluacin de Software Centrado en el usuario. 2.8.4 HC/Desarrollo de Software Centrado en el Humano. 2.8.5 HC/Diseo de la Interfaz de Usuario. 2.8.6 HC/Programacin de Interfaces Grficas de Usuario. 2.8.7 HC/Aspectos de Sistemas de Multimedia y Multimodales. 2.8.8 HC/Aspectos de Colaboracin y Comunicacin. 2.8.9 Diseo de interaccin para nuevos ambientes. 2.8.10 Factores humanos y seguridad. 2.9 GV. Computacin Grfica y Visual (3 horas como mnimo) 2.9.1 GV/Tcnicas Fundamentales en Computacin Grfica y Visual. (2 horas) 2.9.2 GV/Sistemas Grficos. (1 hora) 2.9.3 GV/Comunicacin Grfica. 2.9.4 GV/Modelamiento Geomtrico. 2.9.5 GV/Rendering Bsico. 2.9.6 GV/Rendering Avanzado. 2.9.7 GV/Tcnicas Avanzadas. 2.9.8 GV/Animacin por Computador. 2.9.9 GV/Visualizacin. 2.9.10 GV/Realidad Virtual. 2.9.11 GV/Visin Computacional. 2.9.12 GV/Geometra Computacional. 2.9.13 GV/Programacin de motores de juegos. 2.10 IS. Sistemas Inteligentes (10 horas como mnimo) 2.10.1 IS/Tpicos Fundamentales en Sistemas Inteligentes. (1 hora) 2.10.2 IS/Bsqueda y Satisfaccin de la Restriccin. (5 horas) 2.10.3 IS/Razonamiento basado en conocimiento. (4 horas) 2.10.4 IS/Bsqueda Avanzada. 2.10.5 IS/Representacin Avanzada del Conocimiento y Razonamiento. 2.10.6 IS/Agentes. 2.10.7 IS/Procesamiento de Lenguaje Natural. 2.10.8 IS/Aprendizaje de Mquina. 2.10.9 IS/Sistemas de Planeamiento. 2.10.10 IS/Robtica. 2.10.11 IS/Percepcin. 2.11 IM. Administracin de Informacin (11 horas como mnimo) 2.11.1 IM/Modelos de Informacin. (4 horas) 2.11.2 IM/Sistemas de Base de Datos. (3 horas) 2.11.3 IM/Modelamiento de Datos. (4 horas) 2.11.4 IM/Indexacin. 2.11.5 IM/Base de Datos Relacionales. 2.11.6 IM/Lenguajes de Consultas de Base de Datos. 2.11.7 IM/Diseo de Bases de Datos Relacionales. 2.11.8 IM/Procesamiento de Transacciones. 2.11.9 IM/Bases de Datos Distribuidas. 2.11.10 IM/Diseo Fsico de Bases de Datos. 2.11.11 IM/Minera de Datos. 2.11.12 IM/Almacenamiento y Recuperacin de Informacin. 2.11.13 IM/Hipermedia. 2.11.14 IM/Sistemas Multimedia. 2.11.15 IM/Libreras Digitales. 2.12 SP. Asuntos Sociales y Profesionales (16 horas como mnimo) 2.12.1 SP/Historia de la Computacin. (1 hora) 2.12.2 SP/Contexto Social de la Computacin. (3 horas) 2.12.3 SP/Herramientas Analticas. (2 horas) 2.12.4 SP/tica Profesional. (3 horas) 2.12.5 SP/Riesgos. (2 horas) 2.12.6 SP/Operaciones de seguridad. 2.12.7 SP/Propiedad Intelectual. (3 horas) 2.12.8 SP/Privacidad y Libertades Civiles. (2 horas) 2.12.9 SP/Crimen Informtico. 2.12.10 SP/Economa en Computacin. 2.12.11 SP/Estructuras de Trabajo Filosficas. 2.13 SE. Ingeniera de Software (29 horas como mnimo) 2.13.1 SE/Diseo de Software. (8 horas) 2.13.2 SE/Usando APIs. (3 horas) 2.13.3 SE/Herramientas y Entornos de Software. (3 horas) 2.13.4 SE/Procesos de Software. (2 horas) 2.13.5 SE/Especificacin de Requerimientos. (4 horas) 2.13.6 SE/Validacin y verificacin de software. (3 horas) 2.13.7 SE/Evolucin del Software. (3 horas) 2.13.8 SE/Administracin de Proyectos de Software. (3 horas) 2.13.9 SE/Computacin Basada en Componentes. 2.13.10 SE/Mtodos Formales. 2.13.11 SE/Confiabilidad del Software. 2.13.12 SE/Desarrollo de Sistemas Especializados. 2.13.13 SE/Evaluacin de riesgos. 2.13.14 SE/Mejorando la programacin: robustez y seguridad. 2.13.15 CN. Ciencia Computacional (Sin mnimo de horas)) 2.13.16 CN/Modelamiento y Simulacin. 2.13.17 CN/Investigacin de Operaciones. 2.13.18 CN/Computacin Paralela. 3. Malla curricular 2010 3.1 Clasificacin de los cursos por niveles 3.2 Codificacin de los cursos 3.3 Constitucin del Plan de Estudios 3.4 Requisitos de cursos 3.5 Visin grfica de la Malla curricular 3.6 Compatibilidad de la carrera con relacin a estandares internacionales 3.7 Distribucin de tpicos por curso 3.8 Resultados esperados distribudos por curso 4. Contenido detallado por curso 4.1 CS101F. Introduccin a la Programacin (Obligatorio) 4.1.1 Justificacin 4.1.2 Objetivos Generales 4.1.3 Contribucin a los resultados 4.1.4 Unidades 4.2 CS105. Estructuras Discretas I (Obligatorio) 4.2.1 Justificacin 4.2.2 Objetivos Generales 4.2.3 Contribucin a los resultados 4.2.4 Unidades 4.3 CB101. lgebra y Geometra (Obligatorio) 4.3.1 Justificacin 4.3.2 Objetivos Generales 4.3.3 Contribucin a los resultados 4.3.4 Unidades 4.4 FG103. Introduccin a la Vida Universitaria (Obligatorio) 4.4.1 Justificacin 4.4.2 Objetivos Generales 4.4.3 Contribucin a los resultados 4.4.4 Unidades 4.5 FG102. Metodologa del Estudio (Obligatorio) 4.5.1 Justificacin 4.5.2 Objetivos Generales 4.5.3 Contribucin a los resultados 4.5.4 Unidades 4.6 FG101. Comunicacin (Obligatorio) 4.6.1 Justificacin 4.6.2 Objetivos Generales 4.6.3 Contribucin a los resultados 4.6.4 Unidades 4.7 CS106. Estructuras Discretas II (Obligatorio) 4.7.1 Justificacin 4.7.2 Objetivos Generales 4.7.3 Contribucin a los resultados 4.7.4 Unidades 4.8 CS101O. Introduccin a la Programacin Orientada a Objetos (Obligatorio) 4.8.1 Justificacin 4.8.2 Objetivos Generales 4.8.3 Contribucin a los resultados 4.8.4 Unidades 4.9 CS100. Introduccin a la Ciencia de la Computacin (Obligatorio) 4.9.1 Justificacin 4.9.2 Objetivos Generales 4.9.3 Contribucin a los resultados 4.9.4 Unidades 4.10 CB102. Anlisis Matemtico I (Obligatorio) 4.10.1 Justificacin 4.10.2 Objetivos Generales 4.10.3 Contribucin a los resultados 4.10.4 Unidades 4.11 FG105. Apreciacin de la Msica (Electivo) 4.11.1 Justificacin 4.11.2 Objetivos Generales 4.11.3 Contribucin a los resultados 4.11.4 Unidades 4.12 FG106. Teatro (Electivo) 4.12.1 Justificacin 4.12.2 Objetivos Generales 4.12.3 Contribucin a los resultados 4.12.4 Unidades 4.13 FG104. Introduccin a la Filosofa (Obligatorio) 4.13.1 Justificacin 4.13.2 Objetivos Generales 4.13.3 Contribucin a los resultados 4.13.4 Unidades 4.14 FG112. Matrimonio y Familia (Electivo) 4.14.1 Justificacin 4.14.2 Objetivos Generales 4.14.3 Contribucin a los resultados 4.14.4 Unidades 4.15 CS107. lgebra Abstracta (Obligatorio) 4.15.1 Justificacin 4.15.2 Objetivos Generales 4.15.3 Contribucin a los resultados 4.15.4 Unidades 4.16 CS220T. Arquitectura de Computadores (Obligatorio) 4.16.1 Justificacin 4.16.2 Objetivos Generales 4.16.3 Contribucin a los resultados 4.16.4 Unidades 4.17 CS130. Introduccin a Internet (Obligatorio) 4.17.1 Justificacin 4.17.2 Objetivos Generales 4.17.3 Contribucin a los resultados 4.17.4 Unidades 4.18 CS102O. Objetos y Abstraccin de Datos (Obligatorio) 4.18.1 Justificacin 4.18.2 Objetivos Generales 4.18.3 Contribucin a los resultados 4.18.4 Unidades 4.19 CB103. Anlisis Matemtico II (Obligatorio) 4.19.1 Justificacin 4.19.2 Objetivos Generales 4.19.3 Contribucin a los resultados 4.19.4 Unidades 4.20 FG203. Oratoria y Expresin Personal (Electivo) 4.20.1 Justificacin 4.20.2 Objetivos Generales 4.20.3 Contribucin a los resultados 4.20.4 Unidades 4.21 FG202. Apreciacin Literaria (Electivo) 4.21.1 Justificacin 4.21.2 Objetivos Generales 4.21.3 Contribucin a los resultados 4.21.4 Unidades 4.22 FG201. Artes Plsticas (Electivo) 4.22.1 Justificacin 4.22.2 Objetivos Generales 4.22.3 Contribucin a los resultados 4.22.4 Unidades 4.23 FG107. Fundamentos Antropolgicos de la Ciencia (Obligatorio) 4.23.1 Justificacin 4.23.2 Objetivos Generales 4.23.3 Contribucin a los resultados 4.23.4 Unidades 4.24 CS211T. Teora de la Computacin (Obligatorio) 4.24.1 Justificacin 4.24.2 Objetivos Generales 4.24.3 Contribucin a los resultados 4.24.4 Unidades 4.25 CS270T. Bases de Datos I (Obligatorio) 4.25.1 Justificacin 4.25.2 Objetivos Generales 4.25.3 Contribucin a los resultados 4.25.4 Unidades 4.26 CS103O. Algoritmos y Estructuras de Datos (Obligatorio) 4.26.1 Justificacin 4.26.2 Objetivos Generales 4.26.3 Contribucin a los resultados 4.26.4 Unidades 4.27 CB201. Anlisis Matemtico III (Obligatorio) 4.27.1 Justificacin 4.27.2 Objetivos Generales 4.27.3 Contribucin a los resultados 4.27.4 Unidades 4.28 CB203. Estadstica y Probabilidades (Obligatorio) 4.28.1 Justificacin 4.28.2 Objetivos Generales 4.28.3 Contribucin a los resultados 4.28.4 Unidades 4.29 CS210T. Anlisis y Diseo de Algoritmos (Obligatorio) 4.29.1 Justificacin 4.29.2 Objetivos Generales 4.29.3 Contribucin a los resultados 4.29.4 Unidades 4.30 CS290T. Ingeniera de Software I (Obligatorio) 4.30.1 Justificacin 4.30.2 Objetivos Generales 4.30.3 Contribucin a los resultados 4.30.4 Unidades 4.31 CS271T. Bases de Datos II (Obligatorio) 4.31.1 Justificacin 4.31.2 Objetivos Generales 4.31.3 Contribucin a los resultados 4.31.4 Unidades 4.32 CB111. Fsica Computacional (Obligatorio) 4.32.1 Justificacin 4.32.2 Objetivos Generales 4.32.3 Contribucin a los resultados 4.32.4 Unidades 4.33 CB306. Anlisis Numrico (Obligatorio) 4.33.1 Justificacin 4.33.2 Objetivos Generales 4.33.3 Contribucin a los resultados 4.33.4 Unidades 4.34 FG206. Sociologa (Electivo) 4.34.1 Justificacin 4.34.2 Objetivos Generales 4.34.3 Contribucin a los resultados 4.34.4 Unidades 4.35 FG210. tica (Obligatorio) 4.35.1 Justificacin 4.35.2 Objetivos Generales 4.35.3 Contribucin a los resultados 4.35.4 Unidades 4.36 FG209. Psicologa (Electivo) 4.36.1 Justificacin 4.36.2 Objetivos Generales 4.36.3 Contribucin a los resultados 4.36.4 Unidades 4.37 CS225T. Sistemas Operativos (Obligatorio) 4.37.1 Justificacin 4.37.2 Objetivos Generales 4.37.3 Contribucin a los resultados 4.37.4 Unidades 4.38 CS260. Lgica Computacional (Obligatorio) 4.38.1 Justificacin 4.38.2 Objetivos Generales 4.38.3 Contribucin a los resultados 4.38.4 Unidades 4.39 CS390. Ingeniera de Software II (Obligatorio) 4.39.1 Justificacin 4.39.2 Objetivos Generales 4.39.3 Contribucin a los resultados 4.39.4 Unidades 4.40 CS315. Estructuras de Datos Avanzadas (Obligatorio) 4.40.1 Justificacin 4.40.2 Objetivos Generales 4.40.3 Contribucin a los resultados 4.40.4 Unidades 4.41 CB307. Matemtica aplicada a la computacin (Obligatorio) 4.41.1 Justificacin 4.41.2 Objetivos Generales 4.41.3 Contribucin a los resultados 4.41.4 Unidades 4.42 FG204. Teologa I (Obligatorio) 4.42.1 Justificacin 4.42.2 Objetivos Generales 4.42.3 Contribucin a los resultados 4.42.4 Unidades 4.43 CS250W. Interaccin Humano Computador (Obligatorio) 4.43.1 Justificacin 4.43.2 Objetivos Generales 4.43.3 Contribucin a los resultados 4.43.4 Unidades 4.44 CS401. Proyecto I (Obligatorio) 4.44.1 Justificacin 4.44.2 Objetivos Generales 4.44.3 Contribucin a los resultados 4.44.4 Unidades 4.45 CS261T. Inteligencia Artificial (Obligatorio) 4.45.1 Justificacin 4.45.2 Objetivos Generales 4.45.3 Contribucin a los resultados 4.45.4 Unidades 4.46 CS336. Seguridad en Computacin (Obligatorio) 4.46.1 Justificacin 4.46.2 Objetivos Generales 4.46.3 Contribucin a los resultados 4.46.4 Unidades 4.47 CS314. Algoritmos Paralelos (Obligatorio) 4.47.1 Justificacin 4.47.2 Objetivos Generales 4.47.3 Contribucin a los resultados 4.47.4 Unidades 4.48 CS343. Lenguajes de Programacin (Obligatorio) 4.48.1 Justificacin 4.48.2 Objetivos Generales 4.48.3 Contribucin a los resultados 4.48.4 Unidades 4.49 FG204A. Teologa II (Obligatorio) 4.49.1 Justificacin 4.49.2 Objetivos Generales 4.49.3 Contribucin a los resultados 4.49.4 Unidades 4.50 CS402. Proyecto II (Obligatorio) 4.50.1 Justificacin 4.50.2 Objetivos Generales 4.50.3 Contribucin a los resultados 4.50.4 Unidades 4.51 CS391. Calidad de Software (Obligatorio) 4.51.1 Justificacin 4.51.2 Objetivos Generales 4.51.3 Contribucin a los resultados 4.51.4 Unidades 4.52 CS230W. Computacin Centrada en Redes (Obligatorio) 4.52.1 Justificacin 4.52.2 Objetivos Generales 4.52.3 Contribucin a los resultados 4.52.4 Unidades 4.53 CS255. Computacin Grfica (Obligatorio) 4.53.1 Justificacin 4.53.2 Objetivos Generales 4.53.3 Contribucin a los resultados 4.53.4 Unidades 4.54 CS280T. Aspectos sociales y profesionales de la computacin (Obligatorio) 4.54.1 Justificacin 4.54.2 Objetivos Generales 4.54.3 Contribucin a los resultados 4.54.4 Unidades 4.55 CS240S. Compiladores (Obligatorio) 4.55.1 Justificacin 4.55.2 Objetivos Generales 4.55.3 Contribucin a los resultados 4.55.4 Unidades 4.56 FG205. Historia de la Cultura (Obligatorio) 4.56.1 Justificacin 4.56.2 Objetivos Generales 4.56.3 Contribucin a los resultados 4.56.4 Unidades 4.57 CS403. Proyecto de Tesis (Obligatorio) 4.57.1 Justificacin 4.57.2 Objetivos Generales 4.57.3 Contribucin a los resultados 4.57.4 Unidades 4.58 CS355. Tpicos en Computacin Grfica (Electivo) 4.58.1 Justificacin 4.58.2 Objetivos Generales 4.58.3 Contribucin a los resultados 4.58.4 Unidades 4.59 CS393. Mtodos Formales (Electivo) 4.59.1 Justificacin 4.59.2 Objetivos Generales 4.59.3 Contribucin a los resultados 4.59.4 Unidades 4.60 CS370. Tpicos en Bases de Datos (Obligatorio) 4.60.1 Justificacin 4.60.2 Objetivos Generales 4.60.3 Contribucin a los resultados 4.60.4 Unidades 4.61 CS361. Tpicos en Inteligencia Artificial (Electivo) 4.61.1 Justificacin 4.61.2 Objetivos Generales 4.61.3 Contribucin a los resultados 4.61.4 Unidades 4.62 CS360. Computacin Bioinspirada (Electivo) 4.62.1 Justificacin 4.62.2 Objetivos Generales 4.62.3 Contribucin a los resultados 4.62.4 Unidades 4.63 CB309. Computacin Molecular Biolgica (Electivo) 4.63.1 Justificacin 4.63.2 Objetivos Generales 4.63.3 Contribucin a los resultados 4.63.4 Unidades 4.64 FG301. Enseanza Social de la Iglesia (Obligatorio) 4.64.1 Justificacin 4.64.2 Objetivos Generales 4.64.3 Contribucin a los resultados 4.64.4 Unidades 4.65 FG221. Historia de la Ciencia y Tecnologa (Obligatorio) 4.65.1 Justificacin 4.65.2 Objetivos Generales 4.65.3 Contribucin a los resultados 4.65.4 Unidades 4.66 ET101. Formacin de Empresas de Base Tecnolgica I (Obligatorio) 4.66.1 Justificacin 4.66.2 Objetivos Generales 4.66.3 Contribucin a los resultados 4.66.4 Unidades 4.67 CS356. Programacin de Video Juegos (Electivo) 4.67.1 Justificacin 4.67.2 Objetivos Generales 4.67.3 Contribucin a los resultados 4.67.4 Unidades 4.68 CS404. Seminario de Tesis (Obligatorio) 4.68.1 Justificacin 4.68.2 Objetivos Generales 4.68.3 Contribucin a los resultados 4.68.4 Unidades 4.69 CS331. Cloud Computing (Obligatorio) 4.69.1 Justificacin 4.69.2 Objetivos Generales 4.69.3 Contribucin a los resultados 4.69.4 Unidades 4.70 CS367. Robtica (Electivo) 4.70.1 Justificacin 4.70.2 Objetivos Generales 4.70.3 Contribucin a los resultados 4.70.4 Unidades 4.71 CS232W. Programacin de Dispositivos Mviles (Obligatorio) 4.71.1 Justificacin 4.71.2 Objetivos Generales 4.71.3 Contribucin a los resultados 4.71.4 Unidades 4.72 FG350. Liderazgo y Desempeo (Obligatorio) 4.72.1 Justificacin 4.72.2 Objetivos Generales 4.72.3 Contribucin a los resultados 4.72.4 Unidades 4.73 FG211. tica Profesional (Obligatorio) 4.73.1 Justificacin 4.73.2 Objetivos Generales 4.73.3 Contribucin a los resultados 4.73.4 Unidades 4.74 FG220. Anlisis de la Realidad Peruana (Obligatorio) 4.74.1 Justificacin 4.74.2 Objetivos Generales 4.74.3 Contribucin a los resultados 4.74.4 Unidades 4.75 ET102. Formacin de Empresas de Base Tecnolgica II (Obligatorio) 4.75.1 Justificacin 4.75.2 Objetivos Generales 4.75.3 Contribucin a los resultados 4.75.4 Unidades

5. Equivalencias con otros planes curriculares 5.1 Equivalencia ordenada por la malla 2006 5.2 Equivalencia ordenada por la malla 2010

6. Laboratorios CS101F. Introduccin a la Programacin (Obligatorio) 1er Sem, Lab: 2 hr(s) CS106. Estructuras Discretas II (Obligatorio) 2do Sem, Lab: 2 hr(s) CS101O. Introduccin a la Programacin Orientada a Objetos (Obligatorio) 2do Sem, Lab: 4 hr(s) CS107. lgebra Abstracta (Obligatorio) 3er Sem, Lab: 2 hr(s) CS220T. Arquitectura de Computadores (Obligatorio) 3er Sem, Lab: 2 hr(s) CS130. Introduccin a Internet (Obligatorio) 3er Sem, Lab: 2 hr(s) CS102O. Objetos y Abstraccin de Datos (Obligatorio) 3er Sem, Lab: 2 hr(s) CS211T. Teora de la Computacin (Obligatorio) 4to Sem, Lab: 2 hr(s) CS270T. Bases de Datos I (Obligatorio) 4to Sem, Lab: 4 hr(s) CS103O. Algoritmos y Estructuras de Datos (Obligatorio) 4to Sem, Lab: 2 hr(s) CB203. Estadstica y Probabilidades (Obligatorio) 4to Sem, Lab: 2 hr(s) CS210T. Anlisis y Diseo de Algoritmos (Obligatorio) 5to Sem, Lab: 2 hr(s) CS290T. Ingeniera de Software I (Obligatorio) 5to Sem, Lab: 2 hr(s) CS271T. Bases de Datos II (Obligatorio) 5to Sem, Lab: 2 hr(s) CB111. Fsica Computacional (Obligatorio) 5to Sem, Lab: 2 hr(s) CB306. Anlisis Numrico (Obligatorio) 5to Sem, Lab: 2 hr(s) CS225T. Sistemas Operativos (Obligatorio) 6to Sem, Lab: 2 hr(s) CS260. Lgica Computacional (Obligatorio) 6to Sem, Lab: 2 hr(s) CS390. Ingeniera de Software II (Obligatorio) 6to Sem, Lab: 2 hr(s) CS315. Estructuras de Datos Avanzadas (Obligatorio) 6to Sem, Lab: 2 hr(s) CB307. Matemtica aplicada a la computacin (Obligatorio) 6to Sem, Lab: 2 hr(s) CS250W. Interaccin Humano Computador (Obligatorio) 7mo Sem, Lab: 2 hr(s) CS261T. Inteligencia Artificial (Obligatorio) 7mo Sem, Lab: 2 hr(s) CS336. Seguridad en Computacin (Obligatorio) 7mo Sem, Lab: 2 hr(s) CS314. Algoritmos Paralelos (Obligatorio) 7mo Sem, Lab: 2 hr(s) CS343. Lenguajes de Programacin (Obligatorio) 7mo Sem, Lab: 2 hr(s) CS230W. Computacin Centrada en Redes (Obligatorio) 8vo Sem, Lab: 2 hr(s) CS255. Computacin Grfica (Obligatorio) 8vo Sem, Lab: 2 hr(s) CS240S. Compiladores (Obligatorio) 8vo Sem, Lab: 2 hr(s) CS355. Tpicos en Computacin Grfica (Electivo) 9no Sem, Lab: 2 hr(s) CS393. Mtodos Formales (Electivo) 9no Sem, Lab: 2 hr(s) CS370. Tpicos en Bases de Datos (Obligatorio) 9no Sem, Lab: 2 hr(s) CS361. Tpicos en Inteligencia Artificial (Electivo) 9no Sem, Lab: 2 hr(s) CS360. Computacin Bioinspirada (Electivo) 9no Sem, Lab: 2 hr(s) CB309. Computacin Molecular Biolgica (Electivo) 9no Sem, Lab: 2 hr(s) CS356. Programacin de Video Juegos (Electivo) 10mo Sem, Lab: 2 hr(s) CS331. Cloud Computing (Obligatorio) 10mo Sem, Lab: 2 hr(s) CS367. Robtica (Electivo) 10mo Sem, Lab: 4 hr(s) CS232W. Programacin de Dispositivos Mviles (Obligatorio) 10mo Sem, Lab: 2 hr(s)

Bibliografa Sobre este documento...ndice de Figuras 1.1.Campo accin de la CC 1.2.Taxonoma de Bloom 3.1.Orientaciones de los cursos por niveles. 3.2.Esquema de codificacin para los cursos. 3.3.Distribucin de cursos por reas considerando creditaje. 3.4.Distribucin de crditos por niveles de cursos. 3.5.Malla curricular Programa Profesional de Ciencia de la Computacin 3.6.Malla curricular Programa Profesional de Ciencia de la Computacin 3.7.Comparacin CS-UCSPVs. CS de IEEE-CS/ACM. 3.8.Comparacin CS-UCSPVs. CS de IEEE-CS/ACM. 3.9.Comparacin CS-UCSPVs. CE de IEEE-CS/ACM. 3.10.Comparacin CS-UCSPVs. CE de IEEE-CS/ACM. 3.11.Comparacin CS-UCSPVs. IS de IEEE-CS/ACM. 3.12.Comparacin CS-UCSPVs. IS de IEEE-CS/ACM. 3.13.Comparacin CS-UCSPVs. IT de IEEE-CS/ACM. 3.14.Comparacin CS-UCSPVs. IT de IEEE-CS/ACM. 3.15.Comparacin CS-UCSPVs. SE de IEEE-CS/ACM. 3.16.Comparacin CS-UCSPVs. SE de IEEE-CS/ACM.ndice de Tablas 1.1.Taxonoma de Bloom 3.1.Distribucin de cursos por reas 3.2.Tpicos por curso del 1er al 2do Semestre 3.3.Tpicos por curso del 1er al 2do Semestre 3.4.Tpicos por curso del 3er al 4to Semestre 3.5.Tpicos por curso del 3er al 4to Semestre 3.6.Tpicos por curso del 5to al 6to Semestre 3.7.Tpicos por curso del 5to al 6to Semestre 3.8.Tpicos por curso del 7mo al 8vo Semestre 3.9.Tpicos por curso del 7mo al 8vo Semestre 3.8.Tpicos por curso del 7mo al 8vo Semestre 3.11.Tpicos por curso del 9no al 10mo Semestre 3.12.Resultados esperados por curso 1er al 2do Semestre 3.13.Resultados esperados por curso 3er al 4to Semestre 3.14.Resultados esperados por curso 5to al 6to Semestre 3.15.Resultados esperados por curso 7mo al 8vo Semestre 3.16.Resultados esperados por curso 9no al 10mo Semestre

AgradecimientosAdems de los autores directos de este documento, tambin deseamos dejar manifiesto de nuestro agradecimiento a otros colegas de diversas universidades del pas y del mundo que gentilmente han aportado parte de su tiempo a darnos sus sugerencias. Entre ellos debemos mencionar a: Luis Fernando Daz Basurco (UCSP-Per), Nelly Condori-Fernndez (UPV-Espaa), Agustn Torns (ITESM-CCM, Mxico), Alex Cuadros-Vargas (UCSP, Per), Alvaro Cuno-Parari (SPC), Alfredo Paz (UNSA, Per), Rodrigo Lazo Paz (UCSP, Per), Juan Manuel Gutirrez Crdenas (University of the Witwatersrand-Sud-Africa), Lenin Henry Cari Mogrovejo por su valiosa colaboracin en los aspectos de redaccin y correccin ortogrfica del documento.Tambin deseamos agradecer a la Universidad Catlica San Pablo (UCSP) de Arequipa-Per por su colaboracin decidida de forma institucional y de forma individual a travs de sus autoridades: Dr. Alonso Quintanilla Prez-Witch (Rector), Dr. Jos Corrales Nieves-Lazarte (Vicerrector Acadmico) y al Mag. Germn Chvez (Director de Investigacin). No hay duda de que cuando las autoridades estn decididas a hacer las cosas bien todo el trabajo se realiza de forma rpida. Realmente es un ejemplo a seguir y llevar a todas las universidades de nuestro pas.Todo este equipo de trabajo asumi como premisa que el centro de nuestro esfuerzo, es la formacin acadmica y humanade los estudiantes.A todos ellos deseamos agradecerles por su aporte que ha permitido generar este documento, nico en su gnero en nuestro pas, que servir para sentar las bases de una carrera ms slida en esta fantstica rea que nos ha tocado estudiar y de la cual nos sentimos orgullosos de formar parte:Computacin.Abreviaturas

.

1. IntroduccinLa computacin ha sufrido un desarrollo impresionante en los ltimos 60 aos, convirtindose en el motor del desarrollo cientfico, tecnolgico, industrial, social, econmico y cultural, transformando de manera significativa nuestro diario accionar.El surgimiento del computador ha marcado una nueva era en la historia de la humanidad que era imposible de imaginar varias dcadas atrs. La gran cantidad de aplicaciones que se han desarrollado en los ltimos aos estn transformando el desarrollo de todas las disciplinas del saber, la comercializacin en el mbito globalizado en que vivimos, la manera en que nos comunicamos, los procesos de enseanza-aprendizaje y hasta en la manera como nos entretenemos.Para darnos una idea de la relevancia e importancia, que en nuestro pas ha alcanzado esta disciplina, basta mencionar que actualmente se ofrecen aproximadamente 70 carreras de Computacin, Informtica, Sistemas, a nivel nacional, sin considerar los programas de nivel Tcnico Superior No Universitario que se ofertan.Todas estas carreras existentes tienen como centro de su estudio a la computacin pero lo hacen con una gran diversidad de nombres como: Ingeniera de Sistemas, Ingeniera de Computacin, Ingeniera de Computacin y Sistemas, entre otros. A pesar de que todas ellas apuntan al mismo mercado de trabajo resulta por lo menos curioso que no sea posible encontrar por lo menos dos que compartan la misma curricula.Muchos pases consideran a la computacin como estratgica para su desarrollo. En Per, el CONCYTEC ha recomendado al gobierno que considere a la Computacin como una de las reas prioritarias de vinculacin entre la academia e industria para fomentar la competitividad y la innovacin.Comnmente, durante la dcada de los setenta, la Computacin se desarroll dentro de las Facultades de Ciencias en la mayora de las universidades estadounidenses, britnicas y de otros pases. Durante la dcada de los ochenta, los grupos de computacin en las universidades se esforzaron por lograr una legitimidad acadmica en su mbito local. Frecuentemente, se transformaron en departamentos de Matemticas y Computacin, hasta finalmente dividirse en dos departamentos de Matemticas y de Computacin, en la dcada de los noventa. Es en esta dcada en que un nmero creciente de instituciones reconocieron la influencia penetrante de la Computacin, creando unidades independientes como departamentos, escuelas o institutos dedicados a tal rea de estudio, un cambio que ha demostrado tanto perspicacia como previsin. En Per, un nmero cada vez mayor de instituciones de educacin superior han tratado de seguir el desarrollo de las universidades extranjeras (aunque no siempre en forma muy seria o exitosa), reconociendo a la Computacin como un rea de estudio en s misma, as como su importancia estratgica en la educacin, y creando departamentos, escuelas o institutos dedicados a su estudio. La Facultad de Facultad de Ingeniera y Computacin no puede ser la excepcin a este cambio, en el que ya se tiene un retraso relativo con muchas de las instituciones educativas dentro y fuera de Per.

Subsecciones 1.1Definiciones bsicas 1.2Perfil Profesional 1.3Campo y mercado ocupacional 1.4Importancia de la carrera en la sociedad 1.5Misin 1.6Visin 1.7Perfil de competencias profesionales (Resultados de la carrera) 1.8Naturaleza de los objetivos de aprendizaje 1.9Grados y Ttulos 1.10Recursos para dictado de clases

1.1Definiciones bsicasLa referencia ms slida a nivel mundial en cuanto a la propuesta de carreras de computacin para nivel de pregrado es la que fue propuesta en conjunto por la ACM, IEEE-CS y la AIS. Estas tres organizaciones propusieron la Computing Curricula en el documento denominado:Joint Task Force for Computing Curricula 2005, Computing Curricula 2005. Overview Report[].La CC es un trmino de origen estadounidense CS. Este trmino es conocido tambin como informtica en el mbito europeo1.1.Segn el diccionario de la Real Academia de la Lengua Espaola (http://www.rae.es) ambos trminos tambin son sinnimos.A nivel internacional, la computacin presenta 5 perfiles claramente definidos: Ciencia de la Computacin (Computer Science) [,], Ingeniera de Computacin (Computer Engineering) [], Ingeniera de Software (Software Engineering) [], Sistemas de Informacin (Information Systems) [] y Tecnologa de la Informacin (Information Technology) []La Figura1.1es tomada de la definicin propuesta en laComputing Curricula[,,] en el rea de CC. La CC cubre la mayor parte entre el extremo superior y el extremo inferior, porque el profesional en CC no trata ``solamente con el hardware'' que utiliza un software o de ``solamente la organizacin'' que hace uso de la informacin que la computacin le puede proveer.

Figura 1.1:Campo accin de la CC

Las Ciencias de la Computacin cubren un amplio rango, desde sus fundamentos tericos y algortmicos hasta los ltimos desarrollos en robtica, visin por computadora, sistemas inteligentes, bioinformtica, y otras reas emocionantes. Podemos pensar que el trabajo de un cientfico de la computacin pertenece a las siguientes tres categoras: Diseo e implementacin de software. Los cientficos de computacin se encargan de desafiantes labores de programacin. Tambin supervisan otros programadores, hacindolos concientes de nuevas aproximaciones. Instrumentacin de nuevas formas para usar computadoras. El progreso en las reas de ciencias de la computacin como redes, bases de datos, e interfaces humano-computadora permitieron el desarrollo de la www y actualmente se trabaja en el desarrollo de metasistemas Grid. Adems, los investigadores trabajan ahora en hacer que los robots sean ayudantes prcticos y demuestren inteligencia, utilizan las bases de datos para crear nuevos conocimientos, y estn utilizando computadoras para decifrar los secretos de nuestro ADN. Desarrollo de formas efectivas de resolver problemas de computacin.Por ejemplo, los cientficos de la computacin desarrollan las mejores formas posibles de almacenar informacin en bases de datos, enviar datos a travs de la red, y desplegar imgenes complejas. Sus bases tericas les permiten determinar el mejor desempeo posible, y su estudio de algoritmos les ayuda a desarrollar nuevas aproximaciones para proveer un mejor desempeo.Las Ciencias de la Computacin cubren todo el rango desde la teora hasta la programacin. Mientras otras disciplinas pueden producir titulados mejor preparados para trabajos especficos, las ciencias de la computacin ofrecen un amplio fundamento que permite a sus titulados adaptarse a nuevas tecnologas y nuevas ideas.El profesional en CC se preocupa por casi todo en medio de estas reas. En direccin hacia el hardware, este profesional llega a desarrollar software que permite el funcionamiento de dispositivosdevices. En direccin a aspectos organizacionales, el profesional de CC ayuda a que los sistemas de informacin operen correctamente en las organizaciones. l genera la tecnologa que permite que otras reas como los sistemas de informacin se desarrollen adecuadamente.El profesional en CC disea y desarrolla todo tipo de software, desde infraestructura de plataformas (sistemas operativos, programas de comunicacin, etc.) hasta aplicacin de tecnologas (navegadores de Internet, bases de datos, motores de bsqueda, 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 aplicacin y configuracin de productos.1.2Perfil ProfesionalEl profesional en Ciencia de la Computacin tiene las siguientes caractersticas: Alta capacidad de abstraccin. Construye y aplica los fundamentos de la computacin para crear software de calidad internacional. Se adapta con facilidad a nuevas tecnologas debido a su formacin en investigacin y resolucin temas complejos que involucren a la computacin. Hbito de estudio y sentido de responsabilidad. Formacin de carrera de acuerdo a normas internacionales. Est en condiciones de poder seguir estudios de posgrado con exigencia internacional en reas relacionadas. Tiene valores ticos y morales claramente definidos que ayudan con el crecimiento de la organizacin y del pas donde trabaje.

1.3Campo y mercado ocupacionalNuestro egresado podr prestar sus servicios profesionales en empresas e instituciones pblicas y privadas que requieran sus capacidades en funcin del desarrollo que oferta, entre ellas: Empresas dedicadas a la produccin de software con calidad internacional. Empresas, instituciones y organizaciones que requieran software de calidad para mejorar sus actividades y/o servicios ofertados.Nuestro egresado puede desempearse en el mercado laboral sin ningn problema ya que, en general, la exigencia del mercado y campo ocupacional est mucho ms orientada al uso de herramientas. Sin embargo, es poco comn que los propios profesionales de esta carrera se pregunten: que tipo de formacin debera tener si yo quisiera crear esas herramientas adems de saber usarlas?. Ambos perfiles (usuario y creador) son bastante diferentes pues no sera posible usar algo que todava no fue creado. En otras palabras, los creadores de tecnologa son los quedan origen a nuevos puestos de trabajoy abren la posibilidad de que otros puedan usar esa tecnologa.Debido a la formacin basada en la investigacin, nuestro profesional debe siempre ser un innovador donde trabaje. Esta misma formacin permite que el egresado piense tambin en crear su propia empresa de desarrollo de software. Considerando que pases como el nuestro tienen un costo de vida mucho menor que Norte Amrica Europa, una posibilidad que se muestra interesante es la exportacin de software pero eso requiere que la calidad del producto sea al mismo nivel de lo ofrecido a nivel internacional.Este perfil profesional tambin posibilita que nuestros egresados se queden en nuestro pas; producir software en nuestro pas y venderlo fuera es ms rentable que salir al extranjero y comercializarlo all.El campo ocupacional de un egresado es amplio y est en continua expansin y cambio. Prcticamente toda empresa u organizacin hace uso de servicios de computacin de algn tipo, y la buena formacin bsica de nuestros egresados hace que puedan responder a los requerimientos de las mismas exitosamente. Este egresado, no slo podr dar soluciones a los problemas existentes sino que deber proponer innovaciones tecnolgicas que impulsen la empresa hacia un progreso constante.A medida que la informatizacin bsica de las empresas del pas 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 investigacin y desarrollo de problemas complejos en computacin es tambin muy amplio y est creciendo da a da 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 pases.

1.4Importancia de la carrera en la sociedadUno de los caminos que se espera que siga un profesional del rea de computacin es que el se dedique a producir software o que se integre a las empresas productoras de software. En el mbito de la computacin, es comn observar que los pases cuentas con Asociaciones de Productores de Software cuyas polticas estn orientadas a la exportacin. Siendo as, no tendra sentido preparar a nuestros alumnos slo para el mercado local o nacional. Nuestros egresados deben estar preparados para desenvolverse en el mundo globalizado que nos ha tocado vivir.Nuestros futuros profesionales deben estar orientados a crear nuevas empresas de base tecnolgica que puedan incrementar las exportaciones de software peruano. Este nuevo perfil est orientado a generar industria innovadora. Si nosotros somos capaces de exportar software competitivo tambin estaremos en condiciones de atraer nuevas inversiones. Las nuevas inversiones generaran ms puestos de empleo bien remunerados y con un costo bajo en relacin a otros tipos de industria. Bajo esta perspectiva, podemos afirmar que esta carrera ser un motor que impulsar al desarrollo del pas de forma decisiva con una inversin muy baja en relacin a otros campos.Es necesario recordar que la mayor innovacin de productos comerciales de versiones recientes utiliza tecnologa que se conoca en el mundo acadmico hace 20 aos o ms. Un ejemplo claro son las bases de datos que soportan datos y consultas espaciales desde hace muy pocos aos. Sin embargo, utilizan estructuras de datos que ya existan hace algunas dcadas. Es lgico pensar que la gente del rea acadmica no se dedique a estudiar en profundidad la ltima versin de un determinado software cuando esa tecnologa ya la conocan hace mucho tiempo. Por esa misma razn es raro en el mundo observar que una universidad tenga convenios con una transnacional de software para dictar solamente esa tecnologa pues, nuestra funcin es generar esa tecnologa y no slo saber usarla.Tampoco debemos olvidar que los alumnos que ingresan hoy saldrn al mercado dentro de 5 aos aproximadamente y, en un mundo que cambia tan rpido, no podemos ni debemos ensearles tomando en cuenta solamente el mercado actual. Nuestros profesionales deben estar preparados para resolver los problemas que habr dentro de 10 o 15 aos y eso slo es posible a travs de la investigacin.1.5MisinPor lo antes mencionado, pensamos que tenemos como misin:Contribuir al desarrollo tecnolgico y tcnico del pas, a travs de profesionales competentes, orientados a la creacin de nueva tecnologa computacional, como motor que impulse y consolide la industria del software en base a la investigacin cientfica y tecnolgica en reas innovadoras formando profesionales un conjunto de habilidades y destrezas para la solucin de problemas computacionales con un compromiso social.

1.6Visin Queremos ser una carrera profesional acreditada con estandares internacionales y que cuente con el reconocimiento en funcin 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 investigacin bsica y aplicada. Queremos ser una carrera que promueva el desarrollo de la industria del software a nivel internacional, 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 poblacin y contribuya a la solucin de los problemas estratgicos de nuestra sociedad.

1.7Perfil de competencias profesionales (Resultados de la carrera)Al finalizar esta carrera, el(la) egresado(a), habr logrado conocimientos, habilidades y competencias para:a)Aplicar conocimientos de computacin y de matemticas apropiadas para la disciplina.b)Analizar problemas e identificar y definir los requerimientos computacionales apropiados para su solucin.c)Disear, implementar y evaluar un sistema, proceso, componente o programa computacional para alcanzar las necesidades deseadas.d)Trabajar efectivamente en equipos para cumplir con un objetivo comn.e)Entender correctamente las implicancias profesionales, ticas, legales, de seguridad y sociales de la profesin.f)Comunicarse efectivamente con audiencias diversas.g)Analizar el impacto local y global de la computacin sobre los individuos, organizaciones y sociedad.h)Incorporarse a un proceso de aprendizaje profesional continuo.i)Utilizar tcnicas y herramientas actuales necesarias para la prctica de la computacin.j)Aplicar la base matemtica, principios de algoritmos y la teora de la Ciencia de la Computacin en el modelamiento y diseo de sistemas computacionales de tal manera que demuestre comprensin de los puntos de equilibrio involucrados en la opcin escogida.k)Aplicar los principios de desarrollo y diseo en la construccin de sistemas de software de complejidad variable.l)Desarrollar principios investigacin en el rea de computacin con niveles de competividad internacional.m)Transformar sus conocimientos del rea de Ciencia de la Computacin en emprendimientos tecnolgicos.n)Aplicar conocimientos de humanidades en su labor profesional.o)Comprender que la formacin de un buen profesional no se desliga ni se opone sino mas bien contribuye al autntico crecimiento personal. Esto requiere de la asimilacin de valores slidos, horizontes espirituales amplios y una visin profunda del entorno cultural.p)Mejorar las condiciones de la sociedad poniendo la tecnologa al servicio del ser humano.Las competencias y/o resultadosa)-k) propuestas en esta malla curricular corresponden a las competencias y/o resultados propuestas por ABET1.2.Por otro lado, las habilidadesl)-o) son aportes de este grupo de trabajo.1.8Naturaleza de los objetivos de aprendizajeUn primer conjunto de objetivos de aprendizaje fue propuesto por []. Una pequea variacin de la taxonoma de Bloom es resumida a continuacin con algunas pequeas adaptaciones al contexto de la computacin (utilizando trminos como implementar o ejecutar).En esta discusin se siguen los lineamientos de []. Tipicamente, un objetivo de aprendizaje contiene un verbo y un pronombre: El verbo describe el proceso cognitivo que se busca. Luego se incluyen los elementos de la taxonoma de Bloom y de esa forma verbos como recordar, recordar, entender, analizar, disearson altamente relevantes.Los pronombres describen el conocimiento que se espera que un estudiante adquiera. Luego el conocimiento propiamente dicho es categorizado en varias formas en un espectro que va de lo concreto a lo abstracto.

Tabla 1.1:Taxonoma de Bloom

NivelCategoraProceso Cognitivo

1.Recordarreconocimiento, recordar, describir, declarar (stating)

2.Entenderinterpretar, ejemplificar, clasificar, inferir, comparar, explicar, parafrasear, resumir

3.Aplicarejecutar (i.e. llevar adelante), implementar (i.e. usar), computar, manipular, resolver

4.Analizardiferenciar, organizar, atribuir, discriminar, distinguir, sub-dividir

5.Evaluarverificar, criticar, evaluar (assess), comparar, contrastar

6.Creargenerar, planear, producir, innovar, divisar, disear, organizar

Los objetivos del programa tienden a ser asociados con los niveles altos de esta taxonoma. Asi mismo los objetivos instructivos tienden a ser asociados con los niveles bajos de la misma.

Figura 1.2:Taxonoma de Bloom

1.9Grados y TtulosCumplida la aprobacin de los crditos acadmicos propuestos en la malla curricular y luego de haber cumplido con los requisitos estipulados en el reglamento de grados y ttulos de la carrera, el egresado recibir:Grado Acadmico:Bachiller en Ciencia de la Computacin yTitulo Profesional:Licenciatura en Ciencia de la Computacin

1.10Recursos para dictado de clasesUn profesional innovador debe estar al tanto de los ltimos avances de su rea siempre. Los ltimos avances de esta rea no son presentados en los libros necesariamente. Debemos utilizar publicaciones de revistas indexadas de circulacin mundial. Por esa razn tomamos como base la suscripcin institucional a ACM e IEEE-CS. Es recomendado que el docente use este material para discutir en clase las tendencias en todas las reas.Los laboratorios de cmputo tambin deben ser renovados de acuerdo a la rapidez propia de esta rea y esto implica renovaciones constantes para poder garantizar que los estudiantes estn actualizados.

2. Cuerpo del conocimiento de Ciencia de la ComputacinLos 14 grupos principales del conocimiento de esta rea son:DS. Matemticas Discretas (43 horas como mnimo)DS/Funciones, Relaciones y Conjuntos. (6 horas)DS/Lgica Bsica. (10 horas)DS/Tcnicas de Prueba. (12 horas)DS/Conceptos Bsicos de Conteo. (5 horas)DS/Grfos y rboles. (4 horas)DS/Probabilidad Discreta. (6 horas)PF. Fundamentos de Programacin (47 horas como mnimo)PF/Construcciones fundamentales. (9 horas)PF/Algoritmos y Resolucin de Problemas. (6 horas)PF/Estructuras de Datos. (10 horas)PF/Recursividad. (4 horas)PF/Programacin Orientada a Eventos. (4 horas)PF/Orientacin a Objetos. (8 horas)PF/Fundamentos de seguridad de la Informacin. (4 horas)PF/Programacin segura. (2 horas)AL. Algoritmos y Complejidad (31 horas como mnimo)AL/Anlisis Bsico de Algoritmos. (4 horas)AL/Estrategias Algortmicas. (6 horas)AL/Algoritmos Fundamentales. (12 horas)AL/Algoritmos Distribuidos. (3 horas)AL/Computabilidad Bsica. (6 horas)AL/Clases de Complejidad P y NP.AL/Teora de Autmatas.AL/Anlisis Avanzado de Algoritmos.AL/Algoritmos Criptogrficos.AL/Algoritmos Geomtricos.AL/Algoritmos Paralelos.AR. Arquitectura y Organizacin (36 horas como mnimo)AR/Lgica Digital y Representacin de Datos. (7 horas)AR/Arquitectura y Organizacin de Computadores. (9 horas)AR/Interfases y Estrategias de I/O. (3 horas)AR/Arquitectura de Memoria. (5 horas)AR/Organizacin Funcional. (6 horas)AR/Multiprocesamiento. (6 horas)AR/Mejoras de Desempeo.AR/Arquitecturas Distribuidas.AR/Dispositivos.AR/Tendencias en Computacin.OS. Sistemas Operativos (16 horas como mnimo)OS/Visin General de los Sistemas Operativos. (2 horas)OS/Principios de los Sistemas Operativos. (2 horas)OS/Concurrencia. (6 horas)OS/Planeamiento y Despacho. (3 horas)OS/Administracin de Memoria. (3 horas)OS/Administracin de Dispositivos.OS/Seguridad y Proteccin.OS/Sistema de Archivos.OS/Sistemas Empotrados y de Tiempo Real.OS/Tolerancia a Fallas.OS/Evaluacin del Desempeo de Sistemas.OS/Scripting.OS/Anlisis Forense Digital.OS/Modelos de seguridad.NC. Computacin Centrada en Redes (18 horas como mnimo)NC/Introduccin. (2 horas)NC/Comunicacin de Redes. (7 horas)NC/Seguridad de Red. (6 horas)NC/Organizacin de la Web. (3 horas)NC/Aplicaciones en redes.NC/Administracin de Redes.NC/Compresin y Descompresin.NC/Tecnologa de Datos Multimedia.NC/Computacin Mvil e Inalmbrica.PL. Lenguajes de Programacin (21 horas como mnimo)PL/Visin General de los Lenguajes de Programacin. (2 horas)PL/Mquinas Virtuales. (1 hora)PL/Introduccin a la Traduccin de Lenguajes. (2 horas)PL/Declaracin y Tipos. (3 horas)PL/Mecanismos de Abstraccin. (3 horas)PL/Programacin Orientada a Objetos. (10 horas)PL/Programacin Funcional.PL/Sistemas de Traduccin del Lenguaje.PL/Tipos.PL/Semntica de los Lenguajes de Programacin.PL/Diseo de Lenguajes de Programacin.HC. Interaccin Humano-Computador (8 horas como mnimo)HC/Fundamentos de la Interaccin Hombre-Computador (HCI) (6 horas)HC/Construccin de Interfaces Grficas de Usuario. (2 horas)HC/Evaluacin de Software Centrado en el usuario.HC/Desarrollo de Software Centrado en el Humano.HC/Diseo de la Interfaz de Usuario.HC/Programacin de Interfaces Grficas de Usuario.HC/Aspectos de Sistemas de Multimedia y Multimodales.HC/Aspectos de Colaboracin y Comunicacin.Diseo de interaccin para nuevos ambientes.Factores humanos y seguridad.GV. Computacin Grfica y Visual (3 horas como mnimo)GV/Tcnicas Fundamentales en Computacin Grfica y Visual. (2 horas)GV/Sistemas Grficos. (1 hora)GV/Comunicacin Grfica.GV/Modelamiento Geomtrico.GV/RenderingBsico.GV/RenderingAvanzado.GV/Tcnicas Avanzadas.GV/Animacin por Computador.GV/Visualizacin.GV/Realidad Virtual.GV/Visin Computacional.GV/Geometra Computacional.GV/Programacin de motores de juegos.IS. Sistemas Inteligentes (10 horas como mnimo)IS/Tpicos Fundamentales en Sistemas Inteligentes. (1 hora)IS/Bsqueda y Satisfaccin de la Restriccin. (5 horas)IS/Razonamiento basado en conocimiento. (4 horas)IS/Bsqueda Avanzada.IS/Representacin Avanzada del Conocimiento y Razonamiento.IS/Agentes.IS/Procesamiento de Lenguaje Natural.IS/Aprendizaje de Mquina.IS/Sistemas de Planeamiento.IS/Robtica.IS/Percepcin.IM. Administracin de Informacin (11 horas como mnimo)IM/Modelos de Informacin. (4 horas)IM/Sistemas de Base de Datos. (3 horas)IM/Modelamiento de Datos. (4 horas)IM/Indexacin.IM/Base de Datos Relacionales.IM/Lenguajes de Consultas de Base de Datos.IM/Diseo de Bases de Datos Relacionales.IM/Procesamiento de Transacciones.IM/Bases de Datos Distribuidas.IM/Diseo Fsico de Bases de Datos.IM/Minera de Datos.IM/Almacenamiento y Recuperacin de Informacin.IM/Hipermedia.IM/Sistemas Multimedia.IM/Libreras Digitales.SP. Asuntos Sociales y Profesionales (16 horas como mnimo)SP/Historia de la Computacin. (1 hora)SP/Contexto Social de la Computacin. (3 horas)SP/Herramientas Analticas. (2 horas)SP/tica Profesional. (3 horas)SP/Riesgos. (2 horas)SP/Operaciones de seguridad.SP/Propiedad Intelectual. (3 horas)SP/Privacidad y Libertades Civiles. (2 horas)SP/Crimen Informtico.SP/Economa en Computacin.SP/Estructuras de Trabajo Filosficas.SE. Ingeniera de Software (29 horas como mnimo)SE/Diseo de Software. (8 horas)SE/Usando APIs. (3 horas)SE/Herramientas y Entornos de Software. (3 horas)SE/Procesos de Software. (2 horas)SE/Especificacin de Requerimientos. (4 horas)SE/Validacin y verificacin de software. (3 horas)SE/Evolucin del Software. (3 horas)SE/Administracin de Proyectos de Software. (3 horas)SE/Computacin Basada en Componentes.SE/Mtodos Formales.SE/Confiabilidad del Software.SE/Desarrollo de Sistemas Especializados.SE/Evaluacin de riesgos.SE/Mejorando la programacin: robustez y seguridad.CN. Ciencia Computacional (Sin mnimo de horas))CN/Modelamiento y Simulacin.CN/Investigacin de Operaciones.CN/Computacin Paralela.

Subsecciones 2.1DS. Matemticas Discretas (43 horas como mnimo) 2.1.1DS/Funciones, Relaciones y Conjuntos. (6 horas) 2.1.2DS/Lgica Bsica. (10 horas) 2.1.3DS/Tcnicas de Prueba. (12 horas) 2.1.4DS/Conceptos Bsicos de Conteo. (5 horas) 2.1.5DS/Grfos y rboles. (4 horas) 2.1.6DS/Probabilidad Discreta. (6 horas)

2.2PF. Fundamentos de Programacin (47 horas como mnimo) 2.2.1PF/Construcciones fundamentales. (9 horas) 2.2.2PF/Algoritmos y Resolucin de Problemas. (6 horas) 2.2.3PF/Estructuras de Datos. (10 horas) 2.2.4PF/Recursividad. (4 horas) 2.2.5PF/Programacin Orientada a Eventos. (4 horas) 2.2.6PF/Orientacin a Objetos. (8 horas) 2.2.7PF/Fundamentos de seguridad de la Informacin. (4 horas) 2.2.8PF/Programacin segura. (2 horas)

2.3AL. Algoritmos y Complejidad (31 horas como mnimo) 2.3.1AL/Anlisis Bsico de Algoritmos. (4 horas) 2.3.2AL/Estrategias Algortmicas. (6 horas) 2.3.3AL/Algoritmos Fundamentales. (12 horas) 2.3.4AL/Algoritmos Distribuidos. (3 horas) 2.3.5AL/Computabilidad Bsica. (6 horas) 2.3.6AL/Clases de Complejidad P y NP. 2.3.7AL/Teora de Autmatas. 2.3.8AL/Anlisis Avanzado de Algoritmos. 2.3.9AL/Algoritmos Criptogrficos. 2.3.10AL/Algoritmos Geomtricos. 2.3.11AL/Algoritmos Paralelos.

2.4AR. Arquitectura y Organizacin (36 horas como mnimo) 2.4.1AR/Lgica Digital y Representacin de Datos. (7 horas) 2.4.2AR/Arquitectura y Organizacin de Computadores. (9 horas) 2.4.3AR/Interfases y Estrategias de I/O. (3 horas) 2.4.4AR/Arquitectura de Memoria. (5 horas) 2.4.5AR/Organizacin Funcional. (6 horas) 2.4.6AR/Multiprocesamiento. (6 horas) 2.4.7AR/Mejoras de Desempeo. 2.4.8AR/Arquitecturas Distribuidas. 2.4.9AR/Dispositivos. 2.4.10AR/Tendencias en Computacin.

2.5OS. Sistemas Operativos (16 horas como mnimo) 2.5.1OS/Visin General de los Sistemas Operativos. (2 horas) 2.5.2OS/Principios de los Sistemas Operativos. (2 horas) 2.5.3OS/Concurrencia. (6 horas) 2.5.4OS/Planeamiento y Despacho. (3 horas) 2.5.5OS/Administracin de Memoria. (3 horas) 2.5.6OS/Administracin de Dispositivos. 2.5.7OS/Seguridad y Proteccin. 2.5.8OS/Sistema de Archivos. 2.5.9OS/Sistemas Empotrados y de Tiempo Real. 2.5.10OS/Tolerancia a Fallas. 2.5.11OS/Evaluacin del Desempeo de Sistemas. 2.5.12OS/Scripting. 2.5.13OS/Anlisis Forense Digital. 2.5.14OS/Modelos de seguridad.

2.6NC. Computacin Centrada en Redes (18 horas como mnimo) 2.6.1NC/Introduccin. (2 horas) 2.6.2NC/Comunicacin de Redes. (7 horas) 2.6.3NC/Seguridad de Red. (6 horas) 2.6.4NC/Organizacin de la Web. (3 horas) 2.6.5NC/Aplicaciones en redes. 2.6.6NC/Administracin de Redes. 2.6.7NC/Compresin y Descompresin. 2.6.8NC/Tecnologa de Datos Multimedia. 2.6.9NC/Computacin Mvil e Inalmbrica.

2.7PL. Lenguajes de Programacin (21 horas como mnimo) 2.7.1PL/Visin General de los Lenguajes de Programacin. (2 horas) 2.7.2PL/Mquinas Virtuales. (1 hora) 2.7.3PL/Introduccin a la Traduccin de Lenguajes. (2 horas) 2.7.4PL/Declaracin y Tipos. (3 horas) 2.7.5PL/Mecanismos de Abstraccin. (3 horas) 2.7.6PL/Programacin Orientada a Objetos. (10 horas) 2.7.7PL/Programacin Funcional. 2.7.8PL/Sistemas de Traduccin del Lenguaje. 2.7.9PL/Tipos. 2.7.10PL/Semntica de los Lenguajes de Programacin. 2.7.11PL/Diseo de Lenguajes de Programacin.

2.8HC. Interaccin Humano-Computador (8 horas como mnimo) 2.8.1HC/Fundamentos de la Interaccin Hombre-Computador (HCI) (6 horas) 2.8.2HC/Construccin de Interfaces Grficas de Usuario. (2 horas) 2.8.3HC/Evaluacin de Software Centrado en el usuario. 2.8.4HC/Desarrollo de Software Centrado en el Humano. 2.8.5HC/Diseo de la Interfaz de Usuario. 2.8.6HC/Programacin de Interfaces Grficas de Usuario. 2.8.7HC/Aspectos de Sistemas de Multimedia y Multimodales. 2.8.8HC/Aspectos de Colaboracin y Comunicacin. 2.8.9Diseo de interaccin para nuevos ambientes. 2.8.10Factores humanos y seguridad.

2.9GV. Computacin Grfica y Visual (3 horas como mnimo) 2.9.1GV/Tcnicas Fundamentales en Computacin Grfica y Visual. (2 horas) 2.9.2GV/Sistemas Grficos. (1 hora) 2.9.3GV/Comunicacin Grfica. 2.9.4GV/Modelamiento Geomtrico. 2.9.5GV/RenderingBsico. 2.9.6GV/RenderingAvanzado. 2.9.7GV/Tcnicas Avanzadas. 2.9.8GV/Animacin por Computador. 2.9.9GV/Visualizacin. 2.9.10GV/Realidad Virtual. 2.9.11GV/Visin Computacional. 2.9.12GV/Geometra Computacional. 2.9.13GV/Programacin de motores de juegos.

2.10IS. Sistemas Inteligentes (10 horas como mnimo) 2.10.1IS/Tpicos Fundamentales en Sistemas Inteligentes. (1 hora) 2.10.2IS/Bsqueda y Satisfaccin de la Restriccin. (5 horas) 2.10.3IS/Razonamiento basado en conocimiento. (4 horas) 2.10.4IS/Bsqueda Avanzada. 2.10.5IS/Representacin Avanzada del Conocimiento y Razonamiento. 2.10.6IS/Agentes. 2.10.7IS/Procesamiento de Lenguaje Natural. 2.10.8IS/Aprendizaje de Mquina. 2.10.9IS/Sistemas de Planeamiento. 2.10.10IS/Robtica. 2.10.11IS/Percepcin.

2.11IM. Administracin de Informacin (11 horas como mnimo) 2.11.1IM/Modelos de Informacin. (4 horas) 2.11.2IM/Sistemas de Base de Datos. (3 horas) 2.11.3IM/Modelamiento de Datos. (4 horas) 2.11.4IM/Indexacin. 2.11.5IM/Base de Datos Relacionales. 2.11.6IM/Lenguajes de Consultas de Base de Datos. 2.11.7IM/Diseo de Bases de Datos Relacionales. 2.11.8IM/Procesamiento de Transacciones. 2.11.9IM/Bases de Datos Distribuidas. 2.11.10IM/Diseo Fsico de Bases de Datos. 2.11.11IM/Minera de Datos. 2.11.12IM/Almacenamiento y Recuperacin de Informacin. 2.11.13IM/Hipermedia. 2.11.14IM/Sistemas Multimedia. 2.11.15IM/Libreras Digitales.

2.12SP. Asuntos Sociales y Profesionales (16 horas como mnimo) 2.12.1SP/Historia de la Computacin. (1 hora) 2.12.2SP/Contexto Social de la Computacin. (3 horas) 2.12.3SP/Herramientas Analticas. (2 horas) 2.12.4SP/tica Profesional. (3 horas) 2.12.5SP/Riesgos. (2 horas) 2.12.6SP/Operaciones de seguridad. 2.12.7SP/Propiedad Intelectual. (3 horas) 2.12.8SP/Privacidad y Libertades Civiles. (2 horas) 2.12.9SP/Crimen Informtico. 2.12.10SP/Economa en Computacin. 2.12.11SP/Estructuras de Trabajo Filosficas.

2.13SE. Ingeniera de Software (29 horas como mnimo) 2.13.1SE/Diseo de Software. (8 horas) 2.13.2SE/Usando APIs. (3 horas) 2.13.3SE/Herramientas y Entornos de Software. (3 horas) 2.13.4SE/Procesos de Software. (2 horas) 2.13.5SE/Especificacin de Requerimientos. (4 horas) 2.13.6SE/Validacin y verificacin de software. (3 horas) 2.13.7SE/Evolucin del Software. (3 horas) 2.13.8SE/Administracin de Proyectos de Software. (3 horas) 2.13.9SE/Computacin Basada en Componentes. 2.13.10SE/Mtodos Formales. 2.13.11SE/Confiabilidad del Software. 2.13.12SE/Desarrollo de Sistemas Especializados. 2.13.13SE/Evaluacin de riesgos. 2.13.14SE/Mejorando la programacin: robustez y seguridad. 2.13.15CN. Ciencia Computacional (Sin mnimo de horas)) 2.13.16CN/Modelamiento y Simulacin. 2.13.17CN/Investigacin de Operaciones. 2.13.18CN/Computacin Paralela.

2.1DS. Matemticas Discretas (43 horas como mnimo)DS/Funciones, Relaciones y Conjuntos. (6 horas)DS/Lgica Bsica. (10 horas)DS/Tcnicas de Prueba. (12 horas)DS/Conceptos Bsicos de Conteo. (5 horas)DS/Grfos y rboles. (4 horas)DS/Probabilidad Discreta. (6 horas)

El rea de Estructuras discretas es algo fundamental en ciencia de la computacin. Relativamente pocos cientficos en computacin trabajarn especficamente en estructuras discretas, pero muchas otras reas de ciencia de la computacin requieren la habilidad para trabajar con conceptos de estructuras discretas. Estructuras discretas incluyen aspectos importantes de reas como: teora de conjuntos, lgica, teora de grafos y combinatoria (rama que estudia grupos aislados y problemas de combinacin).Los conocimientos de estructuras discretas son muy importantes en las reas de estructuras de datos y algoritmos, sin embargo, aparecen en todo lugar dentro de ciencia de la computacin como un todo. Por ejemplo, la habilidad para crear y entender una prueba - una prueba simblica formal o una menos formal pero aun con argumentos matemticamente rigurosos - es esencial para una especificacin formal, en verificacin, en bases de datos y en criptografa. Conceptos de teora de grafos son usados en redes, sistemas operativos y compiladores. Conceptos de teora de conjuntos son usados en ingeniera de software y bases de datos.Mientras el campo de ciencia de la computacin madura, ms y ms tcnicas sofisticadas de anlisis son aplicados a problemas prcticos. Para entender las tcnicas computacionales del futuro, los estudiantes de hoy en da necesitarn una fuerte base en estructuras discretas.Finalmente, es importante notar que algunas reas tienen lmites algo difusos, esto es especialmente verdad en estructuras discretas. Hemos recopilado en este documento un material de naturaleza matemtica que la educacin de ciencia de la computacin debe incluir y que educadores de ciencia de la computacin deben conocer lo suficiente para poder especificarlo con mucho detalle. Sin embargo, la decisin de donde colocar una lnea de divisin entre esta rea y el rea Algoritmos y Complejidad, fue inevitablemente arbitraria. Recordamos a los lectores que estos son tpicos de estas dos reas que algunas universidades incluirn en cursos con ttulos como ``Estructuras Discretas" y ``Matemticas Discretas"; algunas requerirn un curso o dos. En abril 2007, el SIGCSECommittee on the Implementation of a Discrete Mathematics Coursepublic un reporte detallando tres modelos para un curso de matemticas discretas de un semestre para reunir los criterios articulados en CS2001; estos modelos quedan aplicados bajo las sugerencias levemente revisadas en este reporte temporal. VerSIGCSE Committee Report On the Implementation of a Discrete Mathematics Course

Subsecciones 2.1.1DS/Funciones, Relaciones y Conjuntos. (6 horas) 2.1.2DS/Lgica Bsica. (10 horas) 2.1.3DS/Tcnicas de Prueba. (12 horas) 2.1.4DS/Conceptos Bsicos de Conteo. (5 horas) 2.1.5DS/Grfos y rboles. (4 horas) 2.1.6DS/Probabilidad Discreta. (6 horas)2.1.1DS/Funciones, Relaciones y Conjuntos. (6 horas)Tpicos Funciones subyectivas, inyectivas, inversos, composicin). Relaciones (reflexibilidad, simetra, transitividad, relaciones de equivalencia). Conjuntos (Diagramas de Venn, complementos, producto cartesiano, conjuntos potencia). Principio de las casillas (pigeonhole). Cardinalidad y Conteo.Objetivos Explicar con ejemplos la terminologa bsica de funciones, relaciones y conjuntos. Desarrollar las operaciones asociadas con conjuntos, funciones y relaciones. Relacionar ejemplos prcticos al modelo apropiado de conjunto, funcin o relacin e interpretar la operacin asociada y terminologa en el contexto. Demostrar los principios bsicos del conteo, incluyendo el uso de la diagonalizacin y el principio de las casillas (pigeonhole).

2.1.2DS/Lgica Bsica. (10 horas)Tpicos Lgica proposicional. Conectivos lgicos. Tablas de verdad. Formas normales (conjuntiva y disyuntiva). Validacin. Lgica de predicados. Cuantificacin universal y existencial. Modus ponensymodus tollens. Limitaciones de la lgica de predicados.Objetivos Aplicar mtodos formales de lgica simblica proposicional y de predicados. Describir como las herramientas formales de lgica simblica son utilizadas para modelar algoritmos en situaciones reales. Usar demostraciones lgico-formales y razonamiento lgico para solucionar problemas tales como rompecabezas (puzzles). Describir la importancia y limitaciones de la lgica de predicados.

2.1.3DS/Tcnicas de Prueba. (12 horas)Tpicos Nociones de implicacin, opuesta, inversa, contrapositiva, negacin y contradiccin. La estructura de pruebas matemticas. Pruebas directas. Pruebas por contra-ejemplos. Pruebas por contraposicin. Pruebas por contradiccin. Induccin Matemtica. Induccin fuerte. Definiciones matemticas recursivas. Buenas prcticas.Objetivos Bosquejar la estructura bsica y dar ejemplos de cada tipo de prueba descrita en esta unidad. Discutir que tipo de prueba es mejor para un problema dado. Relacionar las ideas de induccin matemtica con la recursividad y con estructuras definidas recursivamente. Identificar las diferencias entre induccin matemtica e induccin fuerte dando ejemplos de su apropiado uso en cada caso.

2.1.4DS/Conceptos Bsicos de Conteo. (5 horas)Tpicos Argumentos de conteo.a)Reglas de suma y producto.b)Principios de inclusin y exclusin.c)Progresiones aritmticas y geomtricas.d)Nmeros de Fibonacci. Principio de las casillas (pigeonhole). Permutaciones y combinaciones.a)Definiciones bsicas.b)Identidad de Pascal.c)El teorema binomial. Resolucin de relaciones de recurrencia.a)Ejemplos comunes.b)El teorema maestro.Objetivos Calcular permutaciones y combinaciones de un conjunto e interpretar el significado en el contexto de una aplicacin particular. Establecer la definicin del Teorema Maestro. Solucionar una clase de ecuaciones recurrentes bsicas. Analizar un problema para crear ecuaciones de recurrencia relevantes o identificar preguntas importantes de conteo.

2.1.5DS/Grfos y rboles. (4 horas)Tpicos rboles. Grafos no dirigidos. Grafos dirigidos. rboles de expansin. Estrategias de recorrido.Objetivos Ilustrar con ejemplos la terminologa bsica de teora de grafos y algunas de las propiedades y casos especiales de cada una. Mostrar diferentes mtodos de recorrido en rboles y grafos. Modelar problemas en Ciencias de la Computacin usando grafos y rboles. Relacionar grafos y rboles con estructura de datos, algoritmos y conteo.

2.1.6DS/Probabilidad Discreta. (6 horas)Tpicos Espacios de probabilidad finita, medidas de probabilidad y eventos. Probabilidad condicional, independencia, teorema de Bayes. Variables aleatorias enteras, esperanza.Objetivos Calcular las probabilidades de eventos y la esperanza de variables aleatorias para problemas elementales como juegos de azar. Diferenciar entre eventos dependientes e indepedientes. Aplicar el teorema del binomio a eventos independientes y el teorema Bayes a eventos dependientes. Aplicar las herramientas de probabilidad para resolver problemas tales como el mtodo de Monte Carlo y el anlisis de caso promedio de algoritmos y (hashing).

2.2PF. Fundamentos de Programacin (47 horas como mnimo)PF/Construcciones fundamentales. (9 horas)PF/Algoritmos y Resolucin de Problemas. (6 horas)PF/Estructuras de Datos. (10 horas)PF/Recursividad. (4 horas)PF/Programacin Orientada a Eventos. (4 horas)PF/Orientacin a Objetos. (8 horas)PF/Fundamentos de seguridad de la Informacin. (4 horas)PF/Programacin segura. (2 horas)

La fluidez en un lenguaje de programacin es un requisito para estudiar la mayor parte de ciencia de la computacin. Los programas de ciencia de la computacin deben ensear a sus estudiantes como usar bien al menos un lenguaje de programacin; adems, deben ensear a sus estudiantes a ser competentes en lenguajes que hacen uso de los paradigmas orientados a objetos y basados en eventos.Esta rea de conocimiento incluye aquellas habilidades y conceptos que son esenciales para la prctica de la programacin independiente de los paradigmas. Como resultado, esta rea incluye unidades de conceptos fundamentales de programacin, estructuras de datos bsicas, procesos algortmicos y seguridad bsica. Estas unidades, sin embargo, no cubren toda la gama de conocimientos de programacin que un estudiante de ciencia de la computacin debe conocer. Muchas de las otras reas -en particular Lenguajes de Programacin (Programming Languages - LP) e Ingeniera de Software (Software Engineer - SE) - tambin contienen unidades relacionadas con programacin que son parte del ncleo de pregrado. En la mayora de los casos, estas unidades de igual manera podran haber sido asignadas a Fundamentos de Programacin o a otra rea mas avanzada.

Subsecciones 2.2.1PF/Construcciones fundamentales. (9 horas) 2.2.2PF/Algoritmos y Resolucin de Problemas. (6 horas) 2.2.3PF/Estructuras de Datos. (10 horas) 2.2.4PF/Recursividad. (4 horas) 2.2.5PF/Programacin Orientada a Eventos. (4 horas) 2.2.6PF/Orientacin a Objetos. (8 horas) 2.2.7PF/Fundamentos de seguridad de la Informacin. (4 horas) 2.2.8PF/Programacin segura. (2 horas)

2.2.1PF/Construcciones fundamentales. (9 horas)Tpicos Sintaxis bsica y semntica de un lenguaje de ms alto nivel. Variables, tipos, expresiones y asignaciones. Entrada y salida simple. Estructuras de control condicionales e iterativas. Funciones y paso de parmetros. Descomposicin estructurada.Objetivos Analizar y explicar el comportamiento de programas simples involucrando las estructuras de programacin fundamental cubiertas por esta unidad. Modificar y extender programas cortos que usan condicionales estndar, estructuras de control iterativas y funciones. Disear, implementar, probar y depurar un programa que use cada una de las siguientes estructuras fundamentales de programacin: clculos bsicos, entrada y salida simple, estructuras estndar condicionales e iterativas y definicin de funciones. Escoger la estructura apropiada condicional e iterativa para una estructura de programacin dada. Aplicar tcnicas de descomposicin estructurada o funcional para dividir un programa en pequeas partes. Describir los mecanismos de paso de parmetros.

2.2.2PF/Algoritmos y Resolucin de Problemas. (6 horas)Tpicos Estrategias para la solucin de problemas. El rol de los algoritmos en el proceso de solucin de problemas. Estrategias de implementacin para algoritmos. Estrategias de depuracin. El Concepto y propiedades de algoritmos.Objetivos Discutir la importancia de los algoritmos en el proceso de solucin de problemas. Identificar las propiedades necesarias de un buen algoritmo. Crear algoritmos para resolver problemas simples. Usar pseudocdigo o un lenguaje de programacin para implementar, probar y depurar algoritmos para resolver problemas simples. Describir estrategias tiles para depuracin.

2.2.3PF/Estructuras de Datos. (10 horas)Tpicos Representacin de datos numricos Rango, precisin y errores de redondeo. Arreglos. Registros. Cadenas y procesamiento de cadenas. Representacin de caracteres. Administracin del almacenamiento en tiempo de ejecucin. Punteros y referencias. Estructuras enlazadas. Estrategias de implementacin para pilas, colas y tablashash. Estrategias de implementacin para grafos y rboles. Estrategias para escoger la estructura de datos correcta.Objetivos Describir la representacin de datos numricos y de caracteres Entender como la precisin y el redondeo puede afectar los clculos numricos. Discutir la representacin y uso de tipos de datos primitivos y estructuras de datos incorporadas en el lenguaje. Describir aplicaciones comunes para cada estructura de datos en la lista de temas. Implementar estructuras de datos definidas por el usuario en un lenguaje de alto nivel. Comparar implementaciones alternativas de estructuras de datos considerando su desempeo. Escribir programas que usan cada una de las siguientes estructuras de datos: arreglos, registros, cadenas, listas enlazadas, pilas, colas y tablas dehash. Comparar y contrastar los costos y beneficios de las implementaciones dinmicas y estticas de las estructuras de datos. Escoger la estructura de datos apropiada para modelar un problema dado.

2.2.4PF/Recursividad. (4 horas)Tpicos El concepto de recursividad. Funciones matemticas recursivas. Funciones recursivas simples. Estrategias de dividir y conquistar. Backtrackingrecursivo.Objetivos Describir el concepto de recursividad y dar ejemplos de su uso. Identificar el caso base y el caso general de un problema definido recursivamente. Comparar soluciones iterativas y recursivas para problemas elementales tal como factorial. Describir la tcnica dividir y conquistar. Implementar, probar y depurar funciones y procedimientos recursivos simples. Describir como la recursividad puede ser implementada usando una pila. Discutir problemas para los cuales elbacktrackinges una solucin apropiada. Determinar cuando una solucin recursiva es apropiada para un problema.

2.2.5PF/Programacin Orientada a Eventos. (4 horas)Tpicos Mtodos para la manipulacin de eventos. Propagacin de eventos. Manejo de excepciones.Objetivos Explicar la diferencia entre programacin orientada a eventos y programacin por lnea de comandos. Disear, codificar, probar y depurar programas de manejo de eventos simples que respondan a eventos del usuario. Desarrollar cdigo que responda a las condiciones de excepcin lanzadas durante la ejecucin.

2.2.6PF/Orientacin a Objetos. (8 horas)Tpicos Diseo orientado a objetos. Encapsulacin y ocultamiento de la informacin. Separacin de comportamiento e implementacin. Clases y subclases. Herencia (sobreescritura, despacho dinmico). Polimorfismo (polimorfismo de subtipo vs. herencia).Objetivos Justificar la filosofa de diseo orientado a objetos y los conceptos de encapsulacin, abstraccin, herencia y polimorfismo. Disear, implementar, probar y depurar programas simples en un lenguaje de programacin orientado a objetos. Describir como los mecanismos de clases soportan encapsulacin y ocultamiento de la informacin. Disear, implementar y probar la implementacion de la relacin es-unIsKindOfentre objetos usando jerarqua de clases y herencia. Comparar y contrastar las nociones de sobrecarga y sobreescritura de mtodos en un lenguaje orientado a objetos.

2.2.7PF/Fundamentos de seguridad de la Informacin. (4 horas)Tpicos Rol y propsito de de la seguridad en las computadoras y redes. Objetivos de seguridad: confidencialidad, integridad y disponibilidad. Polticas y estndares de seguridad. Mentalidad orientada a la seguridad. Defensa en profundidad. Amenazas comunes:worms, virus, troyanos, bloqueo de acceso a servicios. Estimacin de riesgos y anlisis de costo beneficio. Seguridad vs usabilidad.Objetivos Explicar los objetivos de lse seguridad de la informacin. Analizar los puntos de equilibrio inherentes a la seguridad. Explicar la importancia y las aplicaciones de la confidencialidad, integridad y disponibilidad. Entender las categoras bsicas de las amenazas a las computadoras y redes. Discutir problemas para crear polticas de seguridad para una organizacin de gran tamao. Defender la necesidad de ls proteccin y la seguridad y el rol de consideraciones ticas en el uso de computadores.

2.2.8PF/Programacin segura. (2 horas)Tpicos Validaciones importantes para evitar desbordes en array y cadenas. Construcciones en lenguajes de programacin para evitar problemas de seguridad. Cmo los atacantes usan el desborde para destruir la pila (stack) en tiempo de ejecucin.Objetivos Reescribir un simple programa para remover una simple vulnerabilidad. Explicar porque es o no es posible el desborde en un lenguaje de programacin de dominio del estudiante. Explicar porque una o ms construcciones de lenguaje pueden originar problemas de seguridad como desborde.

2.3AL. Algoritmos y Complejidad (31 horas como mnimo)AL/Anlisis Bsico de Algoritmos. (4 horas)AL/Estrategias Algortmicas. (6 horas)AL/Algoritmos Fundamentales. (12 horas)AL/Algoritmos Distribuidos. (3 horas)AL/Computabilidad Bsica. (6 horas)AL/Clases de Complejidad P y NP.AL/Teora de Autmatas.AL/Anlisis Avanzado de Algoritmos.AL/Algoritmos Criptogrficos.AL/Algoritmos Geomtricos.AL/Algoritmos Paralelos.

Los algoritmos son fundamentales para la ciencia de la computacin y la ingeniera de software. El desempeo que muestra un sistema de software en el mundo real depende de solo dos cosas: (1) los algoritmos elegidos y (2) la idoneidad y la eficiencia de las distintas capas de la implementacin. Por lo tanto, un buen diseo de algoritmos es crucial para el desempeo de todos los sistemas de software. Ms aun, el estudio de algoritmos permite comprender la naturaleza intrnseca del problema, as como las posibles tcnicas de solucin independientemente del lenguaje de programacin, paradigma de programacin, hardware o algn otro aspecto de la implementacin.Una parte importante de la computacin es la habilidad de seleccionar algoritmos apropiados para propsitos particulares y aplicarlos en ellos, reconociendo la posibilidad de que no existan algoritmos idneos. Esta facilidad recae en entender el rango de algoritmos que atacan un conjunto importante de problemas bien definidos, reconociendo sus fortalezas y debilidades y su idoneidad en un contexto en particular. La eficiencia es un tema que se ve todo momento en esta rea.Con el surgimiento de procesadores de varios ncleos, los temas de algoritmos en paralelo son ms relevantes. Mientras que los temas de paralelismo siguen siendo listados como electivos, el comit cree que el rol del paralelismo en la currcula necesita ser considerada.

Subsecciones 2.3.1AL/Anlisis Bsico de Algoritmos. (4 horas) 2.3.2AL/Estrategias Algortmicas. (6 horas) 2.3.3AL/Algoritmos Fundamentales. (12 horas) 2.3.4AL/Algoritmos Distribuidos. (3 horas) 2.3.5AL/Computabilidad Bsica. (6 horas) 2.3.6AL/Clases de Complejidad P y NP. 2.3.7AL/Teora de Autmatas. 2.3.8AL/Anlisis Avanzado de Algoritmos. 2.3.9AL/Algoritmos Criptogrficos. 2.3.10AL/Algoritmos Geomtricos. 2.3.11AL/Algoritmos Paralelos.

2.3.1AL/Anlisis Bsico de Algoritmos. (4 horas)Tpicos Anlisis asinttico de lmites en los casos promedio y superior. Identificar la diferencias entre el comportamiento entre el mejor, mediano y peor caso. Notacin Big,little,OmegayTheta. Clases de complejidad estndar. Medicin emprica de desempeo. Puntos de equilibrio entre tiempo vs espacio en algoritmos. Uso relaciones de recurrencia para el anlisis de algoritmos recursivos.Objetivos Explicar el uso de las notaciones Big O,OmegayThetapara describir la cantidad de trabajo hecha por un algoritmo. Uso de notaciones Big,OmegayThetapara determinar los lmites asintticos superior, inferior y el ms prximo en tiempo y espacio en complejidad de algoritmos . Determinar la complejidad de tiempo y espacio de algoritmos simples. Deducir la relacin de recurrencia que describe la complejidad de tiempo de algoritmos definidos recursivamente. Solucionar relaciones de recurrencia elemental.

2.3.2AL/Estrategias Algortmicas. (6 horas)Tpicos Algoritmos de fuerza bruta (brute-force). Algoritmos voraces (greedy). Divide y vencers. Backtracking. Branch-and-bound. Heursticos. Emparejamiento de patrones y algoritmos de cadenas/texto. Algoritmos de aproximacin numrica.Objetivos Describir las desventajas de los algoritmos de fuerza bruta. Para cada una de las diferentes clases de algoritmos (fuerza bruta, voraces, dividir y conquistar,Backtracking,Branch-and-boundy heursticos), identificar un ejemplo del comportamiento humano cotidiano que ejemplifique el concepto bsico. Implementar un algoritmo voraz para resolver apropiadamente un problema. Implementar un algoritmo de divide y vencers para solucionar apropiadamente un problema. UtilizarBacktrackingpara solucionar problemas tal como el de navegacin en un laberinto. Describir varios mtodos de solucin de problemas heursticos. Utilizar emparejamiento de patrones para analizar subcadenas. Utilizar aproximacin numrica para resolver problemas matemticos, tal como el de encontrar las races de un polinomio.

2.3.3AL/Algoritmos Fundamentales. (12 horas)Tpicos Algoritmos numricos simples. Bsqueda secuencial y binaria. Algoritmos cuadrticos de ordenamiento (seleccin, insercin). Algoritmos de tipo(Quicksort, heapsort, mergesort). Tablas de (hash) incluyendo estrategias de solucin para las colisiones. rboles de bsqueda binaria. Representacin de grafos (Listas y Matrices de adyacencia). Recorridos por amplitud y profundidad. El algoritmo del camino ms corto (algoritmos de Dijkstra y Floyd). Cerradura transitiva (algoritmo de Floyd). rbol de expansin mnima (algoritmos de Kruskal y Prim). Ordenamiento Topolgico.Objetivos Implementar los algoritmos cuadrticos ms comunes y los algoritmos de ordenamiento. Disear e implementar una funcin de (hash) apropiada para una aplicacin. Disear e implementar un algoritmo de resolucin de colisiones para tablas dehash. Discutir la eficiencia computacional de los principales algoritmos de ordenamiento, bsqueda y (hashing). Discutir otros factores, adems de la eficiencia computacional, que influyen en la eleccin de los algoritmos, tales como tiempo de programacin, mantenimiento y el uso de patrones especficos de aplicacin en los datos de entrada. Resolver problemas usando los algoritmos de grafos fundamentales, incluyendo bsqueda por amplitud y profundidad; caminos ms cortos con uno y mltiples orgenes, cerradura transitiva, ordenamiento topolgico y al menos un algoritmo de rbol de expansin mnima. Demostrar las siguientes capacidades: evaluar algoritmos, seleccionar una opcin de un rango posible, proveer una justificacin para tal eleccin e implementar el algoritmo..

2.3.4AL/Algoritmos Distribuidos. (3 horas)Tpicos Consenso y eleccin. Deteccin de finalizacin. Tolerancia a fallas. Estabilizacin.Objetivos Explicar el paradigma distribuido. Explicar un algoritmo distribuido simple. Determinar cuando usar los algoritmos de consenso o eleccin. Distinguir entre relojes fsicos y lgicos. Describir el ordenamiento relativo de eventos en un algoritmo distribuido.

2.3.5AL/Computabilidad Bsica. (6 horas)Tpicos Mquinas de estado finito. Gramticas libres del contexto. Problemas tratables e intratables. Funciones no computables. El problema de la parada. Implicaciones de la no-computabilidad.Objetivos Discutir el concepto de mquinas de estado finito. Explicar las gramticas libres de contexto. Disear una mquina de estados finitos determinstica para aceptar un lenguage especfico. Explicar cmo algunos problemas no tienen solucin algortmica. Proveer ejemplos que ilustren el concepto de no-computabilidad.

2.3.6AL/Clases de Complejidad P y NP.Tpicos Definicin de las clases P y NP. NP-completitud (El teorema de Cook). Problemas NP-completos estndares. Tcnicas de reduccin.Objetivos Definir las clases P y NP. Explicar el significado de la NP-Completitud. Probar que un problema es NP-completo reducciendo un problema NP-Completo clsico conocido a ste.

2.3.7AL/Teora de Autmatas.Tpicos Autmatas finitos determinsticos (DFAs). Autmatas finitos no determinsticos (NFAs). Equivalencias entre los DFAs y NFAs. Expresiones regulares. El teorema del bombeo (pumping) para expresiones regulares. Autmatas de pila (PDAs). Relacin entre los PDAs y las gramticas libres del contexto. Propiedades de las gramticas libres del contexto. Mquinas de Turing. Mquinas de Turing no determinsticas. Conjuntos y lenguajes. La jerarqua de Chomsky. La tesis de Church-Turing.Objetivos Determinar la localizacin de un lenguaje en la jerarqua de Chomsky (conjuntos regulares, libres del contexto, sensibles al contexto y lenguajes enumerables recursivos). Probar que un lenguaje se encuentra en una clase especfica y que este no se encuentra en la siguiente clase inferior. Conversiones entre notaciones potentes equivalentes para un lenguaje, incluyendo conversiones entre DFAs, NFAs y expresiones regulares as como entre PDAs y CFGs. Explicar al menos un algoritmo de de anlisis de arriba hacia abajo (parsing top-down) o de anlisis de abajo hacia arriba (bottom-up). Explicar la tesis de Church-Turing y su importancia.

2.3.8AL/Anlisis Avanzado de Algoritmos.Tpicos Anlisis amortizado. Algoritmos en lnea (online) y fuera de lnea (offline). Algoritmos aleatorios. Programacin dinmica. Optimizacin combinatoria.Objetivos Usar el mtodo potencial para proveer un anlisis amortizado sobre una estructura de datos no vista previamente dando la funcin potencial. Explicar porqu el anlisis competitivo es una medida apropiada para los algoritmos en lnea. Explicar el uso de aleatorizacin en el diseo de algoritmos para un problema donde un algoritmo determinstico es desconocido o mucho ms difcil. Disear e implementar soluciones con programacin dinmica para un problema.

2.3.9AL/Algoritmos Criptogrficos.Tpicos Revisin histrica de la criptografa. Criptografa de llaves privadas y el problema del intercambio de llaves. Criptografa de llaves pblicas. Firmas digitales. Protocolos de seguridad. Aplicaciones (pruebas de cero-conocimiento, autenticacin y otros).Objetivos Describir algoritmos numrico-tericos bsicos eficientes, incluyendo el mximo comn divisor, inversa multiplicativa mod n y elevar a potencias mod n. Describir al menos un cripto-sistema de llave pblica, incluyendo una suposicin necesaria de complejidad terica sobre su seguridad. Crear extensiones simples de protocolos criptogrficos, usando protocolos conocidos y primitivas criptogrficas.

2.3.10AL/Algoritmos Geomtricos.Tpicos Segmentos de lneas: propiedades, intersecciones. Algoritmos de generacin del polgono convexo mnimo (convex hull).Objetivos Describir y dar un anlisis de tiempo para al menos dos algoritmos para obtencin del polgono convexo mnimo (convex hull). Justificar la cota inferiorpara encontrar el polgono convexo mnimo (convex hull). Describir adicionalmente al menos un algoritmo geomtrico computacional eficiente, tal como el de encontrar el par ms cercano de puntos, capas convexas o capas mximas.

2.3.11AL/Algoritmos Paralelos.Tpicos El modelo PRAM. Lecturas y escrituras exclusivas vs concurrentes. Salto de punteros. El teorema de Brent y el trabajo eficiente.Objetivos Describir la implementacin de lstas enlazadas en un PRAM. Usar operaciones paralelas para implementar clculos simples eficientes en paralelo. Explicar el teorema de Brent y su relevancia.

2.4AR. Arquitectura y Organizacin (36 horas como mnimo)AR/Lgica Digital y Representacin de Datos. (7 horas)AR/Arquitectura y Organizacin de Computadores. (9 horas)AR/Interfases y Estrategias de I/O. (3 horas)AR/Arquitectura de Memoria. (5 horas)AR/Organizacin Funcional. (6 horas)AR/Multiprocesamiento. (6 horas)AR/Mejoras de Desempeo.AR/Arquitecturas Distribuidas.AR/Dispositivos.AR/Tendencias en Computacin.

El computador se encuentra en el corazn de la computacin. Sin l, la mayora de las disciplinas de computacin hoy en da seran ramas de la matemtica terica. Un prefesional de cualquier rea de computacin no debe pensar en el computador como slo una caja negra que ejecuta programas como magia. Todos los estudiantes de computacin deben adquirir algn entendimiento y apreciacin acerca de los componentes funcionales del computador, sus caractersticas, su desempeo y sus interacciones. Los estudiantes deben entender la arquitectura del computador para poder hacer un mejor uso de herramientas de software y lenguajes del computador que usan para crear programas. En esta introduccin, el trmino arquitectura es tomado para incluir el conjunto de instrucciones de mquina (la abstraccin del computador que tiene el programador), organizacin o microarquitectura (la implementacin interna de una computadora al nivel de la unidad funcional y de registros) y la arquitectura del sistema (la organizacin de una computador al nivel de cach y bus). Los estudiantes deben tambin entender las compensaciones complejas entre la velocidad del reloj de la CPU, tamao del cach, organizacin de bus, nmero de los ncleos de los procesadores, etc. La arquitectura del computador tambin fortalece otras reas de la curricula de computacin como son sistemas operativos (entrada/salida, tecnologa de memorias) y lenguajes de alto nivel (punteros, paso de parmetros).Los objetivos de aprendizaje especificados para este tema corresponden primeramente al ncleo y estn destinadas a apoyar programas que requieran slo el mnimo de 36 horas de arquitectura del computador. Para programas que deseen ensear ms del mnimo, los mismos temas pueden ser tratados en un nivel ms alto implementando una secuencia de dos cursos. Para programas que deseen cubrir temas electivos, esos temas deben ser introducidos en una secuencia de dos cursos y/o pueden ser tratados en una forma ms comprensiva en un tercer curso.

Subsecciones 2.4.1AR/Lgica Digital y Representacin de Datos. (7 horas) 2.4.2AR/Arquitectura y Organizacin de Computadores. (9 horas) 2.4.3AR/Interfases y Estrategias de I/O. (3 horas) 2.4.4AR/Arquitectura de Memoria. (5 horas) 2.4.5AR/Organizacin Funcional. (6 horas) 2.4.6AR/Multiprocesamiento. (6 horas) 2.4.7AR/Mejoras de Desempeo. 2.4.8AR/Arquitecturas Distribuidas. 2.4.9AR/Dispositivos. 2.4.10AR/Tendencias en Computacin.

2.4.1AR/Lgica Digital y Representacin de Datos. (7 horas)Tpicos Introduccin a la lgica digital (compuertas lgicas, flip-flops, circuitos). Expresiones lgicas y expresiones booleanas. Representacin datos numricos. Aritmtica con signo y sin signo. Rango, precisin y errores en aritmti