FUNDAMENTOS DE PROGRAMACIÓN DE COMPUTADORES Año académico: Centro: Estudios: Asignatura: Ciclo: Curso: Cuatrimestre: Carácter: Créditos teóricos: Créditos prácticos.: Profesor/es: Área: Departamento: 2000-2001 Facultad de Ciencias Experimentales Ingeniero Químico Fundamentos de programación de computadores 1º 1º 2º Obligatoria 3 3 Manolo Berenguel Soria, Francisco Rodríguez Díaz, José Carlos Moreno Úbeda Ingeniería de Sistemas y Automática Lenguajes y Computación PROGRAMA DE LA ASIGNATURA FUNDAMENTOS DE PROGRAMACIÓN DE COMPUTADORES Introducción y objetivos La asignatura Fundamentos de programación de computadores se ha establecido como asignatura obligatoria de universidad, contando con 6 créditos (3 de teoría y 3 de práctica) e impartiéndose en primer curso (segundo cuatrimestre) de la titulación de Ingeniería Química. El programa propuesto cubre las necesidades informáticas básicas de un ingeniero, dentro de las limitaciones de tiempo disponible: estructura básica de computadores, sistemas operativos, compiladores, programación estructurada, etc. En la elaboración del programa se han tenido en cuenta los programas de otras Escuelas de Ingenieros (fundamentalmente Escuelas de Ingeniería Química) del país. El principal objetivo de esta asignatura es que el alumno se convierta en un desarrollador de programas (no sólo usuario de programas comerciales) y sea capaz de resolver, utilizando un computador, los problemas que le surjan en su periodo académico y posteriormente en su labor profesional. Además, otros objetivos fundamentales que se persiguen con esta asignatura son: Desarrollar la capacidad de abstracción como base para el análisis de problemas sencillos y el diseño posterior de algoritmos que los resuelvan. Conocer algoritmos que solucionen problemas clásicos y sus aplicaciones en el ámbito de la ingeniería. Enseñar al alumno a programar en un lenguaje de alto nivel. Introducir el manejo de un entorno de programación de un lenguaje de alto nivel para generar código ejecutable correspondiente a los algoritmos diseñados para la resolución de problemas e interacción con el entorno. PROGRAMA DE TEORÍA Tema 1 2 3 4 5 Título Introducción: conceptos generales de informática Introducción a la programación estructurada Estructuras de datos Subprogramas Archivos Duración 6 horas 6 horas 6 horas 6 horas 6 horas Desarrollo de las clases de teoría: Lugar: por determinar Horario: por determinar 1 Tema 1. Introducción: conceptos generales de informática 1.1 Informática, computadores, instrucciones y datos 1.2 Representación de la información 1.3 Estructura funcional de un computador y soporte físico 1.4 Soporte lógico 1.5 Programas y lenguajes de programación 1.6 Aplicaciones de la informática Tema 2. Introducción a la programación estructurada 2.1 Datos y tipos de datos 2.2 Constantes y variables 2.3 Expresiones. Operaciones y reglas de prioridad 2.4 Funciones internas 2.5 Asignación. Tipos de asignación. Conversión de tipo 2.6 Resolución de problemas y algoritmos 2.7 Diseño de algoritmos. Herramientas 2.8 Representación de algoritmos: diagramas de flujo y pseudocódigo 2.9 Estructura general de un programa 2.10 Metodología y técnicas de programación 2.11 Programación estructurada 2.12 Estructuras básicas de control de programa 2.13 Ejemplos de diseño de algoritmos de aplicación en la Ingeniería Química Tema 3. Estructuras de datos 3.1 Introducción a las estructuras de datos 3.2 Vectores 3.3 Tablas multidimensionales 3.4 Esquemas típicos de operación con vectores y tablas 3.5 Cadenas de caracteres 3.6 Registros. Concepto y uso 3.7 Variables dinámicas. Punteros 3.8 Estructuras combinadas 3.9 Ejemplos de uso de las estructuras de datos en Ingeniería Química Tema 4. Subprogramas 4.1 Concepto de subprograma 4.2 Funciones 4.3 Procedimientos o subrutinas 4.4 Ámbito de las variables. Variables locales y globales 4.5 Paso de argumentos. Paso por valor o por referencia 4.6 Problemas de uso 4.7 Introducción a la recursividad 4.8 Ejemplos de utilización de subprogramas en la Ingeniería Química Tema 5. Archivos 5.1 Noción de archivos. Elementos 5.2 Archivo físico vs archivo lógico 5.3 Organización de archivos 5.4 Operaciones sobre archivos 5.5 Ejemplos de aplicación en Ingeniería Química 2 PRÁCTICAS DE LABORATORIO En este apartado se propone un conjunto de prácticas de laboratorio que complementan la formación del alumno. Estas prácticas están pensadas para que el alumno utilice las técnicas y métodos explicados en las clases teóricas y de problemas, siendo por ello los enunciados paralelos al programa de la asignatura y relacionados con el ámbito de la Ingeniería Química. Desarrollo de las clases de prácticas: Lugar: Edificio de Matemáticas e Informática. Laboratorios de Análisis y Desarrollo de Software y Control Automático, Robótica y Visión Artificial del Departamento de Lenguajes y Computación y eventualmente aulas de informática. Horario: por determinar Módulo 1. Introducción. Sistemas operativos (2 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT En este módulo se introducirá a los alumnos al manejo de un computador y periféricos asociados. Se estudian los sistemas operativos de una forma práctica, particularizando para los sistemas operativos DOS y Windows NT, analizando las ventajas de uso de una interfaz gráfica de usuario. Módulo 2. Sistema operativo UNIX y principios de comunicaciones (4 horas) Materiales: Computador personal, computador IBM-RISC 6000, sistema operativo UNIX, cliente de conexión remota Telnet, cliente de transferencia de archivos FTP, cliente de búsqueda de FTPs anónimos Archie y correo electrónico PINE. En este módulo se realizará una descripción de las técnicas básicas y manejo de las redes de comunicación. Se introducirá al alumno a la utilización de programas para la obtención de archivos y al manejo de un programa de correo electrónico (PINE) para comunicarse con otros usuarios de la red. Módulo 3. Entorno de un lenguaje de programación de alto nivel (C) (2 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT. Entorno de programación en lenguaje C Borland C++. En esta práctica el alumno se familiarizará con el uso de un entorno integrado de programación, mostrando la forma de llevar a cabo un ciclo completo de desarrollo de software: cómo se ejecuta el entorno, descripción del mismo, menú de gestión de archivos, edición, compilación, etc. (opciones del menú principal). Se realizará un ejemplo completo de una sesión de trabajo. Módulo 4. Programación de algoritmos en lenguaje C usando estructuras básicas de control (6 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT. Entorno de programación en lenguaje C Borland C++. En este módulo se plantea el diseño, resolución y programación de distintos algoritmos de aplicación en ingeniería. En todos los casos se planteará inicialmente el desarrollo del diagrama de flujo y pseudocódigo correspondiente. Se desarrollará la sintaxis del lenguaje C, haciendo énfasis en la utilización de estructuras básicas de control de flujo de programa. Si se observa el plan de estudios de la titulación, en el primer cuatrimestre en primer curso, el alumno tiene una serie de materias troncales donde se explican los mecanismos básicos de transferencia de materia y energía, mecánica y dinámica de fluidos, resolución numérica de ecuaciones, etc. En ese sentido, y con la finalidad de escoger ejemplos relacionados con la Ingeniería Química, se propondrá la programación de los ejemplos siguientes: programa de cálculo de pH, resolución de la ecuación de los gases perfectos, resolución de ecuaciones de segundo grado, conversión de escalas de temperaturas, método de los mínimos cuadrados, métodos numéricos de integración, linealización a trozos de variables dependientes de la temperatura, etc. 3 Módulo 5. Implementación de programas en C que gestione señales de entrada y salida al computador (4 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT. Entorno de programación en lenguaje C Borland C++. Tarjetas de E/S NI-DAQ A-823PGL. Sensores de temperatura, humedad y radiación. Material electrónico de laboratorio. Leds, zumbadores, etc. Una de las principales aplicaciones de los computadores en el ámbito de la ingeniería química consiste en la monitorización de procesos. En este módulo se desarrollará e implementará un programa en lenguaje C que obtenga medidas de sensores, calcule valores máximo, mínimo y media de las señales medidas y activen alarmas visuales y sonoras en función de distintos parámetros de entrada. Módulo 6. Implementación de programas en C utilizando estructuras de datos (4 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT. Entorno de programación en lenguaje C Borland C++. Tarjetas de E/S NI-DAQ A-823PGL. Sensores de temperatura. Módulo similar al anterior, pero con la particularidad de que se hará énfasis en la implementación y uso de tablas, registros y estructuras dinámicas. Se desarrollará e implementará un programa en lenguaje C que mida temperaturas en distintos puntos de una lámina metálica y calcule la distribución de temperaturas sobre su superficie. Módulo 7. Implementación de programas utilizando subprogramas con lenguaje C (4 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT. Entorno de programación en lenguaje C Borland C++. Tarjetas de E/S NI-DAQ A-823PGL. Sensores de temperatura, humedad y radiación. Motores DC Kelvin modelo 2332. Material electrónico de laboratorio. Leds, zumbadores, etc En este caso se incidirá en la programación modular y el uso de subprogramas. Se desarrollarán e implementarán dos ejemplos en lenguaje C que permitan reutilizar módulos de programa desarrollados por el alumno previamente (módulo 4 y 5): cálculo de la temperatura de una determinada disolución en un reactor tipo tanque agitado continuo por un motor y planificación y análisis del coste de producción de dos reactores químicos. Módulo 8. Implementación de programas utilizando archivos (4 horas) Materiales: Computador personal con sistemas operativos MS-DOS y WINDOWS NT. Entorno de programación en lenguaje C Borland C++. Tarjetas de E/S NI-DAQ A-823PGL. Sensores de temperatura, humedad y radiación Práctica orientada a la utilización de archivos de texto y binarios. En este caso, se desarrollarán e implementarán dos programas que permitan: (1) almacenamiento en archivos de texto de datos climáticos obtenidos mediante una tarjeta de E/S y a análisis estadístico posterior de los mismos y (2) seleccionar propiedades de los elementos de la tabla periódica incluidas en un archivo. BIBLIOGRAFÍA BÁSICA P. Anasagasti, Fundamentos de los computadores. Paraninfo, 1990. G. Beekman. Computación e informática hoy. Addison-Wesley Iberoamericana, 1995. J. Biondi y G. Clavel. Introducción a la programación 1, 2. Masson 1985. P. Bishop, Conceptos de informática. Anaya multimedia, 1994. P. Dax. Lenguaje C. Paraninfo, 1997. G. Fernández y F. Sáez Vacas. Fundamentos de los ordenadores. ETSI de Telecomunicación, Madrid, 1985. B. Gottfried. Programación en C. McGraw-Hill, 1997. L. Joyanes Aguilar. Fundamentos de programación: Algoritmos y estructura de datos. McGraw Hill, 1998. B. Kernighan y D. Ritchie, El lenguaje de programación C. Prentice-Hall A. Prieto, A. Lloris y J.C. Torres. Introducción a la informática. McGraw Hill, 1995. H. Schildt. Programación en Turbo C. McGraw-Hill, 1997. N. Wirth. Algoritmos y Estructuras de Datos. Prentice-Hall, 1987. 4