This book introduces the basic principles underlying the design and analysis of the digital communication systems that have heralded the information revolution. One major goal of the book is to demonstrate the role of the digital communication principles in a wide variety of data science applications, including community detection, computational biology, speech recognition and machine learning.
One defining feature of this book is to make an explicit connection between the communication principles and data science problems, as well as to succinctly deliver the “story” of how the communication principles play a role for trending data science applications. All the key “plots” involved in the story are coherently developed with the help of tightly coupled exercise problem sets, and the associated fundamentals are explored mostly from first principles. Another key feature is that it includes programming implementation of a variety of algorithms inspired by fundamentals, together with a brief tutorial of the used programming tools. The implementation is based on Python and TensorFlow.This book does not follow a traditional book-style organization, but is streamlined via a series of lecture notes that are intimately related, centered around coherent storylines and themes. It serves as a textbook mainly for a junior- or senior-level undergraduate course, yet is also suitable for a first-year graduate course. Readers benefit from having a good background in probability and random processes, and basic familiarity with Python. But the background can be supplemented by almost self-contained materials, as well as by numerous exercise problems intended for elaborating on non-trivial concepts. In addition, Part III for data science applications should provide motivation and insights to students and even professional scientists who are interested in the field.