Asignatura: Informática

Curso: 1998/99

Titulación: Matemáticas. Facultad de Ciencias

Departamento de Lenguajes y Ciencias de la Computación

Universidad de Málaga


 

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

José E. Gallardo. (Grupo A).
Carmen Mª García. (Grupos B y C).

 

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:

 

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

El paraíso de las matemáticas.
Preguntas comunes sobre Modula-2.

 


Página mantenida por José E. Gallardo.