This is a textbook on Data Structures and Algorithms used for a course at the Computer Science Department of Ecole Polytechnique (France).
The course was offered to 2nd year students, during the fall terms of the academic years 2011/12 and 2012/13. What with Ecole Polytechnique being a "Grande École" who accepts students who studied two years at a "preparatory school" (essentially an intensive 2-year B.Sc. course given at a school midway between a high school and a teaching university), these students took the course when they were 21-22 years old.
I am not a specialist in data structures and algorithms (and it shows). My motivation for writing the book was that Polytechnique students are used to having "the book for the course" written by the teacher. I initially told them that there were much better books for data structures and algorithms than I could ever write, but my arguments were ignored: I was to write a book. When this was done, I was reproached because the book was not written in French. I therefore inserted some parts about the application of algorithms to linguistics, which contained some sentences in French --- this was as far as I was willing to compromise :-)
The approach I took was to inherit a syllabus from previous years, make it evolve slightly towards topics I was more familiar with (combinatorial optimization), and explain anything I didn't know (which was more or less everything) to myself down to the minute details, so that I wouldn't make any blatant blunder in class. I hope my approach was successful. My students did reasonably well in their exams, so I guess that's a reasonably good sign.
The code is Java because this is what we used to teach our students as a departmental policy. I would have gladly used something different, but I had no choice.
I am sure that there are many typos, errors, and so on, since a mere two years of use is definitely not enough to make a textbook stable. The textbook (with source) being now online, I can probably crowdsource the responsibility for these inadequacies out, and not feel quite so guilty about them anymore.
Leo Liberti, Palaiseau <www.lix.polytechnique.fr/~liberti/teaching>