Prog Y Estructura De Datos

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Prog Y Estructura De Datos as PDF for free.

More details

  • Words: 2,088
  • Pages: 7
PROGRAMACIÓN Y ESTRUCTURA DE DATOS Inicio: 19 de febrero Término: 23 de marzo Horario: 6:00 a 8:00 p.m. grupo: 4º. Semestre de IIS UNIVERSIDAD AUTONOMA DEL NORESTE CONTENIDO PROGRAMATICO DE LA MATERIA : CM-315 PROGRAMACION Y ESTRUCTURAS DE DATOS ______________________________________________________________________________ __ REVISIÓN : ENERO 2001 Diseño Curricular Basado en la Competencia Un Programa Basado en la Competencia, es aquél en el que las metas de realización del estudiante son especificadas y acordadas en riguroso detalle antes de la instrucción; entendiéndose por COMPETENCIA, el conjunto de conocimientos, técnicas y habilidades que adquiere el estudiante durante su programa de estudios para asumir un rol profesional.

DATOS DE IDENTIFICACION: Materia: PROGRAMACION Y ESTRUCTURAS DE DATOS Clave: CM-315 Carrera en la que se imparte: IIS. Duración: 50 HORAS Competencia Principal: Conceptual, Metodológica, Humana. Nivel de Aprendizaje: Familiaridad, Comprensión, Aplicación. EVALUACION DE NECESIDADES: La Programación de computadoras es la actividad sustantiva de la creación de software; ya que es a través de un programa ejecutable como el dispositivo electrónico adquiere la capacidad de realizar tareas "inteligentes". Para la elaboración de programas de computadora, el profesionista de desarrollo de sistemas debe poseer habilidades de raciocinio que le permitan comprender analíticamente un problema, así como el dominio de herramientas lógicas para plantear, evaluar, desarrollar y optimizar la propuesta de solución. Durante las asignaturas prerequisito, el alumno de LDSEI adquirió las competencias afines al análisis y comprensión de problemas, orientadas a la resolución por medio de programas de computadora, así como el manejo de C++. Durante esta asignatura, el alumno se enfocará a conocer y ejercitar conceptos de programación de mayor complejidad, con el propósito de fortalecer su capacidad de raciocinio y su dominio

sobre un lenguaje procedural. Cabe reiterar que si bien el lenguaje seleccionado para la asignatura es C++, no es con la finalidad de convertir al alumno en usuario cautivo de este lenguaje; sino que C++ sirva solamente como un recurso para que el estudiante domine la filosofía del lenguaje procedural y del diseño modular; y desarrolle un estilo elegante de programación.

ESPECIFICACION DE COMPETENCIAS: El alumno adquirirá Competencias para: 1.

Comprender los conceptos básicos de la Ingeniería de Software y enunciar los conceptos de abstracción, ocultamiento y encapsulamiento de datos.

2.

Explicar las características que determinan al Software de Calidad, e identificar programas elaborados sin estas cualidades.

3.

Analizar la información involucrada en un problema y definir los niveles de la estructura de datos.

4.

Apreciar las ventajas de los lenguajes que permiten la elaboración de procedimientos definidos por el programador.

5.

Apreciar las ventajas de los lenguajes que permiten el uso de tipos de datos definidos por el programador.

6.

Elaborar programas en base a un diseño descendente, desarrollando procedimientos definidos por el programador.

7.

Explicar el funcionamiento de tablas de una a tres dimensiones. Diseñar y elaborar programas en base a procedimientos, que permitan manejar datos dentro de las tablas.

8.

Explicar el concepto de registro y archivo. Diseñar y elaborar programas en base a procedimientos, que permitan manejar información organizada en archivos de texto y archivos binarios.

9.

Explicar el funcionamiento de pilas (LIFO) y colas (FIFO). Diseñar y elaborar programas en base a procedimientos, que permitan manejar datos organizados en pilas y colas.

10. Explicar el funcionamiento de listas lineales y circulares, enlazadas y doblemente enlazadas. Diseñar y elaborar programas en base a procedimientos, que permitan manejar información organizada en listas lineales y circulares, enlazadas y doblemente enlazadas.

CONTENIDO CURRICULAR: I.

DISEÒO DE PROGRAMAS. 1. Introducción a la Ingeniería de Software. a. Concepto y objetivos de la Ingeniería de Software. b. Características e importancia del Software de Calidad. c. Consecusión del Software de Calidad. 2. Abstracción, Ocultamieno y Encapsulamiento de Datos. a. Definición y conceptos. b. Aplicación e importancia en la Ingeniería de Software. 3. Diseño de datos. a. Estructuras de datos. b. Niveles dentro de una estructura de datos. - Nivel de Aplicación. - Nivel Lógico ( o Abstracto ). - Nivel de Implementación. - Interrelación entre niveles. 4. Diseño descendente de programas. a. Concepto de modularidad. b. Afinidades entre el esquema modular y el lenguaje procedural. c. Diseño de programas modulares.

