Theory And Algorithms For Communication- And Computation-Efficient Federated Learning