CURSO : PROGRAMACION AVANZADA TRADUCCION : ADVANCED COMPUTER PROGRAMMING SIGLA : IIC2233 CRÉDITOS : 10 MÓDULOS : 03 REQUISITOS : IIC1103 CARÁCTER : MINIMO DISCIPLINA : INGENIERIA I. DESCRIPCION Este curso ense?a tecnicas para el dise?ar, codificar, probar y evaluar programas que resuelven problemas algoritmicos a partir de las especificaciones detalladas. En particular, el curso ense?a algunas construcciones avanzadas de programacion orientada a objetos no incluidas en el curso introductorio, algunas estructuras de datos fundamentales, dise?o basico de algoritmos y tecnicas de analisis. Los estudiantes deben usar una serie de herramientas de programacion para desarrollar sus programas. II. OBJETIVOS Al finalizar el curso el alumno sera capaz de: 1. Descomponer problemas grandes para dise?ar y estructurar sus soluciones. 2. Crear "buenos" dise?os orientados a objetos para problemas simples y comunicar estos dise?os a traves de documentacion externa y comentarios en el codigo. 3. Aplicar conceptos de orientacion a objetos (herencia, polimorfismo, interfaces) y estructuras de datos fundamentales (listas ligadas, stacks, colas, arboles binarios y tablas de hash), para dise?ar y escribir programas complejos en lenguajes tales como Java y C#. 4. Escribir programas basados en modelos de programacion particulares; por ejemplo, programacion de multiples hebras y programacion dirigida por eventos. 5. Usar herramientas de programacion comunes (debuggers, profilers, linkers, y sistemas de control de versiones); tecnicas de programacion (bibliotecas de programacion orientada a objetos y pruebas unitarias); y un entorno de desarrollo de software para editar, compilar, y depurar programas. 6. Construir desde cero una aplicacion con una interfaz grafica de usuario significativa y totalmente funcional. III. CONTENIDOS 1. Introduccion a C#: Aspectos basicos del framework .NET y elementos nuevos del lenguaje. 2. Elementos avanzados de OOP: Elementos avanzados de los lenguajes orientados a objetos que facilitan la modelacion y programacion; en especial, herencia y polimorfismo. 3. El framework .NET: Aspectos avanzados que abren nuevas posibilidades en la programacion. 4. Programacion multithread: Como funciona la CPU y como aprovechar mejor su funcionamiento. 5. Programacion dirigida por eventos (winforms): Herramientas para realizar programas con interfaz grafica de usuario utilizando el modelo del framework .NET. 6. Patrones: Soluciones predefinidas a problemas comunes en programacion utilizando los elementos avanzados de orientacion a objetos. 7. Vuelta a Java: Como realizar todo lo aprendido, pero ahora utilizando Java. IV. METODOLOGIA Modulos semanales: - Catedras: 2 - Ayudantias: 1 PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE FACULTAD DE INGENIERIA / Mayo de 2009 1 El curso se realiza utilizando metodologias de ense?anza centradas en el alumno que permitan a los estudiantes desarrollar las competencias definidas en los objetivos del curso. Este curso esta dise?ado de forma tal que el alumno dedique al estudio personal un promedio de 6 hrs. a la semana. V. EVALUACION Las evaluaciones pueden ser por medio de pruebas, proyectos y/o tareas. VI. BIBLIOGRAFIA Textos Minimos Sierra, Kathy and Bates, Bert Head First Java, 2nd Edition. Paperback, Feb 9, 2005. Bloch, Joshua Effective Java, 2nd Edition. Java Series, Paperback, May 28, 2008. PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE FACULTAD DE INGENIERIA / Mayo de 2009 2