UNIVERSIDAD NACIONAL
AUTONOMA DE MEXICO
Sistema de Universidad Abierta
PROGRAMA DE TRABAJO (DETALLE)
Materia
Prof.
Grupo
Semestre
Horario
Cubículo
Modelo
Pagina Web
e-mail
: INFORMATICA II (Estructuras de Datos Estáticas y Dinámicas en
Memoria Principal)
: Ramón Castro Liceaga
: 9282
: 2011-2
: Miércoles de 20:00 a 22:00 hrs y Sábados de 11:00 a 13:00.
: F- 214
: 4-3
: http://aprender.fca.unam.mx/~rcastro/
[email protected]
[email protected]
Objetivo general del curso
Conocer, programar, manipular e implementar las estructuras de datos estáticas y dinámicas en las memorias
de los equipos de computo para la solución de los problemas informáticos.

Practicas en laboratorio:
Sábados de 9:00 a 11:00 hrs. En el edificio de CIFCA
(edificio rojo atrás de la Biblioteca). Laboratorio 2

Plática de iniciación donde se te dará la estrategia de programación de
estructuras de datos
Fecha: Martes 8 de febrero
Materiales de apoyo:
- Pocket guia.- Guia rapida de comandos de lenguaje C.
- Metodología para la programación de estructuras de datos en lenguaje C
- Manual de Programación en C (se recomienda hacer los programas del manual)
- Cualquier libro de Programación en C, C++ y C# que contenga los siguientes temas:
Variables, condicionales, funciones, ciclos, arreglos, apuntadores y archivos. (verificar que
tenga muchos ejemplos y códigos).
- Apuntes de Estructura de Datos.
Compilador:
Con la idea de que empieces en cuanto antes a programar, el compilador lo puedes bajar de
Internet en la siguiente ruta e instálalo en tu equipo de cómputo. (En las prácticas se darán a
conocer más detalles sobre los compiladores para C,C++ y C#)
Dev-C++: http://sourceforge.net/projects/dev-cpp/
a) Tarea: Hacer de acuerdo a los siete pasos, el algoritmo para convertir expresiones
infijas en postfijas
Fecha de entrega: En cuanto antes
VALOR.- 5%
Enviar esta actividad
Temario
1.- INTRODUCCION A LAS ESTRUCTURAS DE DATOS
1.1.- Definición de estructura de datos.
1.2.- Tipos de datos.
1.3.- Datos simples
1.4.- Datos estructurados
1.5.- Clasificaciones en los tipos de datos
1.6.- Notación Infija, Postfija y Prefija
1.7.- Notación científica,
1.8.- Estructuras de datos estáticas
1.9.- Estructuras de datos dinámicas
1.10.- Nodos o registros,
1.11.- Representación de números enteros,
1.12.- Números Reales
1.13.- Doble precisión
1.14.- Números complejos,
1.15.- Representación de caracteres,
1.16.- Manejo de arreglos y vectores,
1.17.- Almacenamiento y recuperación
1.18.- Manejo de Arreglos
1.18.1.- Programación de arreglos en lenguaje C.
1.18.2.- Arreglos Unidimensionales.
1.18.3.- Arreglos Multidimensionales.
1.18.4.- Operaciones sobre arreglos.
1.18.5.- Matriz poco densa regular
Actividades :
1a .- El alumno entregara un resumen de esta unidad VALOR.- 1%
Enviar esta actividad
1b .- Resolver el siguiente problema y entregar el programa en C/C++
Problema: hacer un programa de una Matriz de 4 x 4 tridiagonal.
1c .- El alumno realizará examen
VALOR.- 5%
VALOR.- 10%
Enviar esta actividad
Fecha aproximada: 23 de febrero
2.- MANEJO DE MEMORIA
2.1.- Programación de la memoria
2.2.- Algoritmo y optimización de memoria
2.3.- Complejidad de Algoritmo
2.4.- Notación Aritmética
2.5.- Tiempo de Ejecución de un Algoritmo
2.6.- Complejidad en Espacio
2.7.- Memoria global
2.8.- Memoria Local
2.9.- Manejo de memoria Estática
2.10.- Manejo de memoria Dinámica
2.11.- Liberación de memoria
2.11.- Programación de memoria estática en C
2.12.- Funciones de manejo de memoria dinámica en C
Actividades :
2a .- El alumno entregara resumen para esta unidad
Enviar esta actividad
2b .- El alumno entregara un documento sobre el Manejo de memoria usando vectores.
Este documento será basado en un programa en C++ que muestre como menú principal
las siguientes operaciones sobre vectores.
VALOR.- 5%
Enviar esta actividad
ESTRUCTURA DE DATOS (Vectores)
==============================
1) Crear un vector nuevo.
2) Borrar un elemento.
3) Agregar un elemento.
4) Mostrar el vector.
5) Buscar un elemento en el vector.
6) Modifica un elemento en el vector.
7) Salir de la aplicacion.
2c .- El alumno realizará examen para esta unidad
Fecha aproximada: 16 de marzo
VALOR.- 10% Enviar esta actividad
3.- ESTRUCTURAS ESTATICAS EN MEMORIA PRINCIPAL
3.1.- Memoria principal
3.1.1.- Definición de Memoria Principal.
3.1.2.- Organización física de la Memoria Principal.
3.1.3.- Palabra de computadora
3.1.4.- Dirección de memoria
3.1.5.- Registro de dirección
3.1.6.- Registro de datos
3.1.7.- Unidad de Control
3.1.8.- Organización Lógica de la Memoria Principal.
3.1.9.- Estructura física de la Memoria Principal.
3.1.9.- Representación de la información,
3.1.10.-Palabras contiguas,
3.1.11.- Palabras Ligadas.
3.1.12.-Control de localidades
3.2.- Manejo de cadenas
3.2.1.- Programación de cadenas en lenguaje C
3.2.2.- Funciones básicas para el manejo de cadenas
3.2.3.- Búsqueda en cadenas
3.2.4.- Conversión de caracteres
3.2.5.- Operaciones de caracteres con la memoria
3.3.- Manejo de estructuras o registros
3.3.1.- Programación de registros en lenguaje C.
3.3.1.- Concepto de estructura
.
3.3.1.- Definición de nuevos tipos de datos (typedef)
3.3.1.- Implantación de una estructura
Actividades :
3a .- Hacer un resumen del tema
VALOR.- 1%
Enviar esta actividad
3b .- El alumno entregara un documento sobre el Manejo de registros.
Este documento será basado en un programa en C++ que muestre como menú principal las
siguientes operaciones de registros de un almacen (código del articulo, descripción, ubicación
en almacen, costo unitario y unidades).
VALOR.- 5%
Enviar esta actividad
Menu de opciones
================
1) Crear un registro nuevo.
2) Borrar un elemento del registro.
3) Agregar un elemento al registro.
4) Mostrar el registro.
5) Buscar un elemento en el registro.
6) Modificar un elemento en el registro.
7) Salir de la aplicacion.
3c .- El alumno realizará examen
VALOR.- 10%
Fecha aproximada: 6 de abril
4.- ESTUCTURAS DINAMICAS EN MEMORIA PRINCIPAL
4.- Tipos de datos abstractos
4.1.-Pilas
4.1.1.-Definición del tipo de dato abstracto pila.
4.1.2.-Definición de las operaciones sobre pilas.
4.1.3.-Implantación de una pila.
4.2.-Colas
4.2.1.-Definición del tipo de dato abstracto cola.
4.2.2.-Definición de las operaciones sobre colas.
4.2.3.-Bicolas.
4.2.4.-Implantación de una cola.
4.3.-Listas
4.3.1.-Definición del tipo de dato abstracto lista.
4.3.2.-Definición de las operaciones sobre listas.
4.3.3.-Implantación de una lista.
4.3.4.-Tablas de dispersión y funciones hash.
4.4.-Listas simplemente enlazadas.
4.4.1.-Definición del tipo de dato abstracto lista.
4.4.2.-Definición de las operaciones sobre listas.
4.4.3.-Implantación de una lista.
4.5.-Listas doblemente enlazadas.
4.5.1.-Definición del tipo de dato abstracto lista doble.
4.5.2.-Definición de las operaciones sobre lista doble.
4.5.3.-Implantación de una lista doble.
4.5.4.- Evaluación de expresiones y lista circular
4.6.- Listas no lineales.
4.6.1.- Gráficas
4.6.1.1.- Definición de las operaciones sobre gráficas
4.6.1.2.- Implantación de una gráfica
4.6.2.- Árboles.
4.6.2.1.- Concepto Árbol
4.6.2.2.- Nomenclatura Arboles
4.6.2.3.- Algoritmos Arboles
4.6.2.4.- Arboles y arco dirigido.
4.6.2.5.- Definición del tipo de dato abstracto árbol binario
4.6.2.6.- Definición de las operaciones sobre árboles binarios
4.6.2.7.- Implantación de un árbol binario
4.6.3.- Grafos.
4.6.3.1.-Definición del tipo de dato abstracto grafo.
4.6.3.2.-Operaciones sobre un grafo.
4.6.3.4.-Implantación de un grafo.
4.7.-Ordenacion Interna
4.7.1.- Algoritmos de Ordenación
4.7.2.- Shell Sort Ordenación
4.7.3.- Burbuja Ordenación
4.7.4.- Algoritmos de Ordenación por Distribución
4.7.5.- Ordenación Radix
4.8.- Ordenación externa
4.8.1.- Algoritmos Ordenación externa
4.8.2.- Mezcla Natural
4.9.- Métodos de búsqueda
4.9.1.- Búsqueda Binaria Interna
4.9.2.- Búsqueda Secuencial Interna
4.9.3.- Búsqueda Hash
4.10.- Búsqueda Externa
4.10.1.- Búsqueda Secuencial Externa
4.10.2.- Búsqueda Binaria Externa
4.11.- Recursividad
4.11.1.- Definición de Recursividad
4.11.2.- Procedimientos Recursivos
4.11.3.- Mecánica de recursión
4.11.4.- Transformación de Algoritmos Recursivos a Iterativos
4.11.5.- Recursividad en Diseño
4.11.6.- Complejidad de algoritmos recursivos
Actividades :
4a .- El alumno entregara el siguiente programa de “Colas” en Visual C# ejemplificado sus
estructuras básicas
4b .- El alumno entregara resumen
4c .- El alumno realizará examen
VALOR.- 5%
VALOR.- 1%
VALOR.- 10%
Enviar esta actividad
Enviar esta actividad
Fecha aproximada: 27 de abril
NOTA: SI HASTA AQUÍ EL ALUMNO NO CUMPLIO CON MAS DEL 60 % DEL TEMARIO
NO PODRA CONTINUAR Y TENDRA QUE PRESENTAR EXAMEN GLOBAL
5.- ESTUCTURAS EN MEMORIA SECUNDARIA
5.1.- Definición de Memoria Secundaria.
5.2.- Buffer
5.3.- Interfás en memoria secundaria
5.4.- Manejo de Archivos
5.4.1.- Lectura y escritura de registros de archivos
5.4.2.- Archivos lógicos y físicos
5.4.3.- Organización física de los archivos
5.4.4.- Accesos a los archivos
5.4.5.- Archivos Secuenciales
5.4.6.- Archivos Random
5.4.7.- Lógicos y físicos,
5.4.8.- Sistema de archivos
5.4.9.- Operaciones básicas con archivos
5.5.- Bases de Datos
5.5.1.- Manejador de Bases de Datos (DBMS)
5.5.2.- Conexion a Bases de Datos
5.5.3.- Lenguaje de Bases de Datos (SQL)
5.5.4.- Operaciones básicas con Bases de Datos
5.5.5.- Aplicaciones con Bases de Datos
Actividades :
5a .- El alumno entregara un resumen de este Tema
VALOR.- 1% Enviar esta actividad
5b .- El alumno entregará un programa en un documento que sea un directorio telefónico
manejando archivos con lista doblemente encadenada para la siguiente estructura de datos:
struct dir{
char nombre[30];
char calleNum[40];
char ciudadPob[20];
char CP[6];
char telefono[20];
struct dir *siguiente; /* puntero a la siguiente entrada */
struct dir *anterior; /* puntero al registro anterior */
} lista_entrada;
VALOR.- 5%
Enviar esta actividad
VALOR.- 10%
5c .- El alumno presentara examen parcial para este tema.
Fecha aproximada: 11 de mayo
6.- PROGRAMACION ORIENTADA A OBJETOS Y LAS ESTRUCTURAS DE DATOS
6.1.- Paradigma de programación
6.2.- Concepto de Programación orientada a objetos.
6.3.- Abstracción de datos y programación orientada a objetos.
6.4.- Objeto
6.5.- Clase
6.6.- Asignación de memoria en programación orientada a objetos
6.7.- Visibilidad
6.8.- Constructores y destructores
6.9.- Valor null
6.10.- Pseudovariable (this)
6.11.- Elementos static
6.12.- Jerarquía de clases
Actividades :
6a .- El alumno entregará un resumen de este tema
VALOR.- 1%
Enviar esta actividad
6b.- El alumno entregara un documento basado en la programación de la clase almacen.
Este documento será un programa en C++ que muestre como menú principal las siguientes
opciones y manejando la siguiente estructura: (código del articulo, descripción, ubicación en
almacen, costo unitario y unidades).
MENU DE OPCIONES
==== == ========
1. Ingresar datos
2. Actualizar datos;
3. Consulta de datos
4. Salir de la aplicacion
6c .- El alumno realizará examen
VALOR.- 5%
VALOR.- 10%
Enviar esta actividad
Fecha aproximada: 25 de mayo
EVALUACION
6 EXAMENES PARCIALES
TAREAS, PROBLEMAS, TRABAJOS, EJERCICIOS,
PROGRAMAS Y RESUMEN DEL TEMARIO
TOTAL
60 %
40%
100 %
BIBLIOGRAFÍA




















