For point 2. I can think of a few solutions each with different amounts of work and tradeoffs.
At work we'd use sourcerevision control for this. The repository is stored in a common location where all people have access. Whenever you're done working as a pair you'd push/commit your work.
Have everyone one work on a shared network drive permissioned by you. Each pair would get a folder just for them. Or its just a freeforall.
Have every workstation be 'public' as in there's only one user and it's always logged in. The students will do their work, and as long as the work station is available they can work on it.