You are on page 1of 6

SÍLABO DEL CURSO

ESTRUCTURAS DE DATOS

1. DATOS GENERALES
1.1. Facultad : Ingeniería
1.2. Carrera Profesional: Ingeniería de Sistemas
1.3. Departamento : Ingeniería de Sistemas
1.4. Tipo de Curso : Obligatorio
1.5. Requisitos : Fundamentos de Programación
1.6. Ciclo de estudios : 3
1.7. Duración del curso : 17 semanas
Inicio : 22 de Agosto de 2011
Término : 17 de Diciembre de 2011
1.8. Extensión horaria : 6 horas semanales (02 Teoría, 04 Laboratorio)
1.9. Créditos : 04
1.10. Período lectivo : 2011-2
1.11. Docentes : César Liza Avila  creadores@hotmail.com
Lourdes Díaz Amaya  lulixa2000@yahoo.es
1.12. Página web : www.cesarliza.com

2. FUNDAMENTACION
El curso de Estructuras de Datos, es un curso fundamental en la formación de estudiantes de Ingeniería
de Sistemas pues brinda el conocimiento técnico para elegir la más eficiente forma de organizar
nuestros datos para la solución de problemas de programación. Las Estructuras de Datos son la base
para la escritura de Sistemas Operativos, manejadores de bases de datos, procesadores de texto,
juegos, intérpretes, compiladores, calculadoras electrónicas, compresores de archivos, programas de
optimización y utilitarios en general, es por tanto un curso de suma importancia para el estudiante. Este
curso se desarrollará de manera teórico-práctica, con el objeto de proveer a los alumnos los
conocimientos de programación que les permitan diseñar, implementar y comprobar el buen
funcionamiento de sus algoritmos, empleando el Lenguaje C++. Se elige el C++, porque es el padre de
lenguajes más recientes como Java, C#, PHP entre otros, así si más adelante el alumno desea
incursionar en alguno de éstos lenguajes le resultará fácil.

3. COMPETENCIA
Al concluir el curso los alumnos estarán en capacidad de resolver problemas de programación,
aplicando funciones, cadenas de caracteres, arreglos, estructuras, bits; técnicas como recursión, y
utilizar las estructuras de datos tales como, listas enlazadas, pilas, colas y árboles en Lenguaje C++.

4. OBJETIVOS DEL CURSO


Al finalizar el curso el alumno deberá ser capaz de:
OC1. Identifica los fundamentos y algoritmos de las estructuras de datos (Tipos de Datos Abstractos,
TDA), más utilizadas en programación.
OC2. Evalúa y reconoce la estructura más adecuada, para su aplicación en un problema en particular.
OC3. Elabora algoritmos y diseña programas en C++ que manipulan las distintas estructuras
avanzadas de datos.
OC4. Comprende, analiza y evaluar las técnicas más avanzadas del Lenguaje C++.

5. CONTENIDOS CONCEPTUALES
5.1 Funciones definidas por el usuario
5.2 Cadenas de caracteres
5.3 Arreglos bidimensionales
5.4 Estructuras, uniones y enumeraciones
5.5 Manipulación de bits
5.6 Generación de números aleatorios y simulación
5.7 Punteros y referencias
5.8 Archivos
5.9 Recursión
5.10 Ordenamiento
5.11 Búsqueda
5.12 Lista enlazadas simples, dobles y circulares
5.13 Pilas
5.14 Colas
5.15 Árboles

6. CONTENIDOS PROCEDIMENTALES
6.1 Conoce e investiga los conceptos de programación tales como funciones, cadenas, arreglos ,
estructuras, uniones, enumeraciones, bits, números aleatorios, recursión, listas enlazadas, pilas,
colas, árboles en C/C++
6.2 Aplicar los TDA (Tipos de Datos Abstractos) en la solución de problemas.
6.3 Realizan y proponen ejemplos utilizando las estructuras de datos vistas en clase
6.4 Proponer una aplicación de las estructuras de datos tratadas en el curso.

7. CONTENIDOS ACTITUDINALES
7.1 Responsabilidad Individual y Colectiva
7.2 Disposición a la Investigación y a la búsqueda de Información Adicional
7.3 Actitud analítica y lógica en la solución de los problemas propuestos
7.4 Disposición al trabajo en equipo
7.5 Disposición a ser reflexivos y creativos

