Está en la página 1de 95

UNIVERSIDAD NACIONAL DE INGENIERA

Propuesta de creacin de la Escuela Profesional de Ciencia de la Computacin en la Facultad de Ciencias

Comisin que elabor la propuesta: Dr. C. Javier Solano S. (Coordinador) Mg. William Echegaray Castillo Dr. Roger Metzger Alvn Lic. Leopoldo Paredes Soria Lic. Alejandro Hidalgo Gordillo Dr. Alberto Lutgardo Yaez *

MARZO 2010 ____________________________________________________


* se incorpor a la comisin a fines del 2008 como representante de INICTEL-UNI.

Resumen
Este documento es el proyecto de creacin de la Escuela Profesional de Ciencia de la Computacin de la Universidad Nacional de Ingeniera (UNI), que fue encomendado por el Dr. Pedro Canales Garca a inicios del 2007, siendo Decano de la Facultad de Ciencias. Una parte del contenido de este documento est basado en el estndar internacional denominado Computing Currcula en la especialidad de Ciencia de la Computacin 1 y fue desarrollado con el apoyo de la Sociedad Peruana de Computacin. Otra parte muy importante es la orientacin de la carrera en la lnea de investigacin de computacin distribuida, con nfasis en las nuevas tecnologas de Computacin Grid y multi-ncleo, en colaboracin con INICTEL-UNI2 . La computacin hoy en da presenta cinco perfiles profesionales claramente definidos: Ciencia de la Computacin - CC (Computer Science - CS) Ingeniera de Computacin - IC (Computer Engineering - CE) Ingeniera de Software - IS (Software Engineering - SE) Sistemas de Informacin - SI (Information Systems - IS) Tecnologa de la Informacin - TI (Information Technology - IT)

Los pilares fundamentales que consideramos en esta propuesta curricular son: Una slida formacin profesional en la especialidad de Ciencia de la Computacin, Preparacin para la generacin de empresas de base tecnolgica, Una slida formacin tica y proyeccin a la sociedad

Estos pilares redundarn en la formacin de profesionales que se puedan desempear en cualquier parte del mundo y que participen como profesionales preparados en el rea de la Ciencia de la Computacin en el desarrollo de la Industria de Software de nuestro pas.

1 2

http://www.acm.org//education/curricula/ComputerScience2008.pdf particularmente con el apoyo esencial del Dr. Alberto Lutgardo de INICTEL-UNI

1. Introduccin
Definicin y alcance de la Ciencia de la Computacin
La 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 Association for Computing Machinery (ACM), IEEE Computer Society (IEEE-CS) y la Association for Information Systems (AIS). Estas tres organizaciones propusieron la Computing Curricula en el documento denominado: Joint Task Force for Computing Curricula 2005. Overview Report [Shakelford et al., 2005]. La Ciencia de la Computacin es un trmino de origen estadounidense - Computer Science (CS). Este trmino es conocido tambin como informtica en el mbito europeo3. A nivel internacional, la computacin presenta cinco perfiles profesionales claramente definidos: Ciencia de la Computacin - CC (Computer Science - CS) [Chang et al., 2001] Ingeniera de Computacin - IC (Computer Engineering - CE) [Soldan et al., 2004] Ingeniera de Software -IS (Software Engineering - SE) [Daz-Herrera and Hilburn, 2004] Sistemas de Informacin -SI (Information Systems - IS) [Gorgone et al., 2002b] Tecnologa de la Informacin - TI (Information Technology - IT) [ACM and IEEECS, 2005]

Fig. 1: Campo de accin de la Ciencia de la Computacin La Figura 1 es tomada de la definicin propuesta en la Computing Currcula [Chang et al., 2001, Shakelford et al., 2005] en el rea de Ciencia de la Computacin - CC). La CC cubre la mayor parte del espectro acadmico y de investigacin en computacin (entre el extremo superior y el extremo inferior en la figura 1). La Ciencia de la Computacin cubre un amplio rango, desde sus fundamentos tericos y algortmicos hasta los ltimos desarrollos en computacin paralela, robtica, visin por
3

Segn el diccionario de la Real Academia de la Lengua Espaola (http://www.rae.es) ambos trminos son sinnimos.

computadora, sistemas inteligentes, bioinformtica y otras reas igualmente importantes. El trabajo de un cientfico de la computacin pertenece a las siguientes tres categoras: Desarrollo de nuevas formas de uso para las computadoras. El progreso de la Ciencia de la Computacin en lo que respecta a las aplicaciones de redes, bases de datos e interfaces humano-computadora permitieron el desarrollo de la World Wide Web 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 descifrar los secretos del ADN humano. 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. Diseo e implementacin de software. Los cientficos de computacin se encargan de complejas labores de programacin, desde el diseo hasta la implementacin del software. Tambin supervisan a otros programadores, hacindolos conscientes de nuevas aproximaciones.

La Ciencia de la Computacin cubre todo el rango desde la teora hasta la programacin. Mientras otras disciplinas producen titulados preparados para trabajos especficos, la Ciencia de la Computacin ofrece un amplio fundamento que permite a sus titulados adaptarse a nuevas tecnologas y nuevas ideas. El profesional en Ciencia de la Computacin est preparado para participar en casi todas las reas relacionadas con la computacin. Puede desarrollar software que permita el funcionamiento del hardware y de diferentes dispositivos electrnicos. Tambin puede ayudar a que los sistemas de informacin operen correctamente en las organizaciones y genera la tecnologa para que otras reas relacionadas se desarrollen adecuadamente. El profesional en Ciencia de la Computacin disea y desarrolla todo tipo de software, desde infraestructura de plataformas (sistemas operativos, programas de comunicacin, etc.) hasta aplicacin de tecnologa (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) para CC se estrecha y finaliza en la medida que nos movamos hacia la aplicacin y configuracin de productos.

2. Perfil Profesional
El perfil de este programa profesional puede ser mejor entendido a partir de la Fig. 1. Este profesional tiene como centro de su estudio a la computacin. Es decir, tiene a la computacin como fin y no como medio. De acuerdo a la definicin de esta rea, este profesional est llamado directamente a ser un impulsor del desarrollo de nuevas tcnicas computacionales que puedan ser tiles a nivel local, nacional e internacional, generando puestos de empleo a travs de la innovacin permanente y de la formacin de empresas de base tecnolgica. La formacin profesional tiene tres pilares fundamentales: Formacin de carrera de acuerdo a normas internacionales, formacin para la generacin de empresas de base tecnolgica y formacin tica. 4

3. Campo ocupacional
Debido a la formacin basada en la investigacin, nuestro profesional debe siempre ser un innovador donde trabaje. Considerando que Per es un pas con un costo de vida mucho menor que Norte Amrica y Europa, una posibilidad que se muestra interesante es la exportacin de software. Este perfil profesional tambin posibilita que nuestros egresados se queden en nuestro pas pues, producir en el Per y vender sus productos a otros pases 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. El egresado de esta especialidad podr dar soluciones a algunos de los problemas existentes, pero su fuerza radica en que podr y deber proponer innovaciones tecnolgicas que impulsen la empresa hacia un progreso constante. A medida que la informatizacin bsica de las empresas del pas est aumentando, 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 parte de esta demanda en el 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 en el pas.

4. Importancia de la carrera en la sociedad


Los actuales profesionales peruanos del rea de computacin se dedican a producir software o se integran a las empresas productoras de software. En el Per, la entidad que agrupa a las empresas dedicadas a la produccin de software es la Asociacin Peruana de Productores de Software (APESOFT). Esta asociacin ha tomado como poltica principal dedicarse a la produccin de software para exportacin. Siendo as no tiene 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 no deben estar orientados a competir en el mercado de trabajo con otros profesionales peruanos del rea de computacin y sistemas, ya que su orientacin debe ser dirigida 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 muchos productos comerciales que se venden actualmente utilizan tecnologa que se conoca en el mundo acadmico hace 20 aos o ms. Se debe tener en cuenta 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 conocimientos de la especialidad tomando en cuenta el mercado local de este instante. Nuestros profesionales deben estar preparados para resolver los problemas que se presentarn dentro de 10 o 15 aos y eso slo es posible a travs de la investigacin cientfica en esta rea. 5

5. Misin de la Escuela Profesional de Ciencia de la Computacin


Generar recursos humanos orientados a la creacin de nueva tecnologa computacional. Ser el motor que complemente, impulse y consolide la industria de software peruana con base en la investigacin cientfica y tecnolgica en reas innovadoras. Formar profesionales altamente capacitados, poseedores de un conjunto de habilidades y destrezas para la solucin de problemas computacionales, que contribuyan al desarrollo de esta rea estratgica, con un compromiso social.

6.

Visin de la Escuela Profesional de Ciencia de la Computacin


Ser una carrera profesional acreditada con estndares internacionales y que cuente con el reconocimiento en funcin de la calidad y competitividad de sus docentes y egresados. Ser una carrera que trascienda por la relevancia y pertinencia de sus proyectos de investigacin bsica y aplicada. 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.

7. Resultados de la carrera
Al finalizar esta carrera, el alumno deber tener habilidades para: aplicar conocimientos de computacin y de matemticas apropiados a la especialidad. analizar un problema e identificar y definir los requerimientos computacionales apropiados para su solucin. disear, implementar y evaluar un sistema, proceso, componente o programa computacional para alcanzar las necesidades deseadas. entender correctamente las implicancias profesionales, ticas, legales, de seguridad y sociales de la profesin. analizar el impacto local y global de la computacin sobre los individuos, organizaciones y sociedad. incorporarse a un proceso de aprendizaje profesional continuo. usar tcnicas y herramientas actuales necesarias para la prctica de la computacin. 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. aplicar los principios de desarrollo y diseo en la construccin de sistemas de software de complejidad variable. desarrollar investigacin en el rea de computacin con niveles de competividad internacional. 6

transformar sus conocimientos del rea de Ciencia de la Computacin en emprendimientos tecnolgicos. aplicar los conocimientos de las asignaturas de Formacin General en su labor profesional. 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. mejorar las condiciones de vida de la sociedad poniendo la ciencia y la tecnologa de computacin al servicio del ser humano.

8. Grados y Ttulos
Los estudios de esta especialidad tienen una duracin de 5 aos y llevan a la obtencin de: Grado Acadmico de Bachiller en Ciencias con mencin en Ciencia de la Computacin y Ttulo Profesional de Licenciado en Ciencia de la Computacin.

9. Propuesta para la creacin de la especialidad de Ciencia de la Computacin 9.1 Antecedentes de la especialidad


La Computacin surge a mediados del siglo XX como un rea multidisciplinaria del conocimiento a partir del impulso en el desarrollo de las computadoras dado por la Segunda Guerra Mundial. Dicho desarrollo toma nuevos bros a principios del siglo XXI producto de los avances tecnolgicos y tericos, as como de requerimientos de procesamiento de informacin de las nuevas aplicaciones y de la tecnologa, influenciando todos los mbitos de la sociedad. La Computacin se ha convertido en una de las disciplinas cientficas y tecnolgicas ms importantes de nuestro tiempo. Muchos pases la consideran como estratgica para su desarrollo. En Mxico, por ejemplo, el desarrollo de la Ciencia de la Computacin se da antes que el de la ingeniera, primero cuando el Centro de Clculo Electrnico de la UNAM contrata a investigadores con posgrado en computacin (alrededor de 1967), y posteriormente cuando se crea el Centro de Investigacin en Matemticas Aplicadas y Sistemas, el cual se nutre mayoritariamente de los egresados de la Facultad de Ciencias, y tiene como actividad principal la investigacin en computacin y la atencin a la docencia de esta disciplina en el marco de la Facultad de Ciencias. Posteriormente, en el ao de 1967, dada la industrializacin de la computacin en Mxico, se crea la licenciatura de Ingeniero en Sistemas de Computacin. En el Per, el Consejo Nacional de Ciencia y Tecnologa ha recomendado al gobierno que considere a la Computacin como una de las reas prioritarias de vinculacin entre la universidad e industria para fomentar la competitividad y la innovacin. 7

La Facultad de Ciencias de la UNI, desde hace varios aos, ha contemplado esta rea dentro de las disciplinas que fomenta, por lo que ha dedicado recursos humanos y materiales para impulsarla. Se ha incrementado su participacin en el pregrado y posgrado de esta rea. Actualmente se cuenta con un grupo de profesores dentro de la Facultad, especializados en Computacin, de alto nivel acadmico. En los ltimos aos este grupo ha demostrado sus capacidades, no solamente en el cumplimiento de la labor docente, sino en el dictado de cursos a nivel de pregrado y posgrado, la asesora en temas de tesis, desarrollo de proyectos. En investigacin se estn publicando trabajos en congresos nacionales e internacionales; notas de clase y artculos de divulgacin e investigacin. Sin embargo, la presencia de estos grupos dedicados fuertemente a la Computacin no est reflejada de manera explcita en las disciplinas que brinda la Facultad de Ciencias y, como consecuencia, tampoco en la UNI. La Computacin es una disciplina independiente con dinmica y requerimientos propios, cuyas necesidades en ocasiones no coinciden con las necesidades de otras reas del conocimiento dentro de las Ciencias. Por otro lado, las actividades acadmicas del grupo no resultan suficientemente visibles pues se pierden dentro del resto de actividades de la Facultad. Por estas razones, y para poder continuar con el fortalecimiento del rea de Computacin en la Universidad, se plantea la necesidad de crear la carrera de Ciencias de la Computacin, dentro de la Facultad de Ciencias. 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 algunos 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 Matemtica 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 el 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 si misma, as como su importancia estratgica en la educacin, y creando departamentos, escuelas o institutos dedicados a su estudio. La Facultad de Ciencias de la UNI 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 del Per.

9.2 Antecedentes de la especialidad en la Facultad de Ciencias


La Facultad de Ciencias no ha sido ajena a los avances en el desarrollo de la Computacin. Una de las primeras computadoras donadas por la IBM a la UNI y al Per se entrega al profesor H. Valqui, profesor de la Facultad. A partir de entonces surgen los primeros cursos de programacin, donde participan acadmicos de diversas facultades, ya sea asistiendo a cursos o impartindolos. En la reforma de las carreras de la Facultad de Ciencias de la UNI de los 90 aparecen por primera vez materias de Computacin de una manera formal en las especialidades que brinda. Ya antes se impartan asignaturas de Computacin en otras especialidades de la Facultad de Ingeniera Industrial y de Sistemas, as como en las Facultades de Ingeniera Civil y de Ingeniera Elctrica y Electrnica.

9.3 Objetivos de la Escuela Profesional de Ciencia de la Computacin


El objetivo general de la Escuela Profesional de Ciencia de la Computacin es producir nuevos conocimientos en las reas relacionadas a la Computacin. Como objetivos especficos tenemos la formacin de profesionales con excelencia profesional en este campo, contribuir en el progreso de nuestra universidad y del pas. Esto ltimo se centra alrededor de las grandes tareas de nuestra Universidad: a) la docencia, b) la investigacin y c) la divulgacin y vinculacin. El personal acadmico de la carrera de Ciencia de la Computacin realizar labores de docencia en esta Licenciatura. Adems, impartir cursos de Computacin en otras carreras y posgrados en los cuales participa la Facultad. Sin embargo, quedar por definir entre todos los involucrados en la licenciatura el mecanismo por medio del cual se dirigir la licenciatura en Ciencia de la Computacin. Como parte de su labor de formacin de recursos humanos, el personal de esta carrera dirigir tesis de licenciatura. La labor de investigacin abarcar las reas de la Computacin en las que trabaja su personal acadmico, ya sea en proyectos internos o en colaboracin con investigadores de otros grupos afines de otras reas que as lo requieran. El trabajo de divulgacin y vinculacin incluir, entre otras, las siguientes actividades: organizacin de eventos, actualizacin de profesores y profesionales, asesora y colaboracin con la industria de la Computacin y con entidades gubernamentales y no gubernamentales, la divulgacin de la labor de la carrera y la transferencia de conocimiento.

10. Situacin Actual


Actualmente en la Facultad de Ciencias existen profesores que se dedican a labores de docencia, investigacin y/o difusin de la Computacin. Son profesores con grado de Doctores, Maestro y/o Licenciados en fsica o matemtica. En la plana docente se est incluyendo egresados de la Facultad que laboran en otros centros acadmicos y de investigacin o universidades comprometidos ellos a colaborar en el desarrollo de esta especialidad. Dados los diversos intereses y habilidades del personal acadmico, al interior de la Facultad de Ciencias el estudio de la Computacin se ha organizado en tres reas: (a) Cmputo Visual, (b) Procesamiento Paralelo y Sistemas Distribuidos, (c) Computacin Cientfica. Estas reas se definen tomando como punto de partida la clasificacin temtica de la disciplina realizada por la Association for Computing Machinery (ACM) 4. A continuacin se presenta una breve descripcin de cada rea, sus principales objetivos, as como el personal acadmico que se encarga de su estudio, enseanza, investigacin y difusin.

10.1 rea de Cmputo Visual


4

The ACM Computing Classification System [1998 Version]. CCS Up date Committee. January, 1998.

El Cmputo Visual est basado en la integracin de tecnologas, mtodos y conceptos de la graficacin por computadora, la percepcin visual, y la tecnologa y el procesamiento de imgenes. En las ltimas dcadas, estas reas eran consideradas separadamente. Actualmente se ha visto una amplia interaccin entre ellas, y se considera tambin su relacin con el tema de Inteligencia Artificial. El objetivo general del Cmputo Visual es el estudio de los principios de aplicacin y metodologas necesarias para la representacin, manipulacin y presentacin de imgenes en dos y tres dimensiones, considerando los dispositivos de hardware y programas de software con caractersticas especficas para ello.

10.1.1 Objetivos del rea


1. Estudiar cmo se lleva a cabo el anlisis de la informacin visual utilizando la computadora, a travs del estudio de la representacin y percepcin visual. Tanto la representacin y percepcin visual como el anlisis de la informacin son procesos naturales para el ser humano, pero resultan de una gran dificultad para la computadora. Sin embargo, una vez programada adecuadamente, la computadora sirve como una herramienta eficiente para la visualizacin de la informacin. 2. Establecer nuevos lenguajes entre el ser humano y la computadora, es decir, una manera distinta de interaccin: una interaccin visual. Para esto, la graficacin por computadora permite la sntesis de objetos reales, de ambientes o fenmenos fsicos en objetos abstractos, basados en modelos computacionales. 3. Codificar y transformar imgenes, analizar escenas o reconstruir objetos en tercera dimensin a partir de su proyeccin en dos dimensiones, mediante el procesamiento de imgenes. 4. Proveer de modelos grficos en ambientes simulados para la robtica, para el entrenamiento de autmatas con sistemas de visin, sin la necesidad de escenarios reales.

10.1.2 Personal Acadmico en el rea


MSc Orestes Bueno y Dr. Oswaldo Velsquez. reas de especializacin: Matemticas, Graficacin Cursos: Graficacin por Computadora, Anlisis de Imgenes

10.1.3 Colaboraciones Nacionales


RENIEC: Dr. lvaro Cuno reas de especializacin: Ciencia de la Computacin, Sistemas distribuidos, Computacin grfica Cursos: Computacin grfica, Algoritmos paralelos, lenguaje paralelo distribuido O.O. Centro Internacional de la Papa: Dr. Adolfo Posadas reas de especializacin: Fsica, Graficacin Cursos: Graficacin por Computadora, Anlisis de Imgenes UPCH: Dr Mirko Zimic reas de especializacin: Fsica, Graficacin Cursos: Anlisis de Imgenes mdicas CISMID: Dr. Miguel Estrada 10

reas de especializacin: Ingeniera Civil,

10.1.4 Colaboraciones Internacionales


IMPA - Brasil reas de especializacin: Graficacin, Ambientes Virtuales

10.2 rea de Procesamiento Paralelo y Sistemas Distribuidos


El rea de Procesamiento Paralelo y Sistemas Distribuidos como: Metasistemas Grid y Arquitectura multincleo, comprende el estudio de la teora, tcnicas, tecnologas y mtodos de la fusin de los dominios tradicionalmente considerados como hardware y software, haciendo nfasis en cada uno de sus componentes, a fin de comprender el funcionamiento de los sistemas digitales, los sistemas de cmputo, el diseo y construccin de sistemas operativos, los sistemas multiprocesador y los sistemas de redes. El objetivo general es conocer la estructura y funcionamiento bsicos del hardware y software, formular algunas de sus especificaciones, saber cmo se integran equipos de cmputo, as como las formas de distribuir y compartir recursos computacionales, procesos e informacin. Con estas bases puede participar en el diseo de nuevas organizaciones para los sistemas de cmputo.

10.2.1 Objetivos del rea


El rea de Computacin Paralela y Metasistemas Grid tiene los siguientes objetivos:

Proporcionar elementos tericos y prcticos para analizar y comprender los sistemas y arquitecturas de cmputo, as como su especificacin y diseo a lo largo de la evolucin histrica de las computadoras, y analizar nuevas tendencias. Estudiar la teora, tcnicas y metodologas para el diseo y construccin de ensambladores, intrpretes y compiladores. Estudiar la teora y conocer los elementos operativos requeridos para la transmisin y recepcin de informacin, as como las convenciones empleadas para la comunicacin entre las partes constitutivas de las redes de cmputo y comunicaciones. Estudiar la teora, tcnicas y metodologas para el diseo y construccin de sistemas operativos, as como el diseo e implementacin de los componentes de software que hacen posible el funcionamiento de las computadoras en diferentes niveles operativos. Estudiar los elementos tericos, las caractersticas y las propiedades de los diferentes modelos de procesamiento paralelo y distribuido, as como sus componentes, con el fin de disear e implementar aplicaciones especficas. Estudiar diversas aplicaciones que tienen los sistemas de cmputo avanzados.

10.2.2 Personal Acadmico en el rea


Dr. Carlos Javier Solano Salinas

reas de especializacin: Fsica de Altas Energas, Fsica Computacional, Metasistemas Grid Cursos: Introduccin a la Ciencia de la Computacin, Introduccin a la Programacin, La Infraestructura GRID, Administracin del S.O. 11

Dr. Alberto Lutgardo (INICTEL-UNI)


reas de especializacin: Computacin Paralela y Distribuida, Arquitectura multincleo Cursos: Administracin del S.O., Administracin de Redes, Herramientas para el uso de Software abierto, Arquitectura de Servidores, Programacin para la Construccin del Kernel, Programacin de Aplicaciones en Redes, La Infraestructura GRID, Ncleo y Redes para Computacin Paralela, Introduccin al Compilador Paralelo, Lenguaje Funcional Paralelo, Algoritmos Paralelos, Patrones de Lenguaje Paralelo, Motores de Bsquedas, Arquitectura y Programacin de FPGA y VHDL

10.2.3 Colaboraciones Nacionales


UPCH: Dr. Jesus Castagnetto reas de especializacin: Qumica, Bio-informtica, Metasistemas Grid Cursos: Administracin del S.O., La Infraestructura GRID, Computacin Molecular Biolgica FIIS-UNI y CTIC-UNI: Dr. Glen Rodrguez

reas de especializacin: Ingeniera de Sistemas, Telecomunicaciones, Procesamiento Paralelo Cursos: Administracin de Redes, Lenguaje Funcional Paralelo, Algoritmos Paralelos, Patrones de Lenguaje Paralelo.

FIEE-UNI e INICTEL-UNI: Dr. Daniel Daz


reas de especializacin: Ingeniera Electrnica Cursos: Redes de Computadoras, Protocolos

ONPE: Dr. lvaro Cuno


reas de especializacin: Ciencia de la Computacin, Sistemas distribuidos, Computacin grfica Cursos: Computacin grfica, Algoritmos paralelos, lenguaje paralelo distribuido O.O.

10.2.4 Colaboraciones Internacionales


FERMILAB EEUU (Dra. Ruth Pordes)

reas de especializacin: Fsica de Altas Energas, Fsica Computacional, Metasistemas Grid

USB Venezuela (Dra. Yudith Cardinale, Mg. Jess de Oliveira)

reas de especializacin: Ciencias de la Computacin, Metasistemas Grid

LNCC- Brasil (Dr. Bruno Schulze)

reas de especializacin: Ciencias de la Computacin, Metasistemas Grid

12

10.3 rea de Computacin Cientfica


Computacin Cientfica es la ciencia aplicada que se encarga de desarrollar los modelos matemticos y computacionales de los procesos vinculados a los problemas cientficos o tecnolgicos de las ciencias naturales o de la ingeniera. Estos modelos sirven para manipular y controlar el problema real al que representan. Durante la formacin profesional se llevan bsicamente cursos de Matemtica, Fsica y Computacin, complementndose con cursos de Biologa, Medio Ambiente y Ecologa, Meteorologa.

10.3.1 Objetivos del rea


El rea de Computacin Cientfica tiene los siguientes objetivos: 1. Construir modelos matemticos y computacionales para las ciencias naturales e ingeniera. 2. Adoptar una lnea de investigacin en Matemtica aplicada y computacional. 3. Brindar asesora a las instituciones pblicas y privadas dedicadas al modelaje matemtico, modelaje computacional y visualizacin cientfica. 4. Elaborar software cientfico propio. 5. Abordar satisfactoriamente los problemas nacionales de carcter cientfico o tecnolgico en diversos campos de prioridad como la prospeccin minera, explotacin petrolera, fenmenos marinos, problemas climatolgicos y meteorolgicos, etc., produciendo modelos matemticos y computacionales para su manejo, control o solucin.

