The goal of this book is to present the topic of discrete calculus to scientists and - gineers and to show how the theory can be applied to solving a wide variety of re- world problems. We feel that discrete calculus allows us to unify many approaches to data analysis and content extraction while being accessible enough to be widely applied in many ?elds and disciplines. This project initially began as a tutorial on discrete calculus and its applications, and we hope that this work can provide an introduction to discrete calculus and demonstrate its effectiveness in many problem domains. This book bene?ted enormously from the friends and colleagues who provided software, data, and their time in reading the manuscript. In particular, for software we would like to thank Sebastien Bougleux for help with total variation code for an arbitrary graph and Camille Couprie for powerwatershed code. For use of their data, we wish to thank Jason Bohland, James Fowler, David Gleich, and Robert S- ner.
For comments on the manuscript we would like to thank Christopher Alvino, Mukund Balasubramanian, Jason Bohland, Sebastien Bougleux, Gaelle Desbordes, Mathieu Desbrun, Noha El-Zehiry, Gareth Funka-Lea, David Gleich, Oliver Hinds, Anil Hirani, Hiroshi Ishikawa, Robert Kotiuga, Elliot Saltzman, Dheeraj Singaraju, Ganesh Sundaramoorthi and Enzo Tonti. We thank Eric Schwartz for all his help and support over the years. We would like to thank Wayne Wheeler, Simon Rees, and Catherine Brett at Springer for their enthusiasm and for initially proposing this project.