Here there are the first paragraphs from the Preface. THE WHOLE BOOK CAN BE FOUND HERE
These notes have been written up for the course on exact string pattern recognition that I teach at Escuela Universitaria de Informática (Universidad Politécnica de Madrid). The course is intended for sophomores with a small background in Data Structures and Algorithms. In fact, they are taking more advanced courses on those subjects at the same time they take this course. Therefore, the material is tailored to their level.
I always treat my students as rational beings, whatever the cost of such attitude is. Some of them are scared away by my stance. Treating somebody as a rational being is treating him as a free being. By giving students freedom, which they deserve as rational beings, I gave them the possibility and the responsibility of choosing their own way. This freedom, which many are not used to whatsoever, can only be won through the effort of thinking in the acknowledgement of your own ignorance. That is what teaching is about: not guiding students with firm arm through a trimmed trail, familiar to the teacher but full of the weeds of preconceived ideas; no, certainly not that, but pointing those the trails they may take with the sole companionship of their effort, creativity and freedom. I am deeply convinced that a good teacher must be, among other things, an agitator. Being paternalistic is not a good policy as it makes learning will relent. I flame the eternal dialectic between teacher and students through irony and provocation. Some time ago I started to keep a course blog where I reflected what happened in the classroom (in a somewhat literary way). Sometimes exchanges of replies and counter-replies between students and teacher are profoundly revealing and I thought it would be a good idea to save them. The last chapter is the blog of this year's course. Student's names have been anagrammatized to preserve their privacy.