II.

PROCEDIMIENTOS Y FUNCIONES DEFINIDAS POR EL USUARIO. 1. Estructura de un procedimiento ( o función ) definido por el usuario. 2. Aplicaciones de los procedimientos ( o funciones ) definidos por el usuario. 3. Parámetros de procedimiento ( o función ) definido por el usuario. a. Parámetros por referencia. b. Parámetros por valor.

III.

TIPOS DE DATOS DEFINIDOS POR EL USUARIO. 1. Tipos escalares. 2. Tipos enumerados. 3. Tipos ordinales. a. Funciones para tipos ordinales - ORD(), PRED(), SUCC(). 4. Tipos subrangos. 5. Compatibilidad. a. Requisitos para definir tipos compatibles.

IV.

PROGRAMACION DE ESTRUCTURAS ESTATICAS. 1. Tablas unidimensionales (vectores). a. Operaciones con un vector ( introducir, recorrer, buscar, etc.). 2. Tablas bidimensionales (matrices). a. Operaciones con una matriz ( introducir, recorrer, buscar, etc.). 3. Tablas multidimensionales. a. Operaciones con un cubo ( introducir, recorrer, buscar, etc.).

extraer, extraer, extraer,

V.

REGISTROS. 1. Concepto de registro. 2. Elementos de un registro. a. Definición de campo de registro. b. Similitudes y diferencias de una variable y un campo de registro. 3. Declaración de registros en la sección TYPE. 4. Tablas de registros. a. Vectores. - Operaciones con un vector de registros (introducir, extraer, recorrer, buscar, etc.). b. Matrices. - Operaciones con una matriz de registros (introducir, extraer, recorrer, buscar, etc.) c. Cubos. - Operaciones con un cubo de registros (introducir, extraer, recorrer, buscar, etc.).

VI.

ARCHIVOS. 1. Archivos de Texto. a. Características del archivo de texto. b. Declaración de archivos de texto. - Tipo TEXT. c. Estructura de un archivo de texto. - Conceptos de caracter, línea de texto, fin de línea, fin de archivo. d. Creación y regeneración de archivos de texto. - Procedimientos REWRITE(), RESET(), CLOSE(). e. Escritura y lectura sobre un archivo de texto. - Procedimientos WRITELN(), READLN(), WRITE(), READ(). 2. Archivos binarios. a. Características del archivo binario. b. Declaración de archivos binarios. - Tipo FILE OF. c. Estructura de un archivo binario. - Conceptos de Campo, Registro y Archivo. d. Creación y regeneración de archivos binario. - Procedimientos REWRITE(), RESET(), CLOSE(). e. Escritura y lectura sobre un archivo binario. - Procedimientos WRITE(), READ(), DISPOSE(), GET(), PUT(), NEW(), SEEK().

VII.

PROGRAMACION DE ESTRUCTURAS DINAMICAS. 1. Pilas (LIFO). a. Definición de una pila y características de llenado/vaciado de datos (Last In, First Out). b. Operaciones con pilas. - Implementación de una pila con una tabla. - Operaciones con una lista enlazada (introducir, extraer, recorrer, buscar, etc). - Carga de datos desde un archivo a una pila y viceversa. 2. Colas (FIFO). a. Definición de una Cola y características de llenado/vaciado de datos (First In, First Out).

b. Operaciones con Colas. - Implementación de una Cola con una tabla. - Operaciones con una lista enlazada (introducir, extraer, recorrer, buscar, etc.). - Carga de datos desde un archivo a una cola y viceversa. VIII. LISTAS. 1. Definición de Lista. 2. Componentes de una lista. a. Nodos. b. Punteros. c. Cabeceras y finales. 3. Listas lineales. a. Enlazadas. - Definición y funcionamiento de una lista enlazada. - Operaciones con una lista enlazada (introducir, extraer, recorrer, buscar, etc.). b. Doblemente enlazadas. - Definición y funcionamiento de una lista doblemente enlazada. - Operaciones con una lista doblemente enlazada (introducir, extraer, recorrer, buscar, etc). 4. Listas circulares. a. Enlazadas. - Definición y funcionamiento de una lista circular enlazada. - Operaciones con una lista circular enlazada (introducir, extraer, recorrer, buscar, etc.). b. Doblemente enlazadas. - Definición y funcionamiento de una lista circular doblemente enlazada. - Operaciones con una lista circular doblemente enlazada (introducir, extraer, recorrer, buscar, etc). 5. Carga de datos desde un archivo a una lista y viceversa.

IX.

EJERCICIOS DE PROGRAMACION.

