Solutions to programming challenges