I think "implement an arbitrarily big number data type along with its basic operators" is part of virtually every programming course in universities. I think it's pretty useful too.
--
Computer Programming: An Introduction for the Scientifically Inclined