Mathematics for Computing

Next running

1-25 Oct
5:30pm-8:00pm Tue/Fri


San Francisco



Apply for this course

One of the hardest topics for software engineers to teach themselves is the mathematical foundations of their work. They may use sets, logical operations and graphs every day, but without some background in set theory, logic, graph theory and so on, there is a limit to how effective they can be with their tools.

This course is designed as a first formal look for practicing software engineers at the discrete math topics typically covered at the early undergrad level. It also briefly visits a handful of topics outside of discrete math that may be of interest to software engineers.

Since early in the 20th century, most math education has become exceedingly rigorous, which may have been important to the development of the field, but unfortunately an impediment to the practical, intuitive understanding sought by non-mathematicians. Our course eschews the proof-centric methodology, instead focusing on problem solving and intuition building.


  1. Logic and Proof
  2. Induction and Recurrences
  3. Graph Theory
  4. Linear Algebra
  5. Cryptography
  6. Revision and Problem Solving Practice
  7. Counting
  8. Probability

Projects and exercises

The practical component of this course predominately involves solving small math and programming problems to consolidate your understanding of the content.

Assumed knowledge

This course makes no assumptions about prior math background.

Available sessions

1-25 Oct
5:30pm-8:00pm Tue/Fri
San Francisco

This course will next be taught by

Tom Alcorn

Tom Alcorn graduated from MIT with a degree in mathematics and now works as a software engineer at Join, developing a next generation query language for building data. Previously he worked at and Everquote. He teaches the Mathematics for Computing course at Bradfield and has particular interests in machine learning and motorcycles.