Programa

5
PROGRAMA DE MATERIA *En caso de no aplicar algún elemento, escribir N/A 1 de 5 Código: FO-030200-13 Revisión: 02 Emisión: 13/12/11 MATERIA: ESTRUCTURA DE DATOS CENTRO ACADÉMICO: CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO ACADÉMICO: SISTEMAS ELECTRÓNICOS PROGRAMA EDUCATIVO: ING. EN SISTEMAS COMPUTACIONALES AÑO DEL PLAN DE ESTUDIOS: 2009 SEMESTRE: CLAVE DE LA MATERIA: 17666 ÁREA ACADÉMICA: SOFTWARE DE BASE Y PROGRAMACION DE SISTEMAS PERIODO EN QUE SE IMPARTE: AGOSTODICIEMBRE HORAS SEMANA T/P: 3/3 CRÉDITOS: 9 MODALIDAD EDUCATIVA EN LA QUE SE IMPARTE: PRESENCIAL NATURALEZA DE LA MATERIA: OBLIGATORIA ELABORADO POR: ESP, ELMA, JP REVISADO Y APROBADO POR LA ACADEMIA DE: SOFTWARE DE BASE Y PROGRAMACION DE SISTEMAS FECHA DE ACTUALIZACIÓN: JULIO 2013 DESCRIPCIÓN GENERAL Se trata de un curso teórico/practico dónde el alumno aprende el uso y aplicación las distintas estructuras de datos que existen en programación, así como la forma correcta para emplearlas en problemas cotidianos. Además, se analizan los distintos algoritmos que existen para el ordenamiento y búsqueda de datos, así como el rendimiento de los algoritmos que se emplean con el fin de mejorar el desempeño de las aplicaciones. OBJETIVO (S) GENERAL (ES) El alumno aprenderá las diversas estructuras de datos que existen en programación, los algoritmos de ordenamiento y búsqueda, así como el rendimiento de los algoritmos analizados; todo con el fin de desarrollar aplicaciones de rendimiento óptimo. OBJETIVO PARTICULAR Al final del curso, el estudiante podrá: 1. Conocer que son, para que sirven, así como diferenciar las diversas estructuras de datos 2. Clarificar el concepto de recursividad por medio de programación. 3. Aprender a optimizar el manejo de los datos con sus respectivos tipos. 4. Conocer y aplicar el manejo de la memoria dinámica. 5. Aprender los diferentes tipos de ordenación y búsquedas, así como su implementación. 6. Analizar y diseñar sus propios algoritmos. 7. Implementar las estructuras de datos en un lenguaje de programación DATOS DE IDENTIFICACIÓN

description

programa estructuras de datos c++

Transcript of Programa

Page 1: Programa

PROGRAMA DE MATERIA

 *En  caso  de  no  aplicar  algún  elemento,  escribir    N/A                                                                                                                                    

1  de  5  

Código: FO-030200-13 Revisión: 02 Emisión: 13/12/11

MATERIA: ESTRUCTURA  DE  DATOS  

CENTRO ACADÉMICO: CENTRO  DE  CIENCIAS  BÁSICAS

DEPARTAMENTO ACADÉMICO: SISTEMAS  ELECTRÓNICOS

PROGRAMA EDUCATIVO: ING.  EN  SISTEMAS  COMPUTACIONALES  

AÑO DEL PLAN DE ESTUDIOS: 2009 SEMESTRE: 3°   CLAVE DE LA MATERIA: 17666

ÁREA ACADÉMICA: SOFTWARE  DE  BASE  Y  PROGRAMACION  DE  SISTEMAS  

PERIODO EN QUE SE IMPARTE: AGOSTO-­‐DICIEMBRE

HORAS SEMANA T/P: 3/3   CRÉDITOS: 9

MODALIDAD EDUCATIVA EN LA QUE SE IMPARTE: PRESENCIAL NATURALEZA DE LA

MATERIA: OBLIGATORIA

ELABORADO POR: ESP,  ELMA,  JP  

REVISADO Y APROBADO POR LA ACADEMIA DE:

SOFTWARE  DE  BASE  Y  PROGRAMACION  DE  SISTEMAS  

FECHA DE ACTUALIZACIÓN: JULIO  2013  

DESCRIPCIÓN GENERAL