10.3.2 Lneas del rea


1. Bio-informtica 2. Fsica Computacional 3. Qumica Computacional 4. Matemtica Computacional

10.3.3 Personal Acadmico en el rea


Dr. Roger Metzger y Dr. Rosendo Ochoa

reas de especializacin: Dinmica no-lineal: CAOS (fractales) Cursos: Tpicos especiales

Dr. Pedro Canales


reas de especializacin: Optimizacin e Investigacin de Operaciones Cursos: Optimizacin e Investigacin de Operaciones

Mg. Irla Mantilla

13

reas de especializacin: Matemtica y Simulacin Numrica Cursos: Simulacin Numrica

Dr. Abel Gutarra


reas de especializacin: Fsica, Ciencia de los Materiales Cursos: Biosensores

Dr. Domingo Aliaga


I. II.

reas de especializacin: Fsica del Estado Slido, Criptografa Cuntica Cursos: Fsica Computacional

Dr. C. Javier Solano S.


reas de especializacin: Fsica de Altas Energas, Fsica Computacional, Metasistemas Grid Cursos: Fsica Computacional

10.3.4 Colaboraciones Nacionales


FIIS: Mg. Samuel Oporto

reas de especializacin: Inteligencia Artificial, Sistemas Cursos: Inteligencia Artificial, Base de Datos, Ingeniera de software

FIGMM: Ing. Jimmy Rosales


reas de especializacin: Web semntica Cursos: Web semntica

FIM y CTIC: MSc Hctor Bedn


reas de especializacin: Fsica, Telemtica Cursos: Seguridad Informtica.

FIECS y CTIC: Dr. Luis Navarro


reas de especializacin: Computacin evolutiva, Geoestadstica Cursos: Inteligencia Artificial.

UPCH: Dr. Jesus Castagnetto


reas de especializacin: Qumica, Bio-informtica, Metasistemas Grid Cursos: Bio-informtica

UPCH: Dr. Mirko Zimic


reas de especializacin: Fsica, Bio-informtica Cursos: Bio-informtica

UPCH: Dr. Jos Luis Segovia

14

reas de especializacin: Qumica, Ciencia de la Computacin Cursos: Bio-informtica

11. Personal Docente


La Facultad de Ciencias cuenta con el personal docente mnimo necesario para iniciar la carrera con colaboracin de INICTEL-UNI y del IMCA-UNI que nos proporcionarn personal docente y ambientes para investigacin. Los siguientes profesores de las reas Acadmicas de Matemtica y Fsica de la Facultad de Ciencias apoyarn el desarrollo de algunas asignaturas de la especialidad de Ciencia de la Computacin:

Dr. Carlos Javier Solano Dr. Oswaldo Velsquez Dr. Roger Metzger Dr. Pedro Canales Mg. Irla Mantilla Mg. Orestes Bueno Mg. William Echegaray Lic. Leopoldo Paredes Lic. Johnny Valverde Lic. Rodolfo Canto Lic. Jorge Sulca Lic. Luis Flores Luyo Lic. Edgar Venegas Mg. Edgard Vidaln

Se cuenta adems con el apoyo de los siguientes profesores: Dr. Alberto Lutgardo (convenio FC-INICTEL) Dr. Daniel Daz (convenio FC-INICTEL) y con la colaboracin del CTIC-UNI para labores de investigacin: Dr. Glen Rodrguez (Computacin paralela y distribuida) Dr. Luis Navarro (Computacin evolutiva) Mg. Hctor Bedn (Seguridad Informtica) Mg. Samuel Oporto (Inteligencia Artificial) Ing. Jimmy Rosales (Web semntica) Los alumnos podrn llevar algunos cursos de la nueva carrera en otras Facultades donde tambin se dicten, previa autorizacin de las direcciones de escuela correspondientes. Asimismo podr realizarse intercambio de servicios entre facultades. Esto es, la Facultad de Ciencias proporciona servicio de cursos de Ciencias Bsicas, por ejemplo a la FIEE, y la FIEE a su vez nos proporciona algunos de los cursos de la carrera de Ciencias de la Computacin. Adems, con la creacin de la carrera de Ciencias de la Computacin se incrementar el nmero de cursos en los que la Facultad de Ciencias podr dar servicio a otras Facultades. Las facultades con las que podramos hacer intercambio de servicios, inicialmente, son la FIIS, FIEE (cursos de redes y arquitectura de computadoras), FIGMM (web semntica), FIM (seguridad informtica) y la FIC . La FC ya ofrece servicios de cursos de Ciencias Bsicas a la FIEE, FIGMM y FIM. As tambin tenemos el ofrecimiento de la

15

UPCH para intercambio de curso de Bioinformtica (UPCH) con Ciencia de la Computacin (UNI), entre estudiantes de la UNI y UPCH.

Contratacin de personal
Para la creacin de la carrera, y su funcionamiento por un periodo largo, se considera indispensable la contratacin de cinco especialistas del rea (con doctorado y/o maestra en Ciencia de la Computacin), de los cuales dos debern contratarse para el primer ao acadmico, ao calendario 2010. Junto a la propuesta de creacin de la carrera de Ciencia de la Computacin se incentivar y apoyar la capacitacin del personal docente de la Facultad en reas de Computacin Paralela y Distribuida, mediante estudios de posgrado.

12. Ambientes para clases


Las clases de esta especialidad se desarrollarn a partir del 2010 en el Pabelln R y N (antiguo Centro de Cmputo). Para las prcticas de laboratorio se dispondr la mayor parte de los horarios del actual Laboratorio de Cmputo de la Facultad. Adems, para los cursos ms avanzados de la carrera relacionados a proyectos de investigacin, ya se habrn terminado las nuevas salas de la FC-UNI. Asimismo, el IMCA como el INICTEL darn acceso a sus laboratorios de cmputo para clases de las asignaturas avanzadas de la especialidad. Se contar tambin con el apoyo y colaboracin del Laboratorio de Simulacin (LABOSIN), dirigido actualmente por la Mg. Irla Mantilla. Finalmente es importante mencionar el compromiso de la autoridad universitaria de apoyar para el equipamiento de esta nueva especialidad.

13. Infraestructura
En la Facultad contamos con 3 laboratorios para aulas de computacin (un total de 50 Pcs) del actual centro de Cmputo de la Facultad de Ciencias. Para investigacin contamos con un cluster de diez servidores (proyecto CONCYTEC) y hemos ganado un proyecto FINCyT de equipamiento tecnolgico que nos proporcionar un grupo de servidores para colaboracin cientfica UNI-UPCH. Adems en este proyecto de creacin de esta nueva especialidad se incluye el pedido de implementacin de un laboratorio avanzado de clculo numrico. As mismo se incluye el pedido para compra de libros y software. Sobre la bibliografa debemos mencionar la gran cantidad de libros y revistas cientficas del rea que estn disponibles gratis en diferentes bancos de datos, particularmente de la relaciones que tenemos con diferentes instituciones de Francia y Brasil, entre otros.

16

Por ltimo y no menos importante es que, dada la inclinacin de esta nueva especialidad al desarrollo de software libre y de cdigo abierto, disponemos de una gran cantidad de software disponible para uso acadmico, como son los de la GNU, Sun Microsystems, IBM, Google, MIT y laboratorios como el CERN, FERMILAB, DESY y otros.

17

ESQUEMA DE BLOQUES DEL PLAN DE ESTUDIOS DE LA ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACIN

18

13.

PLAN DE ESTUDIOS 2010-I DE LA ESPECIALIDAD DE CIENCIA DE LA COMPUTACIN

PRIMER CICLO Cdigo CM131 CM141 CQ121 CF141 CC101 Curso Clculo Diferencial Clculo Vectorial I Qumica General I Fsica General I Introduccin a la Ciencia de la Computacin Total T 4 4 4 4 2 P 2 2 2 2 -L --3 3 -S -----E -----TH 06 06 09 09 02 32 C 5 5 6 6 2 24 Pre-requisito Ninguno Ninguno Ninguno Ninguno Ninguno

SEGUNDO CICLO Cdigo CM132 CM142 CQ122 CF142 CC102 Curso Clculo Integral Clculo Vectorial II Qumica General II Fsica General II Introduccin a la Programacin Total T 4 4 4 4 1 P 2 2 2 2 (2) L --3 3 (2) S -----E -----TH 06 06 09 09 03 33 C 5 5 6 6 2 24 Pre-requisito CM131 CM141 CQ121 CF141 CC101

TERCER CICLO Cdigo CF241 CM261 CM254 CC202 Curso Fsica General III lgebra Lineal I Introduccin a la Matemtica Discreta Introduccin a la Programacin Orientada a Objetos Ingls I Total T 4 4 3 P 2 3 2 L 3 --S --1 E ---TH 09 07 06 C 6 5 4 Pre-requisito CF142, CM132, CM142, CQ122 CM132, CM142 CM132, CM142

CL002

3 1

---

2 3

---

---

05 04 31

4 2 21

CC102 Ninguno

CUARTO CICLO Cdigo CM211 CM094 CC212 CC202 CL003 Curso Calculo Diferencial e Integral Avanzado Estructura de datos Arquitectura de Computadoras Introduccin a Lenguajes Formales Ingls II Total T 6 4 3 3 1 P 3 ----L -2 2 2 3 S -----E -----TH 09 06 05 05 04 29 C 7 5 4 4 2 22 Pre-requisito CM132, CM142 CM254, CM261 CM254, CC102 CM254, CC102 CL002

19

QUINTO CICLO

Cdigo CM274 CC341 CC301 CC311 CC331 AHD65

Curso Introduccin a la Estadstica y Probabilidades Patrones de Lenguaje Paralelo Algoritmos Paralelos Administracin de Sistemas Operativos Base de Datos Constitucin y Derechos Humanos Total

T 4 3 3 3 3 2

P (2) ------

L (2) 2 2 2 2 --

S -------

E -------

TH 06 05 05 05 05 02 28

C 5 4 4 4 4 2 23

Pre-requisito CM211 CM094, CC202 CM094, CC202 CC212 CM094, CC202 Ninguno

SEXTO CICLO Cdigo CC302 Curso Lenguaje Paralelo Distribuido Orientado a Objetos Administracin de Redes Introduccin al Compilador Paralelo Computacin Grfica Teora de la Computacin Introduccin a la Biologa Total T P L S E TH C Pre-requisito

CC312 CC332 CC322 CC342 CH099

3 3 3 3 3 2

-----(2)

2 2 2 2 2 (2)

-------

-------

05 05 05 05 05 04 29

4 4 4 4 4 3 23

CC201, CC341 CC311 CC301, CC341 CC301 CC301, CC311 Ninguno

SEPTIMO CICLO Cdigo CC401 CC431 CC441 CC411 CH007 Curso Programacin de Aplicaciones en Redes Ncleo y Redes para Computacin Paralela Inteligencia Artificial La Infraestructura Grid Ciencia, Tecnologa y Sociedad Total T 3 3 3 3 2 P ----1 L 2 2 2 2 -S -----E -----TH 05 05 05 05 03 23 C 4 4 4 4 2 18 Pre-requisito CC302, CC312 CC312, CC332 CM274, CC301 CC312 Ninguno

OCTAVO CICLO Cdigo CC402 CC422 Curso Programacin para la Construccin del Kernel Arquitectura y Programacin de FPGA y VHDL Formacin General Electivos Total T 3 3 P -2 L 2 -S --E --TH 05 05 C 4 4 Pre-requisito CC401, CC431 Ninguno

10

20

NOVENO CICLO Cdigo CC511 CC521 Curso Introduccin a la Robtica Motores de Bsqueda Electivos Total T 3 3 P --L 2 2 S --E --TH 05 05 05 C 4 4 8 Pre-requisito CC441, CF241 CC342

DECIMO CICLO Cdigo CC541 CC502 Curso Seminario de Tesis I Lenguaje Funcional Paralelo Electivos Total T -3 P --L -2 S 8 -E --TH 08 05 13 C 4 4 8 Pre-requisito Aprobar 8 ciclos CC302, CC342

CURSOS ELECTIVOS LOS CURSOS ELECTIVOS TIENEN COMO PRE-REQUISITO GENERAL HABER APROBADO SEIS CICLOS DE ESTUDIOS (Art. 209 del Estatuto de la UNI)

CURSOS ELECTIVOS DE ESPECIALIDAD

Cdigo CC001 CC002 CC003 CC011 CC012 CC021 CC022 CC032 CC033 CC041 CC042 CC043 CC051 CC052 CC061

Curso Tpicos Especiales de Ciencia de la Computacin I Tpicos Especiales de Ciencia de la Computacin II Tpicos Especiales de Ciencia de la Computacin III Estructura e Interpretacin de Programas Herramientas para el uso de Software abierto Tpicos Especiales de Software Tpicos en Computacin Grfica Interaccin Humano Computador Tpicos en Seguridad Flujo de Trabajo Computacin Molecular Biolgica Tpicos en Robtica Scripts con Sintaxis en Paralelo Browser Paralelo Ingeniera de Software

T 2 3 4 3 3 3 3 3 3 3 3 3 3 3 3

P 2 2 2

TH 04 05 06

C 3 4 5 4 4 4 4 4 4 4 4 4 4 4 4

Pre-requisito Ninguno Ninguno Ninguno CC201, CC342 CC102, CC311 CC302,CC322, CC331 CC322 CC201, CC302 CC302 CC302 CC201 CC511 CC102 CC051 CC201

2 2 2 2 2 2 2 2 2 2 2 2

05 05 05 05 05 05 05 05 05 05 05 05

21

Cdigo CC062 CC071 CC072 CC074 CC081

Curso Sistemas Embebidos en Tiempo Real Tpicos en Base de Datos Generacin de Supercomputadoras a travs del uso de FPGAs Seminario de Tesis II Formacin de Empresas de Base Tecnolgica

T 3 3 3

L 2 2 2

TH 05 05 05 08 04

C 4 4 4 4 3

Pre-requisito CC201, CC422 CC331 CC422 CC541 Ninguno

8 2 2

CURSOS ELECTIVOS COMPLEMENTARIOS

Grupo 1: Fsica, Matemtica, Qumica Cdigo CM361 CM214 CM224 CM321 CM322 CM474 CM004 CM015 CM095 CM096 CM035 CM034 CM038 CM355 CM054 CM334 CM078 CM032 Curso Introduccin a las Estructuras Algebraicas Anlisis real Introduccin al Anlisis Convexo Introduccin a las Ecuaciones Diferenciales Ordinarias Ecuaciones Diferenciales Parciales I Introduccin a los Procesos Estocsticos Teora de Colas Series de Tiempo Anlisis de Algoritmos Teora de Grafos y Algoritmos Construccin NumricaDiseo Geomtrico Teora de Simulacin Mtodos Numricos del lgebra Programacin Lineal Mtodos Numricos de Optimizacin I Anlisis Numrico I Programacin Dinmica Mtodos Numricos para Ecuaciones Diferenciales Parciales Mtodos Matemticos para Fsicos I Introduccin a la Fsica Computacional Introduccin a la Qumica Computacional T 4 6 3 P 2 3 2 L S E TH 06 09 05 C 5 7 4 Pre-requisito CM261 CM211, CM261 CM211, CM261

4 4 3 4 4 4 4 4 3 4 4 4 4 4

2 2 2 2 2 2 2 2 3 2 2 (2) (3) (2) (2) (3) (2) 1 1 2

06 06 05 06 06 06 06 06 06 06 07 07 07 08

5 5 4 5 5 5 5 5 4 5 5 5 5 6

CM211,CM261 CM321 CM321, CM274 CM474 CM274 CM094 CM095 CM334 CM334 CM334, CM261 CM261 CM355, CM334 CM211, CM261 CM355

4 6 2 2

(2) 4

(2)

06 08

5 8 4 4

CF252 CF099 CQ099

CM334 CF241, CM211, CM261,CC121 CF241, CC122 CQ122, CC122

4 4

06 06

22

Grupo 2: Formacin General Cdigo CH091 CH092 CH093 AHL01 CH033 CH046 EP111 Curso tica General tica Profesional Metodologa del Estudio Lenguaje y Tcnicas de la Comunicacin Metodologa de la Investigacin Cientfica Gestin Cientfica y Tecnolgica Economa General T 3 3 2 3 2 2 3 1 1 2 2 P L S E TH 03 03 04 03 03 03 05 C 3 3 3 3 2 2 4 Pre-requisito Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno

ES OBLIGATORIO LLEVAR POR LO MENOS 04 CRDITOS EN CURSOS DE FORMACIN GENERAL DE ENTRE LOS QUE FIGURAN EN ESTA TABLA

CREDITAJE EXIGIDO PARA APROBAR EL CURRICULUM DE LA ESPECIALIDAD DE CIENCIA DE LA COMPUTACIN

NMERO DE CRDITOS EN CURSOS OBLIGATORIOS NMERO DE CRDITOS POR CURSOS ELECTIVOS, PRCTICAS PREPROFESIONALES Y ACTIVIDADES EXTRACURRICULARES (De los crditos por cursos electivos por lo menos 15 deben ser de especialidad)

183 27

NMERO DE CRDITOS POR PRCTICAS PRE-PROFESIONALES (Mnimo 300 horas efectivas de prcticas Pre-profesionales por crdito)

HASTA 02

NMERO DE CRDITOS POR ACTIVIDADES NO LECTIVAS HASTA 02 (Ayudantas acadmicas y otras actividades extracurriculares no lectivas) NMERO TOTAL DE CRDITOS EXIGIDOS POR LA ESPECIALIDAD 210

Para el cmputo general de crditos, un estudiante debe realizar obligatoriamente por lo menos una prctica Pre-profesional.

23

SISTEMA DE EVALUACION

Para todos los cursos de la especialidad el sistema de evaluacin ser el siguiente: SISTEMA G Promedio de prcticas y/o laboratorios Examen Parcial Examen Final

Peso 1 Peso 1 Peso 1

Como excepcin, el curso CC101, del primer ao, se regir por el sistema J de evaluacin. SISTEMA J Examen Parcial Peso 1 Examen Final Peso 1 Los cursos comunes se regirn por el sistema de evaluacin ya establecido.

24

ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACIN

14.

PRESUPUESTO PERIODO 2010-I / 2014-II

Periodos 2010-1 y 2010-2: Gastos de equipos de laboratorio: Libros Software SUBTOTAL

US$ 85,000 US$ 10,000 US$ 5,000 US$100,000

LABORATORIO
1

US$ 2,800 6,800 2,000 6,700 44,700

2 switch IPV6 24 10/100 + 2 1000BT LAN Base Image 2 servidores para configuracin de los master clusters administradores 2 servidores para configuracin de los clusters de almacenamiento 2 UPS de 1000 VA y 2 UPS de 5000 VA 20 PCs multincleo: nodos del cluster

Ambiente fsico (laboratorio de cmputo), repisas/Racks, ambiente acondicionado con pozo a 6 tierra electrnico, aire acondicionado, cableado independiente y costos de suministro de electricidad permanente para los 2 laboratorios
7

3,800

Gastos de instalacin, cableado y configuracin para el laboratorio 2 switch de 1 Gigabit para interconexin de los nodos de los clusters 4 Computadores con GPUs para procesamiento matemtico

2,000 2,000 9,200 5,000

10 1 Servidor TESLA con GPUs

TOTAL

85,000

25

Perodos 2011-1 y 2011-2: Mantenimiento de equipos de laboratorio: Libros y software Perodos 2012-1 y 2012-2: Mantenimiento de equipos de laboratorio: Libros y software Perodos 2013-1 y 2013-2: Mantenimiento de equipos de laboratorio: Libros y software Perodos 2014-1 y 2014-2: Mantenimiento de equipos de laboratorio: Libros y software TOTAL

US$5,000 US$5,000

US$5,000 US$5,000

US$5,000 US$5,000

US$5,000 US$5,000 US$140,000

CONTRATACIN DE PROFESORES - PERIODO 2010-I/2014-II

Se propone la contratacin de especialistas del rea (con doctorado y/o maestra en Ciencia de la Computacin) para reforzar e impulsar las lneas de investigacin, as como apoyar en la parte acadmica, tanto de la carrera como de la maestra en Computacin Paralela y Distribuida. 2010: contratar dos especialistas el primer ao 2011: contratar un tercero el segundo ao 2012: contratar un cuarto el tercer ao 2013: contratar un quinto el cuarto ao En estos momentos ya contamos con el inters de formar parte de la plana docente de esta nueva escuela, entre otros, del Dr. lvaro Cuno (Dr. en Ciencia de la Computacin de la UFRJ, Brasil) y del candidato a doctor en Ciencia de la Computacin de la Universidad de Pittsburgh, EEUU, Jos Baiocchi Paredes (defensa programada para fines de abril 2010).

26

15. SLABOS DE LOS CURSOS


UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Introduccin a la Ciencia de la Computacin CC101 02 (dos) Ninguno Obligatorio Semestral TEORIA (02)

II.

OBJETIVO DEL CURSO


Brindar un panorama del computacin. rea del conocimiento que es cubierta en la ciencia de la

III.

SUMILLA
La Ciencia de la Computacin es un campo de estudio enorme con muchas especialidades y aplicaciones. Este curso brindar a sus participantes, una visin panormica de la informtica y mostrar sus campos mas representativos, como son: Algoritmos, Estructuras de de Datos, Sistemas Operativos, Bases de Datos, etc. Contribucin a los resultados Esta disciplina contribuye al logro de los siguientes resultados de la carrera: a) Habilidad para aplicar conocimiento de computacin y de matemtica apropiadas para la disciplina. Habilidad para analizar un problema e identificar y definir los requerimientos computacionales apropiados para su solucin. Habilidad para entender correctamente las implicancias profesionales, legales, de seguridad y sociales de la profesin. ,

b)

c)

d)

Habilidad para analizar el impacto local y global de la computacin sobre los individuos, organizaciones y sociedad. Habilidad para incorporarse a un proceso de aprendizaje profesional continuo. Habilidad para usar tcnicas y herramientas actuales necesarias para la prctica de la computacin. Habilidad para 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

e) f) g)

27

equilibrio involucrados en la opcin escogida.

IV.

CONTENIDO ANALITICO

4.1 Lgica Bsica. . III: Tablas de verdad. Objetivos. 1. Aplicar mtodos formales de lgica simblica proposicional y de predicados. 4.2 Fundamentos de Programacin. Tpicos. I: Sintaxis bsica y semntica de un lenguaje de mas alto nivel. II: Variables, tipos, expresiones, y asignaciones. III: Estructuras de control condicionales e iterativas. Objetivos. 1. Analizar y explicar el comportamiento de programas simples involucrando las estructuras de programacin fundamental cubiertas por esta unidad. 4.3 Algoritmos y Resolucin de Problemas. Tpicos. I: El rol de los algoritmos en el proceso de solucin de problemas. II: El Concepto y propiedades de algoritmos. Objetivos. 1. Discutir la importancia de los algoritmos en el proceso de solucin de problemas. 2. Crear algoritmos para resolver problemas simples. 3. Usar pseudocdigo o un lenguaje de programacin para implementar, probar y depurar algoritmos para resolver problemas simples. 4.4 Estructuras de Datos Fundamentales. Tpicos. I: Tipos primitivos. II: Arreglos. Objetivos. 1. Discutir la representacin y uso de tipos de datos primitivos y estructuras de datos incorporadas en el lenguaje. 4.5 Anlisis de Algoritmos Bsicos. Tpicos. I: Identificar la diferencias entre casos de mejor, mediano y peor comportamiento. Objetivos. 1. Determinar la complejidad de tiempo y espacios de algoritmos simples. 4.6 Estrategias Algortmicas. Tpicos. I: Algoritmos de fuerza bruta (brute-force). II: Dividir y coquistar. Objetivos. 1. Describir el defecto de los algoritmos de fuerza bruta. 2. Implementar un algoritmo de dividir y conquistar para solucionar un problema apropiado. 4.7 Lgica Digital y Sistemas Digitales. Tpicos. I: Vista panormica e historia de la arquitectura de computadores. Objetivos. 1. Demostrar cierto entendimiento de los bloques de construccin bsicos y su rol en el desarrollo histrico de la arquitectura del computador. 4.8 Representacin de Datos a Nivel de Mquina. Tpicos. I: Bits, bytes y palabras. II: Representacin datos numricos y bases numricas. III: Sistemas de punto flotante y fijos. IV: Representacin de complemento a dos y sealizada. V: Representacin de datos no numricos (cdigo de caracteres, datos grficos). VI: Representacin de registros y arrays. Objetivos. 1. Explicar la razn de uso de diferentes formatos para representar datos numricos. 2. Explicar cmo los enteros negativos son almacenados en las representaciones de complemento a

28

