Descripción: Programación 2
PROGRAMACIÓN 2
SEMESTRE A-2018
PROGRAMA DEL CURSO: Programación II
PRELACIÓN: Programación I
CÓDIGO: PR2
UBICACIÓN : 2do SEMESTRE
TPLU: 3 1 2 4
JUSTIFICACIÓN:
El computador es una de las herramientas fundamentales del Ingeniero de Sistemas, por lo tanto, es necesario enseñar al futuro ingeniero su uso y aplicación práctica en la solución de problemas de mediana y alta complejidad. Para ello es necesario desarrollar habilidades en el uso de las técnicas actuales que simplifican y agilizan la tarea de diseño y construcción de los programas computacionales requeridos, así como el conocimiento de los distinto tipos de datos abstractos que se pueden emplear en el desarrollo de sistemas programados.
OBJETIVOS GENERALES:
- Desarrollar en el estudiante la habilidad para el diseño y especificación orientada por objetos e implantación de dichos diseños en un lenguaje de programación de alto nivel.
- Introducir al estudiante en el manejo de técnicas para la organización de grandes volúmenes de datos en archivos.
OBJETIVOS ESPECÍFICOS:
Al finalizar el curso el estudiante debe estar en capacidad de:
- Conocer y manipular con destreza el concepto de abstracción de datos.
- Diseñar, especificar e implantar tipos de datos abstractos.
- Dominar con destreza los paradigmas de la orientación por objetos.
- Conocer técnicas para la especificación, diagramación y desarrollo de sistemas programados orientados por objetos.
- Diseñar e implantar la solución de problemas de mediana complejidad utilizando los distintos tipos de datos abstractos.
- Conocer los distintos tipos de almacenamiento en memoria secundaria.
- Conocer y manejar las distintas organizaciones de archivos para el almacenamiento de datos persistentes.
- Dominar los constructos de un lenguaje de programación de alto nivel orientado por objetos.
CONTENIDO PROGRAMÁTICO
UNIDAD I: Introducción a la Orientación por objetos. (5 semanas, 10 sesiones de 2 horas)
El objetivo de esta unidad es introducir al estudiante los conceptos básicos que soportan el paradigma de la programación orientada por objeto y su implantación en un lenguaje de alto nivel orientado por objetos. Además, se le presenta al estudiante una técnica básica que le permite diseñar y especificar aplicaciones de pequeña y mediana escala.
Tema 1 Revisión de conceptos básicos.
- Apuntadores
- Registros
- Funciones.
Tema 2: Tipos de datos abstractos.
- Definición de un tipo de dato abstracto.
- Clasificación de la abstracción.
- Especificación de un tipo de dato abstracto.
- Implementación de un tipo de dato abstracto en un lenguaje de alto nivel.
Tema 3: Conceptos sobre orientación por objetos y técnica de diseño y especificación orientada por objeto.
- Definición sobre programación orientada por objetos.
- Definición de clases.
- Definición de objetos.
- Definición de identidad de objeto.
- Definición de Composición
- Definición de herencia.
- Clasificación de la herencia
- Definición de polimorfismo.
- Definición de encadenamiento dinámico
- Definición de clases paramétricas.
Tema 4: Tipo de Dato Abstracto (TDA): Cadena.
- Definición de cadena.
- Especificación formal del TDA Cadena.
- Formas de implantar el TDA Cadena.
- Ejercicios prácticos utilizando el TDA cadena.
- Implantación del TDA Cadena en un lenguaje de programación orientado por objetos.
UNIDAD II: Almacenamiento de datos. (7 semanas, 14 sesiones de 2 horas)
En esta unidad se presentan al estudiante los distintos medios de almacenamiento de datos, así como las técnicas para la organización y manipulación de grandes volúmenes de datos en memoria secundaria. Una vez estudiadas las distintas técnicas el estudiante tendrá el conocimiento necesario tanto para implantar cada una de las formas de organizar los datos en memoria secundaria.
Tema 5: Introducción a la organización de archivos secuenciales.
- Medios de almacenamiento.
- Magnético y óptico. Estructura y forma de almacenamiento.
- Terminología básica.
- Archivos tipo Texto.
- Acceso sin clave (secuencial)
Tema 6: Organización de archivos.
- Acceso Directo
- Acceso asociativo: Aleatorio (transformación clave-dirección)
- Acceso secuencial indizado.
METODOLOGÍA DE ENSEÑANZA
En este curso se empleará una técnica interactiva entre alumnos y profesor conformado por clases tutoriales, exposiciones por parte de los estudiantes y clases guiadas en el Laboratorio.
RECURSOS
- Se utilizarán clases presentadas en transparencias apoyadas por tutoriales hipermedios elaborados para reafirmar los conocimientos presentados en las clases.
- Guías y problemarios de estudio elaborados por el profesor.
- Laboratorio bien dotado de computadoras para realizar la parte práctica de la materia y las clases guiadas en el laboratorio.
- Recursos multimedios: vídeo beam .
EVALUACIÓN
- 4 Exámenes parciales. Cuyo promedio tiene un valor total del 60 % del curso.
- Laboratorio 15%.
- Tareas 20 %, entregadas en forma presencial.
- Proyecto Final 05%
Resumen de la Evaluación: Plan de evaluación. Falta la aprobación por el Departamento de Computación, la discusión seran en la 2da semana de Febrero 18.
Observaciones sobre la evaluación
- Para aprobar la materia se requiere: un porcentaje de asistencia superior al 75%.
- Para aprobar el Laboratorio se requiere un porcentaje de asistencia al Laboratorio superior al 75% y obtener una acreditación de aprobado (Promedio de prácticas >= 10).
- Los cuatro (4) exámenes parciales serán en el Laboratorio, no se permite la entrega fuera del horario del examen.
- Si se produce una falla en el servicio eléctrico el examen será realizado el sábado siguiente de 8:00 am a 10:00.
- Las tareas entregadas fuera de la fecha tendrán tres (3) puntos menos por cada día de retraso. Sólo las tareas revisadas tendrán derecho a calificación.
- La calificación del proyecto tiene 2 partes: presentación del ante-proyecto (30%) y presentación final del Proyecto (70%).
- La nota final del estudiante estará dada: por la suma de los porcentajes obtenidos en cada evaluación.
- La asistencia es obligatoria y el estudiante que tenga un 25% de inasistencia pierde automáticamente la materia.
BIBLIOGRAFÍA
- Programming: Principles and Practice Using C++, 2nd Ed. Bjarne Stroustrup
- C++ Primer, by Stanley B. Lippman (Author), Josée Lajoie (Author), Barbara E. Moo (Author).
- LOOMIS S. E. MARY; Estructura de Datos y Organización de Archivos, Prentice Hall 1991.
- H. M. DEITEL, P. J. DEITEL; Como programar en C++, Prentice Hall, 2003.
- WIEDERHOLD GIO; Introducción a las Bases de Datos, McGraw Hill 1984.
- AHO & ULLMAN; Estructura de Datos, Addison-Wesley 1988.
- TANENBAUM, Y. LANGSAN ,M. AUGENSTEIN; Estructura de Datos en C, Prentice Hall, 1993.
- Martin Fowler; UML Distilled appliying the standard object modeling language, Addison wesley 1997.
- Booch Grady Análisis y diseño orientado por objetos Addison Wesley 1996.
- Martín J and Odell Análisis y diseño orientado por objetos Prentice Hall 1992.
EXTRAS:
Tareas:
Exámenes:
0.- Examen Diagnóstico (05Febrero2018)
1.- Examen 1 (02Abril2018)
2.- Examen 2 (23Abril2018)
3.- Examen 3 (04Junio2018)
Tareas:
1.- Tarea 1 (02Marzo2018)