Federated learning (FL) is a distributed optimization algorithm that has been developed to improve the training and testing performance of machine learning (ML) algorithms for prediction and inference tasks, such as image classification. FL reduces communication and computation resources by distributing data across devices, and is well-suited for wireless communication scenarios due to its ability to cope with the resource limitations of the devices and networks. With the introduction of the Internet of Things (IoT) and 5G cellular networks, edge computing will further improve the quality of service shortcomings of cloud computing, and enable ML proliferation in distributed optimization algorithms.