Está en la página 1de 4

IIC2233

PROGRAMACIN AVANZADA
Departamento de Ciencia de la Computacin
Escuela de Ingeniera
Pontificia Universidad Catlica de Chile

Programa
Sigla:
Nombre del curso:
Crditos:
Mdulos docentes:
Profesor:
Ayudantes Jefe:

Semestre:

IIC2233
Programacin Avanzada
10
Martes y Jueves (2):10:30 11:20 hrs.
Karim Pichara Baksai
Christian Pieringer Baeza
Beln Saldas
Patricio Lpez
Jaime Castro
Bastin Mavrakis
Marco Bucchi
2015-2

DESCRIPCIN
Este curso ensea tcnicas para disear, implementar, ejecutar y evaluar herramientas de software
que resuelven problemas algortmicos a partir de especificaciones detalladas. En particular, el curso
ensea construcciones avanzadas de programacin orientada a objetos, estructuras de datos
fundamentales, diseo bsico de algoritmos y tcnicas de anlisis.

OBJETIVOS
1. Descomponer problemas grandes para disear y estructurar sus soluciones.
2. Crear diseos orientados a objetos para problemas simples y comunicar estos diseos a travs de
documentacin externa y comentarios en el cdigo.
3. Aplicar conceptos de orientacin a objetos (herencia, polimorfismo, interfaces) y estructuras de
datos fundamentales (listas ligadas, stacks, colas, rboles binarios y tablas de hash), para disear
y escribir programas complejos en el lenguaje de programacin Python, pudiendo extender este
conocimiento a distintos lenguajes.
4. Usar herramientas de programacin comunes (debuggers y sistemas de control de versiones)
tcnicas de programacin (bibliotecas de programacin orientada a objetos y pruebas
unitarias) y un entorno de desarrollo de software para editar, compilar, y depurar programas.
5. Generar software desde cero, con cdigo de alto nivel, de fcil re-utilizacin, actualizacin y
mantenimiento. Incluyendo interfaces grficas significativas, totalmente funcionales.

CONTENIDO
1. Programacin Orientada a Objetos

1.1
1.2
1.3
1.4

Objetos
Herencia
Herencia mltiple
Propiedades

2. Estructuras de Datos

2.1
2.2
2.3
2.4
2.5

rboles
Diccionarios
Colas
Stacks
Sets

3. Funciones de Python y Programacin


Funcional

3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9

Algunas funciones especiales de Python


Comprensin de listas
Iterables e iteradores
Generadores
Funciones lambda
Map
Reduce
Filter
Decoradores

4. Meta Clases

4.1 Comprender la lgica detrs de la construccin y


creacin de clases

5. Clases Abstractas

5.1 Herencia a partir de clases no instanciables

6. Simulacin

6.1 Introduccin a la simulacin y SimPy

7. Manejo de Excepciones

7.1 Tipos de excepciones/errores


7.2 Controlarlos de excepciones

8. Testing

8.1 Test unitarios en Pytest

9. Interfaces Grficas (GUI)

9.1 Introduccin a las Interfaces grficas usando PyQt4

10. I/O

10.1
10.2
10.3
10.4

11. Threading

11.1 Creacin y sincronizacin de threads


11.2 Concurrencia

12. Networking

12.1 Socket, cliente, servidor

13. WebServices

13.1 Expresiones regulares


13.2 Uso de servicios REST

Bytes
Serializacin
Audio
Imagen

METODOLOGA
Mdulos semanales:
Ctedra: 2
Ayudanta/Laboratorio: 1
El curso se realiza utilizando metodologas de enseanza tericas-prcticas centradas en el alumno
que permitan a los estudiantes desarrollar las competencias definidas en los objetivos del curso,
tanto en ctedras como en ayudantas. Este curso est diseado de forma tal que el alumno
dedique al estudio personal un promedio de 6 hrs. a la semana.

EVALUACIN

Las evaluaciones sern efectuadas por medio de actividades prcticas en clases, controles,
tareas, 2 Interrogaciones y un examen. La nota final del curso (NF) se calcular como:
= 0.2 + 0.2 + 0.3 + 0.2 + 0.1
Donde I es el promedio de las interrogaciones, E es la nota del Examen, T es el promedio de las
tareas, AC es el promedio de las actividades en clases y C es el promedio de los controles.

Durante el semestre NO se borrar ninguna evaluacin. Tampoco existe la posibilidad de ser


eximido del Examen final.
Las tareas son reprobatorias. Si la nota en las tareas, T < 4.0, NF = NT.
Solo se aproximar la nota final NF. Todo el resto de las notas sern usadas con dos decimales.
La inasistencia a una de las interrogaciones (I) podr ser reemplazada por la nota del examen.
Solo se podr faltar a una de las interrogaciones y esta deber ser justificada con autorizacin
de la Direccin de Pregrado. No se puede faltar al examen.

FECHAS INTERROGACIONES
Interrogacin 1: lunes 21 de Septiembre, 18:30 hrs.
Interrogacin 2: viernes 13 de Noviembre, 18:30 hrs.
Examen: jueves 3 de Diciembre

Poltica de Integridad Acadmica del


Departamento de Ciencia de la Computacin
Los alumnos de la Escuela de Ingeniera de la Pontificia Universidad Catlica de Chile deben mantener
un comportamiento acorde a la Declaracin de Principios de la Universidad. En particular, se espera
que mantengan altos estndares de honestidad acadmica. Cualquier acto deshonesto o fraude
acadmico est prohibido; los alumnos que incurran en este tipo de acciones se exponen a un
Procedimiento Sumario.
Es responsabilidad de cada alumno conocer y respetar el documento sobre Integridad Acadmica
publicado por la Direccin de Docencia de la Escuela de Ingeniera:
http://wwwold.ing.puc.cl/esp/alumpregrado/procedimientos/integridad_academica.html
Especficamente, para los cursos del Departamento de Ciencia de la Computacin, rige
obligatoriamente la siguiente poltica de integridad acadmica. Todo trabajo presentado por un
alumno para los efectos de la evaluacin de un curso debe ser hecho individualmente por el alumno,
sin apoyo en material de terceros. Por trabajo se entiende en general las interrogaciones escritas, las
tareas de programacin u otras, los trabajos de laboratorio, los proyectos, el examen, entre otros.
En particular, si un alumno copia un trabajo, o si a un alumno se le prueba que compr o intent
comprar un trabajo, obtendr nota final 1.1 (uno punto uno) en el curso y se solicitar a la Direccin de
Docencia de la Escuela de Ingeniera que no le permita retirar el curso de la carga acadmica
semestral.
Por copia se entiende incluir en el trabajo presentado como propio partes hechas por otro alumno.
En este caso, la sancin anterior se aplicar a todos los alumnos involucrados. Por "compra" se entiende
presentar como propio un trabajo hecho por otra persona. En este caso, se informar a la Direccin
de Docencia la persona que vende el trabajo.
Obviamente, est permitido usar material disponible pblicamente, por ejemplo, libros o contenidos
tomados de Internet, siempre y cuando se incluya la referencia correspondiente. Lo anterior se
entiende como complemento al Reglamento del Alumno de la Pontificia Universidad Catlica de
Chile:
http://dsrd.uc.cl/alumnos-uc/reglamento-estudiantiles
Por ello, es posible pedir a la Universidad la aplicacin de sanciones adicionales especificadas en dicho
reglamento.