A common way with embedded Debian Linux-based devices is to run a mostly read-only filesystem with RAM disks mounted over the directories that have to be read-write. Unfortunately the project pages that I've used as inspiration in the past, Debian Router Project, are no longer available. Anyway, a 256 MB system with an X desktop is starved for RAM, so the idea of using overlay RAM disks might not be the best idea.
Debian also has an official howto for mounting most of the system read-only, at http://wiki.debian.org/ReadonlyRoot
. Many directories are still left read-write: /etc, /home, /srv, /tmp and /var. Each of these remaining read-write directories can be handled differently:
/etc: Can be made read-only with certain precautions. See the Debian howto.
/home: Could be reconstructed on boot from a pre-made archive, if the students carry an USB stick for their personal files instead of saving them under /home.
/srv: This directory is empty most of the time (unless running servers).
/tmp: All files here can be deleted on boot.
/var: This is tricky, as it contains the critical directories /var/lib and /var/spool. Other directories in it are not as critical. /var/lib and /var/spool should be kept on a filesystem that survives a hard crash, such as ext3/ext4. In addition, a backup script such as rsnapshot could be run periodically to save any changes on another filesystem.
Also see the Emdebian project for information on running Debian on resource constrained systems: http://www.emdebian.org/