8. METODOLOGIA GENERAL DEL CURSO

Las principales estrategias técnicas son:


8.1 Intervenciones en clase, como medio para que el alumno aplique e investigue los conocimientos
recibidos.
8.2 Se tomarán prácticas calificadas, pruebas individuales en clase, como medio para que el
alumno aplique los conocimientos recibidos en clase, como entrenamiento para el examen y
como medio para ir midiendo sus logros académicos de manera continua.
8.3 Práctica calificada individual en Laboratorio, como medio para que el alumno aplique los
conocimientos recibidos en clase, como entrenamiento para el examen y como medio para ir
midiendo sus logros académicos de manera continúa. En esta práctica, recibirá la atención del
docente, como facilitador y guía de la práctica.
8.4 Desarrollo y Exposición de trabajos, como medio para que los alumnos aplique los
conocimientos recibidos en clase, así como encontrar la madurez para aplicar estos
conocimientos a un caso real. En estos trabajos recibirá la asesoría y guía del docente.

9. PROGRAMACION

UNIDAD SEMANA ACTIVIDAD


1. Funciones definidas 1 Identificadores y tipos fundamentales de datos. Entrada y salida
por el usuario estándar. Modificadores de tipos. Operador Sizeof(). Repaso
(01 Semana) de las sentencias. Expresiones lógicas y de relación. La
sentencia if, if else, if else if. El operador ternario.
La sentencia switch. while,
do { } while y for. Ejemplos Diversos.
Funciones definidas por el usuario. Declaración prototipo. Paso
de Parámetros y devolución de valores. Llamadas a funciones,
Paso de parámetros por valor y referencia, Variables locales y
globales
Ejemplos Diversos.
El preprocesador. Directivas del preprocesador. Definición de
macros. Funciones matemáticas estándar.
Referencias Bibliográficas:
[3] Cap. 3, 4.
[14] Cap. 7, 8.

2. Cadenas de caracteres 2 Tabla de códigos ASCII y tabla unicode. Secuencia de scape o


(01 semanas) caracteres de control. Ejercicios usando cadenas.

Manejo de cadenas de caracteres, definición, el archivo


string.h, El terminador NULL. Principales funciones
predefinidas. Paso y devolución de cadenas como argumentos
de funciones. Ejemplos diversos. Los comandos gets, cin,
cin.getline.
Referencias Bibliográficas:
[3] Cap. 5, 18
[1] Cap. 1
3. Arreglos Arreglos bidimensionales o matrices, Definición, límites, tamaño
bidimensionales 3 del arreglo, paso de arreglos bidimensionales a funciones.
(01 semanas) Ejemplos diversos.
Ejercicios sobre matrices, suma, producto, inversa, solución de
ecuaciones simultáneas.
Arreglos n-dimensionales. Definición, límites, tamaño del
arreglo, paso de arreglos a funciones. Ejemplos diversos.
Referencias Bibliográficas:
[1] Cap. 2
4. Estructuras, uniones y 4 Estructuras: definición, declaración de estructuras, declaración
enumeraciones de nuevos tipos de datos typedef, operaciones con estructuras,
(01 semanas) arreglos de estructuras.
Concepto de unión. Declaración de unión, usos, asignación en
memoria de una variable de tipo unión.
Enumeraciones. Declaración y usos.
Ejemplos Diversos.
Referencias Bibliográficas:
[3] Cap. 18.
[1] Cap. 3.
5. Manipulación de Bits. 5 Manejo de bits, operadores a nivel de bits, and, or xor, not,
(01 semana) desplazamiento. Campos de Bits. Aplicaciones. Ejemplos
Diversos.
Referencias Bibliográficas:
[1] Cap. 4
[3] Cap. 18

6. Generación de 6 Métodos para generar números aleatorios continuos y


números aleatorios y discretos, la función rand( ). Semilla de un generador de
simulación números aleatorios. Función srand( ), generación de variables
(01 semana) aleatorias que cumplen una determinada distribución: Uniforme,
Normal, Exponencial, Poisson.
Referencias Bibliográficas:
[1] Cap. 5

