# Math

For many aspects of software development an understanding of mathematics is not necessary, in other areas it is crucial. If you’ve read or discussed enough about software development you will come across mathematical formulas and notation that, without an understanding of some mathematics, is incomprehensible. This section attempts to provide resources for those interested in learning math utilized in software development.

## Some Really Basic Basics

• Basic Math
• CK-12 – Offers free/open textbooks for K-12.
• Much Math
• Khan Academy – Includes courses on basic math, geometry, algebra, trigonometry, statistics, probability, precalculus, differential calculus, integral calculus, multivariable calculus, differential equations, linear algebra. If you like video/interactive format this is a great resource.
• Logarithms

## From Teach Yourself Computer Science

The Mathematics for Computer Science section of Teach Yourself Computer Science recommends one cover the following topics:

• Logic
• Combinatorics and Probability
• Set Theory
• Graph Theory
• Number Theory (little)
• Linear Algebra (optional?)

## Discrete Mathematics

• Math for Computer Science: Discrete Math. The University of Chicago.
• A fairly brief but helpful explanation of discrete mathematics which are used extensively in software development. Specific areas referenced include boolean algebra, propositional logic, induction, logic generally, recursion, recurrences, number theory, counting, probability, and graphs.
• Tom Leighton, Marten van Dijk. Mathematics for Computer Science. MIT, Fall 2010.
• An open course from MIT on “elementary discrete mathematics.” Includes textbook (excluding one chapter!), video lectures, assignments, etc. Covers mathematical definitions and proofs, applicable methods, formal logic notation, proof methods, induction, well-ordering, sets, relations, elementary graph theory, integer congruences, asymptotic notation, growth of functions, permutations and combinations, counting principles, discrete probability, and some on recursive definition, structural induction, state machines, invariants, recurrences, and generating functions.
• Single Variable Calculus is a prerequisite.
• Albert R. Meyer, Adam Chlipala. Mathematics for Computer Science. MIT, Spring 2015.
• Another open course from MIT, includes text, video lectures, etc. Covers fundamental concepts of mathematics (definitions, proofs, sets, functions, relations), discrete structures (graphs, state machines, modular arithmetic, counting), and discrete probability theory.

## Writing Math

### Some Common Symbols

• To show a vector use $\vec{v}$ where v is the name of the vector.
• To show a superscript, use $^ss, for example:$8^5$. • Greek characters include beta: $\beta$. • Geometry • Measured Angle: $\measuredangle$`. • We can create a circle, e.g., for degrees, using$\circ\$

• Scalars