Programa - Universidad

Anuncio
1
ASIGNATURA: LENGUAJE DE PROGRAMACIÓN III
Cód: 31-208
Horas Semanales: 4
Horas teóricas: 15
Horas prácticas: 45
Horas totales: 60
Carrera: Sistemas
Año del programa: 2016
FUNDAMENTOS:
Para poder profundizar y afianzar los conocimientos ya adquiridos por los estudiantes, se
realizara una implementación que se asemeje a la realidad. Para orientarlos en este universo, se
incluye en esta asignatura, la investigación y el diseño, visualizando estos criterios y la comprensión
de las estructuras y objetivo del lenguaje, así como su sintaxis y semántica.
También debe dar los conocimientos necesarios para poder comprender y cubrir los
requerimientos del mercado laboral. La asignatura cubre con un balance adecuado la necesidad de
preparar al futuro profesional en las pautas teórico prácticas y los criterios de complementación
necesarios, como ser investigación, integración a un grupo de trabajo, para especificar, implementar,
verificar y documentar un proyecto y desarrollar la habilidad oral y escrita en términos de informes.
OBJETIVOS:
Al finalizar el curso, el alumno habrá adquirido las habilidades necesarias y suficientes para:
Implementar y comparar en función del tiempo, sensibilidad, estabilidad y en eficiencia distintos
tipos de algoritmos de ordenamiento y búsqueda, frente a diferentes tipos de datos.
Diseñar un proyecto mediante un programa que en forma interactiva (menú) que permita manejar
información entre distintos archivos.
CONTENIDOS MINIMOS:
Unidad Nª I: Archivos.
Unidad Nº II: Búsqueda en tabla
Unidad Nº III: Ordenamiento (Sort)
PROGRAMA ANALÍTICO:
Unidad I: Archivos
Concepto. Modos de apertura.
Archivos de texto y archivos binarios.
Organización secuencial. Organización directa. Organización indexada o relativa.
Acceso secuencial y directo a información en archivos binarios.
2
Unidad II: Búsqueda en tabla
Búsqueda directa (por aplicación de un subíndice).
Búsqueda secuencial, con elementos desordenados y con elementos ordenados.
Variantes de la búsqueda secuencial.
Técnica del "centinela".
Búsqueda binaria.
Estimación de eficiencia de la búsqueda binaria al considerar el ordenamiento previo.
Unidad III: Ordenamiento (Sort)
Necesidad y aplicaciones del ordenamiento.
Características de los métodos de ordenamiento: simplicidad, intercambios, corrimientos,
sensibilidad, estabilidad, etc.
Métodos de ordenamiento: Selección, Burbujeo, Inserción, Shell, Quick Sort, Fusión, Cuenta de
Distribución (Particular y General).
Comparación entre los mismos.
Comparación sobre tipos de datos diferentes en arreglos ordenados (mejor caso), desordenados (peor
caso) o en forma aleatoria (caso promedio) en función del tiempo empleado. Relación con el
hadware.
METODOLOGIAS DE ENSEÑANZA Y APRENDIZAJE:
La materia se desarrollará integralmente en el ámbito del laboratorio de computación, con la
modalidad de taller, en grupos de alumnos, con el seguimiento y coordinación del docente, consta de
:
• Un trabajo practico, con la implementación de distintos métodos de ordenamiento, cuyas
algoritmos son investigados por los alumnos, donde son comparados gráficamente (en
Excel), con distintos tipos de datos. Ver ANEXO A
• Un proyecto interactivo propuesto por los propios alumnos (en grupos), manteniendo las
normas establecidas por la cátedra, pero con la creatividad aportada por cada grupo en cada
trabajo, generando alternativas de optimización.
VER ANEXO B
En el desarrollo de los temas se trabajará con conceptos ya incorporados en materias como
Lenguaje de Programación II y se adicionaran temas de investigación por parte del alumno, para
fomentar el concepto de búsqueda y recolección de información, siempre con el apoyo orientativo
del docente.
La materia es netamente práctica desarrollándose en el laboratorio de computación, siendo el
lenguaje en uso el Borland C/C++ 5.02 o posterior.
Los alumnos se organizaran en grupos para trabajar, en el Trabajo Practico y en un proyecto
surgido por ellos mismos.
EVALUACION:
Durante la cursada se evaluará al grupo a través de:
3
• Acotación de las condiciones impuestas para el Trabajo Practico y proyecto.
• Presentación y cumplimiento con las pautas requeridas en las fechas de
vencimiento para las distintas actividades.
• Opinión formada por el docente.
Durante la cursada se evaluará a cada alumno en cada grupo a través de:
• Grado de participación en el desarrollo de Trabajo Practico y en el proyecto
• Nivel de conocimientos adquiridos.
• Opinión formada por el docente.
Al finalizar la cursada, para obtener la regularidad académica, el Trabajo Practico y el
Proyecto tiene que estar aprobado y además cada integrante del grupo en forma individual deberá
aprobar una evaluación (coloquio) sobre conceptos desarrollados en ellos.
CRONOGRAMA:
Clase Nº 1: Presentación de la materia. Consignas para el desarrollo del TP y el Proyecto
Armado de grupos de trabajo. Nivelación de conceptos. Prerrequisitos.
Clase Nº 2: Relevamiento de información obtenida para realizar el TP.
Relevamiento del tema del proyecto.
Clase Nº 3: Avance del TP.
Clase Nº 4: Entrega TP y coloquio.
Clase Nº 5: Consulta Proyecto
Clase Nº 6: Avance Proyecto
Clase Nº 7: Consulta Proyecto
Clase Nº 8: Avance Proyecto
Clase Nº 9: Consulta Proyecto
Clase Nº 10: Avance Proyecto
Clase Nº 11: Consulta Proyecto
Clase Nº 12: Avance Proyecto
Clase Nº 13: Avance Proyecto
Clase Nº 14: Entrega Proyecto y coloquio.
Clase Nº 15: Firma de libretas.
ANEXO A:
TRABAJO PRÁCTICO, CON LA IMPLEMENTACIÓN DE DISTINTOS MÉTODOS DE
ORDENAMIENTO
Los métodos de ordenamientos sugeridos corresponden a los citados en la Unidad 3.
El trabajo consta en trabajar con distintos tipos de datos, estos son por ejemplo enteros, estructuras
de 128 bytes y estructuras de 256 bytes. Para el segundo y tercer tipo, las estructuras en sus campos
clave a ordenar son de tipo entero largo sin signo, lo que provoca un rango de valores de algunos
cientos de Gbytes
4
Las pautas para el TP son:
1. Investigar por parte de los alumnos los distintos métodos de ordenamientos propuestos.
Realiza una breve descripción funcional de cada método.
2. Implementación de un programa principal conteniendo un primer menú, mediante el cual se
podrá seleccionar el algoritmo por el cual se quiere realizar el ordenamiento
3. Un segundo menú que permita elegir el tipo de estructuras que queremos ordenar (ya sean
entero, 128 o 256 bytes), para pasar a indicar por teclado la cantidad de elementos de dicha
estructura.
4. Se generará el arreglo en forma ordenada (mejor caso), desordenada (peor caso) o de forma
aleatoria (caso promedio) siempre utilizando alguna función de generación de números
aleatorios.
5. Una vez seleccionado todos los datos llamar a la función correspondiente de ordenamiento, de
acuerdo a lo elegido previamente.
6. Al terminar de ordenarse todos los elementos se informaran por pantalla los 10 primeros y los
10 últimos y finalmente se imprimirá el tiempo ( grafico Excel) de cada uno.
7. Se confeccionara un breve comentario, según el funcionamiento, de cada método de algoritmo
8. Como conclusión se realizara un cuadro, indicando según tipo de ordenamiento, si es sensible,
estable, si tiene comparaciones o corrimientos. Considerar el hadware utilizado.
ANEXO B
IMPLEMENTACIÓN DEL PROYECTO
• Legibilidad del programa:
Se tendrá que respetar un buen estilo de programación (sangría, nombre de variables y funciones
descriptivos de su objetivo, etc), comentarios apropiados para el desarrollo de cada función y en los
casos en que se escriban algoritmos crípticos, realizar comentarios describiendo lo que hace.
Antes del desarrollo de cada función explicite brevemente el objetivo de la función, con indicación
de que recibe, que devuelve, y que hace, de un modo algo mas extenso.
• Presentación:
El proyecto tiene como etapas:
1- Presentación preliminar en carpeta, del proyecto, donde se indica:
a-) Carátula, indicando:
Integrantes (Apellido y Nombres)
Tema del proyecto
Lugar y Fecha de realización
Docentes a cargo
b-) Relevamiento (Cual es la necesidad de crear el proyecto?
c-) Objetivo (Para que?), Limite(Desde-Hasta) y Alcance(Que incluye?)
d-) Lista de eventos- Diagrama en bloques o lógica.
e-) Tipos de datos utilizados.
f-) Condiciones del proyecto (Que se necesita ¿archivos, listados,…..)
2- A partir de que el proyecto es aceptado:
5
a-) Lista de variables utilizadas con su respectivo significado.
b-) Juegos de prueba, que puedan observarse todos los resultados esperados.
c-) Presentaciones de seguimiento, planificados por cada docente.
d-) Medio de almacenamiento de la información.
3- Al ser aprobado
El proyecto tiene que ser entregado:
En un CD, donde conste la siguiente documentación:
• Carátula
• Indice
• Relevamientos
• Objetivos- Limites – Alcance
• Lista de eventos – Diagrama en bloques o lógica
• Lista de variables
• Programas fuentes. Funciones.
• Juegos de pruebas
• Manual de usuario
• Conclusiones del proyecto
• Análisis de la experiencia de realizar el proyecto en la materia.
• Condiciones:
El proyecto debe reunir esencialmente las siguientes condiciones :
1-) Trabajar por lo menos con dos archivos binarios, donde se pondrán realizar (alta, baja,
modificación o actualización )
2-) Trabajar por lo menos con un archivo de texto, donde se pondrán grabar y/o consultar
comentarios.
3-) Trabajar por lo menos con un archivo binario estadístico, que guardará la información (registro)
que fue dado de baja física .
4-) Trabajar con un archivo de ogging, que guardará en una cadena de caracteres la fecha, hora
actual (extraída del sistema), y el nombre el archivo, cuando se abre, y se cierra y si está OK o no.
Por ejemplo Fecha <xx/xx/xx>Hora <xx:xx> Archivo “ xxxxx” en modo “wt” correctamente abierto.
5-) Los archivos se cargan en forma secuencial, pero el acceso tiene que ser secuencial y aleatorio.
Se generará un vector con las direcciones(paht) de todos los archivos.
6-) Los campos de los registros de los archivos binarios, tienen que tener una configuración variada:
tipo de datos primitivos, tipos de datos abstractos dimensionados y NO dimensionados.
Por ejemplo:
#define Max_Cantidad_Presentaciones valor
typedef struct { int Dia, Mes, Anio;}InfFecha;
typedef struct { char Presentacion[20]; // máximo 20 caracteres válidos
float Importe;
} InfStock;
typedef struct { long int Dni ; // Tipo de dato primitivo
char Apellido_Nombre [51];
InfFecha Fecha; // TDA sin dimensión
int Cantidad_Presentaciones;
InfStock Stock [Max_Cantidad_Presentaciones];
6
//TDA con dimensión
} InfDato;
7-) Trabajar el concepto de modulo de seguridad (poder acceder a una aplicación a través de un
usuario y una password) . Los usuarios podrán tener diferentes jerarquías, lo que ocasionará distintos
niveles de accesos permitidos o prohibidos.
8-) Trabajar la baja de un registro lógica y física.
9-) Durante el ingreso se validará, volviendo a ingresar todo aquel campo que no sea válido. Para
ello desarrollar funciones para validar cada campo.
10-) Trabajar el concepto de listar información en forma ordenada por lo menos por dos campos. Por
ejemplo ordenar por fecha y a igualdad de esta por DNI o Apellido y Nombre. Utilizar algún método
de ordenamiento trabajado en el TP.
11-) Utilizar el concepto de búsqueda secuencial y búsqueda binaria.
12-) Trabajar el concepto de asignación dinámica de memoria.
13-) El proyecto tiene que estar desarrollado exclusivamente con funciones que realicen acciones
específicas.
14-) Se deja a criterio del grupo de trabajo adicionar cualquier otro requerimiento que consideraría
adecuado a su proyecto.
7
CRONOGRAMA:
CLASE
UNIDAD
TEMA
TEORIA
PRACTICA
1
Presentación de la
materia.
Consignas para el
desarrollo del
TP
y el Proyecto
Armado de grupos de
trabajo. Nivelación de
conceptos.
Prerrequisitos.
1
3
2
Relevamiento de
información
obtenida para realizar
el TP.
Relevamiento del tema
del proyecto.
1
3
3
4
5
6
7
8
9
10
11
12
13
14
Avance del TP.
Entrega TP y coloquio
Consulta Proyecto
Avance Proyecto
Consulta Proyecto
Avance Proyecto
Consulta Proyecto
Avance Proyecto
Consulta Proyecto
Avance Proyecto
Avance Proyecto
Entrega Proyecto y
coloquio.
Entrega Proyecto y
coloquio.
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
3
1
3
15
45
15
TOTAL
8
BIBLIOGRAFÍA
Básica:
• Ebook JOYANES AGUILAR LUIS - ZAHONERO MARTINEZ IGNACIO: Programación en C:
Metodología Algoritmos y Estructura de Datos. McGraw Hill, México 2005 ISBN 9788448198442
• Ebook ALFRED V. AHO, JOHN E. HOPCROFT Y JEFFREY D. ULLMAN. Estructuras de
Datos y Algoritmos. Addison Wesley Iberoamericana. 1998.
ISBN 0-201-64024-4
• Ebook DEITEL, H. M y DEITEL, P. J.: Cómo programar en C/C++. Prentice Hall
Hispanoamericana. 1995. ISBN 9789688804711
Planeamiento Educativo
[email protected]
9
Descargar