Universidad Adventista del Plata

Facultad de Ciencias Económicas y de la Administración

Libertador San Martín, Entre Ríos, Argentina

Computación II (A)

Código de la materia (cp211)

CARRERA: Licenciatura en Sistemas de Información PLAN: 1999
CURSO: 2.º año HORAS: 4 horas semanales
PROFESOR: César Ballardini PERÍODO: 1.er cuatrimestre, 2005

 

I. Descripción de la asignatura

Se estudian estructuras de datos estáticas (arreglos y estructuras), archivos y estructuras dinámicas (listas, pilas y colas). Se utiliza el lenguaje de programación ANSI C.

II. Objetivos

El desarrollo de la materia procura que el alumno:

  1. Describa las características de un tipo de dato abstracto.
  2. Diferencie entre la interfaz de un tipo de dato abstracto y su implementación.
  3. Escriba programas que implementen listas/colas/pilas en memoria contigua, tanto primaria como secundaria.
  4. Escriba programas que implementen listas/colas/pilas en memoria dinámica.
  5. Describa las características de un nombre de variable correcto en C.
  6. Enumere los tipos de datos primitivos en lenguaje C y sus tamaños.
  7. Describa las constantes numéricas y de carácter en C.
  8. Distinga entre declaraciones y definiciones de variables y funciones..
  9. Enumere los operadores aritméticos, de relación y lógicos. Sepa utilizarlos en las expresiones en C.
  10. Describa las reglas de conversión de tipos implícitas del lenguaje C. Sepa alterarlas mediante conversiones forzadas.
  11. Distinga entre operadores C de incremento y decremento, previo y posterior. Aplicabilidad de cada uno.
  12. Escriba expresiones de manejo a nivel de bit en expresiones enteras.
  13. Enumere los operadores de asignación de C y sepa utilizarlos en las construcciones comunes.
  14. Distinga entre proposición y expresión en C.
  15. Escriba expresiones condicionales.
  16. Comprenda las reglas de orden de evaluación en las expresiones, y la precedencia de los operadores. Use paréntesis y cambios de orden en las proposiciones para lograr el orde de evaluación deseado.
  17. Comprenda el uso de bloques de proposiciones en C.
  18. Utilice las proposiciones condicionales: if, if-else, else-if, switch.
  19. Utilice las proposiciones de bucles: while, for, do-while.
  20. Comprenda el funcionamiento y utilidad de las proposiciones break y continue.
  21. Entienda los casos recomendables para el uso de la proposición goto y las etiquetas.
  22. Comprenda la división de tareas que imponen las funciones en un sistema escrito en C.
  23. Enumere las ventajas de una división funcional del código.
  24. Escriba funciones que retornan valores no enteros.
  25. Describa las características de alcance, duración e inicialización en el caso de una variable externa, una variable estática, una variable registro y una variable automática.
  26. Interprete el estado del programa como la suma de los estados de las variables globales y estáticas, más los archivos abiertos y lo que se muestra en pantalla.
  27. Utilice los archivos de cabecera o header para las declaraciones públicas de un módulo en C.
  28. Comprenda la erlación entre el preprocesador C y el compilador C.
  29. Conozca los pasos involucrados en la generación de un programa ejecutable a partir de los fuentes en C, las bibliotecas y los archivos objeto de inicialización que se proveen en la instalación del compilador C.
  30. Escriba programas recursivos en C.
  31. Conozca la relación entre apuntadores y direcciones de memoria.
  32. Utilice en sus programas C, apuntadores como argumentos de las funciones.
  33. Distinga entre apuntadores y arreglos.
  34. Emplee la aritmética de direcciones.
  35. Escriba programas que utilicen apuntadores a caracteres.

III. Contenidos temáticos

Unidad 1

Introducción al lenguaje C. Variables y expresiones aritméticas. Bucles. Constantes simbólicas. Enrtada y salida de caracteres. Arreglos. Funciones. Paso de parámetros por valor. Arreglos de caracteres. Variables externas y alcance.

Unidad 2

Estructuras de datos. Tipo de dato abstracto. Listas: implantación en memoria contigua, y en memoria dinámica. Colas: implantación en memoria contigua, y en memoria dinámica. Colas con prioridad. Pilas: implantación en memoria contigua, y en memoria dinámica.

