CCC209 - Estructuras de Datos I

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

UNIVERSIDAD TECNOLÓGICA CENTROAMERICANA Facultad de

Ingenierías
Carrera de Ingeniería en Sistemas Computacionales

Información General
Nombre Curso Estructuras de Datos I
Código Curso CCC209
Créditos (UV) 4
Carreras Ingeniería en Sistemas Computacionales
Requisitos Recomendados Programación III, Laboratorio Programación III,
Ofimática Avanzada
Sección
Año/Semestre/Período 2022/II/4
Horario 1540
Días de Clase 1234

Cuerpo Docente
Catedrático Reynod Bocanegra
Horario de Atención Con cita
Correo Electrónico Reynod.bocanegra@unitec.edu.hn

Descripción del Curso


Hasta el momento el estudiante ha tenido la oportunidad de programar en al menos dos lenguajes
de programación: Java y C++. Sin embargo, a esta altura no ha sido necesario meditar o
preocuparse por la representación de los datos que utiliza en sus programas, tampoco se le ha
requerido que considere el rendimiento de los programas que ha realizado.
En este curso se introducirá intuitivamente el concepto de rendimiento en términos de tiempo y
de uso de memoria, este concepto luego se profundizará en el curso de Análisis de Algoritmos
(CCC407). Una vez establecidas estas métricas, se estudiarán a fondo diferentes maneras de
representar datos en memoria, iniciando con los Tipos de Datos Abstractos Fundamentales,
pasando por Árboles, Conjuntos, y terminando con Grafos, tanto dirigidos como no dirigidos. Cada
uno de estos Tipos Abstractos de Datos será estudiado en detalle, especialmente los algoritmos
más importantes o interesantes que estén relacionados con ellos.
Una vez discutidas las estructuras de datos, iniciaremos con la discusión de los algoritmos de
ordenamiento, y búsqueda. Finalizaremos el curso discutiendo acerca de diferentes técnicas de
diseño de algoritmos y administración de memoria.

CCC209 – Estructura de Datos I


Objetivos del Curso
Al finalizar el curso el estudiante debe ser capaz de:
1. Determinar intuitivamente el rendimiento de un algoritmo, en términos de notación O.
2. Enumerar los diferentes Tipos Abstractos de Datos (TDA): Lista, Pila, Cola, Árbol, Conjunto,
Mapa, Grafos
3. Elegir apropiadamente un TDA para la solución de un problema dado
4. Enumerar y distinguir cada una de las estructuras de datos que puede utilizar cada uno de
los TDA
5. Implementar cada uno de los TDA, utilizando las diferentes opciones que cada uno de ellos
ofrece
6. Aplicar conceptos de Programación Orientada a Objetos en la implementación de los
diferentes TDA
7. Identificar los diferentes algoritmos de Ordenamiento
8. Presentar conceptos de programación a sus compañeros
9. Reconocer y aplicar de manera básica conceptos de diseño de algoritmos

Metodología de Enseñanza Aprendizaje


El curso utiliza:

1. Clases magistrales para introducir los conceptos teóricos necesarios.


2. Investigaciones para promover el autoaprendizaje.
3. Exposiciones para desarrollar las habilidades de expresión oral.
4. Debates para motivar el pensamiento crítico.
5. Resolución de ejercicios en clase para retroalimentar el aprendizaje.
6. Proyectos para llevar a la práctica los conocimientos teóricos adquiridos.
7. Desarrollo de actividades colaborativas en línea para fortalecer la competencia de trabajo
en equipo.

Contenido
SEMANA CONTENIDO OBJETIVO METODOLOGIA DE RECURSOS
TEMATICO: ENSEÑANZA-APRENDIZAJE

1 Introducción al Discusión de Políticas Sílabo


Curso Generales
Rendimiento, Aplicar la notación Clase Magistral, Ejemplos Cap. 1
Notación asimptótica para de diversos algoritmos,
Asintótica determinar el rendimiento Participación, Tarea de
en términos de tiempo de Experimentación
un algoritmo