Se  trata  de  un  curso  teórico/practico  dónde  el  alumno  aprende  el  uso  y  aplicación  las  distintas  estructuras  de  datos  que  existen  en  programación,  así  como  la  forma  correcta  para  emplearlas  en  problemas  cotidianos.  Además,  se  analizan  los  distintos  algoritmos  que  existen  para  el  ordenamiento  y  búsqueda  de  datos,  así  como  el  rendimiento  de  los  algoritmos  que  se  emplean  con  el  fin  de  mejorar  el  desempeño  de  las  aplicaciones.  

OBJETIVO (S) GENERAL (ES) El  alumno  aprenderá  las  diversas  estructuras  de  datos  que  existen  en  programación,  los  algoritmos  de  ordenamiento  y  búsqueda,  así  como  el  rendimiento  de  los  algoritmos  analizados;    todo  con  el  fin  de  desarrollar  aplicaciones  de  rendimiento  óptimo.    

OBJETIVO PARTICULAR Al  final  del  curso,  el  estudiante  podrá:  1. Conocer  que  son,  para  que  sirven,  así  como  diferenciar  las  diversas  estructuras  de  datos    2. Clarificar  el  concepto  de  recursividad  por  medio  de  programación.  3. Aprender  a  optimizar  el  manejo  de  los  datos  con  sus  respectivos  tipos.  4. Conocer  y  aplicar  el  manejo  de  la  memoria  dinámica.  5. Aprender  los  diferentes  tipos  de  ordenación  y  búsquedas,  así  como  su  implementación.    6. Analizar  y  diseñar  sus  propios  algoritmos.  7. Implementar  las  estructuras  de  datos  en  un  lenguaje  de  programación  

DATOS DE IDENTIFICACIÓN

Page 2: Programa

PROGRAMA DE MATERIA

 *En  caso  de  no  aplicar  algún  elemento,  escribir    N/A                                                                                                                                    

2  de  5  

Código: FO-030200-13 Revisión: 02 Emisión: 13/12/11