METODOLOGIA PARA EL LOGRO DE LAS COMPETENCIAS: La programación en un lenguaje procedural debe constituirse en un conocimiento plenamente significativo para el alumno; y esto requiere de explicaciones exahustivas y minuciosas por parte del profesor, reiterando, detallando e ilustrando con ejemplos hasta lograr una comprensión total por parte del alumno. El profesor debe demostrar no sólo los resultados de un programa, sino el funcionamiento detallado de sus enunciados y estructuras; para ello, dispone tanto de los diagramas de flujo como de la prueba de escritorio. El

desarrollo

en

el educando de la

capacidad de comprender un

problema y proponer una solución a través de un programa de computadora, sólo se puede lograr mediante una práctica exahustiva, que, así como despierte y/o fortalezca las habilidades de raciocinio del estudiante también le brinde dominio de un lenguaje procedural; por lo cual, esta asignatura requiere un planteamiento equilibrado entre las exposiciones del profesor y las intervenciones del alumno dentro de la clase. La metodología de trabajo debe conformarse entonces con: a.

Exposición de conceptos por parte del profesor. Auxiliándose siempre en apoyos didácticos (pizarrón, rotafolio, acetatos).

b.

Ejercicios resueltos por el profesor ante el grupo, explicando detalladamente cada uno de los pasos y realizando la prueba de escritorio correspondiente.

c.

Ejercicios resueltos por el alumno ante el grupo; con la orientación y apoyo del profesor, e incluyendo ineludiblemente la demostración a través de la prueba de escritorio.

d.

Ejercicios resueltos por el alumno a modo de tarea, siempre acompañados de la prueba de escritorio correspondiente. En este caso, es importante que el profesor revise los trabajos considerando que es más importante brindar retroalimentación oportuna al alumno que asignarle una calificación.

La participación de los alumnos debe ser cotidiana y exahustiva; pero siempre para practicar y resolver ejercicios con la orientación del profesor. La exposición de temas es responsabilidad absoluta del catedrático, y de ningún modo deben participar educandos en el proceso de impartir nuevos conocimientos al grupo. Por esto mismo, y para evitar que el alumno se limite a copiar mecánicamente renglones del pizarrón a la computadora, esta materia se debe impartir íntegramente en el salón de clases. El profesor debe dejar tareas, trabajos y prácticas ( con carácter de obligatorios ) en la computadora para que los alumnos los desarrollen en el Centro de Cómputo Académico, fuera de su horario de clase. En los libros incluidos en la bibliografía se proponen abundantes ejercicios; sin dejar de considerar, desde luego, aquellos que el profesor incluya en su acervo personal. EVALUACION DE LAS COMPETENCIAS: Esta asignatura tiene la finalidad de formar competencias eminentemente prácticas; esto es, el alumno debe aprender a usar herramientas que le permitan obtener resultados precisos y concretos. El Centro de Cómputo Académico no es una extensión del salón y no debe considerarse para la impartición de clases. Sin embargo, la práctica en un ambiente real es fundamental para el logro de las competencias, y por lo mismo, el profesor debe asegurarse que el alumno se ejercite mediante tareas y trabajos a realizar fuera del horario de clases.

La evaluación de competencias debe servirle al profesor, más que como un generador de calificaciones, como un indicador del grado en que los educandos desarrollan el uso de la lógica en la resolución de problemas; por lo que la evaluación debe ser un proceso cotidiano. La participación del alumno en clase (resolviendo problemas) y en actividades fuera del salón (tareas y trabajos); es tan importante como la atención y retroalimentación que proporcione el profesor. Una alternativa para permitir al profesor evaluar con más claridad el nivel de asimilación de cada uno de los alumnos, así como los puntos inciertos que pudiera tener, es acostumbrar a los estudiantes a pasar al frente del grupo a elaborar un programa completo y explicar posteriormente a sus compañeros su funciona-miento mediante una prueba de escritorio. Se puede complementar la dinámica si se induce al grupo a detectar errores y/o proponer mejoras al trabajo expuesto. Los puntos que el alumno son:

profesor debe

considerar

a.

Participación activa en clase.

b.

Tareas y trabajos.

c.

Exámenes parciales y examen final.

para

calificar al

Con el propósito de desarrollar en los educandos buenos hábitos para trabajar, así como un estilo pulcro y ordenado de programación, el profesor debe considerar para la calificación de cada ejercicio los siguientes aspectos: a.

Análisis del problema. El alumno debe desarrollar y presentar el diseño modular descendente de cada programa, junto con los algoritmos correspondientes.

b.

Formateo y documentación interna. El programa fuente debe estar correctamente indentado y con comentarios que faciliten su interpretación.

c.

Funcionalidad correcta del programa. El programa ejecutable debe funcionar y proporcionar los resultados esperados.

BIBLIOGRAFÍA: Bronson, Gary J. C++ para ingeniería y ciencias. Thomson. Alcalde, E. ; García, M. Metodología de la Programación. 2¦ Edición. Editorial: McGraw-Hill. Serie Informática de Gestión. PROGRAMA ELABORADO POR: Dirección Académica de Ingenierías.

Related Documents