The compression one is a great learning project IMHO. I did it long ago as a teenager. Should get them playing with File IO, iterating over buffers to create new buffers, managing some slightly more advanced data structures like stacks.
And testing it is fairly straight forward. Whatever you compress should come back when you decompress.