This question has been converted to Community Wiki and wiki locked
because it is an example of a question that seeks a list of answers
and appears to be popular enough to protect it from closure. It
should be treated as a special case and should not be viewed as the
type of question that is encouraged on this, or any Stack Exchange
site, but if you wish to contribute more content to it then feel free
to do so by editing this answer.
Programming books are out-of-date before they are published, so the only ones I find useful are more general ones dealing with theory and processes. There is nothing specific to open-source GIS in these cases (apart from maybe a business point-of-view).
The last printed opensource book I bought, which is still available on Amazon, is Beginning MapServer, and relates to v4.0. We are now on v6.0, and I doubt many of the samples will still work. It does provide a nice background on how the project started, and a good chapter on projections, but not open-source specific.
So it is probably better to go directly to individual project's documentation, and take a few different examples such as:
The QGIS project provides a gentle GIS introduction, a User Guide, a
Coding and Compilation Guide and a API Documentation in english and in
some cases also translated into several foreign languages.
Web (client-side): OpenLayers
OpenLayers documentation (the amount of prose in the docs is on the rise) - http://docs.openlayers.org/
Web (server-side): GeoServer
This User Manual is a comprehensive guide to all aspects of using
GeoServer. Whether you are a novice or a veteran of this software
An even better way would be to get students to download the software and work through the many examples available on these sites if they really want to get an overview of what the software is capable.
A great resource for this is the OSGeo Live DVD:
OSGeo-Live is a self-contained bootable DVD, USB thumb drive or
Virtual Machine based on Xubuntu, that allows you to try a wide
variety of open source geospatial software without installing
anything. It is composed entirely of free software, allowing it to be
freely distributed, duplicated and passed around.
Students can download the ISO and run - this takes away much of the pain of some OS installation - especially on Windows, and lets people get right to using the software.
For open-source database management, you may also want to direct them to PostGIS in Action (@Manning Publications). I found it very useful in understanding how to put together, maintain, and optimize data in the PostgreSQL/PostGIS environment. It also has a chapter on other open-source tools (web & desktop viewers) that could prove valuable.
Actually the Desktop GIS book is back in print from Locate Press see http://geospatialdesktop.com/, that combined with the Web GIS book from Scott Davis are excellent introductory texts.
Concerning QGIS Project, I would also suggest "Learning QGIS 2.0", written by Anita Graser and published in September 2013. It is one of the latest contributions currently available, an overview here: http://www.amazon.com/Learning-QGIS-2-0-Anita-Graser/dp/178216748X.
I found it particularly clear: it is literally full of tutorials and is able to introduce a lot of "must-know" issues, such as software integration with DB (e.g. SQLite and PostGIS) and web services (WMS, WCS or WFS), giving you also some practical demos. I believe this book is currently one of the best guides for anyone who's willing to learn how to use QGIS starting from a ESRI background.
For GeoDjango and learning to create Web based GIS application you can use the following two books, both for beginners and guide you very well
- Python Geospatial Developement. - Erik Westra
- OpenLayers 2.10 Beginner's Guide - Eik Hazzard
Also the Geoserver Suite is a complete package that is going to truly allow you to develop you application and also maintain the data.
I believe that a great resource is the QGIS training manual which will soon get an update to 2.0 and it fits what you asked for if you think The Geospatial Desktop is too much.
As a suggestion you could incorporate into the GIS Proprietary software curriculum Postgresql training to make a gentle pass.
You could also work on the same database using proprietary and open source software or can use the QGIS python module in proprietary software e.g. ESRI or reverse.