Introducción a la Informática. Modelos de Cómputo.

 

El material presentado en este volumen se compone principalmente de la materia presentada por mí a mis alumnos de “Fundamentos de Informática I” de la Ingeniería Técnica en Informática de Sistemas. El planteamiento de la asignatura trata de cumplir con los siguientes objetivos: (i) mostrar una perspectiva de los modelos de cómputo más importantes; (ii) facilitar la aproximación del alumno a un enfoque formal de la informática; y (iii) dar una visión global de la noción de computación en el contexto de la informática.

 

El presente texto va dirigido al alumno/a de primer curso de ingeniería. Por esta razón, y a sabiendas de que a esta asignatura le han de seguir otras más especializadas, he juzgado conveniente prescindir de demostraciones en favor de un aspecto más intuitivo y global, en el convencimiento de que  bajo gran parte de los conceptos más elaborados hay una explicación razonable y sencilla.

 

Como tal, utilizo este volumen en mis clases, y en él no trato de imponer un orden estricto en el desarrollo de los temas (aunque tampoco es un libro de consulta especializado en el sentido clásico). El texto consta de dos partes. La primera contiene los tres primeros capítulos, donde se muestran nociones que cualquier alumno de primer curso de ingeniería informática debe conocer tras unas pocas semanas de iniciar sus estudios, y que espero alivie en alguna medida la falta de rumbo que aflige a los alumnos de primer año.

 

La segunda parte, más sustanciosa, presenta gradualmente algunos modelos de cómputo. El Capítulo 4 da unas nociones básicas de lo que supone para nosotros, en la informática, el procesamiento de información mediante símbolos. Los capítulos 5 y 6 presentan aquellos aspectos que nos interesan de la lógica desde un punto de vista computacional. Deliberadamente se ha prescindido de la teoría de la demostración y de algunos otros aspectos, pues asumo que la lógica se desmenuza en otras asignaturas de la titulación. El Capítulo 7 se centra en el cálculo-lambda. Este formalismo tan útil e interesante suele ser un gran desconocido por el informático de a pie, aun cuando forma una parte central de la informática; de hecho nos servirá de contraste y fundamento de otros formalismos que habrán de verse en la titulación.

 

El Capítulo 8, sobre sistemas de producciones, pretende servir de nexo entre los formalismos simbólicos vistos en los capítulos precedentes con relación al Capítulo 9, que versará sobre autómatas. Como tal, no lo incluyo en la asignatura que imparto, pero considero que resultará de interés a cualquier alumno avezado.

 

Los capítulos 9 y 10 sí se tratan en la asignatura y abordan  la noción de computación desde un punto de vista más “mecánico”. Es mi opinión que el fracaso del alumnado en muchas asignaturas de la titulación está en relación directa con el escaso tiempo de que dispone para madurar conceptos y esquemas mentales. En este sentido, es muy común encontrar asignaturas, como la de autómatas y lenguajes, donde se hace un paquete completo que el alumno ha de digerir de principio a fin en pocos meses. Esta forma de actuar discrepa con el hecho de que autómatas y lenguajes  son un fundamento importante de la informática. En opinión de los profesores encargados de estos cursos posteriores, el resultado de ver algunos conceptos en primer curso es muy positivo. Esta pretensión tiene, no obstante, una contrapartida: no se aborda la clasificación de lenguajes de Chomsky, y las nociones sobre tratabilidad y NP se esbozan de un modo muy somero, lo que puede dar a algunas partes de la lectura un aspecto ligeramente esotérico, y espero que el lector sepa disculpar.

 

Finalmente, el Capítulo 11 que versa sobre CCS (Calculus of Comunicating Systems) funciona como aglutinante de algunos aspectos ya vistos: noción de proceso, álgebra y cálculo, semántica de un cálculo, noción de equivalencia, y no determinismo. Igual que con el cálculo-lambda, es ésta una aproximación elemental a un problema, que resulta una gran desconocida para una mayoría de informáticos y que es el fundamento de la programación concurrente. Este capítulo tampoco forma parte de la materia habitual de la asignatura, principalmente por cuestiones de tiempo.

 

Cada capítulo consta de una pequeña introducción, preparada para enfocar el tema y despertar ciertos interrogantes sobre la materia. Esta presentación va seguida del grueso del texto, intercalada con ejemplos, ejercicios sencillos y cuestiones “de pensar”; estos dos últimos se distinguirán con el símbolo de un lapicerito. Algunos términos que he considerado importantes vienen subrayados y además marcados con un asterisco al margen. Si me permite un consejo el lector, le diría que se hiciera con papel y lápiz, y paciencia, pues no de otra forma es posible seguir la pista de los contenidos. Al final de cada capítulo presento una minúscula reseña bibliográfica de textos elegidos por su fácil acceso en cualquier biblioteca universitaria. Disfruté elaborando todos los dibujos del manual y dando fomato al documento, para lo cual utilicé LaTeX y jsplot.

 

 

Valladolid, otoño de 2003,

César Llamas Bello.