UNIDAD TEMÁTICA I: FUNDAMENTOS  DE  ESTRUCTURAS  DE  DATOS (12 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

Conocerá   los   fundamentos  básicos  de  las  estructuras  de  datos,   aprenderá   la  declaración   y   la   gestión   de  memoria   de   las  mismas,   así  como   su   uso   en   algún  lenguaje   de   programación.  Además,   de   aplicar   las  diversas   operaciones   sobre  ellos.

1. Definición  de  estructuras  de  datos  2. Tipos  de  datos  nativos  3. Tipos  de  dato  estructurado  

3.1 Arreglos  3.2 Registro    

4. Tipo  de  dato  abstracto  4.1 Clase  4.2 Referencias  (objetos)  

5. Plantillas  6. Memoria  dinámica  

1,  2

UNIDAD TEMÁTICA II: PILAS  Y  COLAS ( 12 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

Conocerá   y   aprenderá   el  concepto   y   manejo   de   las  pilas,   así   como   solucionar  los   diversos   problemas   que  ocurren  en  ellas.    Conocerá   y   aprenderá   el  concepto  y  manejo  de  colas  simples   y   circulares,   así  como   dar   solución   a  problemas,   implementando  este  tipo  de  estructuras.  

1. Definición  de  Pila  1.1 Representación  de  una  pila.  1.2 Operaciones  básicas  con  pilas  

1.2.1 Algoritmos  para  el  manejo  de  pilas  1.3 Aplicaciones  de  la  pila  

1.3.1 Notación  Infijo,  Prefijo  y  Posfijo  1.3.2 Algoritmos   para   la   conversión   de   expresiones   infijos   –  

postfijo  –  prefijo  1.3.3 Evaluación  de  expresiones  

2. Definición  de  Colas    2.1 Representación  de  una  Cola  2.2 Operaciones  básicas  con  colas    2.3 Algoritmos  para  el  manejo  de  colas  simples  

1,  2

UNIDAD TEMÁTICA III: RECURSIVIDAD (10 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

El   estudiante   aprenderá   y  practicará   el   concepto   de  recursividad,   así   como  identificar   los   casos   donde  es  factible  su  aplicación.

1. Concepto  de  Recursividad  2. Propiedades  de  los  algoritmos  recursivos  3. Funcionamiento  interno  de  la  recursividad  4. Uso  de  pilas  para  simular  la  recursividad  5. Aplicación  de  la  recursividad  

5.1. Ejemplos  de  casos  recursivos  

1,  2

CONTENIDOS DE APRENDIZAJE

Page 3: Programa

PROGRAMA DE MATERIA

 *En  caso  de  no  aplicar  algún  elemento,  escribir    N/A                                                                                                                                    

3  de  5  

Código: FO-030200-13 Revisión: 02 Emisión: 13/12/11

UNIDAD TEMÁTICA IV: LISTAS  ENLAZADAS ( 12 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

Conocerá   y   aprenderá   los  diferentes   tipos   de   listas  enlazadas   y   las   diversas  operaciones   que   se   pueden  llevar   a   cabo   con   cada   una  de  ellas.    Implementara   los   diversos  algoritmos   para   el   manejo  de  listas

1. Listas  Enlazadas  1.1 Conceptos  básicos:  apuntador,  nodo,  nodo  nulo  y  nodo  raíz  

1.1.1 Estructuras  auto  referenciadas    1.2 Listas  simples  enlazadas    1.3 Listas  doblemente  enlazadas  1.4 Listas  circulares    

1.4.1 Simples  circulares  1.4.2 Doblemente  enlazadas  circulares  

1.5 Algoritmos   de   inserción,   recorrido,   borrado   y   búsqueda   de  elementos  en  listas  

1.6 Casos  prácticos:  manejo  de  pilas  y  colas  mediante  listas  

1,  2  ,3

UNIDAD TEMÁTICA V: ÁRBOLES  Y  GRAFOS ( 18 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

Aprenderá   y   practicará   el  concepto   de   árbol   general,  binario   y   AVL   y   los   aplicará  en  la  solución  de  problemas  reales.    Hará   uso   de   montones   y  colas   de   prioridad   que   le  permitirán   clasificar  arreglos.  

1. Árboles  Generales  1.1. Características  y  propiedades  de  los  árboles  1.2. Longitud  de  camino  interno  y  extern  

2. Árboles  Binarios.  2.1. Representación  de  un  árbol  general  como  árbol  binario  2.2. Inserción  de  elementos  en  un  árbol  binario  2.3. Recorridos  en  un  árbol  binario  en  in-­‐orden  post-­‐orden    y  pre-­‐orden  2.4. Borrado  de  elementos  en  un  árbol  binario  2.5. Árboles  binarios  de  búsqueda  

3. Árboles  Balanceados  (AVL)  3.1. Inserción  de  elementos  3.2. Factores  de  equilibrio  /  balanceo  

3.2.1. Reglas  de  reestructuración  3.3. Borrado  de  elementos  en  un  árbol  balanceado  

4. Grafos  4.1. Conceptos  básicos  4.2. Aplicaciones  de  los  grafos  

1,  2,  3

UNIDAD TEMÁTICA VI: ORDENAMIENTO  Y  BÚSQUEDA ( 18 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

Conocerá,   entenderá   y  aplicará   los   conceptos   y  algoritmos   de  ordenamientos  de  datos.    Conocerá   y   aplicará   los  conceptos   y   algoritmos   de  búsquedas  de  datos

1. Características  del  ordenamiento  1.1. Algoritmos  de  ordenamiento  1.2. Análisis  de  eficiencia  de  los  métodos  de  ordenación  

2. Características  de  la  búsqueda  2.1. Algoritmos  de  búsqueda  2.2. Análisis  de  eficiencia  de  los  métodos  de  búsqueda  

1,  2,  4

Page 4: Programa

PROGRAMA DE MATERIA

 *En  caso  de  no  aplicar  algún  elemento,  escribir    N/A                                                                                                                                    

4  de  5  

Código: FO-030200-13 Revisión: 02 Emisión: 13/12/11

UNIDAD TEMÁTICA VII: ANALISIS  DE  ALGORITMOS ( 12 horas aprox.)

OBJETIVOS PARTICULARES CONTENIDOS FUENTES DE

CONSULTA

Comprenderá   el   concepto  de   complejidad   de   los  algoritmos   y   su   aplicación  en   la   selección   de   los  mismos.    

1. Complejidad de algoritmos 2. Aritmética de la notación O 3. Complejidad

3.1 Tiempo de ejecución de un algoritmo 3.2 Complejidad en el espacio

4. Selección de un algoritmo

1,  2,  4

METODOLOGÍA DE ENSEÑANZA - APRENDIZAJE 1. Exposiciones  verbales  por  parte  del  profesor,  de  acuerdo  a  los  temas  establecidos  en  el  programa  de  estudios,  apoyándose  

en  la  bibliografía  del  mismo.  2. Realización  de  un  número  suficiente  de  ejercicios  frente  a  grupo.  3. Se  usará  un  lenguaje  de  programación  sugerido  por  el  profesor  como  herramienta  de  apoyo  en  la  solución  de  problemas.  4. Realización  por  parte  de  alumnos,  de  ejercicios  o  trabajos  extra  clase  para  verificar  el  dominio  de  los  temas  estudiados  en  

clase.  5. Realización  de  ejercicios  en  el  aula  por  parte  de  los  alumnos,  donde  se  apliquen  los  conocimientos  adquiridos  en  la  clase.  6. Juicio  crítico  del  profesor  que  le  permita  en  caso  de  falta  de  tiempo  seleccionar  los  contenidos  y  objetivos  básicos  de  cada  

unidad;  previo  visto  bueno  del  coordinador  de  academia  correspondiente.  7. Juicio  crítico  del  profesor  que  le  permita  en  caso  contar  con  tiempo  extra  para  seleccionar  temas  de  interés  para  el  grupo;  

previo  visto  bueno  del  coordinador  de  academia  correspondiente.

RECURSOS DIDÁCTICOS Tradicionales:  pizarrón,  material  de  apoyo,  notas  de  la  materia  Nuevas  Tecnologías:  Proyector,  Computadora,  Plataforma  Moodle  

EVALUACIÓN DE LOS APRENDIZAJES

PARTE  TEÓRICA:      Se  realizaran  3  exámenes  escritos  con  la  siguiente  ponderación:       1er.    Parcial       20%   Unidad  1,  2,  3       2do.  Parcial     25%   Unidad  4,  5       Examen  Final     25%   Unidad  5,  6,  7    PARTE    PRÁCTICA:       Trabajo  Final     20%    

Tareas       10%    NOTA  1:  Para  poder  acreditar  la  materia  es  necesario  aprobar  la  teoría  y  la  práctica  por  separado.    NOTA   2:   Las   estructuras   de   datos   que   se   programen   durante   el   curso   se   deben   realizar   en   algún   lenguaje   de   programación  sugerido  por  el  profesor.  NOTA  3:  El  proyecto  final  puede  contemplar  temas  de  investigación  por  parte  del  alumno  NOTA  4:  La  calificación  mínima  aprobatoria  es  7  (siete)  

Page 5: Programa

PROGRAMA DE MATERIA

 *En  caso  de  no  aplicar  algún  elemento,  escribir    N/A                                                                                                                                    

5  de  5  

Código: FO-030200-13 Revisión: 02 Emisión: 13/12/11

FUENTES DE CONSULTA

BÁSICAS: 1. Cairó,  Osvaldo;  Guardati,  Silvia,  Estructura  De  Datos,  2da  Edición,  Editorial  Mcgraw-­‐Hill,  ISBN  9701035348    2. Tanenbaum,   Aaron   M.;   Augenstein,   Moshe   J.;   Langsam,   Yedidyah,   Estructuras   De   Datos   En   C,   Primera   Edición,   Editorial  

Prentice-­‐Hall,  Año  1993.  ISBN  968-­‐880-­‐256-­‐5    3. Aho,  Alfred  V.  Estructura  de  Datos  y  Algoritmos.  Editorial  Adisson  Wesley  Longman,  ISBN  968  444  345  5    4. Joyanes  Aguilar,  Luis.  Programación  en  Java  2:  algoritmos,  estructuras  de  datos  y  programación  orientada  a  objetos,  McGraw-­‐

Hill,  ISBN  8448132904   COMPLEMENTARIAS: 5. Bowman,   Charles   F.;   López   Hernández,   Sergio   Gerardo,   Algoritmos   Y   Estructuras   De   Datos:   Aproximación   En   C,   Primera  

Edición,  Editorial  Oxford  University  Press,  Año  1999.  ISBN  970-­‐613-­‐459-­‐X    6. Joyanes  Aguilar,  Luis;  Zahonero  Martínez,   Ignacio,  Estructura  De  Datos  Algoritmos,  Abstracción  Y  Objetos,  Primera  Edición,  

Editorial  Mcgraw  Hill,  Año  1998,  ISBN  8448120426    7. Wirth,  Niklaus,  Algoritmos  y  Estructuras  De  Datos,  Editorial  Prentice  Hall,  Año  1987,  ISBN  968-­‐880-­‐113-­‐5