various programming exercises