7. Punteros y 7 Punteros, Declaración de punteros, operadores *, &,


Referencias asignación, operaciones aritméticas, comparación de punteros.
(01 semanas) Punteros a cadenas. Ejemplos diversos.
Arreglos de punteros, punteros de punteros, punteros a
funciones. Punteros a estructuras, referencias, declaración,
usos, ventajas frente a los punteros. Ejemplos diversos.

Referencias Bibliográficas:
[1] Cap. 6
[3] Cap. 5
8. Archivos Archivos, funciones para manipular ficheros. Modos de apertura
8 de archivos, entrada salida carácter por carácter, palabra por
palabra.
Desplazamiento dentro de un archivo, fseek, ftell. Posición
actual dentro de un archivo. Ejemplos diversos.
Referencias Bibliográficas:
[1] Cap. 7
8 EXAMEN PARCIAL
9.Recursión 9 Definición de una función recursiva. Propiedades. Condición
base, Criterios para implementar la recursividad, Ejemplos y
aplicaciones diversas. Recursión vs iteración. Formas de
recursión (directa, indirecta) Ejemplos diversos.
Referencias Bibliográficas:
[2] Cap. 1
10. Métodos de 10 Métodos de ordenamientos (burbuja, selección, inserción,
Ordenamiento y QuickSort, Shell y variantes) y su implementación mediante
Búsqueda arreglos. Ejemplos y aplicaciones diversas.
Métodos de Búsqueda (secuencial, binaria, por interpolación) y
su implementación sobre arreglos. Ejemplos y aplicaciones
diversas.
Referencias Bibliográficas:
[2] Cap. 2, 3
11. Listas enlazadas 11 Lista simplemente enlazadas. Implementación con punteros.
simples, dobles y Operaciones fundamentales: ingreso, recorrido, inserción,
circulares borrado, ordenamiento y búsqueda, mezcla. Ejemplos y
aplicaciones diversas.
Lista doblemente enlazadas. Implementación con punteros.
Operaciones fundamentales: ingreso, recorrido, inserción,
borrado, ordenamiento y búsqueda. Ejemplos y aplicaciones.
12 Listas simplemente enlazadas circulares, listas doblemente
enlazadas circulares, otros tipos de listas. Ejemplos y
aplicaciones.
Referencias Bibliográficas:
[2] Cap. 4
[4] Cap. 9
[10] Cap. 5
12. Pilas 12 Pilas. Implementación de TDA Pila, Operaciones
fundamentales: crear, destruir, agregar (Push), remover (Pop).
Usos de las pilas.
13 Aplicaciones con Pilas. Notación prefija, infija, postfija o polaca.
Análisis y evaluación de expresiones. Costeo de Inventarios
LIFO.
Referencias Bibliográficas:
[2] Cap. 5
[4] Cap. 10
13. Colas 14 Colas. Operaciones fundamentales: crear, destruir, agregar,
remover. Situaciones en donde se presentan colas.
Bicolas, Colas de prioridad, aplicaciones diversas. Simulación
de colas una cola un servidor, servidores en paralelo,
servidores en serie. La distribución de Poisson y exponencial
Aplicaciones diversas. Costeo de Inventarios por FIFO.
Referencias Bibliográficas:
[2] Cap. 6
[4] Cap. 11
14. Arboles y 15 El TDA Arbol. Arboies en General. Arboles binarios, Arboles
aplicaciones binarios de Búsqueda ABB. Operaciones fundamentales. Raíz,
hoja, talla, recorrido inorden, postorden, preorden. Aplicaciones
diversas.
Recorrido por nivel en un árbol, eliminación de elementos en un
ABB. Aplicaciones.
Referencias Bibliográficas:
[2] Cap. 7
16 EXAMEN FIN DE CICLO
17 EXAMEN SUSTITUTORIO

X. SISTEMA DE EVALUACIÓN DEL CURSO

El cronograma de la evaluación continua del curso es el siguiente:

ESPECIFICACIÓN DE TRABAJOS DEL CURSO