CCC209 – Estructura de Datos I


TDA, TDA Lista Definir el concepto de Clase Magistral, Ejemplos Cap. 2
TDA, Aplicar la definición de diversos algoritmos,
y formato de TDA para Participación, Tarea de
especificar TDA. Conocer y Lectura
aplicar el TDA Lista.

Implementación Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 2


TDA Lista implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Lista, utilizando cada una Lectura, Tarea de
de las diferentes maneras Programación, Tarea de
de implementarlo. Aplicar Tabla de Rendimiento
el TDA Lista para solución
de problemas.

2 Implementación Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 2


TDA Lista implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Lista, utilizando cada una Lectura, Tarea de
de las diferentes maneras Programación, Tarea de
de implementarlo. Aplicar Tabla de Rendimiento
el TDA Lista para solución
de problemas.

CCC209 – Estructura de Datos I


TDA Pila [Postfix] Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 2
implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Pila. Aplicar el TDA Pila Lectura, Tarea de
para solución de Programación, Tarea de
Problemas. Investigación de
Evaluación de Expresiones
Postfijas

TDA Cola Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 2


implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Cola. Aplicar el TDA Cola Lectura
para solución de
Problemas.

Ejercicios en
Clase de TDA
Lista, Pila y Cola
3 TDA Árbol Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 3
General implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Árbol. Aplicar el TDA Ejercicio de Árboles
Árbol para solución de
Problemas. Enumerar y
definir y diferenciar entre
los diferentes tipos de
árboles básicos.

CCC209 – Estructura de Datos I


Ejercicio Postfix Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 3
implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Árbol. Aplicar el TDA Ejercicio de Árboles
Árbol para solución de
Problemas. Enumerar y
definir y diferenciar entre
los diferentes tipos de
árboles básicos.

Implementación Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 3


TDA Árbol implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Árbol. Aplicar el TDA Ejercicio de Árboles
Árbol para solución de
Problemas. Enumerar y
definir y diferenciar entre
los diferentes tipos de
árboles básicos.

4 Árbol Binario Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 3


(BST), Heap Tree implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Árbol. Aplicar el TDA Ejercicio de Árboles
Árbol para solución de
Problemas. Enumerar y
definir y diferenciar entre
los diferentes tipos de
árboles básicos.

CCC209 – Estructura de Datos I


TDA Conjunto Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 4
implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Conjunto. Aplicar el TDA Ejercicio de Conjuntos y el
Conjunto para solución de “Collections Framework”
Problemas. de Java y STL de C++

TDA Grafo Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 6


Dirigido implementar cada una de de diversos algoritmos,
las operaciones del TDA Participación, Tarea de
Grafo dirigido. Aplicar el Ejercicios de Grafos,
TDA Grafo Dirigido para Proyecto de Grafos,
solución de Problemas. comparación de
algoritmos.

Caminos más Explicar, construir e Clase Magistral, Ejemplos Cap. 6


Cortos implementar los de diversos algoritmos,
algoritmos de cálculo de Participación, Tarea de
los caminos más cortos. Ejercicios de Grafos,
Comparar el rendimiento Proyecto de Grafos,
de diferentes algoritmos comparación de
para este fin. algoritmos.

5 Recorrido Grafo Explicar, construir e Clase Magistral, Ejemplos Cap. 6


Dirigido implementar recorridos de diversos algoritmos,
de grafos. Conocer, Participación, Tarea de
enumerar, definir y Ejercicios de Grafos,
distinguir los diferentes Proyecto de Grafos,
tipos de aristas y estados comparación de
en un recorrido de grafos. algoritmos.

Repaso

CCC209 – Estructura de Datos I


Examen
Revisión

