Asignatura: Informática
Curso: 1998/99
- IMPORTANTE:
| Para ver los
documentos disponibles en la página es necesario
que tengas instalado un visualizador de
documentos PDF, como Adobe
Acrobat® Reader. |
 |
Profesores 
-
Temario y apuntes
Este es el temario de la asignatura. Pincha sobre el nombre de
cada tema para ver los apuntes correspondientes. Los apuntes se
irán añadiendo a lo largo del curso.
- 1. INTRODUCCIÓN.
- 1.1. Informática y computadoras.
- 1.2. Programas y lenguajes de programación.
- 1.3. Objetivos de la programación.
- 1.4. Hardware y Software. Clasificación del software.
- 1.5. Estructura funcional de un ordenador.
- 1.6. Representación de la información en el ordenador
- 1.6.1. Sistemas de numeración usuales en Informática.
- 1.6.2. Sistemas posicionales.
- 1.6.3. Conversión de decimal a base b.
- 1.6.4. Conversión de base b a decimal.
- 1.6.5. Cambio rápido de base.
- 1.6.6. Código de entrada/salida.
- 2. DISEÑO DE ALGORITMOS Y PROGRAMAS.
- 2.1. Concepto de algoritmo.
- 2.1.1. Análisis del problema.
- 2.1.2. Definición de algoritmo.
- 2.1.3. Diseño de algoritmos.
- 2.1.4. Verificación de algoritmos.
- 2.2. Herramientas para la representación de algoritmos.
- 2.2.1. Diagramas de flujo.
- 2.2.2. Pseudocódigo.
- 2.3. La notación BNF.
- 3. INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN MODULA-2.
- 3.1. Valores y tipos.
- 3.2. Representación de constantes.
- 3.2.1. Valores numéricos enteros.
- 3.2.2. Valores numéricos reales.
- 3.2.3. Caracteres.
- 3.2.4. Cadenas de caracteres (Strings).
- 3.3. Tipos predefinidos.
- 3.3.1. El tipo INTEGER.
- 3.3.2. El tipo CARDINAL.
- 3.3.3. El tipo REAL.
- 3.3.4. El tipo CHAR.
- 3.3.5. El tipo LONGREAL.
- 3.4. Expresiones aritméticas.
- 3.5. Constantes y variables.
- 3.5.1. Identificadores.
- 3.5.2. Constantes.
- 3.5.3. Variables.
- 3.6. Sentencia de asignación.
- 3.7. Operaciones de Entrada y Salida.
- 3.8. Estructura general de un programa. Ejemplos
- 3.9. Práctica
- 4. ESTRUCTURAS DE SELECCIÓN.
- 4.1. Composición secuencial de instrucciones.
- 4.2. Selección entre acciones alternativas
- 4.2.1. El tipo BOOLEAN en Modula-2
- 4.2.2. Expresiones booleanas.
- 4.2.3. Sentencias de selección en Modula-2.
- 4.3. Práctica
- 5. ESTRUCTURAS ITERATIVAS.
- 5.1. Estructuras iterativas.
- 5.2. Tipos de bucles en Modula-2
- 5.2.1. Estructura REPEAT.
- 5.2.2. Estructura WHILE.
- 5.2.3. Estructura FOR.
- 5.2.4. Estructura LOOP.
- 5.3. Diseño de bucles.
- 5.3.1. Anidamientos.
- 5.3.2. Invariante.
- 5.4. Ejemplos.
- 5.5. Práctica.
- 6. PROCEDIMIENTOS Y FUNCIONES.
- 6.1. Concepto de subprograma.
- 6.2. Definición y llamadas a subprogramas.
- 6.3. Parámetros formales y reales.
- 6.4. Parámetros de entrada, salida y entrada-salida.
- 6.4.1. Paso de parámetros por valor y por referencia.
- 6.5. Procedimientos y funciones.
- 6.5.1. Diferencias entre procedimientos y funciones.
- 6.5.2. Funciones predefinidas.
- 6.5.3. Procedimientos predefinidos.
- 6.6. Anidamiento de subprogramas. Ámbitos.
- 6.6.1. Estructura de bloques.
- 6.6.2. Redefinición de elementos
- 6.6.3. Efectos laterales.
- 6.6.4. Doble referencia.
- 6.7. Sintaxis BNF para subprogramas.
- 6.8. Práctica.
- 7. TIPOS DE DATOS SIMPLES.
- 7.1. Concepto de tipo de datos.
- 7.1.1. Clasificación de tipos en Modula-2.
- 7.2. Tipos de datos simples definidos por el programador.
- 7.2.1. Tipo enumerado.
- 7.2.2. Tipo subrango.
- 7.3. Compatibilidad de tipos en Modula-2.
- 7.4. Tipos procedimiento y función.
- 7.5. Práctica.
- 8. TIPOS DE DATOS ESTRUCTURADOS.
- 8.1. Estructuras de datos.
- 8.2. El tipo ARRAY.
- 8.2.1. Arrays como parámetros.
- 8.2.2. Arrays multidimensionales.
- 8.2.3. Arrays abiertos como parámetros.
- 8.2.4. Cadena de caracteres.
- 8.3. El tipo RECORD.
- 8.3.1. Registros variantes.
- 8.3.2. Sintaxis BNF para registros.
- 8.4. El tipo SET.
- 8.4.1. Operadores sobre conjuntos.
- 8.5. Algoritmos de búsqueda.
- 8.5.1. Búsqueda lineal.
- 8.5.2. Búsqueda lineal con centinela.
- 8.5.3. Búsqueda binaria.
- 8.5.4. Consideraciones sobre los algoritmos de búsqueda.
- 8.6. Algoritmos de ordenación.
- 8.6.1. Ordenación por intercambio o método de la burbuja.
- 8.6.2. Ordenación por selección.
- 8.6.3. Ordenación por inserción.
- 8.6.4. Consideraciones sobre los algoritmos de ordenación.
- 8.7. Práctica.
- 9. ALMACENAMIENTO EXTERNO DE LA INFORMACIÓN.
- 9.1. Ficheros.
- 9.1.1. Ficheros en MS-DOS.
- 9.2. Tipos de ficheros.
- 9.2.1. Clasificación de ficheros según su contenido.
- 9.2.2. Clasificación de ficheros según su acceso.
- 9.3. Gestión de ficheros.
- 9.3.1. Manejadores de ficheros.
- 9.3.2. Apertura y cierre de ficheros.
- 9.3.3. Escritura de ficheros.
- 9.3.4. Lectura de ficheros.
- 9.4. Práctica.
- 10. DISEÑO MODULAR.
- 10.1. Módulos en Modula-2.
- 10.2. Ventajas de la modularización de programas.
- 10.3. Módulos de biblioteca.
- 10.3.1. Módulos de definición.
- 10.3.2. Módulos de implementación.
- 10.3.3. Inicialización de un módulo.
- 10.3.4. Usos de los módulos de biblioteca.
- 10.4. Compilación separada.
- 10.5. Práctica.
- 11. DISEÑO DE ALGORITMOS RECURSIVOS.
- 11.1. Recursión.
- 11.1.1. Verificación de los subprogramas recursivos.
- 11.2. Recursividad frente a iteración.
- 11.3. Eficiencia de los algoritmos recursivos.
- 11.3.1. Sobrecarga debida al funcionamiento interno.
- 11.3.2. Sobrecarga debida a la solución recursiva.
- 11.3.3. Iteración o recursión.
- 11.4. Ejemplos clásicos de recursividad .
- 11.4.1. Las torres de Hanoi.
- 11.4.2. Algoritmos de búsqueda recursivos.
- 11.5. Práctica.
- 12. ESTRUCTURAS DINÁMICAS DE DATOS.
- 12.1. Gestión dinámica de la memoria.
- 12.2. El tipo POINTER de Modula-2.
- 12.3. Procedimientos NEW y DISPOSE de Modula-2.
- 12.4. Operaciones con punteros.
- 12.5. Listas enlazadas.
- 12.5.1. Listas ordenadas.
- 12.6. Práctica.
Prácticas
Estos son los enunciados de las prácticas a realizar en el laboratorio.
Las prácticas se irán añadiendo a lo largo del curso:
-
El entorno TopSpeed. Este fichero se encuentra comprimido.
Descomprímelo en tu disco duro para verlo.
Exámenes
Estos son los exámenes correspondientes a la parte práctica de la asignatura:
Febrero 97 (parcial), Mayo 97 (parcial), Julio 97 (final), Septiembre 97 (final), Febrero 98 (parcial), Febrero 98 (extraordinario), Junio 98 (parcial), Junio 98 (final), Septiembre 98.
Bibliografía 
 |