dos y sealizada. 3. Convertir datos numricos de un formato a otro. 4. Discutir como la representacin de nmeros de longitud fija afecta la precisin y exactitud. 5. Describir la representacin interna de datos no numricos. 4.9 Organizacin de Mquina a Nivel de Ensamble. Tpicos. I: Organizacin bsica de la mquina de Von Neumann. II: Unidad de control, instruccin de bsqueda (fetch), decodificacin, y ejecucin. III: Lenguaje de programacin de mquina y ensamblador. Objetivos. 1. Explicar la organizacin de la mquina clsica de Von Neumann y su unidad funcional mayor. 2. Explicar como una instruccin es ejecutada en una mquina clsica de Von Neumann. 3. Resumir como las instrucciones son representadas tanto a nivel de mquina y en el contexto simblico de ensamblaje. 4. Escribir segmentos simples de programa en lenguaje ensamblador. 4.10 Organizacin de Sistemas de Memoria y Arquitectura. Tpicos. I: Sistemas de almacenamiento y su tecnologa. Objetivos. 1. Identificar los tipos principales de la tecnologa de memoria. 4.11 Comunicacin e Interfase. Tpicos. I: Estructuras de interrupcin: vectorizadas y priorizadas, reconocimiento de una interrupcin. II: Buses: protocolos de buses, arbitraje, acceso directo a memoria (DMA). III: Introduccin a redes. Objetivos. 1. Identificar varios tipos de buses en un sistema de computador. 2. Comparar las configuraciones de redes comunes. 4.12 Visin General de los Sistemas Operativos. Tpicos. I: Rol y propsito de los sistemas operativos. II: Historia del desarrollo de los sistemas operativos. III: Funcionalidad de un sistema operativo tpico. Objetivos. 1. Explicar los objetivos y funciones de los sistemas operativos modernos. 2. Describir como los sistemas operativos han evolucionado en el tiempo desde sistemas primitivos batch a sofisticados sistemas multiusuarios. 4.13 Introduccin a la Computacin Centrada en Redes. Tpicos. I: Historia de las redes y de la Internet. Objetivos. 1. Discutir la evolucin de las primeras redes y de la Internet. 2. Demostrar la habilidad para usar efectivamente un conjunto de aplicaciones de red incluyendo e-mail, telnet, FTP, newgroups, navegadores web, cursos en lnea, y mensajera instantneos. 4.14 Visin General de los Lenguajes de Programacin. Tpicos. I: Historia de los lenguajes de programacn. II: Breve revisin de los paradigmas de programacin. a) Lenguajes procedurales. b) Lenguajes orientados a objetos. c) Lenguajes funcionales. d) Lenguajes declarativos y no algortmicos. e) Lenguajes de scripts. Objetivos. 1. Listar la evolucin de los lenguajes de programacin identificando como es que su historia nos ha conducido a los paradigmas actuales. 2. Identificar al menos una caracterstica distintiva para cada uno de los paradigmas de programacin cubiertos en esta unidad. 4.15 Mquinas Virtuales. Tpicos. I: El concepto de mquina virtual. Objetivos. 1. Describir la importancia y poder de la abstraccin en el contexto de mquinas virtuales. 4.16 Programacin Orientada a Objetos.

29

Tpicos. I: Diseo orientado a objetos. II: Clases y subclases. III: Herencia (sobreescritura, despacho dinmico). IV: Polimorfismo (polimorfismo de subtipo vs. herencia). Objetivos. 1. Justificar la filosofa de diseo orientado a objetos y los conceptos de encapsulacin, abstraccin, herencia y polimorfismo. 4.17 Programacin Funcional. Tpicos. I: Panorama general y motivacin de los lenguajes funcionales. Objetivos. 1. Delinear las fortalezas y debilidades del paradigma de programacin funcional. 4.18 Sistemas de Traduccin del Lenguaje. Tpicos. I: Aplicacin de las expresiones regulares en analizadores lxicos. II: Anlisis sintctico (sintaxis concreta y abstracta, rboles de sintaxis abstracta). Objetivos. 1. Describir los pasos y algoritmos usados por lenguajes traductores. 4.19 Fundamentos de la Interaccin Hombre-Computador Tpicos. I: Motivacin: Qu es lo que nos importa de las personas? II: Contexto de HCI (herramientas, hipermedios web, comunicacin). Objetivos. 1. Discutir las razones del desarrollo de software centrado en el humano. 2. Listar la ciencia bsica de la interaccin social y psicolgica. 4.20 Tpicos Fundamentales en Sistemas Inteligentes. Tpicos. I: Historia de la inteligencia artificial. II: Cuestiones filosficas. III: La prueba de Turing. Objetivos. 1. Describir la prueba de Turing y el experimento de pensamiento del Cuarto Chino. 4.21 Modelos de Informacin y Sistemas. Tpicos. I: Historia y motivacin para los sistemas de informacin. Objetivos. 1. Comparar y contrastar la informacin con datos y conocimiento. 2. Listar la evolucin de los sistemas de informacin desde las visiones tempranas hasta las propuestas modernas, distinguiendo sus respectivas capacidades y potenciales futuros. 4.22 Sistemas de Base de Datos. Tpicos. I: Historia y motivacin de los sistemas de base datos. II: Componentes de los sistemas de base de datos. Objetivos. 1. Explicar las caractersticas que distinguen los mtodos de base de datos de los mtodos tradicionales de programacin con archivos de datos. 2. Citar las metas bsicas como funciones, modelos, componentes, aplicaciones y el impacto social de los sistemas de bases de datos. 3. Describir los componentes de un sistema de base de datos y dar ejemplos de su uso. 4.23 Modelamiento de Datos. Tpicos. I: Modelamiento de datos. II: Modelos conceptuales (incluyendo entidad-relacin, y UML). Objetivos. 1. Describir los conceptos de modelado y la notacin del modelo entidad-relacin y UML, incluyendo su uso en modelamiento de datos. 4.24 Base de Datos Relacionales. Tpicos. I: lgebra relacional y clculo relacional. Objetivos. 1. Demostrar consultas en el lgebra relacional. 4.25 Contexto Social de la Computacin. Tpicos. I: Introd acceso a la Internet. . II: Crecimiento, control y

30

Objetivos. 1. Interpretar el contexto social de una implementacin particular. 2. Describir las formas positivas o negativas en las cuales la computacin altera los modos de interaccin entre las personas. 4.26 Propiedad Intelectual. Tpicos. I: Fundamentos de la propiedad intelectual. II: Copyrights, patentes y secretos del negocio. III: Piratera de software. Objetivos. 1. Distinguir entre patentes, copyright, y proteccin de secretos del negocio. 2. Discutir el fondo legal del copyright en las leyes nacionales e internacionales. 3. Explicar como las leyes de patentes y el copyright pueden variar internacionalmente. 4. Resumir el desarrollo histrico de las patentes de software. 4.27 Diseo de Software. Tpicos. I: Conceptos fundamentales de diseo y principios. Objetivos. 1. Discutir las propiedades del buen diseo de software. 4.28 Usando APIs. Tpicos. I: Programacin API. Objetivos. 1. Explicar el valor de las interfaces para programacin de aplicaciones (APIs) en el desarrollo de software. 4.29 SE3. Herramientas de Software y Entornos. Tpicos. I: Entornos de programacin. Objetivos. 1. Analizar y evaluar un conjunto de herramientas en una rea dada del desarrollo de software (ejemplo, administracin, modelamiento, o pruebas). 4.30 Procesos de Software. Tpicos. I: Ciclo de vida del software y modelos de procesos. Objetivos. 1. Explicar el ciclo de vida del software y sus fases incluyendo las entregas que son producidas.

V.

BIBLIOGRAFIA

[Brookshear, 2005] Brookshear, J. G. (2005). Computer Science: An Overview, 8/E. Addison-Wesley.

31

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Introduccin a la Programacin CC102 02 (dos) CC101 Obligatorio Semestral TEORIA (01), PRCTICA/LABORATORIO (02)

OBJETIVO DEL CURSO

Desarrollar su capacidad de abstraccin, utilizar un lenguaje de programacin funcional. Introducir y desarrollar estructuras y algoritmos.

SUMILLA
Este es uno de los primeros cursos en la secuencia de los cursos introductorios a la informtica. La programacin es uno de los pilares de la informtica; cualquier profesional del rea, necesita programar para concretizar sus modelos y propuestas. Este curso introducir a los participantes en los conceptos fundamentales de este arte. Los tpicos incluyen tipos de datos, estructuras de control, funciones, listas, recursividad y la mecnica de la ejecucin, prueba y depuracin. El curso tambin ofrecer una introduccin al contexto histrico y social de la informtica y una revisin del mbito de esta disciplina
Contribucin a los resultados

Esta disciplina contribuye al logro de los siguientes resultados de la carrera: a) Habilidad para aplicar conocimiento de computacin y de matemtica apropiadas para la disciplina. b) Habilidad para analizar un problema e identificar y definir los requerimientos computacionales apropiados para su solucin. c) Habilidad para disear, implementar y evaluar un sistema, proceso, componente o programa computacional para alcanzar las necesidades deseadas. d) Habilidad para trabajar efectivamente en equipos para cumplir con un objetivo comn. e) Habilidad para usar tcnicas y herramientas actuales necesarias para la prctica de la computacin. f) Habilidad para aplicar los principios de desarrollo y diseo en la construccin de sistemas de software de complejidad variable.

CONTENIDO ANALITICO
4.1 Historia de la Computacin. Tpicos. I: Historia del hardware de computadoras, software, redes. II: Pioneros de la computacin.

32

Objetivos. 1. Listar las contribuciones de varios pioneros en el campo de la computacin. 2. Comparar la vida diaria antes y despus del advenimiento de las computadoras personales e Internet. 3. Identificar las tendencias continuamente significativas en la historia del campo de la computacin. 4.2 Visin General de los Lenguajes de Programacin. Tpicos. I: Historia de los lenguajes de programacin. Objetivos. 1. Listar la evolucin de los lenguajes de programacin identificando como es que su historia nos ha conducido a los paradigmas actuales. 2. Identificar al menos una caracterstica distintiva para cada uno de los paradigmas de programacin cubiertos en esta unidad. 4.3 Declaracin y Tipos. Tpicos. I: Declaracin de modelos (enlace, visibilidad, alcance, y tiempo de vida). II: Vista general de la revisin de tipos. III: Recoleccin de basura. Objetivos. 1. Explicar el valor de los modelos de declaracin, especialmente con respecto a la programacin en mayor escala. 2. Identificar y describir las propiedades de una variable, tales como su: direccin asociada, valor, mbito, persistencia y tamao. 3. Discutir la incompatibilidad de tipos. 4. Demostrar las diferentes formas de enlace, visibilidad, mbito, manejo del tiempo de vida. 5. Defender la importancia de los tipos y el chequeo de tipos para brindar abstraccin y o seguridad. 4.4 Fundamentos de programacin. Tpicos. I: Sintaxis bsica y semntica de un lenguaje de ms alto nivel. II: Variables, tipos, expresiones, y asignaciones. III: Entrada y salida simple. IV: Estructuras de control condicionales e iterativas. V: Funciones y paso de parmetros. VI: Descomposicin estructurada. Objetivos. 1. Analizar y explicar el comportamiento de programas simples involucrando las estructuras de programacin fundamental cubiertas por esta unidad. 2. Modificar y extender programas cortos que usan condicionales estndar, estructuras de control iterativo y funciones. 3. 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. 4. Escoger la estructura apropiada condicional y/o iterativa para una estructura de programacin dada. 5. Aplicar tcnicas de descomposicin estructurada o funcional para dividir un programa en pequeas partes. 4.5 Programacin Funcional. Tpicos. I: Panorama general y motivacin de los lenguajes funcionales. II: Recursin sobre listas, nmeros naturales, rboles, y otros datos definidos recursivamente. III: Pragmticas (depuracin dividir y vencers, persistencia de las estructuras de datos). IV: Cerraduras y uso de funciones como datos (conjuntos infinitos, flujos). Objetivos. 1. Delinear las fortalezas y debilidades del paradigma de programacin funcional. 2. Disear, codificar, probar y depurar programas usando el paradigma funcional. 4.6 Recursividad. Tpicos. I: El concepto de recursividad. II: Funcion . III: Procedimientos recursivos simples. IV: Estrategias de dividir y conquistar. V: Backtracking recursivo. VI: Implementacin de recursividad. Objetivos. 1. Describir el concepto de recursividad y dar ejemplos de su uso. 2. Id . 5. Implementar, probar y depurar funciones y procedimientos recursivos simples. 6. Describir como la recursividad puede ser implementada usando una pila. 7. Discutir problemas para los cuales el backtracking es una solucin apropiada. 4.7 Algoritmos de Computacin Fundamental. Tpicos. . II: Bsqueda secuencial y binaria. III: Algoritmos cuadrticos de ordenamiento (seleccin, insercin). IV: Algoritmos de tipo O(N log N) (Quicksort, heapsort, mergesort). V: Arboles de bsqueda binaria. Objetivos. 1. Imple O(N log N). 2. Disear e implementar una funcin (hash) apropiada para una aplicacin. 3. Discutir la eficiencia computacional de los principales algoritmos de ordenamiento, bsqueda y (hashing). 4.8 Mecanismos de Abstraccin.

33

Tpicos. I: Procedimientos, funciones e iteradores como mecanismos de abstraccin. II: Parmetros de tipos y tipos parametrizados. III: Mdulos en lenguajes de programacin. Objetivos. 1. Explicar como los mecanismos de abstraccin soportan la creacin de componentes de software reusables. 2. Defender la importancia de la abstraccin especilamente con respecto a la programacin en mayor escala. 4.9 Estructuras de Datos Fundamentales. Tpicos. I: Tipos primitivos. II: Cadenas y procesamiento de cadenas. III: Representacin de datos en memoria. IV: Estructuras enlazadas. Objetivos. 1. Discutir la representacin y uso de tipos de datos primitivos y estructuras de datos incorporadas en el lenguaje. 2. Describir aplicaciones comunes para cada estructura de datos en la lista de temas. 3. Implementar estructuras de datos definidas por el usuario en un lenguaje de alto nivel. 4. Escribir programas que usan cada una de las siguientes estructuras de datos:

4.10 Grfos y Arboles. Tpicos. I: Grafos no dirigidos. II: Grafos dirigidos. III: Arboles de expansin. Objetivos. 1. Ilustrar con ejemplos la terminologa bsica de teora de grafos, y algunas de las propiedades y casos especiales de cada una. 4.11 . Algoritmos y Resolucin de Problemas. Tpicos. I: Estrategias para la solucin de problemas. II: El rol de los algoritmos en el proceso de solucin de problemas. III: Estrategias de implementacin para algoritmos. IV: Estrategias de depuracin. V: El Concepto y propiedades de algoritmos. Objetivos. 1. Discutir la importancia de los algoritmos en el proceso de solucin de problemas. 2. Identificar las propiedades necesarias de un buen algoritmo. 3. Crear algoritmos para resolver problemas simples. 4. Usar pseudocdigo o un lenguaje de programacin para implementar, probar y depurar algoritmos para resolver problemas simples. 4.12 . Computabilidad Bsica. Tpicos. I: Gramticas libres del contexto. II: Problemas tratables e intratables. III: Funciones no computables. IV: Funciones no computables. Objetivos. 1. Explicar cmo algunos problemas no tienen solucin algortmica. 4.14 . Programacin Orientada a Objetos. Tpicos. I: Encapsulacin y ocultamiento de la informacin. II: Separacin de comportamiento e implementacin. III: Clases y subclases. IV: Polimorfismo (polimorfismo de subtipo vs. herencia). V: Jerarqua de clases. Objetivos. 1. Describir como los mecanismos de clases soportan encapsulacin y ocultamiento de la informacin. 2. Disear, implementar y probar la implementacion de la relacin es-un IsKindOf entre objetos usando jerarqua de clases y herencia. 3. Comparar y contrastar las nociones de sobrecarga y sobreescritura de mtodos en un lenguaje orientado a objetos. 4.15 . Requerimientos de Software y Especificaciones. Tpicos. I: Conceptos bsicos de tcnicas de especificacin formal. Objetivos. 1. Traducir en lenguaje natural una especificacin de requerimientos de software escrita en un lenguaje de especificacin formal comnmente usado. 4.16 . Diseo de Software. Tpicos. I: Conceptos fundamentales de diseo y principios. Objetivos. 1. Discutir las propiedades del buen diseo de software. 4.17 Herramientas de Software y Entornos. de diseo. Objetivos. 1. Seleccionar con justificacin un apropiado conjunto de herramientas para soportar el desarrollo de un rango de productos de software.

BIBLIOGRAFA

34

Bird, R. J. (1998). Introduction to Functional Programming using Haskell. Prentice-Hall Series in Computer Science. Prentice-Hall Europe, London, UK, second edition. Paz-Valderrama, A. (2005). Apuntes: Programacin funcional en haskell. Sociedad Peruana de Computacin. Thompson, S. (1999). The Craft of Functional Programming, 2E. Addison Wesley.

35

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Introduccin a Lenguajes Formales CC202 04 (cuatro) CC102, CM254 Obligatorio Semestral TEORIA (03), PRACTICA/LABORATORIO (02)

OBJETIVO DEL CURSO

Desarrollar su capacidad de abstraccin, utilizar un lenguaje de programacin funcional. Introducir y desarrollar estructuras y algoritmos.

SUMILLA
Este es uno de los primeros cursos del tronco de conocimientos de la carrera de Ciencia de la Computacin Los lenguajes formales son usados para definicion precisa de los formatos de datos y de la sintaxis de los lenguajes de programacion. Se muestra su importancia en el desarrollo de compiladores. La Teoria de Automatas vera las maquinas abstractas y los problemas que son capaces de resolver.

CONTENIDO ANALITICO
1 Automata: Los metodos y la locura 1.1 Porque estudiamos Teoria de Automatas? 1.1.1 Introduccion al Automata Finito 1.1.2 Representationes Estructurales 1.1.3 Automata y Complejidad 1.2 Introduccion a la Prueba Formal 1.2.1 Pruebas Deductivas 1.2.2 Reduccion a Definiciones 1.2.3 Otros Teoremas Formales 1.2.4 Teoremas que parecen no ser instrucciones If-then 1.3 Formas adicionales de prueba 1.3.1 Provando equivalencias sobre conjuntos 1.3.2 La contrapositiva 1.3.3 Prueba por contradiccion 1.3.4 Contra ejemplos 1.4 Pruebas inductivas 1.4.1 Inducciones en enteros 1.4.2 Formas mas generales de inducciones en enteros 1.4.3 Inducciones estructurales 1.4.4 Inducciones mutuas 1.5 Los conceptos centrales de la Teoria de Automatas 1.5.1 Alfabetos 1.5.2 Cadenas 1.5.3 Lenguajes 1.5.4 Problemas 2 Automata finito

36

2.1 Una representacion informal de Automata Finito 2.1.1 Las reglas de base 2.1.2 Elrotocolo 2.1.3 Permitiendo al automata ignorar acciones 2.1.4 El sistema entero como un Automaton 2.1.5 Usando el producto Automaton para validar el Protocolo 2.2 Automata Finito Deterministico (DFA) 2.2.1 Definicion de un Automata Finito Deterministico 2.2.2 Como un DFA procesa las cadenas 2.2.3 Notaciones simples para DFA's 2.2.4 Extendiendo la funcion de transicion a cadenas 2.2.5 El Lenguaje de un DFA 2.3 Automata Finito Nondeterministico (NFA) 2.3.1 Una vista informal del NFA 2.3.2 Definicion del NFA 2.3.3 La funcion de transicion extendida 2.3.4 El lenguaje de un NFA 2.3.5 Equivalencia de DFA y NFA 2.3.6 Un caso malo para la construccion de subconjuntos 2.4 Una aplicacion: Busqueda de Texto 2.4.1 Hallando cadenas en Texto 2.4.2 NFA para busqueda de Texto 2.4.3 Un DFA para reconocer un conjunto de palabras llave 2.5 Automata Finito con Transiciones Epsilon 2.5.1 Uso deTransiciones-epsilon 2.5.2 La notacion formal para un NFA-epsilon 2.5.3 Cierres-Epsilon 2.5.4 Transiciones extendidas y Lenguajes para NFA-epsilon 2.5.5 Eliminando Transiciones-epsilon 3 Expresiones Regulares y Lenguajes 3.1 Expresiones Regulares 3.1.1 Los operadores de Expresiones Regulares 3.1.2 Construyendo Expresiones Regulares 3.1.3 Precedencia de operadores de Expresiones Regulares 3.2 Automata Finito y Expresiones Regulares 3.2.1 De los DFA's a Expresiones Regulares 3.2.2 Convirtiendo DFA's a Expresiones Regulares por Eliminacion de Estados 3.2.3 Convirtiendo Expresiones Regulares a Automata 3.3 Aplicaciones de Expresiones Regulares 3.3.1 Expresiones Regulares en UNIX 3.3.2 Analisis del Lexico 3.3.3 Hallando patrones en Texto 3.4 Leyes algebraicas para Expresiones Regulares 3.4.1 Asociatividad y Commutatividad 3.4.2 Identidades y Aniquiladores 3.4.3 Leyes Distributivas 3.4.4 La ley de Idempotencia 3.4.5 Leyes envolviendo cierres 3.4.6 Descubriendo leyes para Expresiones Regulares 3.4.7 El test para una ley algebraica para Expresiones Regulares 4 Propiedades de los Lenguajes Regulares 4.1 Provando si un lenguaje no es Regular 4.1.1 El lema de bombeo para lenguajes regulares 4.1.2 Aplicaciones del lema de bombeo 4.2 Propiedades de cierre de Lenguajes Regulares 4.2.1 Cierre de Lenguajes Regulares bajo Operaciones Booleanas 4.2.2 Reversa 4.2.3 Homomorfismos 4.2.4 Homomorfismos inversos 4.3 Propiedades de decision de lenguajes Regulares 4.3.1 Convertiendo entre Representaciones

37

4.3.2 Probando el vacio de Lenguajes Regulares 4.3.3 Probando sociedad en un Lenguaje Regular 4.4 Equivalencia y Minimizacion de Automata 4.4.1 Probando Equivalencia of States 4.4.2 Probando Equivalencia of Lenguajes Regulares 4.4.3 Minimizacion de DFA's 4.4.4 Porqueel DFA Minimizadp no puede ser vencido 5 Gramaticas libre de contexto y Lenguajes 5.1 Gramaticas libre de contexto (CFG) 5.1.1 Un ejemplo informal 5.1.2 Definicion de Gramaticas libre de contexto 5.1.3 Derivaciones usando una Gramatica 5.1.4 Derivaciones lo mas izquierdo y lo mas derecho 5.1.5 El lenguaje de una Gramatica 5.1.6 Formas de sentencia 5.2 Arboles ordenados o de analisis (Concrete Syntax Tree o Parse Tree) 5.2.1 Construyendo arboles de analisis 5.2.2 El redimiento de un arbol de analisis 5.2.3 Inferencia, Derivaciones, y Arboles de Analisis 5.2.4 De Inferencias a Arboles 5.2.5 De arboles a Derivaciones 5.2.6 De Derivaciones a Inferencias Recursivas 5.3 Aplicaciones de Gramaticas libre de contexto 5.3.1 Analizadores 5.3.2 El Generador-Analizador YACC 5.3.3 Lenguajes de Marca 5.3.4 XML y definiciones de tipo de documento 5.4 Ambigedad en Gramaticas y Lenguajes 5.4.1 Gramaticas ambiguas 5.4.2 Removiendo ambigedad de las Gramaticas 5.4.3 Derivaciones de lo mas izquierdo como una forma de expresar ambigedad 5.4.4 Ambigedad Inherente 6 Automata de empuje hacia abajo (Pushdown Automata - PDA) 6.1 Definicion del PDA 6.1.1 Introduccion informal 6.1.2 La definicion formal de PDA 6.1.3 Una notacion grafica para PDA's 6.1.4 Descripciones instantaneas de un PDA 6.2 Los lenguajes de un PDA 6.2.1 Aceptancia para Estado Final 6.2.2 Aceptancia para pila vacia 6.2.3 De pila vacia a estado final 6.2.4 De estado final a pila vacia 6.3 Equivalencia de PDA's y CFG's 6.3.1 De CFGs a PDAs 6.3.2 De PDA's a CFGs 6.4 Automata Pushdown Deterministico 6.4.1 Definicion de un PDA Deterministico 6.4.2 Lenguajes Regulares y PDAs Deterministicos 6.4.3 DPDA's y Lenguajes Libres de Contexto (CFL) 6.4.4 DPDA's y Gramaticas Ambiguas 7 Propiedades de CFLss 7.1 Formas normales para CFGs 7.1.1 Eliminando simbolos inutiles 7.1.2 Calculando la generacion y simbolos accesibles 7.1.3 Eliminando Producciones-epsilon 7.1.4 Eliminando producciones unitarias 7.1.5 Forma normal de Chomsky 7.2 El lema de bombeo para CFLs 7.2.1 El tamanho de arboles de analisis 7.2.2 Declaracion del lema de bombeo

38

