1st assignment of the Stanford university course Programming paradigms