Syllabus
Facultad/Instituto Facultad de Ingeniería
Departamento Departamentos de Ingeniería Informática
Carrera(s) Ingeniería Civil Informática
I.- Identificación
Actividad Curricular Nombre Taller de Programación II
Código IN1071C
Créditos 7
Horario Sección 1:
Catedra 9-11 (16:10-19:00)
Laboratorio 3-4 (10:10-12:00)
Sección 2:
Catedra 2-4 (9:10-12:00)
Laboratorio 1-2 (8:10-10:00)
Sección 1-2
Semestre 2023-II
Requisitos IN1069C
Sala Sección 1:
Cátedra 05-17
Laboratorio 05-13
Sección 2:
Cátedra 05-13
Laboratorio 05-13
Horas de docencia Directa Cátedra Ayudantía Laboratorio Clínica Práctica
(Semanal) 3 1
Indirecta 7
Total (D+I) 11
Responsable Nombre Diego Maldonado
D Correo dmaldonado@[Link]
o Horario Miércoles módulo 9-10 (16:10-18:00)
c atención Consultas en otro horario coordinar vía e-mail
e Colaborador(es) Nombre(s)
n
Correo(s)
t
Horario
e
atención
II.- Descripción Actividad Curricular (Explicación y sentido de la actividad curricular, declaración de
contribución al perfil de egreso, esta descripción debe ser equivalente a la declarada en el programa de
actividad curricular).
Este curso se centra en el paradigma de la orientación a objetos como método de representar la
realidad y en la implementación de soluciones en un lenguaje orientado a objetos. Después de
completado el curso, los estudiantes deberán ser capaces de implementar una solución a un problema
de programación a través del paradigma de orientación a objetos.
III.- Competencia genérica a la que contribuye la actividad curricular
Competencia Genérica Nivel de Dominio
CG5: Trabaja en forma autónoma e integra equipos interdisciplinarios. N1
CG7: Busca y analiza información proveniente de fuentes diversas. N2
Dirección de Docencia UCSC V.2.0
IV.- Competencias Específicas a las que contribuye la actividad Curricular
Código CDIO Habilidad / Destreza / Competencia Nivel de
desarrollo
1 Conocimiento
1.2 Ciencias de la computación
1.2.1 Fundamentos de algoritmos y estructuras de datos A
1.2.2 Lenguajes de programación T/P/A
1.2.3 Bases de datos e Ingeniería de software T
4 CDIO en el contexto organizacional y social
4.3 Concebir y aplicar ingeniería a los sistemas
4.4 Diseñar sistemas
IV.- Resultados de Aprendizaje de la Actividad Curricular (señalar los Resultados de Aprendizaje,
correspondientes a la actividad curricular)
RA1 Describe las características, usos y aplicaciones de los lenguajes de programación OO
RA2 Propone la solución a una problemática desde el punto de vista de clases ‐ objetos y sus relaciones
RA3 Programa soluciones basadas en un lenguaje orientado a objetos.
V. Motivación
Importancia de la actividad curricular en La programación orientada a objetos es un paradigma de
la formación del estudiante programación imperativo el cual se basa en representar la realidad,
sus componentes e interacciones entre estas en entidades llamadas
objetos minimizando la cantidad de código repetido, generando una
fácil diagramación y una representación intuitiva de los procesos
que describe el código, entre otras virtudes.
VI.- Requisitos de asistencia u otros
Requisitos de asistencia Asistencia mínima de un 80%.
Otros (*) Requisito Especial: En el Certamen III se evaluará el RA3 mediante la
resolución de problemas algorítmicos (RA3), evaluándose de forma
independiente. Como requisito de aprobación del curso se deberá tener
aprobado este certamen.
VII.- Evaluaciones
Dirección de Docencia UCSC V.2.0
Evaluación Fecha de aplicación Ponderación
Test 1 04/09
Test 2 16/10 20%
Test 3 13/11
Promedio Laboratorios 16/08 - 22/11 20%
Proyecto I 02/10
15%
Proyecto II 20/11
Certamen 1 27/09 15%
Certamen 2 27/11 15%
Certamen 3 (*) 06/12 15%
Evaluación de recuperación 06/12
Forma de obtención de la nota Nota Final: PromedioTest*0,2+PromedioLaboratorio*0,2+Certamen1*0,15+
final +Certamen2*0,15+Certamen3*0,15+ProyectoI*0,075+ProyectoII*0,075
Evaluación de recuperación Al final del semestre se realizará una evaluación recuperativa para los
estudiantes que hayan justificado adecuadamente sus inasistencias.
VIII.- Documentos y otros (libros, revistas, sitios web, artículos, etc.)
Recursos básicos
Recurso Bibliográficos Se encuentran en Importancia de utilizarlos
Meyer, B. Object Oriented Biblioteca central Texto muy completo sobre la
Software Construction. 2nd programación orientada a objetos
Edition. Prentice Hall, 1997
Vlissides, J., Helm, R., Johnson, Biblioteca central Texto que profundiza los patrones de
R., & Gamma, E. (1995). Design diseño.
patterns: Elements of reusable
object‐oriented software.
Reading: Addison‐Wesley,
49(120), 11
Recursos complementarios
Recurso Se encuentran en Importancia de Utilizarlos
Halim, S., Halim, F., Skiena, S. Biblioteca central Desafíos de programación que se
S., & Revilla, M. A. (2013). utilizan en los laboratorios.
Competitive Programming 3.
Lulu Independent Publish.
Dirección de Docencia UCSC V.2.0
VIII.- Cronograma
Para la elaboración de este cronograma se debe considerar la planificación clase a clase, Agregar filas hasta completar semestre académico (18 semanas).
RESULTADO DE CRITERIOS DE EVALUACIÓN FECHA CONTENIDOS METODOLOGÍAS Y ACTIVIDADES FORMATIVAS A DESARROLLAR
APRENDIZAJE HORAS DIRECTAS HORAS TRABAJO AUTONOMO
1 RA1 Evaluación diagnóstica Revisión del Programa de la asignatura y su contribución Actividad No.1: Modelado usando objetos.
07/08 (C) 0.0 Motivación: Importancia de la al perfil de egreso.
Evaluaciones formativas: programación orientada a objetos (POO). Introducción a la programación orientada a objetos
Actividad No.1 (POO).
Prueba de diagnóstico y revisión de respuestas
2 RA1 Evaluaciones formativas: Introducción a la programación orientada a objetos Actividad No.1: Modelado usando objetos.
Actividad No.1 09/08 (L) 1. Fundamentos del Modelo de (POO).
Desarrollo Orientado a Objetos
1.1. Clases y Objetos Diagrama de clases en UML.
Clases y Objetos en Python.
Actividad No.1: Modelado usando objetos.
3 RA3 Evaluaciones sumativa: Introducción a la Programación Competitiva. Laboratorio 1: Prueba del entorno de
Laboratorio 1 16/08 (L) Ejercicios de programación Simples Formato de entrada y salida de datos en Python. competencia.
IDE Adecuado.
Actividad de Laboratorio 1: Prueba del entorno de
competencia.
4 RA1 Evaluaciones formativas: Definición de atributos y métodos. Creación de clases en Actividad No.1: Modelado usando objetos.
Actividad No.1 21/08 (C) 1.2 Atributos y métodos Python, el método __init__.
Actividad No.1: Modelado usando objetos.
5 RA3 Evaluaciones sumativa: Actividad de Laboratorio 2: Ejercicios de programación Actividad de Laboratorio 2: Ejercicios de
Laboratorio 2 23/08 (L) Ejercicios de programación Simples simples. programación simples.
6 RA1 Evaluaciones formativas: Herencia en POO. Herencia simple y múltiple. Actividad No.2: Ejercicios de modelado usando
Actividad No.2 28/08 (C) 1.3 Herencia y polimorfismo herencia.
Herencia en UML.
Herencia en Python.
Actividad No.2: Ejercicios de modelado usando herencia.
7 RA3 Evaluaciones sumativa: Actividad de Laboratorio 3: Ejercicios de programación Actividad de Laboratorio 3: Ejercicios de
Laboratorio 3 30/08 (L) Ejercicios de programación medios. de media dificultad. programación de media dificultad.
8 RA1,RA2 Evaluaciones formativas:
04/09 Test 1. Introducción a los principios Fundamentales Desarrollo Actividad No.3: Ejercicios de Principios
Actividad No.3 Orientado a Objetos. Fundamentales Desarrollo Orientado a Objetos.
(C) 2 Elementos del macroproceso de
IN1071C Taller de Programación II, Diego Maldonado, 16/08/2022
Nota: Este documento puede estar sujeto a modificaciones.
Evaluaciones sumativa: Desarrollo de Software Orientado a [Link] No.3: Ejercicios de Principios Fundamentales
Desarrollo Orientado a Objetos.
Test 1. 2.1 Principios Fundamentales
Desarrollo Orientado a Objetos. Test 1.
2.2.1. Abstracción.
9 RA3 Evaluaciones sumativa: Presentación del paradigma búsqueda completa. Actividad de Laboratorio 4: Ejercicios de
Laboratorio 4 06/09 (L) Ejercicios de programación vía el Actividad de Laboratorio 4: Ejercicios de programación programación vía el paradigma búsqueda
paradigma búsqueda completa. vía el paradigma búsqueda completa. completa.
10 RA2 Evaluaciones formativas: Importancia del encapsulamiento en POO. Accesos
Actividad No.3 11/09 (C) 2.2.2. Encapsulamiento públicos y privados en Python. Getters y Setters. Actividad No.3: Ejercicios de Principios
Fundamentales Desarrollo Orientado a Objetos.
Asignación del Proyecto I de programación.
Actividad No.3: Ejercicios de Principios Fundamentales
Desarrollo Orientado a Objetos.
11 RA3 Evaluaciones sumativa: 13/09 (L) Ejercicios de programación vía el Presentación del paradigma divide y vencerás. Actividad de Laboratorio 5: Ejercicios de
Laboratorio 5 paradigma divide y vencerás. Actividad de Laboratorio 5: Ejercicios de programación programación vía el paradigma divide y vencerás
vía el paradigma divide y vencerás
12 RA3 Evaluaciones sumativa: Presentación del paradigma voraz Actividad de Laboratorio 6: Ejercicios de
Laboratorio 6 20/09 (L) Ejercicios de programación vía el Actividad de Laboratorio 6: Ejercicios de programación programación vía el paradigma voraz.
paradigma voraz. vía el paradigma voraz.
13 RA2 Evaluaciones formativas: Importancia de la Modularidad en POO. Modularidad en
Actividad No.3 25/09 (C) 2.2.3. Modularidad Python. Actividad No.3: Ejercicios de Principios
Fundamentales Desarrollo Orientado a Objetos.
Actividad No.3: Ejercicios de Principios Fundamentales
Desarrollo Orientado a Objetos.
14 RA3 Evaluaciones sumativa: Certamen 1
Certamen 1 27/09
15 RA1, RA2, RA3 Evaluaciones sumativa: Entrega Proyecto I
Entrega Proyecto I 02/10 (C) 2.2 Análisis de Requerimientos. Actividad No.4: Ejercicios de Análisis de
Requerimientos para el desarrollo Orientado a
2.2.1 Diagramas UML (Clase, Secuencia Introducción al análisis de requerimientos. Diagramas de Objetos.
Evaluaciones formativas: y Estado) Clase, Secuencia y Estado en UML.
Actividad No.4
Actividad No.4: Ejercicios de Análisis de Requerimientos
para el desarrollo Orientado a Objetos.
16 RA3 Evaluaciones sumativa: 04/10 (L) Ejercicios de programación vía el Presentación del paradigma programación dinámica. Actividad de Laboratorio 7: Ejercicios de
Laboratorio 7 paradigma programación dinámica. Actividad de Laboratorio 7: Ejercicios de programación programación vía el paradigma programación
vía el paradigma programación dinámica. dinámica.
17 RA3 Evaluaciones sumativa: Actividad de Laboratorio 8: Ejercicios de programación Actividad de Laboratorio 8: Ejercicios de
11/10 (L) Ejercicios de programación vía algún
IN1071C Taller de Programación II, Diego Maldonado, 16/08/2022
Nota: Este documento puede estar sujeto a modificaciones.
Laboratorio 8 vía algún paradigma. programación vía algún paradigma.
paradigma.
18 RA2
Evaluaciones sumativa: 16/10 (C) 2.2.2 Requerimientos funcionales Test 2. Actividad No.4: Ejercicios de Análisis de
Test 2. Requerimientos para el desarrollo Orientado a
2.2.3 Requerimientos no funcionales Tipos más importantes de requerimientos: Objetos.
Evaluaciones formativas: Requerimientos funcionales, requerimientos no
Actividad No.4 2.2.4 Seudorrequerimientos funcionales y seudorrequerimientos.
Actividad No.4: Ejercicios de Análisis de Requerimientos
para el desarrollo Orientado a Objetos.
19 RA3 Evaluaciones sumativa: Introducción a los grafos. Búsqueda en profundidad. Actividad de Laboratorio 9: Ejercicios de
Laboratorio 9 18/10 (L) Ejercicios de programación en grafos. Búsqueda en anchura. Componentes conexas. programación usando Recorrido de grafos.
Recorrido de grafos
Actividad de Laboratorio 9: Ejercicios de programación
usando Recorrido de grafos.
20 RA2
Evaluaciones formativas: 23/10 (C) 2.2.5 Actividades para la obtención de Actividades para la obtención de requerimientos y Actividad No.4: Ejercicios de Análisis de
Actividad No.4 requerimientos documentación de los requerimientos obtenidos. Requerimientos para el desarrollo Orientado a
Objetos.
2.2.6 Documentación de Ia obtención Actividad No.4: Ejercicios de Análisis de Requerimientos
de requerimientos para el desarrollo Orientado a Objetos.
21 RA3 Evaluaciones sumativa: Introducción al problema del árbol recubridor de peso Actividad de Laboratorio 10: Ejercicios de
Laboratorio 10 25/10 (L) Ejercicios de programación en grafos. mínimo. Algoritmo de prim. Algoritmo de Kruskal. programación usando Árbol recubridor de peso
Árbol recubridor de peso mínimo. mínimo.
Actividad de Laboratorio 10: Ejercicios de programación
usando Árbol recubridor de peso mínimo.
22 RA2 Introducción a los patrones de diseño orientado a
Evaluaciones formativas: 06/11 (C) 2.4. Patrones de Diseño Orientado a objetos. Patrones Singleton y Visitante. Actividad No.4: Ejercicios de Análisis de
Actividad No.4 Objetos. Requerimientos para el desarrollo Orientado a
Objetos.
2.4.1. Introducción Actividad No.4: Ejercicios de Análisis de Requerimientos
2.4.2. Singleton para el desarrollo Orientado a Objetos.
2.4.3. Visitante
23 RA3 Evaluaciones formativas: Introducción al problema del camino más cortos. Actividad de Laboratorio 11: Ejercicios de
Laboratorio 11 08/11 (L) Ejercicios de programación en grafos. Algoritmo de Dijkstra. Algoritmo de Bellman-Ford. Ciclos programación usando algoritmos de caminos
Caminos más cortos. negativos. más cortos.
Actividad de Laboratorio 11: Ejercicios de programación
usando algoritmos de caminos más cortos.
IN1071C Taller de Programación II, Diego Maldonado, 16/08/2022
Nota: Este documento puede estar sujeto a modificaciones.
24 RA1, RA2
Evaluaciones sumativa: 13/11 (C) 2.4.4. Modelo - Vista - Controlador Test 3. Actividad No.4: Ejercicios de Análisis de
Test 3. Requerimientos para el desarrollo Orientado a
2.4.5. Abstract Factory Patrones Modelo - Vista - Controlador y Abstract Objetos.
Evaluaciones formativas: Factory.
Actividad No.4
Asignación del Proyecto II de programación.
Actividad No.4: Ejercicios de Análisis de Requerimientos
para el desarrollo Orientado a Objetos.
25 RA3 Evaluaciones formativas : Introducción a los problema deflujo en redes. Algoritmo Actividad de Laboratorio 12: Ejercicios de
Laboratorio 12 15/11 (L) Ejercicios de programación en grafos. de Ford Fulkerson. Algoritmo de Edmonds Karp. programación usando algoritmos de Flujo en
Flujo en redes. redes.
Actividad de Laboratorio 12: Ejercicios de programación
usando algoritmos de Flujo en redes.
26 RA1, RA2, RA3 Evaluaciones sumativa: Presentación Proyecto II
Presentación Proyecto II 20/11 (C) 3. Extensiones al Modelo Orientado a Actividad No.5: Ejercicios las extensiones del
Objetos Extensiones del modelo orientado a objetos y aspectos modelo orientado a objetos.
Evaluaciones formativas: anexos. Tipo de datos enumerados, Genericidad, Manejo
Actividad No.5 3.1. Tipos Enumerados
de errores, Diseño por contrato y Duck typing.
3.2. Genericidad
3.3. Manejo de errores (Excepciones) Actividad No.5: Ejercicios las extensiones del modelo
orientado a objetos.
3.4. Diseño por contrato. Aserciones.
3.5 Duck typing
27 RA3 Evaluaciones sumativa: Actividad de Laboratorio 13: Ejercicios de programación Actividad de Laboratorio 13: Ejercicios de
Laboratorio 13 22/11 (L) Ejercicios de programación en grafos. usando algoritmos en grafos. programación usando algoritmos en grafos.
28 RA1, RA2 Evaluaciones sumativa: Certamen 2.
Certamen 2. 27/11 (C) 2 Elementos del macroproceso de
Desarrollo de Software Orientado a Objetos.
29 RA3 Repaso para Certamen 3
29/11 (L) Ejercicios de programación ad hoc.
30 RA3 Repaso para Certamen 3
04/12 (C) Ejercicios de programación ad hoc.
31 RA3 Evaluaciones sumativa: Certamen 3.
Certamen 3. 06/12 (L) Ejercicios de programación ad hoc.
32
Evaluaciones de recuperación 06/12 (C) Evaluación de recuperación Evaluación de recuperación
IN1071C Taller de Programación II, Diego Maldonado, 16/08/2022
Nota: Este documento puede estar sujeto a modificaciones.