J.A.Cerrada y M. Collado.
Programación I. Ed. Universidad Nacional
de Educación a Distancia. |
 |
B. Cornelius. Programming
with TopSpeed Modula-2. Ed. Addisson-Wesley. |
 |
L. Joyanes. Fundamentos
de la Programación. Ed. McGraw-Hill. 2ª
Edición. |
 |
L. Joyanes. Metodología
de la Programación. Ed. McGraw-Hill. |
 |
N. Dale y S. C. Lilly. PASCAL
y estructuras de datos. Ed. McGraw-Hill. |
 |
Prieto, Lloris y Torres. Introducción
a la Informática. Ed. McGraw-Hill. |
 |
Biondi-Clavel. Introducción
a la Programación. Tomos 1, 2. Ed. Masson. |
 |
N. Wirth. Algoritmos y
Estructuras de Datos. Ed. Prentice-Hall. |
 |
Koffman. Problem
solving and structured programming in Modula-2.
Ed. Addison-Wesley. |
 |
H. Johnston. Learning
to program. Ed. Prentice-Hall. |
 |
Aho, Hopcroft y Ullman. Estructuras
de datos y algoritmos. Ed. Addison-Wesley. |
 |
Castro C. y otros. Curso
de Programación. McGraw-Hill. |
Enlaces de Interés 
-
Página mantenida por José
E. Gallardo.