7.2.3 Aplicaciones del lema de bombeo para CFL's 7.3 Propiedades de cierre de los CFLs 7.3.1 Substituciones 7.3.2 Aplicaciones del Teorema de Substitucion 7.3.3 Reversa 7.3.4 Interseccion con un Lenguaje Regular 7.3.5 Homomorfismo inverso 7.4 Propiedades de decision de los CFL's 7.4.1 Complejidad de conversion entre CFG's y PDA's 7.4.2 Tiempo de duracion de la conversion a la forma normal de Chomsky 7.4.3 Probando Vacio deCFL's 7.4.4 Probando pertenencia en un CFL 7.4.5 Revision de los problemas indecidibles CFL 8 Introduccion a las Maquinas de Turing 8.1 Problemas que los computadores no pueden resolver 8.1.1 Programas que imprimen ``Hello, World'' 8.1.2 El hipotetico probador ``Hello, World'' 8.1.3 Reduciendo un problema a otro 8.2 La maquina de Turing (TM) 8.2.1 La busqueda para decidir todas las preguntas matematicas 8.2.2 Notacion para la Maquina de Turing 8.2.3 Descripciones instantaneas para Maquinas de Turing 8.2.4 Diagramas de transition para Maquinas de Turing 8.2.5 El Lenguaje de una Maquina de Turing 8.2.6 Maquinas de Turing y la Parada 8.3 Tecnicas de Programacion para Maquinas de Turing 8.3.1 Almacenamiento en el estado 8.3.2 Multiples Temas 8.3.3 Subrutinas 8.4 Extensiones a la maquina de Turing basica 8.4.1 Maquinas de Turing multicinta 8.4.2 Equivalencia TM's multicinta y de una cinta 8.4.3 Tiempo de duracion y construccion de multicinta a una cinta 8.4.4 maquinas de Turing no-deterministas 8.5 Maquinas de Turing restringidas 8.5.1 TMs con cintas semi-infinitas 8.5.2 Maquinas multipila 8.5.3 Maquinas contadoras 8.5.4 El poder de las maquinas contadoras 8.6 Maquinas de Turing y computadores 8.6.1 Simulando una maquina de Turing por un Compudor 8.6.2 Simulando un Computador por una Maquina de Turing 8.6.3 Comparando los tiempos de duracion de Computadores y Maquinas de Turing 9 Indecidibilidad 9.1Un lenguaje que no es recursivamente enumerable (RE) 9.1.1 Enumerando las cadenas binarias 9.1.2 Codigos para Maquinas de Turing 9.1.3 El Lenguaje de Diagonalizacion (L_d) 9.1.4 Prueba de que el L_d no es recursivamente enumerable 9.2 Un problema indecidible que es RE 9.2.1 Lenguajes Recursivos 9.2.2 Complementos de lenguajes Recursivos y RE 9.2.3 El Lenguaje Universal 9.2.4 Indecidibilidad del Lenguaje Universal 9.3 Problemas de Indecidibilidad sobre Maquinas deTuring 9.3.1 Reducciones 9.3.2 Maquinas de Turing que aceptan Lenguaje Vacio 9.3.3 Teorema de Rice y Propiedades de los lenguajes RE 9.3.4 Problemas acerca especificaciones de la Maquina de Turing 9.4 el Problema de la correspondecia del cartero (PCP) 9.4.1 Definicion del PCP

39

9.4.2 El PCP modificado 9.4.3 Finalizacion de la prueba de indecidibilidad del PCP 9.5 Otros problemas indecidibles 9.5.1 Problemas acerca Programas 9.5.2 Indecidibilidad de la ambigedad para CFG's 9.5.3 El complemento de una lista de lenguajes 10 Problemas intratables 10.1 Las clases P y NP 10.1.1 Problemas Solubles en tiempo polinomial (P) 10.1.2 Un ejemplo: Algoritmo de Kruskal 10.1.3 Tiempo polinomial Nodeterministico (NP) 10.1.4 Un ejemplo NP: El problema del vendedor viajero (TSP) 10.1.5 Reducciones de tiempo Polinomial 10.1.6 Problemas NP-Completo 10.2 Un problema NP-Completo 10.2.1 El problema de Satisfiabilidad (SAT) 10.2.2 Representando instancias SAT 10.2.3 NP-Completitud del problema SAT 10.3 Un problema de Satisfiability Restringida 10.3.1 Formas Normales (NF) para Expresiones Booleanas 10.3.2 Convirtiendo Expresiones a CNF 10.3.3 NP-Completitud de CSAT 10.3.4 NP-Completitud de 3SAT 10.4 Problemas adicionales NP-Completos 10.4.1 Describiendo problemas NP-completos 10.4.2 El Problema de conjuntos Independientes 10.4.3 El problema de Node-Cover 10.4.4 El problema directo del Circuito-Hamilton 10.4.5 Circuitos Hamilton no dirigidos y el TSP 11 Clases adicionales de Problemas 11.1 Complementos de Lenguajes en NP 11.1.1 La Clase de Lenguajes Co-NP 11.1.2 Problemas NP-Completos y Co-NP 11.2 Problemas Solubles en espacio Polinomial 11.2.1 Maquinas de Turing de Espacio-Polinomial 11.2.2 Relacion de PS y NPS a Clases definidas previamente 11.2.3 Espacio polinomial Deterministico y Nodeterministico 11.3 Un problem que es Completo para PS 11.3.1 PS-Completitud 11.3.2 Formulas Boleanas cuantificadas (QBF) 11.3.3 Evaluando QBFs 11.3.4 PS-Completitud del problema QBF 11.4 Clases de Lenguaje basados en Randomizacion 11.4.1 Quicksort: un ejemplo de algoritmo Randomizado 11.4.2 Un modelo de Maquina de Turing usando Randomizacion 11.4.3 El lenguaje de una Maquina de Turing Randomizada 11.4.4 La clase RP (tiempo polinomial randomizado) 11.4.5 Reconociendo Lenguajes en RP 11.4.6 The Class ZPP (tiempo polinomial probabilistico de error cero) 11.4.7 Relaciones entre RP y ZPP 11.4.8 Relationes a las Clases P y NP 11.5 La complejidad del Test de Primalidad 11.5.1 La importancia del Test de Primalidad 11.5.2 Introduccion a la Aritmetica Modular 11.5.3 La complejidad de Aritmetica-Modular 11.5.4 Test de Primalidad Random-Polinomial 11.5.5 Test de Primalidad Nodeterministicos

BIBLIOGRAFA

40

Teora de autmatas y lenguajes formales. Dean Kelley, 1998 Autmatas y Lenguajes. Ramon F. Brea. Editor Tecnolgico ISBN9709448404, 9789709448405

de Monterrey.

http://infolab.stanford.edu/~ullman

41

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Administracin de Sistemas Operativos CC311 04 (cuatro) Ninguno CC212 Semestral TEORIA (03) LABORATORIO (02)

OBJETIVO DEL CURSO


Conocer los elementos basicos del dise~o de los sistemas operativos Presenta la administracin del sistema Linux como primer paso para trabajar en software abierto Presenta algunas de las herramientas de software abierto para que eventualmente sea parte de un proyecto de software abierto.

SUMILLA
Describe los elementos basicos de los sitemas operativos, como la calendarizacion y despacho, administracion de memoria y de dispositivos. Asimismo se ve la administracin de Linux, comandos, shells, administracin del kernel, sistema de archivos. Se muestra el uso de backup en forma peridica y automatizada. Emacs, vi, Latex, y cvs.

CONTENIDO ANALITICO
4.1 Algoritmos Distribuidos. Topicos. I: Consenso y eleccion. II: Deteccion de terminacion. Objetivos. 1. Explicar el paradigma distribuido. 2. Explicar un algoritmo distribuido simple. 3. Determinar cuando usar los algoritmos de consenso o eleccion. 4.2 Vision General de los Sistemas Operativos. Topicos. I: Rol y proposito de los sistemas operativos. II: Historia del desarrollo de los sistemas o o operativos. III: Funcionalidad de un sistema operativo tpico. IV: Mecanismos de soporte a modelos cliente-servidor, dispositivos hand-held. V: Topicos de Diseo (eciencia, robustez, exibilidad, portabilidad, seguridad, compatibilidad). VI: Inuencias de la seguridad, redes, multim edia, ventanas. Objetivos. 1. Explicar los objetivos y funciones de los sistemas operativos modernos. 2. Describir como los sistemas operativos han evolucionado en el tiempo desde sistemas primitivos batch a sosticados sistemas multiusuarios. 3. Analizar las ventajas y desventajas inherentes en el diseo de sistemas operativos. 4. Describir las funciones de un sistema operativo contemporaneo con respecto a la conveniencia, eciencia y la habilidad para evolucionar. 5. Discutir sistemas operativos de tipos: distribuido, para redes y ciente- servidor, y como ellos dieren de un sistema operativo para un usuario. 6. Identicar las amenazas potenciales a sistemas operativos y las caractersticas de seguridad diseadas para resguardarlos. 4.3 Principios de los Sistemas Operativos. Topicos. I: Metodos Estructurados (monolticos, por capas, modulares, modelos de microkernel). II: Abstracciones, procesos y recursos. III: Conceptos de APIs. IV: Necesidad de las aplicaciones y evolucion de las tecnicas de hardware y software. V: Organizacion de dispositivos. VI: Interrupciones: metodos e implementaciones. VII: Concepto de estado de usuario/sistema e y proteccion, transicion al modo Kernel. Objetivos. 1. Explicar el concepto de una capa logica. 2. Explicar los benecios de la construccion de capas abstractas en las formas jerarquicas. 3. Defender la necesidad de APIs y middleware. 4.

42

Describir como los recursos computacionales son utilizados por software de aplicacion y o administrados por software del sistema. 5. Contrastar el modo usuario y el modo kernel en un sistema operativo. 6. Discutir las ventajas y desventajas de utilizar procesamiento de interrupciones. 7. Comparar y contrastar las diversas formas de estructurar un sistema operativo tales como orientado a objetos, modular, microkernel, y por capas. 4.4 Concurrencia. Topicos. I: Estados y diagramas de estados. II: Estructuras (lista, bloques de control de procesos, o etc. ). III: Despachos y conmutacion segun el contexto. IV: El rol de las interrupciones. V: Ejecucion concurrente: ventajas y desventajas. VI: El problema de exclusion mutua y algunas o o soluciones. VII: Deadlock: causas, condiciones y prevencion. VIII: Modelos y mecanismos (semaforos, monitores, variables de condicion y rendezvous ). IX: Problemas del consumidor o productor y sincronizacion. X: Problemas de multiprocesamiento (Spin-Locks, reentrada). Objetivos. 1. Describir la necesidad de la concurrencia dentro de la estructura de un sistema operativo. 2. Demostrar los problemas potenciales en tiempo de ejecucion originados por la operacion concurrente de muchas tareas separadas. 3. Resumir la gama de mecanismos que pueden ser empleados en el nivel de sistemas operativos para entender los sistemas concurrentes y describir los benecios de cada uno. 4. Explicar los diferentes estados que una tarea podra atravesar y las estructuras de datos necesarias para soportar la administracion de muchas tareas. 5. Listar o los diferentes metodos para resolver el problema de la exclusion mutua en un sistema operativo. 6. Describir las razones por las cuales utilizar interrupciones, despachos y cambio de contexto para soportar la concurrencia en un sistema operativo. 7. Crear estados y diagramas de transicion para el dominio de problemas simples. 8. Discutir la utilidad de estructuras de datos, tales o como pilas y colas en el manejo de concurrencia. 4.5 Calendarizacion y Despacho. Topicos. I: Planeamiento preventivo y no preventivo. II: Planeamiento y polticas. III: Procesos y hebras. IV: Deadlines y problemas de tiempo real. Objetivos. 1. Comparar y contrastar los algoritmos comunes usados para el planeamiento preventivo y no preventivo de tareas en sistemas operativos, tales como prioridad, desempeo, comparacion n o y esquemas de particion justa. 2. Describir las relaciones entre los algoritmos de planeamiento y o dominios de aplicacion. 3. Discutir los tipos de planeamiento del procesador tales como: termino corto (short-term), termino medio (medium-term), termino largo (long-term) y entrada/salida. 4. Describir la diferencia entre procesos y hebras. 5. Comparar y contrastar las aproximaciones dinamicas y estaticas de planeamiento en tiempo real. 6. Discutir la necesidad de planeamiento a a preventivo y planeamiento por plazos (deadline). 4.6 Administracion de Memoria. Topicos. I: Revision de la memoria fsica y de la administracion de la memoria de hardware. II: Reo tardos, intercambios y particiones. III: Paginamiento y segmentacion. IV: Polticas de asignacion y de reemplazo. V: Conjuntos de trabajos y trashing. VI: Caching. Objetivos. 1. Explicar la jerarquia de la memoria y el costo-desempeo en los intercambios. 2. Explicar el concepto de memoria virtual y como esta es soportada por el hardware y software. 3. Listar los principios de memoria virtual aplicados a caching, paginamiento y segmentacion. 4. Evaluar los intercambios en terminos de tamao de memoria (memoria principal, memoria cache, memoria auxiliar) y velocidad del procesador. 5. Sustentar las distintas opciones de asignacion de memoria a las tareas, citando las ventajas de cada una. 6. Describir las razones para la o existencia y uso de la memoria cache. 7. Comparar y contrastar las tecnicas de paginamiento y e segmentacion. 8. Discutir el concepto de trashing, tanto en terminos del porque de su ocurrencia y de las tecnicas usadas para reconocer y administrar el problema. 4.7 Administracion de Dispositivos. Topicos. I: Caractersticas de dispositivos seriales y paralelos. II: Estrategias de bu ering. III: Acceso directo a memoria. Objetivos. 1. Explicar la diferencia clave entre dispositivos seriales y paralelos, e identicar las condiciones en las cuales cad a uno es apropiada. 2. Identicar las relaciones entre el hardware fsico y los dispositivos virtuales mantenidos por el sistema operativo. 3. Explicar el bu ering y describir las estrategias de como implementarlo. 4. Diferenciar los mecanismos usados en interfaces con diversos dispositivos (incluyendo dispositivos handheld, redes, multimedia) en una computadora y explicar las implicancias de esto para el diseo de un sistema operativo. 5. Describir las ventajas y desventajas del

43

acceso directo a memoria y discutir las circunstancias en las cuales su uso es garantizado. 6. Identicar los requerimientos para la recuperacion de o fallas. 4.8 Seguridad y Proteccion. Topicos. I: Vision paranoramica de la seguridad del sistema. II: Poltica y mecanismos de separ acion. III: Metodos de seguridad y dispositivos. IV: Proteccion, acceso y autenticacion. V: Modelos de proteccion. VI: Proteccion de memoria. VII: Encriptacion. VIII: Administracion de recuperacion. Objetivos. 1. Defender las necesidades de proteccion y seguridad, y el rol de las consideraciones eticas en el uso de la computadora. 2. Listar las caractersticas y limitaciones de un sistema operativo usado para brindar proteccion y seguridad. 3. Comparar y contrastar los metodos e actuales para implementar la seguridad. 4. Comparar y contrastar las fortalezas y debilidades de dos o mas sistemas operativos populares con respecto a la seguridad. 4.9 Sistema de Archivos. Topicos. I: Archivos: datos, metadatos, operaciones, organizacion, bufering, secuenciales, no secueno o ciales. II: Directorios: contenidos y estructura. III: Sistemas de archivos: particionamiento, montaje/desmontaje, sistemas de archivos virtuales. IV: Tecnicas de implementacion estandares. V: Archivos mapeados en memoria. VI: Sistemas de archivos de proposito especial. VII: Nombrado, busqueda, acceso, copias de respaldo. Objetivos. 1. Listar la completa gama de consideraciones que soporten los sistemas de archivos. 2. Comparar y contrastar los diferentes abordajes de la organizacion de archivos reconociendo o las fortalezas y debilidades de cada uno. 4.10 Sistemas Dedicados y de Tiempo Real. Topicos. I: Planeamiento de tareas y procesos. II: Requerimientos de la administracion memoria/disco en un ambiente de tiempo real. III: Fallos, riesgos, y recuperacion. IV: Preocupaciones o especiales en sistemas de tiempo real. Objetivos. 1. Describir que hace a un sistema ser un sistema en tiempo real. 2. Explicar la presencia y describir las caractersticas de latencia en sistemas de tiempo real. 4.11 Scripting. Topicos. I: Scripting y el rol de los lenguajes scripts. II: Comandos basicos del sistema. III: Creacion de scripts, paso de parametros. IV: Ejecucion de un script. V: Inuencias del scripting en la programacion. Objetivos. 1. Resumir un conjunto de comandos tpicos proveidos por el sistema operativo. 2. Demostrar la funcionalidad tpica de un lenguaje script e interpretar las implicaciones para la programacion. 3. Demostrar los mecanismos de implementacion de scripts y el rol de los scripts en la implementacion del sistema y su integracion. 4.12 Administracion de sistemas Linux/UNIX Topicos. I: Introduccin. II: Lnea de comando en UNIX. III: Procesamiento de streams de texto usando filtros. IV: Sistema de archivos. V: Uso de UNIX streams, pipes, y redirecciones. VI: Bsqueda de archivo de textos usando expresiones regulares. VII: Job control. VIII: Creacin de procesos, monitoreo de procesos, y eliminacin de procesos. IX: Modificacin de prioridades de ejecucin de los procesos. X: Uso de shells. XI: Conceptos del sistema de archivos. XII: Creacin y cambio de links simblicos. XIII: Permisos de pertenencia de los archivos. Usos de permisos para controlar el acceso a los archivos. Objetivos: Presenta la administracin del sistema Linux como primer paso para trabajar en software abierto 4.13 Herramientas para administracion de sistemas Linux/UNIX Topicos. I: Creacin de particiones y sistemas de archivos. II: Manejo y control para montar y desmontar un sistema de archivos. III: Manutencin de integridad de los archivos. IV: Bsqueda de sistemas de archivos y el movimiento de sistemas de archivos. V: Monitorear el uso de los discos. VI: Iniciar el sistema. VII: Cambio de los niveles de ejecucin, apago del sistema, re-iniciamiento del sistema. VIII: Uso y manejo de documentacin del sistema. IX: Bsqueda de documentacin de Linux en el sistema como en la Internet. X: Modificacin del environment y manejo de variables de environement de sistema. XI: Configuracin y uso de log files del sistema. X: Automatizacin y despachador de tareas administrativas. XI: Backup. Herramientas en software abierto. Objetivos: Presenta algunas de las herramientas de software abierto para que eventualmente sea parte de un proyecto de software abierto.

44

BIBLIOGRAFIA

Mateu, L. (1999). Apuntes de Sistemas Operativos. Universidad de Chile. Stallings, W. (2005). Operating Systems: Internals and Design Principles, 5/E. Prentice Hall. Tanenbaum, A. S. (2001). Modern Operating Systems, 2/E. Prentice Hall. Tanenbaum, A. S. (2006). Operating Systems Design and Implementation, 3/E. Prentice Hall.

http://svnbook.red-bean.com/nightly/en/svn-book.html http://sources.redhat.com/autobook/autobook/autobook_toc.html http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/ http://www.yolinux.com/TUTORIALS/LinuxTutorialSysAdmin.html


Linux Administration: A Beginner's Guide, Wale Soyinka, McGraw Hill, Fifth Edition. Linux Administration Handbook, Evi Nemeth &Garth Snyder & Trent R. Hein, Prentice Hall,

1st edition. Linux in a Nutshell, Fourth Edition , A Desktop Quick Reference, Ellen Siever, Stephen Figgins, Aaron Weber, O'Reilly Media LPI Linux Certification in a Nutshell, Second Edition, Steven Pritchard, Bruno Gomes Pessanha, Nicolai Langfeldt, James Stanger, Jeff Dean, et al., O'Reilly Media

45

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Introduccin a la Programacin Orientada a Objetos CC201 04 (cuatro) CC102 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

OBJETIVO DEL CURSO


El curso servir como puente entre el paradigma de la programacin funcional y el orientado al objeto, adems introducir a los participantes en los diversos temas del rea de computacin como: algoritmos, estructuras de datos, ingeniera del software, etc. Introducir al alumno a los fundamentos del paradigma de orientacin a objetos, permitiendo o asimilar los conceptos necesarios para desarrollar un sistema de informacin. Presenta el lenguaje C++ e introduce la programacin orientada a objetos. Introduce el concepto de templates y libreras, para poder programar en paralelo y hacer uso de los mltiples cores/ncleos localizados en un solo chip en forma simultanea. Tambin se presenta OpenMP como una de las extensiones al lenguaje C y C++ para programar en paralelo desde un punto de vista de procesadores sin importar si se tiene o no computadores con mltiple ncleo.

SUMILLA
Desarrollo del paradigma orientado a objetos para que se permita modelar abstracciones de los elementos del problema y usar tcnicas de encapsulamiento, modularidad, polimorfismo y herencia para dar soluciones computacionales a problemas de diseo sencillos del mundo real. El estudiante tambin aprender el uso de templates y libreras para aprender a programar en paralelo. OpenMP ser usado para programar en paralelo.

CONTENIDO ANALITICO

4.1 Visin General de los Lenguajes de Programacin. Tpicos. I: Breve revisin de los paradigmas de programacin. a) Lenguajes procedurales. b) Leno o o guajes orientados a objetos. c) Lenguajes funcionales. d) Lenguajes declarativos y no algortmicos. e) Lenguajes de scripts. II: Comparacin entre programacin funcional y programacin imperativa III: Historia de los lenguajes de programacin. Objetivos. 1. Listar la evolu cin de los lenguajes de programacin identicando como es que su historia nos ha conducido a los paradigmas actuales. 2. Identicar al menos una caracterstica distintiva para cada uno de los paradigmas de programacin cubiertos en esta unidad. 3. Evaluar las ventajas y desventajas entre los diferentes paradigmas, considerando temas tales como: eciencia de espacio, eencia en el tiempo (para ambas partes computadora y programador), seguridad, y el poder de las expresiones. 4.2 Mquinas Virtuales. Tpicos. I: El concepto de mquina virtual. II: Lenguajes intermedios. Objetivos. 1. Describir la importancia y poder de la abstraccin en el contexto de mquinas virtuales. 2. Explicar los benecios de los lenguajes intermedios en el proceso de compilacin. 4.3 Declaracin y Tipos. Tpicos. I: La concepcin de tipos como un conjunto de valores unidos a un conjunto de operaciones. II: Declaracin de modelos (enlace, visibilidad, alcance, y tiempo de vida). III: Vista general o de la revisin de tipos.

46

Objetivos. 1. Explicar el valor de los modelos de declaracin, especialmente con respecto a la programacin en mayor escala. 2. Identicar y describir las propiedades de una variable, tales como o su: direccin asociada, valor, mbito, persistencia y tamao. 3. Discutir la incompatibilidad de n tipos. 4. Demostrar las diferentes formas de enlace, visibilidad, mbito, manejo del tiempo de vida. 5. Defender la importancia de los tipos y el chequeo de tipos para brindar abstraccin y seguridad. 4.4 Mecanismos de Abstraccin. Tpicos. I: Procedimientos, funciones e iteradores como mecanismos de abstraccin. II: Mecanismos de parametrizacin (referencia vs. valor). III: Mdulos en lenguajes de programacin. Objetivos. 1. Explicar como los mecanismos de abstraccin soportan la creacin de componentes de software reusables. 2. Demostrar la diferencia entre paso de parmetros por valor y por referencia. 3. Defender la importancia de la abstraccin especilamente con respecto a la programacin en o o mayor escala. 4.5 Programacin Orientada a Objetos. Tpicos. I: Diseo orientado a objetos. II: Encapsulacin y ocultamiento de la informacin. III: Separacin de comportamiento e implementacin. IV: Clases y subclases. V: Herencia (sobreeso o critura, despacho dinmico). a Objet ivos. 1. Justicar la losofa de diseo orientado a objetos y los conceptos de encapsulacin, abstraccin, herencia y polimorsmo. 2. Disear, implementar, probar, y depurar programas simples en un lenguaje de programacin orientado a objetos. 3. Describir como los mecanismos de clases soportan encapsulacin y ocultamiento de la informacin. 4. Disear, implementar y probar la implementacion de la relacin es-un IsKindOf entre objetos usando jerarqua de clases y herencia. 5. Comparar y contrastar las nociones de sobrecarga y sobreescritura de mtodos en un lenguaje orientado a objetos. 4.6 Fundamentos de Programacin. Tpicos. I: Sintaxis bsica y semntica de un lenguaje de mas alto nivel. II: Variables, tipos, expresiones, y asignaciones. III: Entrada y salida simple. IV: Estructuras de control condicionales e iterativas. V: Funciones y paso de parmetros. VI: Descomposicin estructurada. Objetivos. 1. Analizar y explicar el comportamiento de programas simples involucrando las estructuras de programacin fundamental cubiertas por esta unidad. 2. Modicar y extender programas cortos que usan condicionales estndar, estructuras de control iterativo y funciones. 3. 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 o condicionales e iterativas y denicin de funciones. 4. Escoger la estructura apropiada condicional o y/o iterativa para una estructura de programacin dada. 5. Aplicar tcnicas de descomposicin estructurada o funcional para dividir un programa en pequeas partes. 6. Describir los mecanismos de paso de parmetros. 4.8 Estructuras de Datos Fundamentales. Tpicos. I: Tipos primitivos. II: Arreglos. III: Registros. IV: Cadenas y procesamiento de o cadenas. V: Punteros y referencias. Objetivos. 1. Discutir la representacin y uso de tipos de datos primitivos y estructuras de datos incorporadas en el lenguaje. 2. Implementar estructuras de datos denidas por el usuario en un lenguaje de alto nivel. 3. Escribir programas que usan cada una de las siguientes estructuras de datos: arreglos, registros, cadenas, listas enlazadas, pilas, colas y tablas hash. 4.9 Recursividad. Tpicos. I: Procedimientos recursivos simples. II: Implementacin de recursividad. Objetivos. 1. Comparar soluciones iterativas y recursivas para problemas elementales tal como factorial. 2. Implementar, probar y depurar funciones y procedimientos recursivos simples. 4.10 Programacin Orientada a Eventos. Tpicos. I: Mtodos para la manipulacin de eventos. II: Propagacin de eventos. III: Manejo de excepciones. Objetivos. 1. Explicar la diferencia entre programacin orientada a eventos y programacin por lnea de comandos. 2. Disear, codicar, probar y depurar programas de manejo de eventos simples que respondan a eventos del usuario. 3. Desarrollar cdigo que responda a las condiciones de excepcin lanzadas durante la ejecucin. 4.11 Anlisis de Algoritmos Bsicos. Tpicos. I: Identicar la diferencias entre casos de mejor, mediano y peor comportamiento.