T Descripción Semana
Promedio Simple de :
T1 1, 2, 3 y 4
- Prácticas calificadas en laboratorios
Promedio Simple de :
5, 6, 7, 9 y
T2 - Prácticas calificadas en laboratorios y de sustentación de
10
ejercicios de ACM
Promedio Simple de :
11, 12, 13,
T3 - Prácticas Calificadas en laboratorios y de sustentación de
14 y 15
Proyecto Final.

El cronograma de la evaluación continua del curso es el siguiente:

ESPECIFICACIÓN DE EVALUACIONES DEL CURSO


T Descripción Semana
T1 Nota T1 5
T2 Nota T2 12
T3 Nota T3 15
EP Examen Parcial 8
EF Examen Final 16

El peso de cada T es:


PESO ESCALA
EVALUACIÓN
(%) VIGESIMAL
T01 20% 3.6
T02 35% 3.6
T03 45% 4.8
TOTAL 100% 12

Los pesos ponderados de las clases de evaluación son los siguientes:

PESO ESCALA
EVALUACIÓN
(%) VIGESIMAL
PARCIAL 20 4
CONTINUA 60 12
FINAL 20 4
TOTAL 100% 20

El examen Parcial se evaluará en la semana 8 y el Examen Final en la semana 16. La Evaluación Sustitutoria
incluye toda la temática desarrollada en el semestre y se rinde en la semana consecutiva al término de los
exámenes finales y su nota reemplazará, necesariamente, a la nota de un Examen (Parcial o Final) o a la nota de
una T (Evaluación Continua), de tal manera que el resultado final sea favorable al alumno.
XI. BIBLIOGRAFÍA

BIBLIOGRAFÍA OBLIGATORIA

Nro Código Obra


1 005.73/ L73/2 CESAR LIZA AVILA. Algoritmos y su Codificación en C++. Volumen 2.
Editorial RJ, Trujillo-Perú. 1ra Edición Agosto de 2002.
2 005.73/L73E LIZA AVILA, CESAR. Esctructuras de Datos con C/C++. Editorial e
Imprenta RJ S.R.Ltda., 1ra Edición, Trujillo-Perú 2003.
3 005.133C++ DEITEL Y DEITEL. Cómo Programar en C++. Pearson Educación.
DEIT/J México, 2004.
4 LUIS JOYANES Algortimos y Estructuras de Datos, una perspectiva
AGUILAR, IGNACIO en C. ED. Mc Graw Hill / Interamericana de España,
ZAHONERO MARTINEZ. España 2004
5 005.73 / A32 AHO, HOPCROFT, Estructuras de Datos y Algortimos. Ed. Addison-
ULLMAN. Wesley, Wilmington, Delaware. 1ra. Edición, 1988.
6 005.73 / T37E TENEMBAUM, Estructuras de Datos con C, Prentice Hall, México,
LANGSAM, AUGNSTEIN. 1993.
7 Internet Hewlett-Packard Company http://www.sgi.com/tech/stl/
8 Internet Stephens, R., Diggins, http://proquest.safaribooksonline.com/0596007612/firstchapter
C., Turkanis, J.,
Cogswell, J.
C++ Cookbook
ProQuest

9 Internet CESAR LIZA AVILA. www.cesarliza.com

BIBLIOGRAFÍA COMPLEMENTARIA

Nro Código Obra


10 005.73 / L3 LANGSAM, AUGSTEIN, Estructuras de Datos con C/C++, Prentice Hall,
TENENBAUM. México, 1997.
11 0005.73 / K84 ROBERT L. KRUSE. Estructura de Datos y Diseño de Programas. Ed.
Prentice Hall Hispanoamericana S.A., México 1988.
12 005.73 / L68 SEYMOUR LIPSCHUTZ. Estructuras de Datos. Ed. McGrawHill, España,
1986.
13 005.73 / J79E LUIS JOYANES AGUILAR, Estructuras de Datos. Ed. McGraw Hill, España,
IGNACIO ZAHONERO. 1999.
14 005.73 / L73 CESAR LIZA AVILA. Algoritmos y su Codificación en C++. Editorial RJ,
Trujillo-Perú. 1ra Edición Marzo de 2000, 3ra
reimpresión Diciembre de 2003.

You might also like