Math for Programmers video edition

Video description

A gentle introduction to some of the most useful mathematical concepts that should be in your developer toolbox.
Christopher Haupt, New Relic

To score a job in data science, machine learning, computer graphics, and cryptography, you need to bring strong math skills to the party. Math for Programmers teaches the math you need for these hot careers, concentrating on what you need to know as a developer. Filled with lots of helpful graphics and more than 200 exercises and mini-projects, this book unlocks the door to interesting–and lucrative!–careers in some of today’s hottest programming fields.

about the technology

Skip the mathematical jargon: This one-of-a-kind book uses Python to teach the math you need to build games, simulations, 3D graphics, and machine learning algorithms. Discover how algebra and calculus come alive when you see them in code!

about the book

In Math for Programmers you’ll explore important mathematical concepts through hands-on coding. Filled with graphics and more than 200 exercises and mini-projects, this book unlocks the door to interesting–and lucrative!–careers in some of today’s hottest fields. As you tackle the basics of linear algebra, calculus, and machine learning, you’ll master the key Python libraries used to turn them into real-world software applications.

what's inside

  • Vector geometry for computer graphics
  • Matrices and linear transformations
  • Core concepts from calculus
  • Simulation and optimization
  • Image and audio processing
  • Machine learning algorithms for regression and classification

about the audience

For programmers with basic skills in algebra.

about the author

Paul Orland is a programmer, software entrepreneur, and math enthusiast. He is co-founder of Tachyus, a start-up building predictive analytics software for the energy industry. You can find him online at

A rigorous yet approachable overview of the mathematics that underpin a number of modern programming domains.
Dan Sheikh, BCG Digital Ventures

Engaging, practical, recommend for all levels.
Vincent Zhu,

It provides a bridge for programmers who need to brush up on their math skills, and does a nice job of making the math less mysterious and more approachable.
Robert Walsh, Excalibur Solutions


