Este libro universitario presenta una amplia variedad de estructuras de datos y de métodos algorítmicos con el objetivo de servir como texto base para uno o dos cursos avanzados de programación. El contenido es apropiado para un semestre dedicado a estructuras de datos eficientes y otro semestre a métodos algorítmicos. Supone una exposición previa a dos o tres semestres de materias de programación donde se hayan tratado los conceptos básicos, la sintaxis y la semántica de un lenguaje de programación, la recursión, las estructuras de datos lineales y las nociones de clase y objeto. Es también recomendable tener conocimientos previos o simultáneos del paradigma de programación funcional, fundamentos de especificación y verificación formal de programas y de lógica y matemática discreta. El enfoque del libro es original por el hecho de que casi las dos terceras partes de los algoritmos se presentan especificados y verificados formalmente en la plataforma Dafny de verificación asistida. Como material asociado al libro, se distribuyen los ficheros Dafny con el texto completo de todos los algoritmos, junto con su