47

Objetivos. 1. Determinar la complejidad de tiempo y espacios de algoritmos simples. 4.12 Algoritmos de Computacin Fundamental. Tpicos. I: Bsqueda secuencial y binaria. II: Algoritmos cuadrticos de ordenamiento (seleccin, insercin). Objetivos. 1. Resolver problemas de busqueda y ordenacion. 2. Analizar el coste de los algoritmos de busqueda. 4.13 Historia de la Computacin. Tpicos. I: Pioneros de la computacin. Objetivos. 1. Identicar las tendencias continuamente signicativas en la historia del campo de la computacin. 4.14 Diseo de Software. Tpicos. I: Conceptos fundamentales de diseo y principios. II: Anlisis y diseo orientado a objetos. III: Diseo para reuso. Objetivos. 1. Comparar y contrastar el anlisis orientado a objetos con el anlisis y diseo estructural. 4.15 Requerimientos de Software y Especicaciones. Tpicos. I: Elicitacin de requerimientos. II: Tcnicas de modelamiento del anlisis de requerimientos. Objetivos. 1. Aplicar elementos clave y mtodos comunes para la elicitacin y anlisis, para producir un conjunto de requerimientos de software para un sistema de tamao medio. 2. Usar un mtodo comn, no formal para modelar y especicar (en la forma de un documento de especicacin de requerimientos) los requerimientos para un sistema de software de tamao medio.

BIBLIOGRAFIA

http://www.cplusplus.com/doc/tutorial/ http://www.4p8.com/eric.brasseur/cppcen.html

Intel Threading Building Blocks por James Reinders Editorial: Sebastopol, CA : O'Reilly Media, 2007. The Art of C++, por Herbert Schildt. Publicado por McGraw-Hill Professional, 2004. C++ from the Ground Up, por Herbert Schildt. Ed: 3, Publicado por Osborne/McGraw-Hill, 2003. Herb Schildt's C++ Programming Cookbook, por Herbert Schildt. Publicado por McGraw-Hill Professional, 2008. Head First Object-Oriented Analysis and Design, Brett D. McLaughlin, Gary Pollice, Dave West, O'Really Object Modeling and User Interface Design: Designing Interactive Systems, Mark Van Harmelen, Stephanie Wilson Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides, Addison-Wesley. Bjarne Stroustrup , El lenguaje de programacin C++, Addison Wesley, Madrid, 1998,

ISBN 84-7829-019-2

Margaret A. Ellis y Bjarne Stroustrup, The Annotated C++ Reference Manual , AddisonWesley Pub Co; (1 de enero de 1990); ISBN 0-201-51459-1 Aguilar, L. J. (1998). Hill/Interamericana de Espaa. n Programacin Orientada a Objetos. o McGrawHarvey M. Deitel, P. J. (2004). Como Programar en C/C++ y Java. Pearson o Educacion. [Smith, 2001] Smith, J. A. (2001). Desarrollo de Proyectos con Programacin Orientada a Objetos o con C++. Thomson Learning. [Stroustrup, 2000] Stroustrup, B. (2000). The C++ Programming Language. Addison-Wesley, 3rd edition.

48

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Administracin de Redes CC312 04 (cuatro) CC311 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Presenta la administracin de redes en Linux para completar el conocimiento del uso de Linux desde el punto de vista del usuario. Presenta detalles de cmo funcionan y configuran routers y switches dentro de una red WAN.

III.

SUMILLA
Este curso cubre conceptos bsicos de redes, particularmente las basadas en TCP/IP. Configuraciones de nivel bajo (NAT) y nivel alto (rlogin, NFS, NIS, etc). Seguidamente se cuenta cmo configurar una red WAN compuesta de routers, switches, y computadores.

IV.

CONTENIDO ANALITICO
CC312 Administracin de Redes Introduccin al Trabajo en Redes El Sistema de Informacin de Red (NIS) Cuestiones sobre redes TCP/IP El Sistema de Ficheros de Red Configuracin del hardware de red IPX y el Sistema de Ficheros NCP Configuracin del hardware serie Administracin de Taylor UUCP Configuracin del Protocolo TCP/IP Correo electrnico El servicio de nombres y su Sendmail configuracin Noticias SLIP: IP por lnea serie NNTP y el Demonio nntpd El protocolo punto a punto Noticias de Internet Cortafuegos de TCP/IP Configuracin del lector de noticias Contabilidad IP Configuraciones de cableado tiles Enmascaramiento IP y Traduccin de WAN, Routers y Switches Direcciones de Red Caractersticas Importantes de Redes

V.

BIBLIOGRAFIA
http://www.ibiblio.org/pub/linux/docs/LuCaS/ManualesLuCAS/GARL2/garl2/index.html TCP/IP network administration, por Craig Hunt, Edition: 3, Publicado por O'Reilly, 2002 Linux network administrator's guide, por Tony Bautts, Terry Dawson, Gregor N. Purdy. Edition: 3, Publicado por O'Reilly, 2005

49

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Herramientas para el uso de software abierto CC012 04 (cuatro) CC102, CC311 Electivo Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra la cultura y metodologa de software abierto. Nuevos desarrolladores de software aprenden a trabajar a travs de las herramientas del software abierto. Se demuestra que las herramientas son necesarias para el xito de cualquier proyecto. al igual que la automatizacin es un elemento fundamental en el proceso de desarrollo de software abierto de alta calidad.

III.

SUMILLA
El curso cubre todas las herramientas necesarias para trabajar con el software abierto. Describe tambin su cultura; para que el alumno est al tanto de cmo debe trabajar con otros desarrolladores de software que nunca ha conocido y posiblemente no tendr la oportunidad de conocerlos.

IV.

CONTENIDO ANALITICO
CC012 Herramientas para el uso del software abierto Cmo escribir buenos programas Bugzilla GNU Emacs Buenas prcticas para mejoras (arreglar el Automake y Autoconf sistema), nombres de proyectos y archivos, Libtool licencias y derecho de autor, desarrollo, Autotoolset distribucin, comunicacin y gestin de Cmo usar C y C++ en una forma ms proyectos eficiente Diagnstico: Verificacin del error de Internacionalizacin del cdigo cdigo Mantenimiento de la Documentacin Mejora: Solucin del error, pruebas y Programacin portable de la shell comunicacin a la comunidad de que existe Escritura de macros con Autoconf para el problema xxx (error de cdigo RCS y CVS identificado con xxx) Bourne Shell, AWK, Sed y herramientas Distribucin de la mejora. similares de sequencias de comandos Instalacin de la mejora Herramientas para depurar el lenguaje C: Cultura de software abierto gdb

V.

BIBLIOGRAFIA
http://www.ibiblio.org/pub/linux/docs/LuCaS/ManualesLuCAS/GARL2/garl2/index.html http://en.wikipedia.org/wiki/Open_source_software_development http://www.tldp.org/HOWTO/Software-Release-Practice-HOWTO/ http://www.catb.org/~esr/faqs/hacker-howto.html http://samizdat.mines.edu/howto/HowToBeAProgrammer.html

50

GNU/Linux Application Programming, por M. Tim Jones, ebrary, Inc. Publicado por Cengage Learning, 2005.The definitive guide to GCC, por William Von Hagen. Publicado por Apress, 2006. Free Software, Free Society: Selected Essays of Richard M. Stallman, por Richard M. Stallman, Lawrence Lessig, Joshua Gay, Free Software Foundation (Cambridge, Mass.), Colaborador Lawrence Lessig, Joshua Gay. Publicado por Free Software Foundation, 2002. Open source: technology and policy, por Fadi P. Deek, James A. McHugh. Publicado por Cambridge University Press, 2007. The cathedral and the bazaar: musings on Linux and Open Source by an accidental revolutionary, por Eric S. Raymond. Publicado por O'Reilly, 2001.

51

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Programacin para la Construccin del Kernel CC402 04 (cuatro) CC401, CC431 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra las componentes de un sistema operativo y como trabajar en el, en forma real. Ensear la implementacin del Kernel de Linux. Se recompilara el Kernel y se instalara como parte del proceso de manejo de software abierto.

III.

SUMILLA
Se estudia las componentes del sistema operativo y se usa el software del Kernel de Linux para estudiar como este es construido. Las componentes ms importantes del kernel son estudiados en detalle para buscar la solucin a un problema reportado.

IV.

CONTENIDO ANALITICO
CC402 Programacin para la Construccin del Kernel Introduccin Archivos principales Estructura del kernel Mount Montar sistema de archivos y los Ncleo programas de manejo del dispositivo Inicializacin Clases de dispositivos Arquitectura y control de Memoria Espacios asignados al kernel y al Usuario Comunicacin y control entre los Dispositivo para el manejo de caracteres Procesos Ejemplo de un programa para manejo de un Redes dispositivo Sistema de Archivos Medicin de tiempo en el kernel (jiffies) y en Cdigo que depende del tipo de el espacio del usuario plataforma Gestin de la memoria Estructura para la programacin del cdigo Puertos de entrada y salida Kernel Dispositivos por bloques Depuracin Estructura del sistema de archivos Portabilidad

V.

BIBLIOGRAFIA
Understanding the Linux Kernel By Daniel P. Bovet & Marco Cesati Editorial: Beijing ; Cambridge, Mass. : O'Reilly, 2001. Kernel Projects for Linux By Gary Nutt Editorial: Boston : Addison Wesley Longman, 2001. Linux Device Drivers, 2nd Edition by Alessandro Rubini & Jonathan Corbet Editorial: Sebastopol : O'Reilly & Associates, 2005. Linux File Systems By Moshe Bar Editorial: New York : Osborne/McGraw-Hill, 2001.

52

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Programacin de Aplicaciones de Redes CC401 04 (cuatro) CC302, CC312 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra que una red de computadores es un sistema para la comunicacin entre ellos Se describe los protocolos IP, TCP, y UDP y el diseo e implementacin de algunos de los protocolos para tener una visin de sus cualidades y desventajas.

III.

SUMILLA
La aparicin de nuevos sistemas en los cuales existen mltiples ncleos en un solo chip, requiere la construccin de una nueva arquitectura para su uso.

IV.

CONTENIDO ANALITICO
CC401 Programacin de Aplicaciones de Redes Redes de computadoras Myrinet Categorizacin QsNet Relacin Funcional RS-232 Topologa de Redes SPX Especializacin por System Network Architecture funcionalidad Token Ring Pilas de protocolos TCP ARCNET USB AppleTalk UDP ATM X.25 Bluetooth Tpicos Especiales DECnet Internet Ethernet Backbone FDDI SITA y eQuant Frame relay Transit HIPPI Stub IEEE 1394 aka FireWire, iLink Capas IEEE 802.11 Transmisin de Datos IEEE-488 Transmisin por cables IP Transmisin inalmbrica Monitoreo de Redes IPX

V.

BIBLIOGRAFIA
UNIX Network Programming: Networking APIs: Sockets and XTI; por Richard Stevens Vol I Editorial: Upper Saddle River, NJ : Prentice Hall PTR, 1998. http://en.wikipedia.org/wiki/Computer_networking

53

http://en.wikipedia.org/wiki/Protocol_stack Adventures in UNIX Network Applications Programming; Por Bill Rieken y Lyle Weiman. Publicado John Wiley & Sons, Inc. Network Application Programming Interface over Session Initiation Protocol, a novel approach to the global roaming environment; Por Tzu-Chi Huang , Ce-Kuen Shieh , BoYang Lai y Yu-Ben Miao. Publicado Elsevier Science Publishers B. V Computer Networks; Por Andrew S. Tanenbaum. Publicado por Prentice Hall

54

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS La Infraestructura GRID CC411 04 (cuatro) CC312 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Introduccin al lenguaje Java que nos permite el acceso al ambiente de Globos. Aprender la programacin paralela y el uso de la Infraestructura de Globus que es la implementacin de la infraestructura Grid.

III.

SUMILLA
El curso permite usar los servicios de Globus. La tecnologa Grid muestra el nuevo paradigma de computacin distribuida propuesto por Ian Foster y Carl Kesselman a mediados de los 90. Se basa fundamentalmente en el acceso remoto a recursos computacionales, y su tecnologa estndar es el Globus Toolkit.

IV.

CONTENIDO ANALITICO
CC411 La Infraestructura Grid Definicin de un elemento de Data Service Introduccin a Java (SDE) Configuracin del GRID Notificaciones en Grid Service Como lograr acceso al GRID Grid: ejecucin, terminacin y monitoreo (Organizaciones Virtuales ) a. Gestin de la asignacin de Obtener los permisos de seguridad recursos de Globus (GRAM) (Certificados de usuarios y certificados b. Especificacin de los recursos de de maquina) lenguaje (RSL) Herramientas de Globus c. Acceso global al almacenamiento Como usar los servicios de Globus secundario de GLOBUS (GASS) Como escribir un Servicio con los y transferencia de archivos siguientes mtodos: Add x, Substract y, (GridFTP) getValue method. (The WS- Resource Interface de mapeo de Java CogKi a Framework) Globus Toolkit Crear la estructura del flder Java Paralelo Implementar la interface de Grid Service Implementacin del Grid Service Tecnologa del sistema Condor. High Configuracin del Grid Service Throughput Computing (HTC) Distribucin del Grid Service Verificacin del Grid service Recuperacin del Grid service Servicio del Data grid Services

55

V.

BIBLIOGRAFIA
Foster, I. and Kesselman, C. (eds) (1999) The Grid: Blueprint for a New Computing Infrastructure. San Francisco, CA: Morgan Kaufmann. http://www.globus.org http://www.eu-datagrid.org Grid computing: making the global infrastructure a reality, por Fran Berman, Geoffrey Fox, Anthony J. G. Hey, Fran Berman, Geoffrey Fox. Publicado por John Wiley and Sons, 2003. Grid computing: software environments and tools, por Jos Cardoso Cunha, Omer Rana. Publicado por Birkhuser, 2006. Grid computing: experiment management, tool integration, and scientific workflows, por Radu Prodan, Thomas Fahringer. Publicado por Springer, 2007. Lessons in Grid Computing : The System Is a Mirror ; Por Stuart Robins. Publicado por Jhon Wiley & Sons Grid Computing for Developers , Por Vladimir Silva . Publicado Charles River Media The Evolution of Grid Computing ; Por Juergen Hirtenfelder .Publicvado VDM Verlag Dr. Mueller e.K.

56

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO carcter MODALIDAD HORAS Ncleo y Redes para Computacin Paralela CC431 04 (cuatro) CC312, CC332 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Construir un sistema operativo y las redes de comunicaciones que permitan la utilizacin de mltiples ncleos.

III.

SUMILLA
El curso desarrolla el sistema operativo partiendo de la infraestructura de BSD para poder exportar los elementos mas bsicos como memoria fsica con seguridad bsica que puede ser incrementada por las capas superiores.

IV.

CONTENIDO ANALITICO
CC431 Ncleo y Redes para Computacin Paralela Arquitectura, diseo e implementacin Disec e implementacin de la del ExoKernel. arquitectura del Web Server Arquitectura, diseo e implementacin Sistema de archivos de Redes de libreras que pueden formar parte del Arquitectura, diseo, e implementacin sistema operativo ( libases). del Router Definicin del Control y la Seguridad en Arquitectura, diseo, e implementacin las libreras de sistema operativo (libOS) del Switch Mltiplexacin de redes Sistema de archivos con cambios Proteccin de discos garantizados (Journal file system) Protocolos: Arquitectura, diseo, e Sistema Global de archivos (Global File implementacin system) Motor de bsqueda Diseo e implementacin del protocolo HTTP Base de Datos

V.

BIBLIOGRAFIA
http://pdos.csail.mit.edu/exo.html http://en.wikipedia.org/wiki/Exokernel http://es.wikipedia.org/wiki/Exon%C3%BAcleo http://pdos.csail.mit.edu/exo/distrib.html http://www.cs.berkeley.edu/~brewer/cs262b-2004/Lec-Exokernel.pdf http://www.cs.utexas.edu/users/dahlin/Classes/UGOS/reading/engler95exokernel.pdf http://pdos.csail.mit.edu/PDOS-papers.html P. J. Hatcher y Michael J. Quinn, Data-Parallel Programming on MIMD Computers, MIT Press,1991 C. Xavier y S.S. Ivengar, Introduction to parallel algorithms, Wiley-Interscience, 1998.

57

J. Reinders, Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, OReilly, 2007 Shameem Akhter y Jason Roberts, Multi-Core Programming Increasing Performance through Software Multi-threading, Intel Corporation, 2006. Andrew S. Tanenbaum y Maarten van Oteen, Distributed Systems: Principles and paradigms, Segunda edicin, Prentice Hall, 2006. John L. Hennessey y David A. Patterson, Computer Architecture: A Quantitative Approach. Morgan Kaufmann, cuarta edicin, 2006. Maurice J. Bach ,Design of the UNIX Operating System.Prentice Hall PTR ,1986 Kaare Christian y Susan Richter, The UNIX Operating System. Wiley Professional Computing,1993 Stephen W. Keckler, Kunle Olukotun y H. Peter Hofstee,Multicore Processors and Systems (Integrated Circuits and Systems). Springer .2009

58

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I.DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Arquitectura de Computadores CC212 04 (cuatro) CC102, CM254 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.OBJETIVO DEL CURSO


Permitir al alumno gestionar adecuadamente el hardware y el software de un sistema de cmputo. Garantizar el buen desempeo y la eciencia de la futura codicacin.

Demostrar que la evolucin de la arquitectura de los computadores es una consecuencia del avance y desarrollo tanto del hardware como del software.

III.SUMILLA
El curso comprende el diseo del conjunto de instrucciones del computador, microarquitectura del procesador, pipeline, coherencia del cache, memoria virtual, E/S, Interrupciones, arquitecturas super-escalares, computadoras vectoriales, y computadores paralelos.

IV.CONTENIDO ANALITICO
4.1 Lgica Digital y Sistemas Digitales. Tpicos. I: Bloques fundamentales de construccin (compuertas lgicas , ip-ops, contadores, registros). Objetivos. 1. Describe la progresin de la arquitectura del computador desde tubos de vaco VLSI. 2. Disear un circuito simple usando los bloques de construccin fundamentales. 3. Uso de expresiones matemticas para describir las funciones combinacionales simples y circuitos a secuenciales. 4.2 Representacin de Datos a Nivel de Mquina. Tpicos. I: Bits, bytes y palabras. II: Representacin datos numricos y bases numricas. Objetivos. 1. Convertir datos numricos de un formato a otro. 2. Discutir como la representacin de nmeros de longitud ja afecta la precisin y exactitud. 3. Describir la representacin interna de datos no numricos. 4. Descripcin de la representacin interna de caracteres, cadenas, registros y arreglos. 4.3 Organizacin de Mquina a Nivel de Ensamble. Tpicos. I: Unidad de control, instruccin de bsqueda (fetch ), decodicacin, y ejecucin. II: Conjuntos de instruccin y tipos (manipulacin de datos, control de entrada y salida). III: Lenguaje de programacin de mquina y ensamblador. IV: Formatos de instrucciones. Objetivos. 1. Explicar como una instruccin es ejecutada en una mquina clsica de Von Neumann. 2. Resumir como las instrucciones son representadas tanto a nivel de mquina y en el contexto a simblico de ensamblaje. 3. Explicar los diferentes formatos de instruciones, tales como direccin por instruccin, formatos de longitud variable vs. formatos de longitud ja. 4. Escribir segmentos o simples de programa en lenguaje ensamblador. 5. Demostrar como la construccin de lenguajes de programacin de alto nivel fundamentales son implementados a nivel de lenguaje de mquina. 6. Explicar como las llamadas a subrutinas son manejadas a nivel de ensamblador. 4.4 Organizacin de Sistemas de Memoria y Arquitectura. Tpicos. I: Codicacin, compresin de datos e integridad de datos. II: Jerarqua de memoria. III: Memorias cache, (mapeo de direcciones, tamao de bloques, polticas de reemplazo y almacenamiento). IV: Memoria Virtual (tablas de paginacin, TBL).

59

Objetivos. 1. Identicar los tipos principales de la tecnologia de memoria. 2. Explicar el uso de jerarqua de memoria para reducir la latencia de memoria efectiva. 3. Describir los principios a de administracion de memoria. 4. Describir el rol de la memoria cache y virtual. 5. Explicar el trabajo de un sistema con gerenciamiento de memoria virtual. 4.5 Comunicacin e Interfase. Tpicos. I: Fundamentos de entrada y salida: bu ering, handshaking, entradas y salidas programao das, entradas y salidas manejadas por interrupciones. II: Estructuras de interrupcin: vectoriozadas y priorizadas, reconocimiento de una interrupcin. III: Almacenamiento externo, organizacin fsica y drivers. IV: Buses: protocolos de buses, arbitraje, acceso directo a memoria (DMA). V: Arquitecturas RAID. Objetivos. 1. Explicar como las interrupciones son usadas para implementar control de entrada/salida y transferencia de datos. 2. Indenticar varios tipos de buses en un sistema de computador. 3. Describir el acceso a datos desde discos magnticos. 4. Comparar las conguraciones e de redes comunes. 5. Describir las ventajas y limitaciones de las arquitecturas RAID. 4.6 Organizacin Funcional. Tpicos. I: Unidad de control: entendimiento de incrustacin en el hardware vs. microprogramacin. II: Introduccin al paralelismo a nivel de instruccin (IPL). Objetivos. 1. Discutir el concepto de puntos de control y generacin de seales de control usando incrustacin en el hardware o microprogramacin. 2. Explicar el paralelismo a nivel de instrucciones bsicas usando pipelining y explicar los principales riesgos del uso. 4.7 Multiprocesamiento y Arquitecturas Alternativas. Tpicos. I: Introduccin a SIMD, MIMD, VLIW, EPIC. II: Arquitectura sistlica. III: Interconeccin de redes (Hipercubo, intercambio aleatorio, malla, barra transversal). IV: Sistemas de memoria compartida. Objetivos. 1. Describir arquitecturas alternativas tales como SIMD, MIMD, y VLIW. 2. Explicar el concepto de interconexin de redes y caracterizar diferentes mtodos. 3. Discutir las caractersticas especiales que los sistemas de multiprocesamiento presentan con respecto a la administracin de memoria y describir como estas son direccionadas. 4.8 Herramientas de Diagnstico y seguridad Tpicos. I: Evaluacin de los sistemas de cmputo II: Diagnstico de los sistemas de procesamiento III: Seguridad y virus informticos Objetivos. 1. Estudiarlos parametros de rendimiento de un procesador 2. Uso de herramientas para evaluar la seguridad 4.9 Plataformas de Programacin y ncleos bsicos Tpicos. I: Integrar la parte de hardware y software mediante la implementacion de un ncleo bsico para manejar perifricos, memoria principal, interrupciones, etc. Objetivos. 1. Entender como interactuan las diferentes partes de software y hardware para el manejo de un sistema de cmputo. V.BIBLIOGRAFIA Brey, B. B. (2005). The Intel Microprocessors: 8086/8088, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, and Pentium II, Pentium III, Pentium 4. Prentice-Hall, 7th edition. Mano, M. M. (1992). Computer System Architecture. Prentice Hall, 3rd edition. Norton, P. (1988). Peter Nortons Assembly Language Book for the IBM PC. Peter Norton Foundation Series. Brady Publishing. 0136624537. D. Tullsen, S. Eggers and H. Levy, Simultaneous Multithreading: Maximizing On-Chip Parallelism, in the Proceedings of the 22rd Annual International Symposium on Computer Architecture, June 1995. S. Adve and K. Gharachorloo, Shared memory consistency models: a tutorial , in Technical Report WRL-TR 95/7, Digital Western Research Laboratiry, September, 1995. Carpinelli, J.D. Computer Systems Organization & Arquitecture. Addison Wesley, 2001 Hennesy, J.L. et. al. Computer arquitecture a quantitive approach (2ed: 1996) Computer architecture: fundamentals and principles of computer design, por Joseph D. Dumas II, Joseph D. Dumas. Publicado por CRC Press, 2006.

60

Computer architecture: a quantitative approach, por John L. Hennessy, David A. Patterson, Andrea C. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau. Publicado por Morgan Kaufmann, 2007.

61

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Introduccin al Compilador Paralelo CC332 04 (cuatro) CC301, CC341 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Se presenta la construccin de un compilador para entender el rendimiento del sistema a travs de las decisiones de ingeniera que se tienen que tomar y los algoritmos que usa Se usa la tecnologa del compilador para mejorar el rendimiento del programa y proveer al usuario con un ptimo nmero de instrucciones.

III.

