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
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.