UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS
CC 182 - ALGORITMOS Y ESTRUCTURA DE DATOS
Trabajo Parcial (TP)
Ciclo 2021-2
Profesor: Walter Cueva Chávez
1. Introducción
Curso de especialidad de la carrera de Ciencias de Computación e Ingeniería de Software
de carácter teórico-práctico dirigido a los estudiantes de tercer ciclo, que busca
desarrollar la competencia general de pensamiento innovador, y la específica de diseñar
sistemas, componentes o procesos para encontrar soluciones en la atención de
necesidades teniendo en cuenta restricciones económicas, sociales, políticas, éticas, de
salud y seguridad y otras propias del entorno empresarial acorde al ABET - Student
Outcome(c).
2. Logro del curso
Al finalizar el curso el estudiante construye tipos de datos abstractos y algoritmos
teniendo en cuenta las restricciones impuestas por los recursos computacionales.
3. Descripción del trabajo parcial
El proyecto consiste en implementar una aplicación de manipulación de archivos en
memoria.
Consideraciones generales:
● Todas las estructuras deben ser genéricas (implementadas con templates).
● Las estructuras deben ser hacer uso de lambdas como criterios de comparación,
impresión.
● Implementar al menos dos estructuras de datos (listas enlazadas, listas doblemente
enlazadas, circulares, pilas, colas).
● El proyecto debe hacer uso de archivos para guardar y cargar datos desde disco duro.
● Cada estructura debe tener los métodos correctamente implementados y de uso
genérico.
● La interfaz puede ser CLI (preferencia) o Forms.
● La calificación se realizará de manera individual en la exposición.
● Es mandatorio el uso de POO.
● En el caso de evidenciar plagio (con trabajos anteriores o con otros grupos), se asigna
una calificación de cero (0) a todos los integrantes del grupo.
● La calificación en la exposición es individual por cada integrante de grupo, por lo que es
mandatorio que todos conozcan el trabajo.
● En la sección de comentarios en el aula virtual, indicar solamente los integrantes del
grupo que aportaron en el desarrollo.
● La exposición se realizará con cámara activa, los que tuvieran algún impedimento (salud
y/o otros motivos) indicarlo por correo antes de la exposición.
● La aplicación debe funcionar correctamente para que se considere el 100% de la
calificación
● Debe construir de la manera más desacoplada posible. Las de estructuras de datos
usadas deben hacer uso de plantillas (templates), de tal forma que construir su código
no involucra modificar código de estructuras, más sólo instanciar objetos de estas para
utilizarlos.
● La interfaz de usuario puede utilizar Formularios o CLI.
● Gestión del proyecto con github (milestones, issues) – Tutorial (
[Link]
Su aplicación debe realizar lo siguiente:
● Carga de datos: Su aplicación debe leer los datos desde archivos de texto desde una ruta
determinada.
● Su aplicación deberá permitir el ingreso de más datos, por ejemplo, registrar nuevos
usuarios, y éstos pueden realizar nuevos archivos.
● Debe permitir que se realicen comentarios a los archivos.
● Por cada usuario, deben aparecer también sus archivos creados.
● Implementar funcionalidades en los archivos que permita el filtrado de datos por el
título por:
○ Igual a.
○ Inicia con.
○ Finaliza con.
○ Está contenido en.
○ No está contenido en
De la entrega
● El trabajo se realizará en el grupo asignado en su portafolio.
● La entrega consistirá únicamente de todos los archivos .hpp y .cpp correspondientes en
un empaquetado comprimido.
● La fecha de entrega es el día lunes 27/09/2021 a las 7:00 A.M. por el aula virtual así
como en su repositorio de github asignado al grupo, y es requisito para la exposición del
grupo.
● Solo un integrante es responsable del envío del trabajo por el aula virtual.
● En la primera sesión de clase se hará una demostración y explicación al profesor de las
estructuras implementadas.
● Adjuntar en un archivo en Word con una explicación del caso de estudio, las estructuras
necesarias y su complejidad en notación detallada y Big O del algoritmo que consideren
principal.
Rúbrica de calificación
● (2 puntos) Justificación de cada estructura de datos y su respectiva complejidad.
● (2 puntos) La implementación se desarrollará con POO de cada estructura de datos.
● (1 punto) Diagrama de clases, indicando sus respectivos métodos, relaciones y
cardinalidad.
● (1 punto) Gestión de proyecto y versionamiento de código en github.
● (2 puntos) Uso de lambdas y templates en cada estructura de datos justificadamente.
● (2 puntos) Implementación de al menos 2 estructuras de datos y sus métodos
respectivos o añadir al menos 4 métodos a las estructuras implementadas en clase.
● (5 puntos) Uso de las estructuras en la implementación de la funcionalidad del caso
planteado.
● (3 puntos) Uso de archivos para guardar y cargar.
● (2 puntos) Interfaz gráfica con menú de opciones
4. Presentación
Para obtener la calificación completa indicada en la rúbrica, cada estudiante debe
participar de la presentación del proyecto y responder las preguntas planteadas, además
que la aplicación debe funcionar a un 100%.
Será requisito para su exposición, el envío del proyecto en la fecha establecida.
De presentará por medio de una exposición formal en donde cada grupo contará con un
máximo de 6 minutos para presentar su proyecto y hacer una demostración, luego
tendrá una ronda de preguntas.
Presentación en PowerPoint conteniendo no más de 5 slides:
● Descripción del problema y objetivos (1 slide)
● Elaboración de la solución (2 a 3 slides)
● Conclusiones (1 slide)
5. Entregables
1. Documento en Word conteniendo
o Introducción
o Diagrama de clases de entidades principales
o Definición de TDA y estructuras de datos a usar
o Diseño de archivos a utilizar
o Elaborar plan de trabajo detallado (Proyecto, Milestones, Issues)
o Conclusiones
o Referencias
2. Incluir el código fuente de la solución con el nombre de la sección y grupo, por
ejemplo: SS31_G01.zip
UPC – LIMA 2021