SUMILLA
El curso cubre todas las fases necesarias para la implementacin de un compilador. El estudiante vera porque es importante estudiar la construccin de un compilador y porque tiene que ocultar las complejidades de la arquitectura del computador.

IV.

CONTENIDO ANALITICO

CC332 Introduccin al Compilador Paralelo Introduccin La abstraccin de un Procedure. Pre-definicin de los registros locales Introduccin a los problemas de Introduccin al anlisis de Lexical generacin de cdigo RE a DFA: La construccin de Cdigo para expresiones, Bolean, y Thompson y la construccin de control de flujo subconjunto Arreglos y Cadenas (Arrays y Strings) La minimizacin de DFA Cronograma de las instrucciones Resumen del anlisis de Lexical locales. Introduccin al Parser Introduccin al algoritmo de colores de Parser: Implementacin descendente la teora de grafos en la pre-definicin Parser: Implementacin ascendente de registro locales Elaboracin de Semntica Eliminacin de cdigo muerto. Representacin Intermedia

V.

BIBLIOGRAFIA
http://www.linux-magazine.es/issue/12/Intel90.pdf http://www.dcc.uchile.cl/~mmarin/parallel/openMP/index.html http://www.angelfire.com/dragon/letstry/tutorials/compiler/index.html http://csis.pace.edu/~bergin/Compiler.htm Engineering a Compiler by Cooper and Torczon Gail A. Alverson, William G. Griswold, Calvin Lin, David Notkin, and Lawrence Snyder. Abstractions for Portable, Scalable Parallel Programming. IEEE Transactions on Parallel and Distributed Systems,1998. H.E. Bal. A Comparative Study of Five Parallel Programming Languages. In EurOpen Spring Conference on Open Distributed Systems, 1991.

62

Heri E. Bal, M. Frans Kaashoek, and Andrew S. Tanenbaum. Orca: A Language for Parallel Programming of Distributed Systems. IEEE Transactions on Software Engineering,1992. Hesham El-Rewini and Ted G. Lewis. Distributed and Parallel Computing. Manning Publications Co., Hardbound, 1997. Ian Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995. http://www-unix.mcs.anl.gov/dbpp/. A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam. PVM: Parallel Virtual Machine, A Users' Guide and Tutorial for Networked Parallel Computing. MIT Press, 1994. Cameron Hughes and Tracey Hughes. Parallel and Distributed Programming Using C++. Addison Wesley, Aug. 2003. Bruce P. Lester. The Art of Parallel Programming. Prentice-Hall, Inc., 1993.

63

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Estructura e Interpretacin de Programas CC011 04 (cuatro) CC201, CC342 Electivo Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Introducir conceptos de programacin sin tener en cuenta el lenguaje y las reglas de syntax de este. Demostrar que cualquier lenguaje debe definir data y procedure en la forma ms simple (primitivos). Adems debe tener mtodos para manipular data y procedures en forma abstracta.

III.

SUMILLA
El curso muestra que un proceso computacional como entidades que residen en el computador y que los datos son entes abstractos usados por el proceso, durante la evolucin de este. La evolucin de un proceso es dirigido por un conjunto de reglas llamado programa. Se escribe programas para dirigir procesos.

IV.

CONTENIDO ANALITICO
CC011 Estructura e Interpretacin de Programas Creacin de abstracciones con Abstraccin de Metalingstica Procedures a. El evaluador meta curricular a. Elementos de Programacin b. Variaciones sobre un esquema b. Los procesos que los Evaluacin Perezosa Procedures generan c. Variaciones sobre un esquema c. Formulacin de abstracciones Computacin no indeterminada con Procedures de alto orden Programacin lgica Creacin de abstracciones con datos a. Computacin con mquinas con a. Introduccin a la abstraccin registros de Datos b. Diseo con mquinas que tienen b. Jerarqua de los Datos y registros propiedad de Clausura c. Simulador de una mquina con c. Tipos de Datos registros d. Diferentes representaciones de d. Alocacion de almacenamiento y las abstracciones de los datos garbage collection e. Sistemas con operaciones e. Control evaluador explcito genricas f. Compilacin Objetos, modularidad, y estado Lenguajes a. Asignamiento y estado local a. Schema b. Modelo de evaluacin b. Otros lenguajes vistos c. Modelos con datos mutables d. Concurrencia e. Streams

V.

BIBLIOGRAFIA
http://mitpress.mit.edu/sicp/full-text/book/book.html Structure and Interpretation of Computer Programs 2nd edition Harold Abelson and Gerald Jay Sussman with Julie Sussman 1996 McGraw-Hill Book Company

64

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Teora de la Computacin CC342 04 (cuatro) CC301, CC311 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra que la computacin es una ciencia, en particular una rama de la matemtica que centra su inters en el estudio y definicin formal de los computadores.

III.

SUMILLA
El curso muestra que la computacin es la obtencin de una solucin o resultado a partir de ciertos datos o entradas utilizando para ello un proceso o algoritmo.

IV.

CONTENIDO ANALITICO
CC342 Teora de Introduccin teora de la computacin 1. Autmatas, Computabilidad y Complejidad 2. Nociones Matemticas de Teora de la Computacin Conjun tos TC Funciones y Relaciones TC Cadenas y Lenguajes 3. Induccin Matemtica Lenguajes Regulares 1. Autmatas Finitos Autmatas Finitos Determinsticos Autmatas Finitos no Determinsticos 2. Expresiones Regulares 3. Lenguajes no Regulares Lenguajes libres de contexto 1. Gramticas Libres de Contexto 2. rboles de Derivacin 3. Formas Normales de Chomsky 4. Formas Normales de Greibach 5. Eliminacin de Factores Comunes izquierdos 6. Eliminacin Recursividad Izquierda 7. Eliminacin de ambigedad 8. Autmatas PushDown 9. Lenguaje no Regulares la Computacin Maquina de Turing 1. Definicin formal de mquina de Turing 2. Construccin Modular mquina de Turing 3. Lenguajes aceptados por mquina de Turing 4. Variantes mquina de Turing 5. Problemas de Hilbert Decibilidad 1. Lenguajes Decibles 2. Los problemas de Halting 3. Teoras Lgicas de decibilidad Reducibilidad 1. Problemas Insolubles en la teora de lenguajes 2. Un problema simple que es insoluble 3. Funciones Computables 4. Reducibilidad de Turing

65

V.

BIBLIOGRAFIA
Hopcroft, J.E.; Motwani, R. i Ullman, J.D. Introduction to Automata Theory, Languages, and Computation Addison-Wesley, 2001 (2a ed.). Kelley, Dean Automata and Formal Languages (Hi ha trad. a l'espanyol de la mateixa editorial), Prentice Hall, 1995. Sipser. ''Introduction to the Theory of Computation'' . PWS, 1997. Brookshear J "Teora de la Computacin," Addison Wesley, 1993. J. Glenn Brookshear Teora de la computacin : lenguajes formales, autmatas y complejidad, Addison-Wesley Iberoamericana, 1993. Joaquim Gabarr Valls Informtica clssica : autmats i gramtiques, indecidibilitat, parallelisme massiu, Eumo, 1995. Jozef Gruska Foundations of computing, International Thomson Computer Press, 1997. Efim Kinber, Carl Smith Theory of computing : a gentle introduction, Prentice-Hall, 2001. Dexter C. Kozen. Automata and computability, Springer-Verlag,, 1997. Harry R. Lewis, Christos H. Papadimitriou Elements of the theory of computation, Prentice-Hall,, 1998. Dan A. Simovici, Richard L. Tenney Theory of formal languages with applications, World Scientific, 1999. Joan Vancells i Flotats Teoria d'autmats i llenguatges formals I, Universitat Oberta de Catalunya, 2000. Derik Wood Theory of computation, Harper & Row, 1987. Rafel Cases, Llus Mrquez Llenguatges, gramtiques i autmats : curs bsic, Edicions UPC, 2003. John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman Introduction to automata theory, languages, and computation, Pearson Education International, 2003. Dean Kelley Automata and formal languages : an introduction, Prentice Hall, 1995. Maria Serna ... [et al.] Els Lmits de la computaci : indecidibilitat i NP-completesa, Edicions UPC, 2001. Michael Sipser Introduction to the theory of computation, Thomson Course Technology, 2006. http://www.uade.edu.ar/PlanesYProgramas/VerContenido.aspx?Id=54&CodMateria=1045 67 http://www.ort.edu.uy/index.php?cookie_setted=true&id=AAAHAB&cdpto=62 http://biblioteca2.icesi.edu.co/cgiolib?session=99143311&infile=details.glu&loid=7178&rs=204013&hitno=8 http://www.fib.upc.edu/es/infoAca/estudis/assignatures/TC.html http://ceidis.ula.ve/cursos/pgcomp/teo_comp/cont1.html http://www.ehu.es/p200content/es/contenidos/asignatura/fut_16337infor302_226_2_x/es_16337/es_fileasig_16337 .html

66

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Lenguaje Funcional Paralelo CC502 04 (cuatro) CC302, CC342 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra las componentes y sintaxis del lenguaje Haskell, y Haskell paralelo (pH). Se estudia una extensin al lenguaje funcional Haskell que permite describir el hardware (functional hardware programming lenguaje) en particular el diseo de los chips.

III.

SUMILLA
El curso cubre las primeras ideas de paralelismo para entender por qu es necesario trabajar en nuevas ideas para resolver el problema de programacin paralela.

IV.

CONTENIDO ANALITICO
CC502 Lenguaje Funcional Paralelo Paralelismo en sistemas que permiten M-Estructuras: Introduccin a E/S monad mltiples hilos. Lenguajes y compiladores El estado de Monad y Friends Programacin Funcional: Funciones y tipos Hardware para programacin paralela Clculo de Lambda: Una base para lenguajes Diseos para IFFT funcionales Micro-arquitectura: Modulo para la bsqueda Clculo de Lambda con constantes y letde IP blocks Tpicos en FIFO y control de concurrencia Tipos y tipo simple de inferencia Lenguaje paralelo con acciones atmicas y Tipo de interface mdulos Overloading, tipo de clases, y tipo de data Grafos para dataflow esttico algebraicos Dataflow grafos con comportamiento bien Lista de entendimientos entendido Compilacin de patrones de semejanza o Dataflow dinmico igualdad y lista de entendimientos Primitivas del despachador para Bluespec Arrays y I-Structuras M-Estructures: Programacin con estado indeterminado

V.

BIBLIOGRAFIA
Implicit Parallel Programming in pH by Rishiyur S. Nikhil and Arvind http://web.mit.edu/~jmaessen/Public/phc-front-end.tar.gz - Compiler source code P. Hudak. Conception, Evolution, and Application of Functional Programming Languages. ACM Computing Surveys 21(3):359-411, 1989 R. Plasmeijer and M. van Eekelen. Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading, MA, 1993 C. Reade. Elements of Functional Programming.Addison-Wesley, Reading, MA, 1993

67

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Algoritmos Paralelos CC301 04 (cuatro) CM094, CC202 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra que el uso de programacin funcional hace que el aprendizaje de algoritmos sea mucho ms fcil. Se ensea Haskell y las libreras de C para programar en paralelo.

III. IV.

SUMILLA
El curso cubre una serie de algoritmos desde el punto de vista de programacin.

CONTENIDO ANALITICO
CC301 Algoritmos Paralelos Introduccin: Algoritmos y Lenguaje Sorting: sorteo en base a comparacin, funcional algoritmos bsicos de sorting, y Sorting Haskell: ecuaciones y funciones, tipo basados en rboles. bsicos y tipos construidos de los bsicos, Algoritmos de grafos: Bsqueda siguiendo Listas, tcnicas de programacin funcional depth-first and breath-first, mnimo spanning de alto orden, polimorfismo y tipos tree, bsqueda en rboles y bosques algebraicos, arreglos, clase de mtodos y siguiendo depth-first. tipo de clases Diseo de arriba hacia abajo: Dividir y La eficiencia de programas funcionales: conquistar, bsqueda siguiendo backtracking reduccin de order, anlisis de eficiencia en algoritmo, bsqueda siguiendo priority-first los programas funcionales, y search, y greedy algoritmos. transformacin Programacin dinmica: funcion de higher Tipo de datos: Listas, rboles, y arrays. orden, multiplicaciones matriciales Tipo de datos abstractos: Stacks, colas, encadenadas, bsqueda binaria optima para colas con prioridad, conjuntos, tablas, rboles, y mnima trayectoria. bsquela en rboles binarios, Heaps, rboles Tpicos avanzados. Procesos de redes, AVL. Monads y algoritmo paralelos

V.

BIBLIOGRAFIA

Algorithms: A Functional Programming Approach por Fethi Rabhi y Guy Lapalme http://www.cs.cmu.edu/~scandal/cacm/cacm2.html Kumar, V; Grama, A.; Gupta, A.; Karypis, G.. Introduction to Parallel Computing, Second Edition. Addison Wesley, 2003 PVM Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing. Geist, A.; Beguelin, A; Dongarra, J. et alt.. The MIT Press, 1994 P. S. Pacheco. Parallel Programming with MPI. Morgan Kaufmann Publishers 1997

68

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Patrones de Lenguaje Paralelo CC341 04 (cuatro) CM094, CC202 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra que el uso de patrones o el descubrimiento de ellos servirn como una herramienta de evolucin de modelos de programacin. Los patrones de programacin paralela guiara a los programadores a tomar decisiones en cada paso del desarrollo del software paralelo

III.

SUMILLA
El curso se enfocara en definir patrones en las reas de descomposicin, algoritmos, estructuras, y metodologa.

IV.

CONTENIDO ANALITICO
CC341 Patrones de Lenguaje Paralelo Introduccin: Computacin paralela y las Crear la estructura de un algoritmo que dificultades que enfrentan los efectivamente explota la concurrencia que programadores de programacin paralela se ha identificado durante el diseo Patrones paralelos mas importantes Conexin de las estructuras y de los a. Descomposicin: algoritmos al API requerida para descomposicin de data y implementacin de ellos descomposicin funcional Construccin de control especifico para b. Orden: orden debe ser implementar programas paralelos preservado y orden no es Como trabajar con los ambientes de importante pero el efecto al programacin mas reconocidos: OpenMP, resultado es lo cuenta, MPI, y Java c. Comunicacin: Local, estructura Tabla de patrones paralelos de rbol recursiva, forma geomtricas complicadas d. Dependencias: separables, funcional, inseparable Bsqueda de concurrencia en un problema de diseo y la descomposicin de este en tareas concurrentes Manejo de data a travs de tareas

V.

BIBLIOGRAFIA
Patterns for Parallel Programming by Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Editorial: Boston : Addison-Wesley, 2005. Uzi Vishkin. Optimal parallel pattern matching in strings. Information and Control , 67:91{113, 1985 David A. Koufaty A. Algoritmos paralelos para bsqueda de patrones. Tesis de Maestra, Universidad Simn Bolvar, Caracas, 1991

69

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Lenguaje Paralelo Distribuido Orientado a Objetos CC302 04 (cuatro) CC201, CC341 ELECTIVO Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO Demuestra que existe lenguajes orientado a objetos que son distribuidos, paralelizados, y que son accesibles con Java (X10) SUMILLA
El curso ensea a programar en X10. El lenguaje es diseado para alto rendimiento, alta productividad, siendo capaz de ejecutar 100000 hilos en forma concurrente.

III.

IV.

CONTENIDO ANALITICO

CC302 Lenguaje de Paralelo Distribuido Orientado a Objetos Introduccin Expresiones X10 Overview Lugares Estructura Lexical Actividades Tipos Reloj Variables Operaciones de reloj Objetos Arrays Paquetes y reglas de nombres Plugin compilers Convenciones de nombres Linking con cdigo nativo Interfaces Interfaces con propiedades Clases Declaracin de variables Statements

V.

BIBLIOGRAFIA
http://dist.codehaus.org/x10/documentation/languagespec/x10-170.pdf
David Bacon. Kava: A Java dialect with a uniform object model for lightweight classes. Concurrency Practice and Experience, 15:185 206, 2003. Joseph A. Bank, Barbara Liskov, and Andrew C. Myers. Parameterized types and Java. In Proceedings of the 24th Annual ACM Symposium on Principles of Programming Languages (POPL97), pages 132145, 1997. J. Gosling, W. Joy, G. Steele, and G. Bracha. The Java Language Specification. Addison Wesley, 2000. Jose E. Moreira, Samuel P. Midkiff, Manish Gupta, Pedro V. Artigas, Marc Snir, and Richard D. Lawrence. Java programming for high-performance numerical computing. IBM Systems Journal, 39(1):21, 2000. A. Skjellum, E. Lusk, and W. Gropp. Using MPI: Portable Parallel Programming with the Message Passing Iinterface. MIT Press, 1999.

70

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Computacin Grfica CC322 04 (cuatro) CC301 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO

Demuestra la obtencin de figuras de 2 dimensiones de una figura de 3 dimensiones y viceversa a travs del desarrollo de software.

III.

SUMILLA
El curso cubre es una introduccin a computacin grfica cuyas aplicaciones las vemos en aplicaciones mdicas, modelo industrial, entretenimiento, y otros campos.

IV.

CONTENIDO ANALITICO
1. Introduccin Conceptos fundamentales: Sntesis de imgenes, computacin grfica interactiva, grfica raster, frame buffer. Rendering: el proceso de visualizacin realista de escenas complejas. Modelo conceptual del proceso de visualizacin. Modelo de color RGB. Historia de la Computacin Grfica. Visualizacin realista en industria de entretenimientos versus modelacin precisa de objetos y escenas complejas para aplicaciones cientficas. Requerimientos de aplicaciones y contextos distintos. Visualizacin cientfica. - Aplicaciones: ingeniera, medicina, industrias de entretenimientos, visualizacin en tiempo real, simuladores de vuelos, computacin personal. Algoritmos raster bsicos Introduccin a los algoritmos raster: Transformaciones geomtricas en dos dimensiones, coordenadas homogneas. Tcnicas bsicas de interaccin. Dispositivos de entrada. Modelo conceptual del proceso de visualizacin en dos dimensiones. Clipping en dos dimensiones. Aliasing y antialiasing. Hardware grfico Sistema raster versus sistema vectorial. Arquitectura de sistemas raster. Tecnologas de despliegue: tubo de rayos catdicos (CDT). Frame buffer. Despliegue raster del color: grupos de triadas de puntos (red, green, blue). Tasa de refresco. Tecnologa de cristal lquido. Transformaciones geomtricas Aspectos matemticos y preliminares. Transformaciones bidimensionales. Coordenadas Homogeneas y representacin matricial de transformaciones bidimensionales. Eficiencia. Representacin matricial de transformaciones tridimensionales. Visualizacin en 3D Transformaciones geomtricas en 3D. Transformaciones de proyeccin: perspectiva, paralela, otras. Modelo conceptual del proceso de visualizacin en 3D e implementaciones de ste. Clipping sobre el volumen (frostrum) de la vista. Algoritmos bsicos de eliminacin de superficies ocultas.

2.

3.

4.

5.

71

6.

7.

8.

9.

10.

11.

12.

13.

Representacin de curvas y superficies Mallas de polgonos, triangulaciones, curvas en 3D, superficies suaves por parches: Bicbicas, Hermite, Bezier, Nurbs. Estructuras de datos. Aplicaciones: modelos de terrenos, simuladores de vuelos, industrias de entretenimientos (juegos, animaciones, pelculas). Modelado de slidos Sistemas CAD/CAM y aplicaciones a ingeniera. Consistencias validez y precisin de las representaciones. Geometra slida constructiva (CSG), modelos de borde, discretizaciones. Estructuras de datos. Dificultades del manejo preciso de objetos y algoritmos geomtricos. Introduccin al OpenGL Introduccin.OpenGL y Linux. Conceptos Bsicos(primitivas bsicas, sintxis, funciones bsicas, espacio 3D, GLUT). Maquina de Estados y Librerias Afines. Animaciones, Iluminaciones y Texturas. Teselacin por Polgonos, Grficos Interactivos y Aspectos Avanzados. Tcnicas avanzadas de modelado Textura 1D de color, Textura 2D de Color, BUMP MAPPING, FRAME MAPPING, Textura en Volumen, Textura con transparencias, Filtros de Magnificacin y Contraccin. Objetos Fractales Mtodo de Sistemas de Funciones Afines Iteradas (IFS), Mtodo del tiempo de Escape, Mtodo de Desplazamiento, Mtodo de reglas generativas Luz cromtica y acromtica Luz Cromtica. Seleccin de Intensidades. Aproximacin por medios tonos. Luz Cromtica. Psicofsica. Diagrama de Cromaticidad CIE. Modelos de Colores para Grficos de Trama. RGB.CMY.YIQ.HSV. Utilizacin del color en la graficacin por computador. Determinacin de superficies visibles Funciones de dos variables. Explotacin de coherencia espacial, volmenes de acotamiento. Algoritmo del pintor. Eliminacin de caras de atrs (back-face culling). Algoritmo de Robert. Algoritmo Z-Buffer. Algoritmos basados en listas de prioridades. Arboles de particin espacial binaria. Algoritmos scan-line. Algoritmos de subdivisin de reas: algoritmos de Warnock y Weiler-Atherton . Otros. Superficie Visible mediante Ray Tracing, intersecciones, jerarquas. Modelos de iluminacin local y textura Combinacin de leyes fsicas y tcnicas heursticas, modelo de Phong. Tcnicas de sombreado o interpolacin: Gouraud y Phong. Modelos de iluminacin global Trazado de rayos clsico. Ecuacin de rendering. Radiosity. Algoritmos de iluminacion Global. Tcnicas de MonteCarlo en grficos. Medios participantes y scattering volumtrico. Environment mapping no local. Armnicos esfricos. Modelos basados en procesamiento de imgenes. Modelos atmosfricos.

V.

BIBLIOGRAFIA
Foley, Van Dam, Feiner, Hughes, Phillips, "Introduccin a la Graficacin por Computador", Addisson-Wesley Iberoamericana, S.A., 1996 Foley, Van Dam, Feiner, Hughes, Phillips, "Computer Graphics, Principles and Practice", Addisson-Wesley Publishing Company, Inc. 1990 Alan H. Watt, "3D Computer Graphics (3rd Edition)", Addisson-Wesley Publishing Company, Inc., January 2000 Hearn, Donald;Baker, Pauline, ''Grficos por Computadora en OpenGL'', Pearson Education, 2006. M. Woo, J. Neider, T. Davis, ''OpenGL Programming guide. The official guide to learning OpenGL.'' Versin 1.1, Add Wesley, 1996. Randima Fernando and Mark Kilgard. ''The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics.'' Addison-Wesley, 2004. Moller and E. Haines. ''Real-Time Rendering (2nd ed).'' Chapman-Hall, New York, 2002. Edward Angel. ''Interactive Computer Graphics: A Top-Down Approach with OpenGL, 3rd Edition.'' Addison-Wesley. 2003.

72

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Bases de Datos CC331 04 (cuatro) CM094, CC202 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

OBJETIVO DEL CURSO


Introduce los conceptos y la evolucin del sistema de base de datos. Cubre los aspectos de concurrencia, confiabilidad y bsqueda de informacin usando SQL lenguaje.

SUMILLA
El curso cubre el sistema de base de datos relacional desde sus inicios, por qu fue importante crearlo y los problemas que hoy en da se enfrenta. Se discute la arquitectura, diseo, e implementacin de una base de datos relacional.

CONTENIDO ANALITICO
Modelo de Entidad relacin (E/R) Introduccin al modelo de datos ER. Conjuntos de entidades y de relaciones. Dominios. Representaciones equivalentes de una relacin. Cuestiones de diseo. Especializacin. Agregacin. Reduccin a tablas El modelo relacional. Conversin de E/R Introduccin. Esquemas, Tuplas, Tablas, Dominios. Conversin a tablas desde un modelo con relaciones. Conversin a tablas desde un modelo con generalizacin. Descubrimiento de llaves en las relaciones. Dependencias funcionales Definicin. Axiomas de Armstrong. Reglas Adicionales. Cerradura de un conjunto de atributos. Recubrimiento no redundante. Determinacin de las claves de un esquema y clculo de las claves de un esquema R. Normalizacin. Dependencias de mltiple valores. Redundancia, Anomalas de actualizacin y Eliminacin. Primera y Segunda forma Normal. Descomposicin sin Prdida. Preservacin de dependencias. Forma Normal de BoyceCodd(BCNF). Tercera forma Normal.BCNF vs 3NF. Cuarta y Quinta forma Normal. Algebra Relacional Definiciones. Operadores algebraicos relacionales: Primitivos(proyeccin, seleccin, unin, diferencia, producto cartesiano, renombre), No Primitivos(interseccin, divisin, emsamble natural, ensamble con selecin). Expresividad del algebra relacional. Renombramiento. Modificaciones de las bases de datos (eliminacin, insercin, actualizacin). Operadores extendidos. Introduccin a SQL

73

Aplicaciones de las bases de datos. Sistemas de bases de datos frente a sistemas de archivos. Visin de los datos. Modelos de bases de datos. Lenguajes de bases de datos. Gestin de transacciones. Estructura de un sistema de bases de datos. Usuarios de bases de datos Agregaciones, modificaciones, y operaciones avanzadas Agregaciones y diseo de agregaciones. Modificacion de datos. Clasificacin: Insertar tuplas en una relacin, Eliminar tuplas de una relacin y Actualizar el valor de algunos componentes de tuplas existentes. Vistas y definicin de datos Cocepto de vista. Aplicaciones de vistas. Vistas en SQL. Sintaxis. Motivos por que una lista no es actualizable.Vista sobre una tabla Bsica. Vista sobre una concatenacin de relaciones. Definir tabalas. Filas y columnas. Insertar claves de ndice. Crear relaciones entre tablas. Asignar tipos de datos. Restricciones y disparadores (triggers) Restricciones en procedimientos alamacenados y disipadores. Restricciones en subconsultas. Restricciones en vistas. Definicin, uso y sintaxis de trigger. Componentes y nombres de disipadores. Tipos de disipadores. Orden de activacin de disipadores. Mdulos de almacenamiento persistentes Almacenamiento y estructura de archivos. Indexacin y asociacn. Procesamiento de consultas. Optimizacin de consultas. Oracle. PL/SQL Conceptos Preliminares. Nociones basicas de PL/SQL. Estructuras de Control. Los cursores. Manejo de errores. Procedimientos almacenados. Funciones y Triggers. Los paquetes. Sistemas embebidos SQL. CLI, y JDBC Introduccin al desarrollo de Aplicaciones con Bases de Datos. SQL emebebido. SQL Dinmico. Acceso a bases de datos: ODBC, SQLJ, SQL/CLI. Entornos 4GL y bases de datos. Otras tecnologias para acceso a datos: JDBC y ADO.NET Autorizacin Violaciones de la seguridad. Control de acceso a la base de datos. Tipos de autorizacin. Autorizaciones y vistas. Concesin de privilegios. Eliminacin de privilegios. El concepto de rol o papel. Limitaciones de la autorizacin SQL. Transacciones Introduccin. Sentencias para una transaccin. Transacciones anidadas. Ejemplos. Transacciones y procedimientos almacenados. Sistemas relacionales-OO Base de datos relacionales. Diseo de bases de datos relacionales. Bases de datos Orientadas a Objetos: Qu es O.O.?, Por qu O.O.?, Qu es una BDOO?. Datalog. Base de Datos orientados a objetos. Arquitectura de Una BDOO. Desarrollo con Bases de Datos OO. Tres Enfoques de Construccin de Bases de Datos OO. Impacto de la Orientacin a Objetos en la Ingeniera del Software. Ventajas en BDOOs. Rendimiento Data y XML semi-estructurados Modelo de Datos Semiestructurados. Estructura de los datos en XML. HTML vs. XML. Sintaxis bsica de XML. DTD y XML-Schema. Query en Datos y XML semi-estructurados Introduccion al XML. XML Query Data Model: Introduccin, Conceptos, Types , Nodos, etc. XML Query Algebra. XML Query( el lenguaje de consulta).

74

Warehouse y Mineria de datos Data Warehouse. Introduccin a los Almacenes de Datos. Introduccin a la mineria de datos. Explotacin de almacenes de datos herramientas OLAP. Problemas de Clasificacin. Aprendizaje supervisado. Mtodos de agrupamiento. Aprendizaje no supervisado. Diseo de almacenes de datos. Mantenimiento de almacenes de datos. Introduccin a la Minera de Datos (DM). Tcnicas de Minera de Datos. Web Mining.

BIBLIOGRAFIA
Database Systems: The Complete Book (DS:CB), by Hector Garcia-Molina, Jeff Ullman , and Jennifer Widom . Editorial: Upper Saddle River, N.J. : Pearson Prentice Hall, 2009. Introduccin a los Sistemas de Base de Datos. C. J. Date : Pearson Prentice Hall, 2001. Bases de datos relacionales: diseo fsico (Orientado al DB2 para z/OS de IBM). Enrique Rivero Cornelio, Carlos Guardia Rivas , Jos Carlos Reig Hernndez. Editor Universidad Pontificia de Comillas de Madrid, 2004 Abiteboul,S; Hull and Vianu, V. ; Foundations of Databases ; Addison-Wesley Publishing Company, 1995. Ullman, Jeffrey D.; Principles of Database and Knowledge Base Systems, Vol I Computers Science Press, 1988. Mendelzon, A. "Introduccin a las Bases de Datos Relacionales" Ed. Pearson, 2000 Silberschatz, A.; Korth, H.F.; Sudarshan, S. Fundamentos de Bases de Datos. 3 edicin. Madrid, McGraw-Hill, 1998. Inmon, W.H., Building the Data Warehouse , John Wiley, 2002. Elmasri, R.; Navathe, S.B. Fundamentals of Database Systems 3rd Edition, Addison-Wesley, 2000, captulo 26. Berry, M.: Data mining techniques. 1997. BRAY, T.; HOLLANDER, D.; LAYMAN, A. Namespaces in XML. World Wide web Consortium. W3C Recommendation, 1999. Urman, S. ORACLE 8. Programacin en PL/SQL. Osborne McGraw-Hill, Madrid, 1998.

75

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Motores de Bsquedas CC521 04 (cuatro) CC342 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II. III.

OBJETIVO DEL CURSO


Demostrar cmo han sido construidos los motores de bsqueda.

SUMILLA
El curso describe la arquitectura de motores de bsqueda y sus algoritmos. Los estudiantes implementaran, y utilizaran sus propias maquinas de bsquedas.

IV.

CONTENIDO ANALITICO
CC521 Motor de Bsquedas Introduccin Interfaces del usuario y visualizacin Modelos Evaluacin de la informacin de Evaluacin de los datos encontrados multimedia encontrada Lenguajes de bsqueda Modelos y lenguajes de informacin de Operaciones de bsqueda multimedia encontrada Propiedades y lenguajes de texto y ndices y interfaces de bsquedas de multimedia informacin de multimedia Operaciones de texto Interfaces de bsqueda en la Web ndices e interfaces de bsquedas Libreras para sistemas bibliogrficos Informacin recogida de sistemas distribuidos y paralelos

Libreras digitales

V.

BIBLIOGRAFIA
Modern Information Retrieval (Baeza-Yates and Ribeiro-Neto; Addison Wesley).1999 Information Retrieval Algorithms and Heuristics (Grossman and Frieder; Springer). Editorial: Dordrecht ; [Great Britain] : Springer, 2004.

76

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Inteligencia Artificial CC441 04 (cuatro) CM274, CC301 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Este curso cubre tpicos fundamentales en sistemas inteligentes: Representacin del conocimiento y razonamiento, bsqueda avanzada del conocimiento y razonamiento. Evaluar las posibilidades de simulacin de la inteligencia, para lo cual se estudiarn las tcnicas de modelizacin del conocimiento. Construir una nocin de inteligencia que soporte despus las tareas de su simulacin.

III.

SUMILLA
La investigacin en Inteligencia Articial ha conducido al desarrollo de numerosas tcnicas relevantes, dirigidas a la automatizacin de la inteligencia humana, dando una visin panormica de diferentes algoritmos que simulan los diferentes aspectos del comportamiento y la inteligencia del ser humano. El curso usara el lenguaje Lisp para el estudio e implementacin de los algoritmos que demostrarn el aprendizaje a travs del tiempo, con la llegada de nuevos datos, y las modificaciones que se tiene que hacer al algoritmo (creacin o adicin de nuevas reglas).

IV.

CONTENIDO ANALITICO

4.1 Tpicos Fundamentales en Sistemas Inteligentes Tpicos. I: Historia de la inteligencia articial. II: Cuestiones loscas. III: La prueba de Turing. IV: Experimento de pensamiento del Cuarto Chino de Searle. V: T emas tpicos en IA. VI: Deniciones fundamentales. VII: Comportamiento ptimo vs. comportamiento actuando como humano. VIII: Razonamiento ptimo vs. razonamiento actuando como humano. IX: Preguntas loscas. X: Modelando el mundo. XI: El rol de la heurstica. Objetivos. 1. Describir la prueba de Turing y el experimento de pensamiento del Cuarto Chino. 2. Diferenciar los conceptos de razonamiento ptimo y razonamiento actuando como humano. 3. Diferenciar los conceptos de comportamiento ptimo y comportamiento actuando como humano. 4. Lista de ejemplos de sistemas inteligentes que dependen del modelo del mundo. 5. Describir el rol de la heurstica y la necesidad de un punto medio entre la optimizacin y la eciencia . 4.2. Bsqueda y Satisfaccin de la Restriccin. Tpicos. I: Problemas de espacio. II: Bsqueda de fuerza bruta (respiro primero, profundidad primero, profundidad primero con profundizacin iterativa). III: Bsqueda del mejor primero (mejor primero genrico, algoritmo de Dijkstra, A*, admisibilidad de A*). IV: Juegos de dos jugadores (bsqueda mnima , poda alfa-beta). V: Satisfaccin de la restriccin ( backtracking o mtodos de bsqueda local y seguimiento). Objetivos. 1. Formular un eciente problema expresado en el idioma espaol, caracterizando este n problema en trminos de estados, operadores, estado inicial, y una descripcin del estado nal. 2. Describir el problema de explosin combinatoria y sus consecuencias. 3. Seleccionar un algorito mo apropiado de bsqueda de fuerza bruta para un problema, implementarlo y caracterizar sus complejidades de tiempo y espacio. 4. Seleccionar un algoritmo de bsqueda heurstica para un

77

problema, implementarlo por medio del diseo de la funcin de evaluacin heur n o o stica necesaria. 5. Describir bajo que condiciones los algoritmos de heurstica garantizan una solucin ptima. 6. Implementar la bsqueda m u nima con poda alfa-beta para juegos de dos. 7. Formular un problema en espaol utilizando un algoritmo de backtracking cronolgico. 4.3. Representacin del Conocimiento y Razonamiento. Tpicos. I: Inferencia no monotcnica. II: Razonamiento probabilstico. III: Teorema de Bayes. Objetivos. 1. Explicar la operacin de la tcnica de resolucin para probar teoremas. 2. Explicar la diferencia entre inferencia monotcnica y no monotcnica. 3. Discutir las ventajas y defectos del razonamiento probabilstico. 4. Aplicar el teorema de Bayes para determinar probabilidades condicionales. 4.4. Bsqueda Avanzada. Tpicos. I: Algoritmos genticos. II: Simulated annealing. III: Bsqueda local. Objetivos. 1. Explicar que son los algoritmos genticos y contrastar su efectividad con las soluciones e de problemas clsicos y tcnicas de bsqueda clsicas. 2. Explicar como simulated annealing puede ser usado para reducir la complejidad y contrastar su operacin con tcnicas de bsqueda clsica. 3. Aplicar tcnicas de bsqueda local a un dominio clsico. 4.5. Representacin Avanzada del Conocimiento y Razonamiento. Tpicos. I: Incerteza. a) Razonamiento probabilstico. b) Redes Bayesianas. c) Conjuntos difusos y teora de la posibilidad. d) Teora de la decisin. Objetivos. 1. Describir y contrastar las tcnicas bsicas para representar incerteza. 4.6. Agentes. Tpicos. I: Denicin de agentes. II: Arquitectura de agentes. a) Agent es reactivos simples. b) Planeadores reactivos. c) Arquitecturas de capas. d) Ejemplos de arquitecturas y aplicaciones. III: Teora de agentes. a) Acuerdos. b) Intenciones. c) Agentes de decisin terica. d) Procesos de decisin de Markov (PDM). IV: Agentes que aprenden. V: Sistemas multiagente. a) Sistemas multiagente inspirados econmicamente. b) Agentes colaborativos. c) Equipos de agentes. d) Modelando agentes. e) Aprendizaje multiagente. Objetivos. 1. Explicar en que diere un agente de otras categoras de sistemas inteligentes. 2. Caracterizar y contrastar las arquitecturas estndar de agentes. 3. Describir la distincin entre agentes que aprenden y no aprenden. 4. Demostrar usando ejemplos apropiados como los sistemas multiagente soportan interaccin de agentes.

