This book covers an introduction to convex optimization, one of the powerful and tractable optimization problems that can be efficiently solved on a computer. The goal of the book is tohelp develop a sense of what convex optimization is, and how it can be used in a widening array of practical contexts with a particular emphasis on machine learning.The first part of the book covers core concepts of convex sets, convex functions, and related basic definitions that serve understanding convex optimization and its corresponding models. The second part deals with one very useful theory, called duality, which enables us to: (1) gain algorithmic insights; and (2) obtain an approximate solution to non-convex optimization problems which are often difficult to solve. The last part focuses on modern applications in machine learning and deep learning.A defining feature of this book is that it succinctly relates the “story” of how convex optimization plays a role, via historical examples and trending machine learning applications. Another key feature is that it includes programming implementation of a variety of machine learning algorithms inspired by optimization fundamentals, together with a brief tutorial of the used programming tools. The implementation is based on Python, CVXPY, and TensorFlow. This book does not follow a traditional textbook-style organization, but is streamlined via a series of lecture notes that are intimately related, centered around coherent themes and concepts. It serves as a textbook mainly for a senior-level undergraduate course, yet is also suitable for a first-year graduate course. Readers benefit from having a good background in linear algebra, some exposure to probability, and basic familiarity with Python.

Information theory deals with mathematical laws that govern the flow, representation and transmission of information. The most significant achievement of the field is the invention of digital communication which forms the basis of our daily-life digital products such as smart phones, laptops and any IoT devices. Recently it has also found important roles in a spotlight field that has been revolutionized during the past decades: data science.

This book aims at demonstrating modern roles of information theory in a widening array of data science applications. The first and second parts of the book covers the core concepts of information theory: basic concepts on several key notions; and celebrated source and channel coding theorems which concern the fundamental limits of communication. The last part focuses on applications that arise in data science, including social networks, ranking, and machine learning.

The book is written as a text for senior undergraduate and graduate students working on Information Theory and Communications, and it should also prove to be a valuable reference for professionals and engineers from these fields.