This textbook introduces readers to the theoretical aspects of machine learning (ML) algorithms, starting from simple neuron basics, through complex neural networks, including generative adversarial neural networks and graph convolution networks. Most importantly, this book helps readers to understand the concepts of ML algorithms and enables them to develop the skills necessary to choose an apt ML algorithm for a problem they wish to solve. In addition, this book includes numerous case studies, ranging from simple time-series forecasting to object recognition and recommender systems using massive databases. Lastly, this book also provides practical implementation examples and assignments for the readers to practice and improve their programming capabilities for the ML applications.