4.7. Procesamiento de Lenguaje Natural. Tpicos. I: Gramticas determinsticas y estocsticas. II: Algoritmos de parsing. III: Mtodos basados en corpus. IV: Recuperacin de informacin. V: Traslacin de lenguaje. VI: Reconocimiento del habla. Objetivos. 1. Denir y contrastar gramticas determinsticas y estocsticas, proveyendo ejemplos a para mostrar la adecuacin de cada una. 2. Identicar algoritmos de parsing c lsicos para parsing o a de lenguaje natural. 3. Defender la necesidad de un corpus establecido. 4. Dar ejemplos de catlogos y procedimientos de bsqueda en un mtodo basado en corpus. 5. Articular la distincin entre tcnicas para recuperacin de informacin, traduccin del lenguaje, y reconocimiento de voz. 4.8. Aprendizaje de Mquina y Redes Neuronales. Tpicos. I: Denicin y ejemplos de aprendizaje de mquina. II: Aprendizaje supervisado. III: Aro boles de aprendizaje por decisin. IV: Redes neuronales de aprendizaje. V: Redes de aprendizaje por creencia. VI: Algoritmo del vecino mas cercano. VII: Teora de aprendizaje. VIII: El problema del sobreajuste. IX: Aprendizaje no supervisado. X: Aprendizaje por refuerzo. Objetivos. 1. Explicar las diferencias entre tres principales estilos de aprendizaje: supervisado, no supervisado y por refuerzo. 2. Implementar algoritmos simples para aprendizaje supervisado, aprendizaje por refuerzo y aprendizaje no supervisado. 3. Determinar cuales de los tres estilos de aprendizaje es apropiado para un dominio de problema en particular. 4. Comparar y contrastar cada una de las siguientes tcnicas, proveer ejemplos de cuando cada estrategia es superior: rboles de decisin, redes neuronales, y redes de creencia.. 5. Implementar de manera apropiada o un sistema de aprendizaje simple, usando rboles de decisin, redes neuronales y/o redes de creencia. 6. Caracterizar el estado del arte en teora del aprendizaje, incluyendo logros y defectos. 7. Explicar el algoritmo del

78

vecino mas cercano y su lugar dentro de la teora del aprendizaje. 8. Explicar el problema de sobreajuste, a travs de tcnicas para detectar y manejar el problema. 4.9. Robtica. Tpicos. I: Visin general. a) Estado del arte de sistemas de robot. b) Planeamiento vs. Control reactivo. c) Incerteza en control. d) Sentido. e) Modelos del mundo. II: Espacios de congur acin. III: Planeamiento. IV: Sentido. V: Programacin de robots. VI: Navegacin y control. Objetivos. 1. Sintetizar el potencial y limitaciones del estado del arte de los sistemas de robot de hoy. 2. Implementar los algoritmos de conguracin de esp acio para un robot 2D y polgonos complejos. 3. Implementar algoritmos de planeamiento de movimientos simples. 4. Explicar las incertezas asociadas con sensores y como tratar con estas incertezas. 5. Disear una arquitectura de control simple. 6. Describir varias estrategias para navegacin en ambientes desconocidos, incluyendo las fortalezas y defectos de cada una. 7. Describir varias estrategias para navegacin con la ayuda de hitos, incluyendo las fortalezas y defectos de cada una.

V.

BIBLIOGRAFIA
Goldberg, D. (1989). Genetic Algorithms in Search, Optimization and Machine learning. Addison Wesley . Haykin, S. (1999). Neural networks: A comprensiveFoundation. Prentice Hall. Nilsson, N. (2001). Inteligencia Articial: Una nueva visin. McGraw -Hill. Russell, S. and Norvig, P. (2003). Inteligencia Artical: Un enfoque moderno. Prentice Hall. Winston, P.H. y Horn, B.K. LISP (3a. ed.) (Addison--Wesley, 1991). Guy L. Steele Common Lisp: The Language, 2nd edicin.. Editorial: Burlington, MA : Digital Press, 1984. Artificial Intelligence: A Modern Approach de Stuart Russell y Peter Norvig: Editorial: Upper Saddle River, N.J. : Prentice Hall/Pearson Education, 2003. Machine Learning de T. Mitchell, (McGraw Hill, 1997). A Modern Approach, 2nd Edition, Russell and Norvig, Prentice Hall, 2003. ISBN 0-13790395-2. (http://aima.cs.berkeley.edu/). Inteligencia Artificial. Una nueva sntesis. Nilsson, Nils J. Primera Edicin. 2001. McGraw Hill Interamericana de Espaa, S.A.U. Inteligencia artificial: modelos, tcnicas y reas de aplicacin. Escolano, Francisco; Cazorla, Miguel Angel; Alfonso, Mara Isabel. Primera Edicin. 2003. Thomson Editores.

79

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Formacin de Empresas de Base Tecnolgica CC081 03 (tres) Ninguno ELECTIVO Semestral TEORIA (02) PRACTICA (02)

II.

OBJETIVO DEL CURSO


Elaborar un plan de negocio para dar inicio a una empresa de base tecnolgica. Hacer un estudio que e permita detectar un nicho de mercado que haga viable la creacin de la empresa.

III.

SUMILLA
El curso esta dividido en: diagnstico de mercado, plan tecnolgico, marco legal aplicado a las TICs y anlisis estratgico. Se busca aprovechar el potencial creativo e innovador en la creacin de nuevas empresas.

IV.

CONTENIDO ANALITICO
CC081 Formacin de Empresas de Base Tecnolgica Proceso de investigacin de mercados Como solicitar estudios de mercado La investigacin como herramienta de anlisis La innovacin y el ciclo de vida de la tecnologa La estrategia tecnolgica Propiedad Intelectual Aspectos Tributarios Aspectos Legales para la Constitucin de la Empresa Contratos Informticos Anlisis Estratgico Anlisis de Entorno Anlisis Interno Estrategia Competitiva Visin y Misin de la Empresa

V.

BIBLIOGRAFIA
Centro de Investigacin y Desarrollo PUCP, 2004. Plan de Negocio en Tecnologas de Informacin y Comunicacin. Pontifica Universidad Catlica del Per. Congreso de la Repblica del Per (1996). Decreto Legislativo No823. Ley de la Propiedad Industrial. El Peruano. De la Repblica del Per, C. (1997). Ley No26887. Ley General de Sociedades. El Peruano. Ferre, J. (1997). Investigacin de Mercados Estratgica. Gestin 2000 Ludevid, M. (1994). Como crear su propia empresa: Factores Claves de Gestin. Marcombo Boxixareu.

80

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Introduccin a la Robtica CC511 04 (cuatro) CC441, CF241 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Provee a los estudiantes con el conocimiento de mtodos de diseo para el anlisis de sistemas inteligentes y robticos.

III.

SUMILLA
El curso cubre los elementos bsicos de modelamiento, diseo, planeamiento y control de los sistemas del robot. Desarrolla las formas de pensamiento lgico y la capacidad de razonamiento, mediante el anlisis de mtodos heursticos y su aplicacin a problemas no algoritmizables o poco estructurados.

IV.

CONTENIDO ANALITICO
CC511 Introduccin a la Robtica Introduccin Introduccin a la Optimizacin Manipuladores de los sistemas de los robots Optimizacin numrica Sensores y activadores Evaluacin de Monte Carlo y algoritmos Control de bajo nivel en los robots evolucionarios Robot mviles Mquinas de aprendizaje Modelamiento de sistemas dinmicos Clasificacin de conjuntos de datos Sistemas continuos y discretos Redes neuronales Lgica formal y maquinas de Turing Entrenamiento de redes neuronales. Aprendizaje Calculo de predicados: Lgica de primer a travs del tiempo orden y conjuntos difusos Control optimo Sistemas expertos: Interfaces de Control neuronal robusto y adaptativo. Representacin y conocimiento Planeamiento de tareas y sistemas de mltiTeora de la probabilidad agente

V.

BIBLIOGRAFIA
An Introduction to Intelligent and Autonomous Control by Panos J. Antsaklis and Kevin M. Passino Editorial: Boston : Kluwer Academic, 1993. Fundamentals of robotic mechanical systems, por Jorge Angeles. Publicado por Springer, 2003.

81

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Arquitectura y Programacin de FPGA y VHDL CC422 04 (cuatro) NINGUNO Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demostrar la evolucin de la tecnologa en lgica programable y en la alta escala de integracin de los circuitos. La metodologa ha evolucionado y esto ha sido expresado por los lenguajes de descripcin de los circuitos.

III.

SUMILLA
El curso explica a los alumnos una metodologa de diseo. Se ensea la descripcin, y se simula la implementacin.

IV.

CONTENIDO ANALITICO
CC422 Arquitectura y Programacin de FPGA y VHDL Fundamentos Tericos Concepto y Estructura de FPGA Familias de FPGA CAD para el diseo sobre FPGA Metodologa de diseo Descripcin del diseo Introduccin al Lenguaje VHDL Elementos sintcticos del VHDL Descripcin del Flujo de Datos Descripcin comportamental algortmica Descripcin Estructural Poniendo orden: Subprogramas, Paquetes, y Bibliotecas Conceptos Avanzados en VHDL VHDL para la simulacin VHDL para sntesis Utilizacin del Lenguaje VHDL

V.

BIBLIOGRAFIA
VHDL Lenguaje para sntesis y modelado de circuitos A Boluda Grau Edi : Alfaomega, 2004 http://www.ehu.es/%7Ejtpolagi/completo.htm Rapid system prototyping with FPGAs, por R. C. Cofer, Benjamin F. Harding. Publicado por Elsevier, 2005. Fpga-Based System Design, por Wayane Wolf. Publicado por Prentice Hall, 2004.

82

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Tpicos en Seguridad CC033 04 (cuatro) CC302 ELECTIVO Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra que seguridad es algo que nos da cierto nivel de certeza con respecto a los ataques de ingreso de usuarios a reas protegidas. El curso muestra la arquitectura de seguridad de Java 2.x

III. IV.

SUMILLA
El curso cubre arquitectura, diseo, e implementacin de la Seguridad de Java 2.x

CONTENIDO ANALITICO

CC033 Tpicos en Seguridad Fundamentos de seguridad del computador y redes La seguridad bsica para el lenguaje Java La arquitectura de seguridad en JDK 2.x El uso de la arquitectura de seguridad Creando los permisos y las plizas de la arquitectura de seguridad al gusto del cliente Objeto de seguridad Programando Criptografa Direcciones Futuras

V.

BIBLIOGRAFIA
Inside java 2 Platform Security by Li Gong Editorial: Boston : Addison-Wesley, 2003. Cryptography: A Primer by A.G. Konheim Editorial: New York : Wiley, 1981. Cryptography in C and C++, por Michael Welschenbach, David Kramer. Ed: 2, Publicado por Apress, 2005.

83

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Seminario de Tesis I CC541 04 (cuatro) Aprobar 8 ciclos Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Supervisar las etapas iniciales del desarrollo de tesis de cada uno de los alumnos registrados en el seminario; incluyendo las etapas de bsqueda bibliogrfica, definicin de los objetivos, metodologa, productos a entregar y calendario del trabajo de investigacin propuesto. Registro formal del tema de tesis (Protocolo) de acuerdo a los lineamientos propuestos por la Facultad de Ciencias en el programa de la Ciencia de la Computacin.

III.

SUMILLA
Tiene por finalidad orientar al alumno en la preparacin de la tesis profesional. Se sustenta en el conocimiento previo, el cual se organiza y actualiza en torno a un plan de investigacin que adems de ser riguroso debe ser realizable.

IV.

CONTENIDO ANALITICO
CC541 Seminario de Tesis I Qu es una investigacin Cmo se hace investigacin en MIT Tesis a. Introduccin b. Qu es lo que se sabe hasta ahora brevemente c. Presentar las ideas mas relevantes que han sido trabajadas por otros d. Problema que se va resolver e. Descripcin de cmo resolvi el problema f. Conclusin g. Referencias h. Apndices Cmo escoger un profesor como gua de tesis

V.

BIBLIOGRAFIA
http://delta.cs.cinvestav.mx/~francisco/semtesis/semtesis07.html http://www.cs.umd.edu/~oleary/gradstudy/gradstudy.html http://www.cs.indiana.edu/mit.research.how.to.html

84

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I.

DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARCTER MODALIDAD HORAS Tpicos Especiales de Software CC021 04 (cuatro) CC302, CC322, CC331 Obligatorio Semestral TEORIA (03) LABORATORIO (02)

II.

OBJETIVO DEL CURSO


Demuestra una metodologa para desarrollar redes de voz y datos Muestra los beneficios y deficiencias de la implementacin de voz sobre IP

III.

SUMILLA
El curso nos muestra la telefona actual. Se desarrolla la parte conceptual de los paquetes de voz en tiempo real sobre las redes de datos. Cubre el descubrimiento, anlisis, planificacin y diseo de un proyecto de integracin de voz y datos.

IV.

CONTENIDO ANALITICO
CC021 Tpicos Especiales de Software Estado de las comunicaciones por voz Protocolos de sealizacin y transporte La sealizacin utilizada en telefona VOIP empresarial Integracin de voz y datos: metodologa, Sistema de sealizacin planificacin y diseo Enrutamiento de llamadas y planificacin Presupuestos de retraso y planes de de conexiones telefnicas prdida Definicin y medida de la calidad de la Establecimiento de un plan integrado de voz servicio telefnico Digitalizacin y codificacin de la voz Habilitacin de la calidad de servicio de Paquetes de voz y redes de datos red extensa Protocolos WAN para servicios de voz y Establecimiento de la conectividad del datos integrados router PBX Consideraciones de diseno para los Establecimiento de capacidad de llamada protocolos WAN de rea extensa Revisin de las funciones IP para la integracin de voz y datos Resolucin de cuestiones relacionadas con la calidad de la voz

V.

BIBLIOGRAFIA
UNIX Network Programming: Networking APIs: Sockets and XTI; Vol I por W Richard Stevens Editorial: Upper Saddle River, NJ : Prentice Hall PTR, 1998. Integracin de Redes de Voz Datos por Scott keagy Editorial: Madrid : Cisco Systems, 2001.

85

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Seminario de Tesis II CC074 04 (cuatro) CC541 Electivo Semestral TEORIA (03) LABORATORIO (02)

II. OBJETIVO DEL CURSO


Supervisar la parte final de la tesis. En el primer mes del semestre el alumno sustentar los resultados antes de terminar de escribir la tesis. Los resultados del trabajo se publicar en eventos dentro y fuera del pas.

III. SUMILLA
Tiene por finalidad orientar al alumno para que escriba los resultados en su tesis como para presentar los resultados en congresos y revistas indexadas.

IV. CONTENIDO ANALITICO


CC074 Seminario de Tesis II Qu es una investigacin Cmo hacer trabajos de investigacin Cmo escribir una tesis en grupo Cmo escribir un trabajo para ser Cmo hacer investigacin con presentado en el congreso personas fuera de la Universidad Cmo escribir un trabajo para ser presentado en una revista indexada Cmo postular para conseguir un trabajo Cmo postular para seguir estudios de postgrado dentro y fuera del pas Cmo continuar haciendo investigacin Cmo conseguir referencias para continuar un postgrado Cmo conseguir referencias para obtener un trabajo

V. BIBLIOGRAFIA
http://delta.cs.cinvestav.mx/~francisco/semtesis/semtesis07.html http://www.cs.umd.edu/~oleary/gradstudy/gradstudy.html http://www.cs.indiana.edu/mit.research.how.to.html

86

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Ingles I CL002 02 (dos) ninguno Obligatorio Semestral TEORIA (01)

LABORATORIO (03)

FUNDAMENTACION Parte fundamental de la formacin integral de un profesional es la habilidad de comunicarse en un idioma extranjero adems del propio idioma nativo. No solamente amplia su horizonte cultural a sino que permite una visin mas humana y comprensiva de la vida de las personas. En el caso de los idiomas extranjeros, indudablemente el Ingls es el ms prctico porque es hablado alrededor de todo el mundo. No hay pas alguno donde este no sea hablado. En las carreras relacionadas con los servicios al turista el Ingls es tal vez la herramienta prctica ms importante que el alumno debe dominar desde el primer momento, como parte de su formacin integral.

II. OBJETIVO DEL CURSO


Conocer el idioma ingls y su estructura gramatical Identicar situaciones y emplear dilogos relacionados a ellas CONTRIBUCION A LOS RESULTADOS Esta disciplina contribuye al logro de los siguientes resultados de la carrera: l) Desarrollar investigacin en el rea de computacin con niveles de competividad internacional. 2) Complementar la formacin profesional con formacin de humanidades y/o idiomas

