Tecnología Computacional y educativa
Ingeniería y tecnologías de software
Lorena Alonso, Carlos Ochoa, Martha Domínguez, Ángeles Arenas, Fredy Castañeda, Luis Montane, Edgard Benitez, Carmen Mezura, Ángel Sánchez,.........
Licenciado en Informática o carrera afín, con posgrado en el área de la computación, con experiencia en programación orientada a objetos y/o certificación en lenguajes de programación orientada a objetos, experiencia docente a nivel superior en el área de programación y cursos de formación docente.
El estudiante aplica la estructura de datos más adecuada para resolver problemas de computación, con la finalidad de optimizar su rendimiento y usa la programación orientada a objetos, buenas prácticas de codificación y documentación de código con creatividad y disposición para trabajar en equipo, siendo colaborativo, tolerante y proactivo.
El estudiante adquiere conocimientos sobre los conceptos básicos de las estructuras de datos, así como los métodos de ordenación y búsqueda para resolver problemas computacionales utilizando estructuras de datos, orientación a objetos y algoritmos relacionados en forma responsable, creativa, colaborativa y respetuosa.
Esta experiencia educativa se ubica en el área disciplinar (tres horas teóricas tres horas prácticas, ocho créditos), en ella se estudian las diferentes estructuras de datos, la organización y manipulación de los datos aplicándolas a problemas específicos para cada una de las estructuras de datos y la implantación utilizando un lenguaje de programación orientado a objetos mediante prácticas individuales y proyectos en equipo en los cuales se integren los conocimientos del curso. El desempeño de la unidad de competencia se evidencia mediante el desarrollo de prácticas y proyectos que cumplan con los criterios de entrega oportuna y funcionamiento correcto y la resolución acertada de los exámenes.
Las estructuras de datos y los algoritmos relacionados con ellas repercuten de forma directa en el almacenamiento y tratamiento de la información, tanto desde el punto de vista físico como funcional. Por tanto, el amplísimo ámbito de la programación se construye sobre los cimientos de dichos algoritmos y estructuras de datos, de ahí la importancia de su conocimiento y aplicación en la solución de problemas específicos.
Conceptos básicos sobre estructuras de datos
* Tipos de datos
* Tipos de datos simples y estructurados
* Representación de datos estática y dinámica
Recursión
* Métodos recursivos
* Recursión infinita
* Resolución de problemas recursivos
Almacenamiento dinámico
* Apuntadores
* Operadores para trabajar con memoria dinámica
Listas ligadas
* Fundamentos teóricos
* Clasificación de listas ligadas
* Implantación de listas ligadas
* Operaciones básicas de listas ligadas
* Operaciones complementarias de listas
* Aplicaciones de listas ligadas
Pilas
* Fundamentos teóricos
* Implantación de pilas
* Operaciones básicas de pilas
* Operaciones complementarias de pilas
* Aplicaciones de pilas
Colas
* Fundamentos teóricos
* Implantación de colas
* Operaciones básicas de colas
* Operaciones complementarias de colas
* Aplicaciones de pilas
Árboles
* Fundamentos teóricos
* Tipos de árboles
* Implantación de árboles binarios de búsqueda
* Operaciones básicas de árboles binarios de búsqueda
* Operaciones complementarias de árboles binarios de búsqueda
* Aplicaciones de árboles binarios de búsqueda.
Estructuras asociativas.
* Diccionarios.
* Funciones de Dispersión.
Métodos de ordenamiento y búsquedas.
* Métodos de ordenamiento simples.
* Métodos de ordenamiento complejos.
* Búsquedas.
Identificación de los conceptos básicos de los tipos de datos
Aplicación correcta de los conceptos de la recursión
Aplicación correcta de los conceptos de las excepciones
Identificación de los conceptos relacionados con el almacenamiento dinámico y su aplicación correcta
Resolución de problemas, aplicando la programación orientada a objetos y las estructuras de datos de Listas ligadas, Pilas, Colas y Arboles
Resolución de problemas utilizando métodos de ordenamiento y búsqueda
* Creatividad para la resolución de problemas y la elaboración de soluciones mediante software
* Responsabilidad para la entrega de oportuna y completa del software y proyectos desarrollados
* Colaboración al trabajar en equipos y participar en actividades. ·
* Respeto por las opiniones y aportaciones de compañeros del grupo y de equipo.
* Ética en la realización de tareas y actividades
Búsqueda y consulta de información.
Discusión de conceptos.
Prácticas en computadora.
Elaboración de proyectos que integren los conceptos vistos en el aula.
Uso de tecnologías de la información para reforzar conocimientos
Dirección de prácticas.
Revisión individual de trabajos en equipo.
Organización de grupos colaborativos.
Tareas para estudio independiente.
Discusión dirigida.
Exposición con apoyo tecnológico variado.
* Programa de la experiencia educativa.
* Plan del curso.
* Manuales del lenguaje (impreso y en línea).
* Bibliografía de la experiencia educativa.
* Listado de ejercicios.
* Aula para 25 estudiantes.
* Pintarrón y marcadores para usos varios.
* Aula con equipo de cómputo con software requerido (compilador del lenguaje).
* Video proyector.
* Software: C++ y Java, IDE para C++: ZinJai. Dev-C++ o QtCreator, IDE para Java: Netbeans o Eclipse.
Exámenes escritos
Tareas y Prácticas
Proyectos integradores
Resolución acertada de reactivos y problemas
Entrega oportuna y correcta
Entrega oportuna, correcta y documentada
Aula con trabajo individual
Aula, casa con trabajo individual
Aula, casa con trabajo grupal
Para acreditar es necesario aprobar el examen con calificación mínima de 6 y que la suma de los porcentajes de las evidencias permita tener una calificación de 6 o mayor. Así como cumplir con los porcentajes de asistencia que indica el estatuto.
Cairó, O. y Guardati, S. (2002). Estructuras de Datos, 2da. Edición. McGraw-Hill.
Joyanes, L. (2006). Programación en C++: Algoritmos, Estructuras de datos y objetos. McGraw-Hill.
Deithel (2003). Como programar en C++. 4a Edición. Pearson, Prentice Hall.