JAYANES, Luis. Problemas de metodología de la programación. España, MacGrawHill, 1990, 500 pp.
TENENBAUM, Aaron M : Estructuras de datos en C. México, Prentice Hall, 1993
ANA PONT, SAN JUAN: Estructura de computadores vol.II. Universidad Politecnica de Valencia. Col
Libro Docente. 1996, 327pp
SCHILDT, H.: "C: Manual de referencia".Osborne-Mc Graw-Hill, 1990
RAMIREZ FELIPE: Introducción a la programación: Algoritmos y su Implementación VB.Net, C#, java y
C++. México AlfaOmega 2007, 520 p.
SEDGEWICK, R.: "Algoritmos en C++". Addison-Wesley Iberoameriacana / Díaz de Santos.
WIRTH, N.: "Algoritmos + Estructuras de Datos = Programas". Ediciones del Castillo, 1980
KERNIGHAN, B. Y RITCHIE, D.: "El lenguaje de programación C". Prentice Hall.
KERNIGHAN, B. Y PIKE, R.: "La práctica de la programación". Prentice Hall.
CORMEN, Thomas H.: "Introduction to Algorithms". MIT Press / Mc Graw-Hill, 2001. 2ª Edición
BRASSARD, G.: "Fundamentos de algoritmia". Prentice Hall.
SKIENA, Steven S.: "The Algorithm Design Manual"
KNUTH, D. E.: "Algoritmos fundamentales". Serie: "El arte de programar ordenadores", 1
Reverté, 1980
KNUTH, D. E.: "Seminumerical algorithms". Serie: "The art of computer programming", 2
Addison-Wesley, 1981
KNUTH, D. E.: "Clasificación y búsqueda". Serie: "El arte de programar ordenadores", 3
Reverté, 1987
HOFSTADTER, Douglas R.: "GÖDEL, ESCHER, BACH: un Eterno y Grácil Bucle".
Tusquets Editores, 1989
LIGAS DE INTERNET
http://sistemas.itlp.edu.mx/tutoriales/estru1/33.htm
Descargar

bibliografía - Docencia FCA-UNAM