III. CONTENIDO ANALITICO


1. HELLO EVERYBODY! Tpicos: I: Verbo To Be. II: Oraciones Armativas, Negativas y Preguntas. III: Expresiones o Numricas. IV: Objetos y Pases. V: Expresiones para saludar y hacer presentaciones. Objetivos. 1. Al terminar la primera unidad, cada uno de los alumnos, comprendiendo la gramtica del tiempo presente es capaz de expresar una mayor cantidad de expresiones de tiempo y adems usar oraciones con el verbo To Be para expresar situacin y estado. Adems es capaz de analizar y expresar ideas acerca de fechas y nmeros en orden. 2 MEETING PEOPLE! Tpicos. I: Adjetivos Posesivos. II: Expresiones para averiguar precios. III: Expresiones de Posesin. IV: Vocabulario de Familia, Comidas y Bebidas. V: Pedidos formales. VI: Cartas o informales. Objetivos. 1. Al terminar la segunda unidad, los alumnos habiendo identi cado la forma de expresar pedidos y hacer ofrecimientos en restaurantes los utilizan en situaciones varias. Explica y aplica vocabulario de comidas y bebidas. 3 THE WORLD OF WORK Tpicos. I: Uso There is/There are. II: Oraciones con Preposiciones. III: Expresiones de Cantidad. o IV: Vocabulario de aviones y lugares. V: Expresiones de indicaciones de direccin.

87

Objetivos. 1. Al nalizar la quinta unidad, los alumnos, a partir de la comprensin del tiempo o presente continuo, elaborar oraciones utilizando ideas de ubicacin y de lugar. Asimilar adems la necesidad de expresar objetos de uso comn. Adquirirn vocabulario para describir las partes de una casa usan expresiones para pedir indicaciones de direccin. 4 TAKE IT EASY! Tpicos. I: Presente Simple II: Oraciones Armativas, Negativas y Preguntas. III: Uso de Verbos de entretenimiento. IV: Tiempo Libre. V: Las estaciones del ao. VI: Expresiones de actividades sociales. Objetivos. 1. Al terminar la cuarta unidad, los alumnos habiendo identi cado la idea de expresar ideas de acciones de tiempo libre en Presente Simple y Continuo. Expresan ideas de estaciones y actividades relacionadas. 5 WHERE DO YOU LIVE? Tpicos. 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 direccin. Objetivos. 1. Al nalizar la quinta unidad, los alumnos, a partir de la comprensin del tiempo presente continuo, elaborarn oraciones utilizando ideas de ubicacin y de lugar. Asimilaran adems la necesidad de expresar objetos de uso comn. Adquirirn vocabulario para describir las partes de una casa usan expresiones para pedir indicaciones de direccin. 6 CAN YOU SPEAK ENGLISH? Tpicos. I: Can/cant. II: Pasado del verbo To Be. Uso de Could. III: Vocabulario de Pases idiomas. IV: Expresiones para el uso del telfono. V: Redaccin de cartas formales. VI: Lecturas. Objetivos. 1. Al nalizar la sexta unidad, los alumnos habiendo conocido los fundamentos del uso de auxiliares de modo, crearan oraciones aplicadas al contexto adecuado. Enfatizan la diferencia entre idiomas y nacionalidades. Describen sentimientos. Utilizan expresiones en el telfono. 5 THEN AND NOW! Tpicos. I: Pasado Simple. II: Expresiones de tiempo pasado. III: Vocabulario verbos regulares e irregulares. IV: Expresiones para describir el clima. V: Redaccin de prrafos descriptivos. VI: Ocasiones Especiales. Objetivos. 1. Al nalizar la stima unidad, los alumnos habiendo conocido los fundamentos de la estructuracin del Pasado Simple experimentan la necesidad de poder expresar este tipo de o tiempo en acciones. Realizaran practicas en contextos adecuados. Enfatizan la diferencia entre a a verbos irregulares y regulares. Describen acciones con verbos varios. Utilizan expresiones para describir el clima.

IV. BIBLIOGRAFIA

Cambridge (2006). Diccionario Ingls-Espaol Cambridge. Editorial Oxford. MacGrew, J. (1999). Focus on Grammar Basic. Editorial Oxford. Soars, L. and John (2002d). American Headway N 2 Student Book. Editorial Oxford.

88

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Ingles II CL003 02 (dos) CL002 Obligatorio Semestral TEORIA (01)

LABORATORIO (03)

FUNDAMENTACION Parte fundamental de la formacin integral de un profesional es la habilidad de comunicarse en un idioma extranjero adems del propio idioma nativo. No solamente amplia su horizonte cultural a sino que permite una visin ms humana y comprensiva de la vida de las personas. En el caso de los idiomas extranjeros, indudablemente el Ingls es el ms prctico porque es hablado alrededor de todo el mundo. No hay pas alguno donde este no sea hablado. En las carreras relacionadas con los servicios al turista el Ingls es tal vez la herramienta prctica ms importante que el alumno debe dominar desde el primer momento, como parte de su formacin integral.

II. OBJETIVO DEL CURSO


Desarrollar la capacidad de hablar adecuadamente el idioma. Incrementar el vocabulario y el manejo de expresiones simples.

CONTRIBUCION A LOS RESULTADOS Esta disciplina contribuye al logro de los siguientes resultados de la carrera: l) Desarrollar investigacin en el rea de computacin con niveles de competividad internacional. 2) Complementar la formacin profesional con formacin de humanidades y/o idiomas

III. CONTENIDO ANALITICO


1 How long ago? Tpicos: I: Pasado Simple II: Oraciones Negativas con ago. III: Conjunciones IV: Expresiones o de Tiempo en pasado V: Relaciones y smbolos fonticos VI: Expresiones para dar la fecha Objetivos. 1. Al terminar la octava unidad, cada uno de los alumnos, comprendiendo la gramtica a del tiempo pasado es capaz de expresar una mayor cantidad de expresiones de tiempo y adems a usar preposiciones para describir lugares y tiempos variados. Adems es capaz de analizar y a expresar ideas acerca de fechas y nmeros en orden. 2 Food you like! Tpicos: I: Sustantivos Contables y No Contables II: Expresiones con Would like y I would like III: Cuantificadores IV: Comidas alrededor del mundo V: Pedidos formales VI: Cartas formales Objetivos. 1. Al terminar la novena unidad, los alumnos habiendo identificado la forma de expresar pedidos y hacer ofrecimientos, los utilizan en situaciones varias. Expresar situaciones y estados relacionados con cantidades. Explica y aplica vocabulario de comidas y bebidas. 3 The world of work Tpicos I: Adjetivos II: Oraciones con Adjetivos Comparativos. III: Oraciones con Adjetivos o Superlativos IV: Ciudades y el campo V: Indicaciones de direccin Objetivos. 1. Al terminar la dcima unidad, los alumnos habiendo reconocido las caractersticas de los adjetivos, utilizan estos para hacer comparaciones de diversos tipos. Describen personas y lugares y dan indicaciones de direccin. Utilizaran conjunciones para unir ideas tipo.

89

4 Looking good! Tpicos: I: Presente Continuo II: Oraciones Afirmativas, Negativas y Preguntas III: Uso de o Whose IV: Pronombres Posesivos V: Ropa y colores VI: Expresiones a usar en tiendas de ropa VII: Smbolos fonticos. E Objetivos. 1. Al terminar la decimo primera unidad, los alumnos habiendo identificado la idea de e expresar ideas de acciones que suceden en el momento o que se relacionan a cualquier tiempo estructuran oraciones en Presente Progresivo. Expresan ideas de posesin con respecto a la ropa o y los colores. 5 Life is an adventure! Tpicos: I: Uso de going to II: Oraciones en Tiempo Futuro III: Expresiones de Cantidad. o IV: Verbos de accin V: Vocabulario del clima VI: Expresiones de Sugerencia VII: Escribir o una postal Objetivos. 1. Al analizar la decimo segunda unidad, los alumnos, a partir de la comprensin del e o tiempo futuro, elaboraran oraciones utilizando los elementos necesarios. Asimilaran adems la necesidad de expresar infinitivos de propsito. Adquirirn vocabulario para describir el clima. Se presentara expresiones para hacer y pedir sugerencias. 6 You are pretty smart! Tpicos: I: Formas de Preguntas II: Adverbios y Adjetivos III: Vocabulario descripcin de senti mientos IV: Expresiones para viajes en tren V: Redaccin de historias cortas VI: Lecturas. Objetivos. 1. Al analizar la decimo tercera unidad, los alumnos habiendo conocido los fundamentos de la estructuracin de preguntas diversas, realizaran trabajos aplicativos en contextos adecuados. Enfatizan la diferencia entre adjetivos y adverbios. Describen sentimientos. Utilizan expresiones para coger un tren. Asumen la idea se sufijos y prefijos. 4.7 Have you ever? Tpicos: I: Presente Perfecto II: Expresiones con never, ever y yet III: Vocabulario verbos en Participio pasado IV: Expresiones para viajes en avion V: Redaccin de cartas de agradecimiento VI: Lecturas Objetivos:. 1. Al analizar la decimo cuarta unidad, los alumnos habiendo conocido los fundamentos e de la estructuracin del Presente Perfecto experimentan la necesidad de poder expresar este tipo o de tiempo en acciones. Realizaran practicas en contextos adecuados. Enfatizan la diferencia entre a a pasado simple y presente perfecto. Describen acciones con never, ever y yet. Utilizan expresiones para utilizar en un aeropuerto.

IV. BIBLIOGRAFIA

Cambridge (2006). Diccionario Ingls-Espaol Cambridge. Editorial Oxford. MacGrew, J. (1999). Focus on Grammar Basic. Editorial Oxford. Soars, L. and John (2002a). American Headway N 1 Student Book. Editorial Oxford. Soars, L. and John (2002b). American Headway N 1 Teachers Book. Editorial Oxford. Soars, L. and John (2002c). American Headway N 1 Work Book. Editorial Oxford.

90

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Ingeniera de software CC061 04 (cuatro) CC201 Electivo Semestral TEORIA (03) LABORATORIO (02)

FUNDAMENTACION La tarea de desarrollar software, excepto para aplicaciones sumamente simples, exige la ejecucin de un proceso de desarrollo bien denido. Los profesionales de esta rea requieren un alto grado de conocimiento de los diferentes modelos de proceso de desarrollo, para que sean capaces de elegir el mas idneo para cada proyecto de desarrollo. Por otro lado, el desarrollo de sistemas de mediana y gran o escala requiere del uso de bibliotecas de patrones y componentes y del dominio de tcnicas relacionadas e al diseo basado en componentes.

II. OBJETIVO DEL CURSO


Familiarizar al alumno con los procesos de software que se presentan en el desarrollo del ciclo de vida del software. Presentar a los alumnos los diferentes modelos de evaluacin de procesos y las mtricas del proceso de software Los alumnos deben identicar los requerimientos funcionales y no funcionales de la construccin o de un software Orientar a los alumnos en el modelamiento de anlisis de requerimientos y prototipos de un a software. Los alumnos debe ser capaces de seleccionar y aplicar patrones de diseo apropiados en la n construccin de una aplicacin de software Aplicar el diseo de componentes y el diseo de reuso en las aplicaciones presentadas por los alumnos.

CONTRIBUCION A LOS RESULTADOS Esta disciplina contribuye al logro de los siguientes resultados de la carrera: Habilidad para analizar un problema e identicar y denir los requerimientos computacionales apropiados para su solucin. Habilidad para disear, implementar y evaluar un sistema, proceso, componente o programa computacional para alcanzar las necesidades deseadas. Habilidad para trabajar efectivamente en equipos para cumplir con un objetivo comn. Habilidad para comunicarse efectivamente con audiencias diversas. Habilidad para usar tcnicas y herramientas actuales necesarias para la prctica de la computacin. Habilidad para 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 o n demuestre comprensin de los puntos de equilibrio involucrados en la opcin escogida. Habilidad para aplicar los principios de desarrollo y diseo en la construccin de sistemas de n o software de complejidad variable.

91

III. CONTENIDO ANALITICO


1 Procesos de Software. Tpicos. I: Ciclo de vida del software y modelos de procesos. II: Modelos de evaluacin de procesos. III: Mtricas del proceso de software. Objetivos. 1. Explicar el ciclo de vida del software y sus fases incluyendo las entregas que son producidas. 2. Seleccionar con justicacin los modelos de desarrollo de software ms apropiados para el desarrollo y mantenimiento de un diverso rango de productos de software. 3. Explicar el rol del proceso de modelos de madurez. 4. Comparar el modelo tradicional cascada con el modelo incremental, el modelo orientado a objetos, y otros modelos apropiados. 5. Para cada uno de los diferentes escenarios de proyectos de software, describir la posicin del proyecto en el ciclo de vida del software, identicar las tareas particulares que deben ser desarrolladas seguidamente e identicar las mtricas apropiadas para estas tareas. 2 Representacin Avanzada del Conocimiento y Razonamiento. Tpicos. I: Elicitacin de requerimientos. II: Tcnicas de modelamiento del anlisis de requerimientos. III: Requerimientos funcionales y no funcionales. IV: Prototipeo. V: Conceptos bsicos de tcnicas de especicacin formal. Objetivos. 1. Aplicar elementos clave y mtodos comunes para la elicitacin y anlisis, para producir un conjunto de requerimientos de software para un sistema de tamao medio. 2. Discutir los retos de mantener software heredado. 3. Usar un mtodo comn, no formal para modelar y e u especi car (en la forma de un documento de especicacin de requerimientos) los requerimientos para un sistema de software de tamao medio. 4. Conducir una visin general de un documento de requerimientos de software, usando las mejores prcticas para determinar la calidad del documento. 5. Traducir en lenguaje natural una especicacin de requerimientos de software escrita o en un lenguaje de especicacin formal comnmente usado. 3 Tpicos Fundamentales en Sistemas Inteligentes. Tpicos. I: Conceptos fundamentales de diseo y principios. II: Patrones de diseo. III: Arquitectura de software. IV: Diseo estructural. V: Anlisis y diseo orientado a objetos. VI: Diseo a nivel componente. VII: Diseo para reuso. Objetivos. 1. Discutir las propiedades del buen diseo de software. 2. Evaluar la calidad de mltiples diseos de software basados en principios de diseo, claves y conceptos. 3. Seleccionar y aplicar patrones de diseo apropiados en la construccin de una aplicacin de software. 4. Conducir una sntesis de diseo de software usando la gua apropiada. 5. Comparar y contrastar el anlisis orientado a objetos con el anlisis y diseo estructural. 6. Crear y especi car el diseo de software para un producto de software de tamao medio usando una especi cacin de requerimientos de software, una metodologa de diseo de programas aceptado (ejemplo orientado a objetos o estructurado), y una notacin de diseo apropiada. 7. Evaluar un diseo de software a nivel componente.. 8. Evaluar un diseo de software a nivel componente desde la perspectiva de reuso.

IV. BIBLIOGRAFIA

Blum, B. I. (1992). Software Engineering: A Holistic View. Oxford University Press US, 7th edition. Pressman, R. S. (2004). Software Engineering: A Practitioners Approach. McGrawHill, 6th edition. Schach, S. R. (2004). Object-Oriented and Classical Software Engineering. McGrawHill.

92

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE CIENCIA DE LA COMPUTACION

SLABO

I. DESCRIPCION DEL CURSO


CURSO CODIGO CREDITOS PRE-REQUISITO CARACTER MODALIDAD HORAS Tpicos en Base de Datos CC071 04 (cuatro) CC331 Electivo Semestral TEORIA (03) LABORATORIO (02)

FUNDAMENTACION La Gestin de la Informacin (IM-Information Management ) juega un rol principal en casi todas las reas donde los computadores son usados. Esta rea incluye la captura, digitalizacin, representacin, organizacin, transformacin y presentacin de informacin; algortmos para mejorar la eciencia y efectividad del acceso y actualizacin de informacin almacenada, modelamiento de datos y abstraccin, y tcnicas de almacenamiento de archivos fsicos. Este tambin abarca la seguridad de la informacin, privacidad, integridad y proteccin en un ambiente compartido. Los estudiantes necesitan ser capaces de desarrollar modelos de datos conceptuales y fsicos, determinar que mtodos de IM y tcnicas son apropiados para un problema dado, y ser capaces de seleccionar e implementar una apropiada solucin de IM que reeje todas las restricciones aplicables, incluyendo escalabilidad y usabilidad.

II. OBJETIVO 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 informacin basada en sus diversos enfoques y su posterior recuperacin de informacin.

CONTRIBUCION A LOS RESULTADOS Esta disciplina contribuye al logro de los siguientes resultados de la carrera: Habilidad para aplicar conocimiento de computacin y de matemtica apropiadas para la disciplina. Habilidad para analizar un problema e identicar y denir los requerimientos computacionales apropiados para su solucin. Habilidad para disear, implementar y evaluar un sistema, proceso, componente o programa computacional para alcanzar las necesidades deseadas. Habilidad para trabajar efectivamente en equipos para cumplir con un objetivo comn. Correcto entendimiento de las implicancias profesionales, ticas, legales, de seguridad y sociales de la profesin. Habilidad para usar tcnicas y herramientas actuales necesarias para la prctica de la computacin. Habilidad para 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. Habilidad para aplicar los principios de desarrollo y diseo en la construccin de sistemas de software de complejidad variable.

93

III. CONTENIDO ANALITICO


1 Base de Datos Relacionales. Tpicos. I: Mapeo del esquema conceptual al esquema relacional. II: Entidad e integridad referencial. III: Algebra relacional y clculo relacional. Objetivos. 1. Preparar un esquema relacional de un modelo conceptual usando el modelo entidadrelacin. 2. Explicar y demostrar los conceptos de restricciones de la integridad de la entidad o y restricciones de la integridad referencial (incluyendo la denicin del concepto de llave fornea). 3. Demostrar el uso de las operaciones del lgebra relacional desde la teora de conjuntos matemticos (unin, interseccin, diferencia y producto cartesiano) y las operaciones de lgebra relacional desarrolladas especcame nte para bases de datos relacionales (select, product, join y division). 4. Demostrar consultas en el lgebra relacional. 5. Demostrar consultas en el clculo relacional de tuplas. 2 Lenguajes de Consultas de Base de Datos. Tpicos. I: Sntesis de los lenguajes de bases de datos. II: SQL (denicin de datos, formulacin de consultas, actualizacin del sublenguaje, restricciones e integridad). Objetivos. 1. Crear un esquema de base de datos relacional en SQL que incorpora restricciones de integridad referencial, integridad-entidad, clave. 2. Demostrar la denicin de datos en SQL y recuperar informacin de una base de datos usando la sentencia SQL SELECT. 3. Evaluar un conjunto de estrategias de procesamiento de consultas y seleccionar la ptima.. 4. Crear una consulta no procedimental por medio de llenado de plantillas de relaciones para construir un ejemplo del resultado de la consulta deseada. 5. Incrustar consultas orientadas a objetos en un lenguaje independiente tales como C++ o Java (ejemplo, SELECT Col. Method() FROM Objet). 3 Diseo de Bases de Datos Relacionales. Tpicos. I: Diseo base de datos. II: Dependencia funcional. III: Formas normales (1NF, 2NF, 3NF, BCNF). IV: Dependencia multivaluada(4NF). V: Dependencia de grupos (PJNF; 5NF). VI: Representacin terica. Objetivos. 1. Determinar la dependencia funcional entre dos o ms atributos que son un subconjunto a de una relacin. 2. Describir que signica 1NF, 2NF, 3NF y BCNF. 3. Identi car si una relacin es una 1NF, 2NF, 3NF o BCNF. 4. Normalizar una 1NF en un conjunto de relaciones en 3NF (o BCNF) y desnormalizar un esquema relacional. 5. Explicar el impacto de la normalizacin sobre la e ciencia de las operaciones de base de datos, especialmente la utilizacin de consultas. 6. Describir que es una dependencia multivaluada y qu tipo de restricciones sta especica. 7. Explicar por qu 4NF es til en el diseo del esquema. 4 Procesamiento de Transacciones. Tpicos. I: Transacciones. Objetivos. 1. Crear una transaccin mediante la incrustacin de SQL en un programa de aplicacin. 2. Explicar el concepto de compromiso implcito. 3. Describir los temas espec cos para la ejecucin de transacciones ecientes. 4. Explicar cundo y por qu el rollback y como el logging asegura un rollback apropiado. 5. Explicar los efectos de los diferentes niveles de aislamiento sobre los mecanismos de control de concurrencia. 5 Bases de Datos Distribuidas. Tpicos. I: Almacenamiento de datos distribuido. II: Procesamiento de consultas distribuidas. III: Modelo de transaccin distribuido. IV: Control de concurrencia. V: Soluciones heterogneas y homogneas. VI: Cliente-servidor. Objetivos. 1. Explicar las tcnicas usadas para la fragmentacin, replicacin, alocacin de datos durante el proceso de diseo de bases de datos distribuidas. 2. Evaluar estrategias simples para ejecutar una consulta distribuida para seleccionar la estrategia que minimice la cantidad de transferencia de datos. 3. Explicar cmo el protocolo de compromiso en dos fases es usado o para tratar una transaccin que accese a una base de datos almacenada en mltiples nodos. 4. Describir el control de concurrencia distribuido basado en la distincin de tcnicas de copiado y el mtodo de eleccin. 5. Describir los tres niveles de software en el modelo cliente-servidor.

94

IV. BIBLIOGRAFIA

Bernstein, P. A. and Newcomer, E. (1997). Principles of Transaction Processing, First Edition. Morgan Kaufmann. Celko, J. (2005). Joe Celkos SQL Programming Style. Elsevier. Date, C. (2005). Data Mining: Practical Machine Learning Tools and Techniques, Second Edition. Elsevier. Dietrich, S. W. (2001). Understanding Relational Database Query Languages, First Edition. Prentice Hall. Elmasri, R. and Navathe, S. B. (2004). Fundamentals of Database Systems, Fourth Edition. Addison Wesley. Harrington, J. L. (2002). Relational Database Design Clearly Explained, Second Edition. Morgan Kaufmann. Ozsu, M. T. and Valduriez, P. (1999). Principles of Distributed Database Systems, Second Edition. Prentice Hall. Whitehorn, M. and Marklyn, B. (2001). Inside Relational Databases, Second Edition. Springer.

95

También podría gustarte