Unidad 3

Tipos, operadores y expresiones. Nombres de variables. Tipos y tamaños de datos. Constantes. Declaraciones y definiciones. Operadores artiméticos, de relación, lógicos. Conversiones de tipo. Operadores de incremento y decremento. Operadores para manejo a nivel de bit. Operadores de asignación. Expresiones. Expresiones condicionales. Precedencia y orden de evaluación.

Unidad 4

Control de flujo. Proposiciones y bloques. if-else. else-if. switch. while. for. do-while. break y continue. goto y las etiquetas.

Unidad 5

Las funciones y la estructura del programa. Funciones que regresan valores no enteros. Variables externas. Reglas de alcance. Archivos header. Variables estáticas. Variables registro. Estructura de bloque. Inicialización. Recursividad. El preprocesador de C.

Unidad 6

Apuntadores y arreglos. Relación entre apuntadores y direcciones de memoria. Apuntadores como argumentos de funciones. Apuntadores y arreglos. Aritmética de direcciones. Apuntadores a caracteres. Apuntadores a funciones. Arreglos de apuntadores. Apuntadores a apuntadores. Arreglos multidimensionales. Inicialización de arreglos de apuntadores. Apuntadores vs. arreglos multidimensionales. Argumentos en la línea de órdenes. Apuntadores a funciones.

Unidad 7

Estructuras. Estructuras y funciones. Arreglos de estructuras. Apuntadores a estructuras. Estructuras autorreferenciadas. typedef. Uniones. Campos de bits.

Unidad 8

Entrada y salida. Entrada y salida estándar (stdin y stdout). Salida con formato (printf()). Listas de argumentos de longitud variable. Entrada con formato (scanf()). Acceso a archivos. Gestión de errores: stderr y exit(). Entrada y salida de líneas de texto.

IV. Trabajos prácticos

Se desarrollará un trabajo práctico integrador en grupo. El informe trabajo se aprobará en varias entregas parciales, que serán pautadas durante el desarrollo de las clases.

El objetivo del trabajo es asociar los conceptos aprendidos sobre las estructuras básicas de datos ---arreglos, listas, colas y pilas--- con sus alternativas de implementación usando el lenguaje de programación C.

V. Evaluación

La evaluación contempla dos exámenes parciales y un trabajo práctico. Es condición necesaria para rendir un parcial, que se hayan completado las entregas previas del trabajo práctico.

La nota final del alumno es el promedio de las notas de los parciales.

VI. Cronograma

Total de clases dictadas: 15
Horas de clase por semana: 4
Hay una clase que no se dicta por feriado nacional.

Fecha 1.er exámen parcial: 4 de mayo
Fecha 2.do exámen parcial: 22 de junio
Fecha de entrega de calificaciones a los alumnos: 29 de junio

Cronograma de dictado de Computación II (A) durante el 2005
SemanaFechaActividad
1 16/03/2005 Exposición del régimen de cursado
y promoción de la asignatura.
Unidad 1.
2 23/03/2005 Unidad 1.
3 30/03/2005 Unidad 2.
4 06/04/2005 Unidad 3.
5 13/04/2005 Unidad 4. (Semana de oración)
6 20/04/2005 No se dicta clase de teoría por turno de exámenes.
Último plazo recepción informe trabajo práctico.
Clase de práctica.
Consultas previas al parcial.
7 27/04/2005 Unidad 5.
8 04/05/2005 Examen parcial N.o 1.
9 11/05/2005 Unidad 6.
Consulta de correcciones en parcial N.o 1.
10 18/05/2005 Unidad 6.
11 25/05/2005 Feriado nacional.
12 01/06/2005 Unidad 7.
13 08/06/2005 Unidad 8.
14 15/06/2005 Clase de práctica.
Último plazo recepción informe trabajo práctico.
Consultas previas al parcial.
15 22/06/2005 Examen parcial N.o 2.
16 29/06/2005 Consulta de correcciones en parcial N.o 2.
Entrega de notas.
Revisión general de la materia.

VII. Bibliografía

Prof. César Ballardini
Docente a cargo del curso.

$Id: plan-de-catedra-c2a.html,v 1.5 2005/03/20 21:18:36 cballard Exp $

Valid HTML 4.01!