An engaging introduction to vectors and matrices and the algorithms that operate on them, intended for the student who knows how to program. Mathematical concepts and computational problems are motivated by applications in computer science. The reader learns by doing, writing programs to implement the mathematical concepts and using them to carry out tasks and explore the applications. Examples include: error-correcting codes, transformations in graphics, face detection, encryption and secret-sharing, integer factoring, removing perspective from an image, PageRank (Google's ranking algorithm), and cancer detection from cell features. A companion web site, codingthematrix.com provides data and support code. Most of the assignments can be auto-graded online. Over two hundred illustrations, including a selection of relevant xkcd comics. Chapters: The Function, The Field, The Vector, The Vector Space, The Matrix, The Basis, Dimension, Gaussian Elimination, The Inner Product, Special Bases, The Singular Value Decomposition, The Eigenvector, The Linear Program
About the Author
Philip Klein is Professor of Computer Science at Brown University. He was a recipient of the National Science Foundation's Presidential Young Investigator Award, and has received multiple research grants from the National Science Foundation. He has been made an ACM Fellow in recognition of his contributions to research on graph algorithms. He is a recipient of Brown University's Award for Excellence in Teaching in the Sciences. Klein received a B.A. in Applied Mathematics from Harvard and a Ph.D. in Computer Science from MIT. He has been a Visiting Scientist at Princeton's Computer Science Department, at MIT's Mathematics Department, and at MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL), where he is currently a Research Affiliate. Klein has worked at industry research labs, including Xerox PARC and AT&T Labs, and he has been Chief Scientist at three start-ups. Klein was born and raised in Berkeley, California. He started learning programming in 1974, and started attending meetings of the Homebrew Computer Club a couple of years later. His love for computer science has never abated, but in a chance encounter with E. W. Dijkstra in 1979, he was told that, if he wanted to do computer science, he had better learn some math. His favorite xkcd is 612.