6 Actividad
Colaborativa
TDA Grafo No Distinguir, diseñar e Clase Magistral, Ejemplos Cap. 7
Dirigido, árboles implementar cada una de de diversos algoritmos,
abarcadores de las operaciones del TDA Participación, Tarea de
costo mínimo Grafo no dirigido. Aplicar Ejercicios de Grafos,
el TDA Grafo no dirigido Proyecto de Grafos,
para solución de comparación de
Problemas. algoritmos.

Recorridos No Explicar, construir e Clase Magistral, Ejemplos Cap. 7


Grafos Dirigidos implementar recorridos de diversos algoritmos,
de grafos. Conocer, Participación, Tarea de
enumerar, definir y Ejercicios de Grafos,
distinguir los diferentes Proyecto de Grafos,
tipos de aristas y estados comparación de
en un recorrido de grafos. algoritmos.
Comparar los algoritmos
de recorridos en grafos
dirigidos con grafos no
dirigidos

Puntos de Explicar, construir e Clase Magistral, Ejemplos Cap. 7


Articulación implementar el cálculo de de diversos algoritmos,
puntos de articulación. Participación, Tarea de
Ejercicios de Grafos,
Proyecto de Grafos,
comparación de
algoritmos.

CCC209 – Estructura de Datos I


7 Ejercicios de
Grafos

Búsqueda Reconocer, construir y


evaluar diferentes tipos
de algoritmos de
búsqueda utilizando
diversas estructuras de
datos.

Plataforma de Reconocer, utilizar,


Colecciones diferenciar, aplicar,
combinar diferentes
clases disponibles en
varias plataformas de
colecciones (Java
Collections, Boost, STL,
.NET, etc)

Plataforma de Reconocer, utilizar,


Colecciones diferenciar, aplicar,
combinar diferentes
clases disponibles en
varias plataformas de
colecciones (Java
Collections, Boost, STL,
.NET, etc)

8 Plataforma de Reconocer, utilizar,


Colecciones diferenciar, aplicar,
combinar diferentes
clases disponibles en
varias plataformas de
colecciones (Java
Collections, Boost, STL,
.NET, etc)

CCC209 – Estructura de Datos I


Actividad Diseñar, construir e Los estudiantes expondrán
Colaborativa implementar diversos los diferentes algoritmos
Algoritmos de algoritmos de de
Ordenamiento ordenamiento, Distinguir ordenamiento. La meta no
los rendimientos de y es sólo demostrar
características intrínsecas conocimiento y
de cada uno de los comprensión de los
algoritmos de mismos, sino garantizar la
ordenamiento, Explicar comprensión de parte de
efectivamente, mediante sus compañeros.
el uso de estrategias que
logren la comprensión de
todos los compañeros.

Actividad Diseñar, construir e Los estudiantes expondrán


Colaborativa implementar diversos los diferentes algoritmos
Algoritmos de algoritmos de de
Ordenamiento ordenamiento, Distinguir ordenamiento. La meta no
los rendimientos de y es sólo demostrar
características intrínsecas conocimiento y
de cada uno de los comprensión de los
algoritmos de mismos, sino garantizar la
ordenamiento, Explicar comprensión de parte de
efectivamente, mediante sus compañeros.
el uso de estrategias que
logren la comprensión de
todos los compañeros.

CCC209 – Estructura de Datos I


Actividad Diseñar, construir e Los estudiantes expondrán
Colaborativa implementar diversos los diferentes algoritmos
Algoritmos de algoritmos de de
Ordenamiento ordenamiento, Distinguir ordenamiento. La meta no
los rendimientos de y es sólo demostrar
características intrínsecas conocimiento y
de cada uno de los comprensión de los
algoritmos de mismos, sino garantizar la
ordenamiento, Explicar comprensión de parte de
efectivamente, mediante sus compañeros.
el uso de estrategias que
logren la comprensión de
todos los compañeros.

9 Actividad Diseñar, construir e Los estudiantes expondrán