Table of contents

  1. Chapter 1. Learning math with code
  2. Chapter 1. Finding a good deal
  3. Chapter 1. Modeling the physical world
  4. Chapter 1. How not to learn math
  5. Chapter 1. Using your well-trained left brain
  6. Part 1. Vectors and graphics
  7. Chapter 2. Drawing with 2D vectors
  8. Chapter 2. 2D drawing in Python
  9. Chapter 2. Plane vector arithmetic
  10. Chapter 2. Subtraction, displacement, and distance
  11. Chapter 2. Angles and trigonometry in the plane
  12. Chapter 2. From components back to angles
  13. Chapter 2. Transforming collections of vectors
  14. Chapter 3. Ascending to the 3D world
  15. Chapter 3. Vector arithmetic in 3D
  16. Chapter 3. Computing angles and directions
  17. Chapter 3. The dot product: Measuring vector alignment
  18. Chapter 3. Measuring angles with the dot product
  19. Chapter 3. The cross product: Measuring oriented area
  20. Chapter 3. Finding the length of the cross product
  21. Chapter 3. Rendering a 3D object in 2D
  22. Chapter 4. Transforming vectors and graphics
  23. Chapter 4. Composing vector transformations
  24. Chapter 4. Rotating an object about an axis
  25. Chapter 4. Linear transformations
  26. Chapter 4. Why linear transformations?
  27. Chapter 4. Exercises
  28. Chapter 5. Computing transformations with matrices
  29. Chapter 5. Multiplying a matrix with a vector
  30. Chapter 5. Implementing matrix multiplication
  31. Chapter 5. Interpreting matrices of different shapes
  32. Chapter 5. Viewing square and non-square matrices as vector functions
  33. Chapter 5. Composing linear maps
  34. Chapter 5. Translating vectors with matrices
  35. Chapter 5. Translating 3D objects in a 4D world
  36. Chapter 6. Generalizing to higher dimensions
  37. Chapter 6. Improving the Vec2 class
  38. Chapter 6. Building a vector base class
  39. Chapter 6. Unit testing vector space classes
  40. Chapter 6. Exploring different vector spaces
  41. Chapter 6. Treating functions as vectors
  42. Chapter 6. Manipulating images with vector operations
  43. Chapter 6. Looking for smaller vector spaces
  44. Chapter 6. Spanning a bigger space
  45. Chapter 6. Finding subspaces of the vector space of functions
  46. Chapter 6. Exercises
  47. Chapter 7. Solving systems of linear equations
  48. Chapter 7. Finding intersection points of lines
  49. Chapter 7. Linear equations in matrix notation
  50. Chapter 7. Identifying unsolvable systems
  51. Chapter 7. Generalizing linear equations to higher dimensions
  52. Chapter 7. Studying hyperplanes algebraically
  53. Chapter 7. Exercises
  54. Chapter 7. Changing basis by solving linear equations
  55. Part 2. Calculus and physical simulation
  56. Chapter 8. Understanding rates of change
  57. Chapter 8. Plotting the average flow rate over time
  58. Chapter 8. Approximating instantaneous flow rates
  59. Chapter 8. Approximating the change in volume
  60. Chapter 8. Plotting the volume over time
  61. Chapter 8. Improving the approximation
  62. Chapter 9. Simulating moving objects
  63. Chapter 9. Simulating acceleration
  64. Chapter 9. Digging deeper into Euler’s method
  65. Chapter 9. Running Euler’s method with smaller time steps
  66. Chapter 10. Working with symbolic expressions
  67. Chapter 10. Modeling algebraic expressions
  68. Chapter 10. Putting a symbolic expression to work
  69. Chapter 10. Expanding an expression
  70. Chapter 10. Finding the derivative of a function
  71. Chapter 10. Derivatives of some special functions
  72. Chapter 10. Taking derivatives automatically
  73. Chapter 10. Integrating functions symbolically
  74. Chapter 11. Simulating force fields
  75. Chapter 11. Modeling gravitational fields
  76. Chapter 11. Adding gravity to the asteroid game
  77. Chapter 11. Introducing potential energy
  78. Chapter 11. Connecting energy and forces with the gradient
  79. Chapter 11. Finding the steepness of a graph with the gradient
  80. Chapter 12. Optimizing a physical system
  81. Chapter 12. Testing a projectile simulation
  82. Chapter 12. Calculating the optimal range
  83. Chapter 12. Solving for the maximum range
  84. Chapter 12. Enhancing our simulation
  85. Chapter 12. Solving for the range of the projectile in 3D
  86. Chapter 12. Optimizing range using gradient ascent
  87. Chapter 12. Implementing gradient ascent
  88. Chapter 13. Analyzing sound waves with a Fourier series
  89. Chapter 13. Playing sound waves in Python
  90. Chapter 13. Turning a sinusoidal wave into a sound
  91. Chapter 13. Combining sound waves to make new ones
  92. Chapter 13. Building a linear combination of sinusoids
  93. Chapter 13. Decomposing a sound wave into its Fourier series
  94. Chapter 13. Defining an inner product for periodic functions
  95. Chapter 13. Fourier coefficients for other waveforms
  96. Part 3. Machine learning applications
  97. Chapter 14. Fitting functions to data
  98. Chapter 14. Measuring the quality of fit for a function
  99. Chapter 14. Calculating cost for car price functions
  100. Chapter 14. Exploring spaces of functions
  101. Chapter 14. Finding the line of best fit using gradient descent
  102. Chapter 14. Fitting a nonlinear function
  103. Chapter 15. Classifying data with logistic regression
  104. Chapter 15. Testing a classification function on real data
  105. Chapter 15. Picturing a decision boundary
  106. Chapter 15. Framing classification as a regression problem
  107. Chapter 15. Introducing the sigmoid function
  108. Chapter 15. Exploring possible logistic functions
  109. Chapter 15. Measuring the quality of fit for a logistic function
  110. Chapter 15. Finding the best logistic function
  111. Chapter 15. Testing and understanding the best logistic classifier
  112. Chapter 16. Training neural networks
  113. Chapter 16. Classifying images of handwritten digits
  114. Chapter 16. Designing a neural network
  115. Chapter 16. Calculating activations
  116. Chapter 16. Building a neural network in Python
  117. Chapter 16. Training a neural network using gradient descent
  118. Chapter 16. Automatic training with scikit-learn
  119. Chapter 16. Calculating gradients with backpropagation
  120. Appendix B. Python tips and tricks
  121. Appendix B. Collections of data in Python
  122. Appendix B. Generators
  123. Appendix B. Working with functions
  124. Appendix B. Plotting data with Matplotlib
  125. Appendix B. Object-oriented programming in Python
  126. Appendix B. Operator overloading

Product information

  • Title: Math for Programmers video edition
  • Author(s): Paul Orland
  • Release date: November 2020
  • Publisher(s): Manning Publications
  • ISBN: None