New Book Announcement: Object-oriented Programming in Python for Mathematicians by David Ham

Congratulations to David Ham on publishing book entitled  Object-oriented Programming in Python for Mathematicians

This book is for mathematicians, scientists, and engineers who have learned the very basics of programming in Python, and who would like to become more capable programmers. You will learn the higher level programming concepts such as objects, inheritance, and abstract data types needed to elegantly create more advanced programs. At the same time, emphasis is placed on programming skills such as good style, so you learn to write code that you and others find easy to understand, and interpreting and debugging errors. If you find yourself baffled by the pages of error messages that Python emits, and would like to make sense of them, then this book is for you.

Learning the material is supported by explanatory videos throughout and skeleton codes for all of the exercises, including automated tests of your work.

The book takes a mathematician’s view of programming, introducing higher level programming abstractions by analogy with the abstract objects that make up higher mathematics. Examples and exercises are chosen from across mathematics, though the actual mathematical knowledge required to understand this book is limited to differentiating functions of one variable.


  1. Introduction: abstraction in mathematics and programming
  2. Programs in files
  3. Objects and abstraction
  4. A matter of style
  5. Abstract data types
  6. Errors and exceptions
  7. Inheritance and composition
  8. Debugging and testing
  9. Trees and directed acyclic graphs
  10. Further object-oriented feature

The book is available here