Colaborativa implementar diversos los diferentes algoritmos
Algoritmos de algoritmos de de
Ordenamiento ordenamiento, Distinguir ordenamiento. La meta no
los rendimientos de y es sólo demostrar
características intrínsecas conocimiento y
de cada uno de los comprensión de los
algoritmos de mismos, sino garantizar la
ordenamiento, Explicar comprensión de parte de
efectivamente, mediante sus compañeros.
el uso de estrategias que
logren la comprensión de
todos los compañeros.

CCC209 – Estructura de Datos I


Técnicas de Conocer, definir, Clase Magistral, Ejemplos
Diseño de enumerar y distinguir las de diversos algoritmos,
Algoritmos y técnicas de diseño de Participación
Administración algoritmos: Divide y
de Memoria conquista / vencerás,
programación dinámica,
algoritmos ávidos y
algoritmos de retroceso
(backtracking). Aplicar de
manera básica estas
técnicas de diseño,
Conocer acerca de
aspectos básicos de
administración de
memoria.

Técnicas de Conocer, definir, Clase Magistral, Ejemplos


Diseño de enumerar y distinguir las de diversos algoritmos,
Algoritmos y técnicas de diseño de Participación
Administración algoritmos: Divide y
de Memoria vencer, programación
dinámica, algoritmos
ávidos y algoritmos de
retroceso. Aplicar de
manera básica estas
técnicas de diseño,
Conocer acerca de
aspectos básicos de
administración de
memoria.

CCC209 – Estructura de Datos I


Técnicas de Conocer, definir, Clase Magistral, Ejemplos
Diseño de enumerar y distinguir las de diversos algoritmos,
Algoritmos y técnicas de diseño de Participación
Administración algoritmos: Divide y
de Memoria vencer, programación
dinámica, algoritmos
ávidos y algoritmos de
retroceso. Aplicar de
manera básica estas
técnicas de diseño,
Conocer acerca de
aspectos básicos de
administración de
memoria.

10 Técnicas de Conocer, definir, Clase Magistral, Ejemplos


Diseño de enumerar y distinguir las de diversos algoritmos,
Algoritmos y técnicas de diseño de Participación
Administración algoritmos: Divide y
de Memoria vencer, programación
dinámica, algoritmos
ávidos y algoritmos de
retroceso. Aplicar de
manera básica estas
técnicas de diseño,
Conocer acerca de
aspectos básicos de
administración de
memoria.

Repaso
Examen Final

CCC209 – Estructura de Datos I


Evaluación
Actividad Descripción Puntos Oro Fecha
Examen I Parcial Examen Parcial, se evaluará el contenido 20 S5
Examen II Parcial cubierto hasta la fecha. Es posible que los 20 S10
ejercicios de tareas aparezcan en el examen.
Es posible que los exámenes sean a libro
abierto.
Proyecto I 20 S6
Proyecto II 20 S11
Tareas 10 Continuo
Actividades en Desarrollo de actividades asignadas en 10 Continuo
Equipo/ trabajo en equipo, la evaluación dependerá
clase / exposiciones directamente de los objetivos establecidos
para las mismas.

Colaboración en Línea
Durante el desarrollo del curso se les solicitará a todos los estudiantes que lleven a cabo actividades
colaborativas en línea utilizando el Wiki de la Facultad de Ingeniería. El propósito que se persigue al
utilizar esta herramienta es ayudar a todos los estudiantes a desarrollar y mejorar las siguientes
competencias profesionales:

- Expresión escrita de ideas técnicas


- Tolerancia a la crítica profesional
- Trabajo colaborativo (no cooperativo)
- Trabajo asíncrono
- Pensamiento crítico

La evaluación de las actividades en el Wiki tendrá dos componentes, una colaborativa y otra
individual. La colaborativa será una nota que se asignará por igual a todos los integrantes del grupo,
la individual es una nota que se calcula individualmente por estudiante.

Los componentes de cada dimensión de evaluación se detallan a continuación:

- Colaborativos o Calidad del documento en general o Utilización correcta de referencias o


