Plan de Estudio 2011

Anuncio
Plan de Estudio 2011
Asignatura: PROGRAMACION PROCEDURAL
CARRERA: LIC. EN CIENCIAS DE LA COMPUTACION
LIC. EN SISTEMAS DE INFORMACION
AÑO: Primer Año
CREDITO HORARIO: 9 horas
DESPLIEGUE: Segundo Cuatrimestre
I - CUERPO DOCENTE
Apellido y Nombres
Cargo docente
Situación
Valenzuela, Francisca A.
Profesor Titular Exclusivo
Ordinario
Dedicación
en
horas
semanales
al cargo
10
Llarena, Myriam G.
Profesor Asociado Exclusivo
Ordinario
10
Gutiérrez, Laura V.
Jefe de Trabajos Prácticos
Exclusivo
Ordinario
11
Diaz, Mario
Jefe de Trabajos Prácticos
Exclusivo
Ordinario
10
II - OBJETIVOS GENERALES
Al término de esta asignatura se espera que el alumno sea capaz de:
- Distinguir y utilizar los aspectos relevantes del modelo de computación procedural en
el diseño e implementación de algoritmos que resuelvan problemas de mediana
complejidad.
- Adquirir habilidades en la construcción y ejecución de programas a través de la
discusión grupal de las soluciones.
III - ORGANIZACIÓN DE LOS CONTENIDOS EN UNIDADES y OBJETIVOS
ESPECIFICOS
Los contenidos se organizaron en siete (7) temas que se desarrollarán de la siguiente
forma:
Tema 1:
Objetivos Específicos:
Al término de este tema se espera que el alumno:
- Identifique características principales del lenguaje C como lenguaje procedural
- Desarrolle habilidades para la verificación formal de programas.
- Adquiera hábitos para la investigación y el trabajo grupal.
Introducción a los Lenguaje de programación: Algunas cuestiones de diseño e
implementación: Traductores y computadoras simuladas por software. Modelos de
computación. Lenguajes de Programación Imperativos: Concepto de estado de máquina.
Lenguajes imperativos como completos de Turing. Buenas prácticas de diseño de
lenguajes imperativos. El lenguaje C como lenguaje imperativo.
Verificación Formal de programas. Derivación de ciclos y Verificación de ciclos. El rol
de los invariantes en la construcción de programas con ciclos. Indicios para encontrar
invariantes. Ejemplos.
Tema 2:
Objetivos Específicos:
Al término de este tema se espera que el alumno:
- Discierna entre verificación dinámica y verificación estática, las ventajas y
desventajas que cada una de ellas provee.
- Adquiera habilidad en la construcción y ejecución de programas que involucren las
distintas estructuras de datos y las distintas operaciones que se pueden realizar
sobre ellos.
- Interprete, a través de ejemplos, la especificación e implementación que admiten
los tipos de datos registro, arreglos y registros variantes.
- Adquiera capacidad en el manejo de punteros a través del desarrollo de distintos
programas.
Objetos de Datos. Tiempo de Vida. Enlace (ligadura). Declaraciones y Verificación de
tipo. Verificación de tipos en lenguaje C. Conversión y coerción de tipos. Semántica de
la operación de Asignación: Valor L y Valor R. Tipo Apuntador. Operadores de
apuntadores. Asignación de punteros. Ejercicios de Aplicación.
Tipos de Datos Estructurados: Especificación de Tipo de Datos Estructurados. Arreglos
y Struct. Implementación de Operaciones sobre estructuras de datos. Declaraciones y
Verificaciones de Tipo.
Arreglos y Punteros en Lenguaje C. Ejercicios de Aplicación. Cadenas de Caracteres.
Uso De Funciones de Cadena de la Biblioteca Estándar. Ejercicios de Aplicación.
Tema 3:
Objetivos Específicos:
Al término de este tema se espera que el alumno:
- Utilice subrogramas función para abstraer procesos u operaciones que actúan
sobre distintos tipos de datos.
- Construya subprogramas y muestre el manejo de memoria cuando se ejecutan en
el contexto de un programa en lenguaje C.
- Construya programas a través del uso de funciones que se comunican con
distintos tipos de parámetros.
- Reconozca la importancia de la tabla de símbolos en el proceso de compilación de
un programa.
- Adquiera hábitos para la investigación y el trabajo grupal.
Tipos abstractos de datos. Definición de tipos. Encapsulamiento a través de
subprogramas. Subprogramas: Especificación e implementación de subprogramas.
Definición, invocación y activación de subprogramas.
Concepto de función en C: Función main(). Declaración y definición de funciones.
Organización de memoria: Almacenamiento Estático, Pila y Montículo. Ejecución de un
programa en C.
Pasajes de parámetros: Pasajes de parámetros: valor, constante, por dirección. Variables
referenciadas. Pasaje de parámetro por referencia. Arreglos como parámetros.
Funciones que devuelven más de un valor. Ejercicios de aplicación.
Traducción y Tabla de Símbolos (TS): Compilación de un programa fuente. Lenguaje C
como un lenguaje estructurado en bloque. Importancia de las declaraciones en C.
Alcance de un vínculo en lenguaje C. Generación de la TS en un programa en C.
Ejercicios de aplicación.
Clasificación de las variables según alcance y tiempo de vida: Variables automáticas,
estáticas y externas. Ejercicios de aplicación.
Tema 4:
Al término de este tema se espera que el alumno:
- Distinga con claridad las ventajas y desventajas de funciones recursivas frente a
las soluciones iterativas.
- Construya subprogramas recursivos y muestre el manejo de memoria cuando se
ejecutan en el contexto de un programa en lenguaje C.
Recursividad. Funciones Recursivas en C. Definición. Caso base y caso general.
Distintas combinaciones. Manejo de memoria (pila).
Aplicaciones: Serie de Fibonacci y QuickSort. Recursión e Iteración. Ejercicios de
aplicación.
Tema 5:
Al término de este tema se espera que el alumno:
- Adquiera destreza en el manejos de estructuras dinámicas implementadas a través
de arreglos y de listas enlazadas con punteros.
- Entienda la elección de representaciones de almacenamiento para las distintas
estructuras dinámicas que utiliza.
- Construya programas que utilicen distintas estructuras dinámicas adecuadas al
contexto de la situación problemática que se plantea.
Estructuras dinámicas. Almacenamiento estático y dinámico. Variables dinámicas. El
montículo: Operaciones sobre el montículo o heap. Manejo del montículo en lenguaje
C: funciones malloc y free. Variables dinámicas simples. Basura y referencias
desactivadas. Arreglos dinámicos en lenguaje C. Arreglos dinámicos uni y bidimensionales. Mapa de memoria. Cadena de caracteres dinámicas. Arreglo de cadenas
dinámicas. Ejercicios de Aplicación.
Listas: listas secuenciales y listas enlazadas. Manipulación de listas enlazadas: creación,
inserción. Búsqueda, recorrido, modificación, supresión de elementos. Ordenamiento y
eliminación de una lista. Gestión de almacenamiento. Problemas de gestión de
almacenamiento: referencias bamboleantes y basura como cola. Recursividad en listas.
Ejercicios de Aplicación.
Tema 6: Archivos.
Al término de este tema se espera que el alumno:
- Reconozca la importancia del uso de archivos como una de las alternativas para
lograr el almacenamiento permanente de los datos.
- Procese archivos de textos a través de lenguaje C.
- Construya programas en Lenguaje C que manejen archivos binarios
organizados secuencialmente y que puedan accederse secuencialmente y/o de
forma aleatoria.
Concepto de archivo en lenguaje C. Distintas clasificaciones. Archivos secuenciales:
Archivos de caracteres y sin formato. Acceso secuencial de archivos: Funciones para la
creación y utilización de archivos secuenciales. Archivos secuenciales con cortes de
control. Acceso directo de archivos secuenciales. Funciones seek, filepos, getpos, etc.
Ejercicios de aplicación.
Tema 7:
Al término de este tema se espera que el alumno:
- Capacidad para encontrar soluciones informáticas a problemas mediante la
modelización disciplinada de soluciones y descomposición en módulos
- Adquiera habilidad para medir la calidad de un conjunto de módulos, planteados
como solución de una determinada problemática.
- Diseñe y codifique de manera eficiente, la solución a problemas planteados.
- Justifique con sustento teórico, el diseño elegido para el abordaje de un
problema.
- Que el alumno adquiera hábitos para la investigación y el trabajo grupal.
Metodología de Diseño Modular: Concepto de módulo en C. Programas de múltiples
archivos. Diseño Modular: Concepto de módulo. Ventajas del Diseño Modular.
Independencia Funcional. Criterios que miden la independencia modular. Cohesión y
Acoplamiento Modular. Distintos Tipos. Construcción de programas a través del uso del
diseño modular. Ejercicios de aplicación.
IV – RÉGIMEN DE EVALUACIÓN
Esta asignatura fue específicamente programada para un régimen regular (no admite
régimen libre ni promocional) y contempla un cursado cuatrimestral con un crédito
horario de 9 horas semanales.
Para que el alumno obtenga la certificación definitiva en la asignatura debe cumplir los
siguientes requisitos:
1 - Aprobar cuatro (4) parciales.
2 - Cumplir el 70 % de asistencia a las clases prácticas asignadas a cada parcial.
La aprobación final se obtiene a través de un examen que es oral, y estará basado en el
programa analítico presentado por el titular de la asignatura.
V - BIBLIOGRAFÍA PRINCIPAL
1. Lenguajes de Programación Diseño e Implementación. Pratt Terrence y Marvin
Zelkowitz. Editorial Prentice Hall. Hispano americana, S.A. Segunda Edición.
1987.
2. Como programar en C, C++ / H. M. Deitel, Harvey M. y Deitel, Paul J. Mexico:
Buenos Aires: Pearson Educación. Cuarta Edición. 2003.
3. Programación en C. Byron S. Gottfried. Madrid. Buenos Aires: McGraw-Hill.
1997.
4. Programación en C - Metodología, algoritmos y estructura de datos. Luís
Joyanes Aguilar. Madrid. Buenos Aires: McGraw-Hill, 2001.
5. APRENDIENDO C. Editorial de la Universidad Nacional de San Juan.
(Editorial de la Fundación de la Universidad de San Juan). ISBN: 950 - 605 -359
- 6. Año 2004.
6. Lenguajes de Programación Principios y Práctica. Louden, Kenneth C. Mexico,
D.F. Editorial Thomson. 2004.
7. Programación Orientada a Objetos. Técnicas Avanzadas de Programación.
Fontela, Carlos. Buenos Aires. Editorial Nueva Librería. 2003.
8. Técnicas Avanzadas de Programación. Programación Orientada a Objetos.
Fontela, Carlos. Editorial Nueva Librería.
9. Cálculo de Programas. Blanco, Javier, Smith, Silvina, Damián Barsotti.
Universidad Nacional de Córdoba. ISBN 978-950-33-0642-0. 2009.
- BIBLIOGRAFÍA COMPLEMENTARIA
Desarrollo y evaluación de técnicas de construcción de Procesadores de Lenguajes
para máquinas abstractas orientadas a objetos. Luengo Díez, María. Tesis Doctoral.
Universidad de Oviedo. Año 2002. (archivo pdf) .
Documentos de Internet
Administración de Tablas de Símbolos
http://www.scribd.com/doc/13719894/Administrador-de-Tabla-de-Simbolos
Lenguaje C
http://c.conclase.net/curso/
Diseño Modular
www.ecomchaco.com.ar/utn/disenodesistemas/apuntes/de/diseño_estructurado.htmEnñaces:
http://www.inf.udec.cl/~mvaras/estprog/cap3.html#3.2.1
http://www.dosideas.com/noticias/java/502-acoplamiento-y-cohesion.html
www.carlospes.com/.../capitulo_03_ciclo_de_vida_de_un_programa.pdf
www.exa.unicen.edu.ar/.../TP6-CriteriosEvaluarCalidadDisenoModular.pdf
Verificación de programas
http://www.infor.uva.es/~jvalvarez/docencia/tema8.pdf
http://www.cs.famaf.unc.edu.ar/~damian/calcprog/main.pdf
Documentos, filminas y guías propuestos por el equipo de cátedra.
Descargar