programming pearls exercises