Estructuras de Datos

 

Las Estructuras de Datos están relacionadas con la representación, la manipulación y el almacenamiento de información en un sistema de cómputo.

En este curso se introducen y discuten algunas estructuras de datos fundamentales. La aproximación es establecer las bases de una manera gradual, partiendo de los principios básicos y de los conceptos fundamentales.

Información Básica

  • Horas de Clase: 4 / semana
  • Horas de trabajo independiente: 8 / semana
  • Prerequisitos: Introducción a la Programación

Objetivos Instruccionales

Al finalizar el curso los participantes podrán:

  • Representar información numéricamente empleando tipos de datos básicos
  • Operar números binarios empleando sumas y operaciones lógicas bit a bit
  • Convertir números entre las bases binaria, decimal y hexadecimal
  • Enunciar los elementos básicos de una organización básica de computadores
  • Hacer uso de constructores gráficos básicos para describir algoritmos
  • Enunciar las fases de traducción de un compilador de lenguaje C
  • Declarar y utilizar variables de tipo escalar en el lenguaje C
  • Diferenciar la visibilidad de las variables en el lenguaje C
  • Hacer uso de las estructuras de control de flujo en el lenguaje C
  • Hacer uso de funciones no recurrentes y recurrentes en el lenguaje C
  • Declarar y utilizar arreglos y registros en el lenguaje C
  • Hacer uso de apuntadores en el lenguaje C
  • Declarar y utilizar listas enlazadas
  • Declarar y utilizar pilas
  • Declarar y utilizar colas lineales y circulares
  • Programar usando un lenguaje de bajo nivel

Competencias a Desarrollar

Durante el curso el estudiante desarrollará su capacidad para:

  • Actualizarse en el conocimiento de la disciplina, en el estado tecnológico y en asuntos sociales, culturales, ecológicos y económicos pertinentes al
  • Identificar problemas en el contexto que planteen oportunidades de
  • Proponer alternativas de
  • Realizar

diseño y desarrollo de sistemas electrónicos.

Metodología

El curso es presencial y se impartirá mediante clases magistrales, talleres y prácticas de laboratorio. Cada
sesión consta de una temática impartida por el profesor y unas actividades que deben ser realizadas
por el estudiante. Antes de iniciar cada tema, se recomendará la lectura de la bibliografía
relacionada, de modo que el estudiante tenga una base de conocimiento que le permita participar en
el desarrollo del tema durante la clase. También se realizarán exposiciones y puestas en común para ejercitar la
expresión oral y escrita.

Contenido

Tema Sesión Bibliografía
Fundamentos 1-4 [1, 5, 6]
Lenguaje de Programación C 5-13 [1, 3]
Estructuras de Datos 15-24 [1, 2, 4]
Lenguaje de Programación Assembly 26-31 [1]
Proyecto de Curso 2-36 [1 – 6]

Curso en Moodle

Evaluación

Nota Porcentaje
Primer Parcial 20 %
Segundo Parcial 20 %
Proyecto (Primera Entrega) 10 %
Proyecto (Segunda Entrega) 10 %
Proyecto (Entrega Final) 15 %
Prácticas de Laboratorio 10 %
Tareas 5 %

Bibliografía

[1] PATT, Y. N., PATTEL, S. J. Introduction to Computing Systems - From Bits & Gates to C and Beyond, Second Edition. McGraw-Hill, 2004
[2] KALICHARAN, N. Data Structures in C. CreateSpace, 2008
[3] OUALLINE, Steve. Practical C Programming, 3rd Edition. O'Reilly Media, Inc., 1997.
[4] VILLALOBOS, J. Diseño y Manejo de Estructuras de Datos en C. McGraw-Hill, 1996
[5] FELLEISEN, M. y FINDLER, R. How to Design Programs, an Introduction to Programming and Computing. The MIT Press, 1995
[6] ABELSON, H. y SUSSMAN, G. Structure and Interpretation of Computer Programs. The MIT press, 1996