Organización del contenido o Ortografía y redacción del documento
- Individual o Consistencia de la colaboración a lo largo del período o Volumen y calidad de la
colaboración

El alumno que no haya colaborado durante el período será acreedor de una nota de cero para estas
actividades.

CCC209 – Estructura de Datos I


Recursos de Aprendizaje
• Aula de Clase
• Pizarrón
• Proyector
• Compilador: Compilador de C++ para Linux , JAVA

• Libro o Alfred Aho & John Hopcroft & Jeffrey Ullman (1998). Estructura de Datos y
Algoritmos. México: Adisson Wesley Longman de México o Carlos Roberto Arias
and Von-Wun Soo. Computing all pairs shortest paths on graphs with articulation
points. Journal of Computer Technology and Application, 2011.
• Blackboard, Wiki

Políticas del Curso


- Acatar el Reglamento Académico vigente de UNITEC
- Llegar a tiempo a la clase
- Respetar la participación de sus compañeros
- Apagar sus teléfonos celulares
- Se evaluará la ortografía y redacción de todos las tareas y proyectos asignados
- Sólo se recibirán trabajos a través de la plataforma Blackboard
- Los estudiantes tienen derecho a la revisión de exámenes y proyectos. Si el estudiante deja
de llegar el día asignado a dicha revisión, el estudiante perderá derecho a reclamos
posteriores.
- Los proyectos y tareas deben ser entregados a tiempo, de acuerdo a la fecha establecida en
el Blackboard, entregas tardías no serán aceptadas.
- El uso de teléfonos celulares, u otro dispositivo electrónico (excepto calculadora si es
permitido) durante cualquier tipo de evaluación será considerado un acto de deshonestidad

CCC209 – Estructura de Datos I


y tendrá como resultado una nota de cero en su evaluación, sin posibilidad de reposición o
discusión.
- Los proyectos deberán de entregarse comprimidos en un archivo de formato ZIP (.zip o
.tar.gz), colocando su número de cuenta como prefijo al nombre, y luego un identificador de
para distinguir qué es lo que está entregando. En el caso de que ignoren esta política no se
recibirá el trabajo, y quedará con la nota de cero. Ejemplos:

Nombre del Archivo Descripción

10011007-T01.ZIP Tarea Número 1 del alumno con cuenta 10011007

10011008_10011012-P02.ZIP Proyecto Número 2 de los alumnos con cuenta


10011008 y 10011012. Esto es en caso de que se
permita la elaboración de proyecto o tarea en equipo.

- Los alumnos deberán de mantener respaldos de sus proyectos, tareas y demás, con esto se
evitarán el problema de perder sus datos en caso de problemas técnicos con su
computadora. Se recomienda: Onedrive, Dropbox, Livedrive, github.
- La copia parcial o total en tareas, proyectos o asignaciones dará lugar a obtener la
calificación de cero para todos los participantes, sean conscientes o no del hecho. Esto sin
perjuicio de elaborar reporte a comité de ética.

Recomendaciones
- Estudiar a diario, inicialmente repasar los conceptos vistos en clase durante ese día,
desarrollar las tareas asignadas, y luego revisar los conceptos que se estudiarán en la clase
siguiente.
- Iniciar los proyectos el mismo día en los que sean asignados, hacer un plan de desarrollo de
los mismos, e ir trabajando poco a poco en ellos. Al encontrar problemas con su desarrollo,
buscar ayuda inmediatamente y no esperar a que la fecha de entrega sea inminente pues
podrían no terminar su proyecto. Acostumbrarse a no procrastinar.
- Es positivo hacer preguntas, y contestar sin temor.
- Asistir regularmente a clases, el curso tiene mucho contenido, y perder clases puede tener
consecuencias graves en la comprensión del material.
- Estar pendiente de la plataforma Blackboard, recursos, mensajes importantes pueden
aparecer a través de esta.

CCC209 – Estructura de Datos I

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy