Algorithmic, game theoretic and learning theoretic aspects of distributed optimization