Along with inference, Data 140 requires calculus and linear algebra. But like other upper division probability courses it has an unwritten prerequisite of what I call mathematical fluency.

This document is an attempt to describe what I mean by math fluency in this course, and how you can develop it. Remember that nobody is born with all these skills. They develop with practice.

Working with algebraic expressions, exponents, absolute values, inequalities: in 140, this is the equivalent of using basics like NumPy in a Python-based machine learning class. It’s taken for granted. If you’re rusty, the only way to become more fluent is to do lots of calculations yourself – not watch, read, copy, or memorize. For example, you could do a calculation while you are watching or reading it. Better still, you could pause the video and set aside the textbook, and work it out yourself.

Mathematics is a powerful language. Writing math will be a fundamental activity in the class. As with any language, fluency develops with use. So use it. Expect calculations to involve symbols representing mathematical objects just as computer programs involve names that represent computational objects.

Don’t skip the readings. Careful reading (preferably writing as you read) is a great way to gain fluency along with learning the content. When we insist that you write correctly, don’t dismiss it as “picky” any more than you’d dismiss a Python error message as picky. Fix it to write exactly what you mean, not kinda sorta what you might mean.

Try not to make artificial distinctions between “proofs” and other calculations. Every mathematical step requires justification a.k.a. proof. Students sometimes tell me that “proof” questions are those that involve symbols and start with “Show that,” and that these are somehow harder than questions that start with “Find.” But if I compare the problems “Find $E(X^2)$” and “Show that $E(X^2) = \mu^2 + \mu$” based on the same setting, the latter is clearly easier because it tells you the answer.

Mathematical fluency requires that you first focus on the concepts and then look at any resulting formulas. Understanding the concepts is what helps you solve problems at this level. Being able to think about the general, instead of focusing only on the particular, also helps with understanding the theory and solving problems.

The 140 textbook makes an effort to explain why each concept is important and what you can use it for. Often, there’s a graph or a diagram that helps with this, and the establishment of a general result motivated by observations in a particular case.

Don’t rush towards formulas by fast-forwarding or skimming the portions of the textbook where there are a some paragraphs of text or a diagram. Those are exactly the places where you will learn when to use the related formulas. Often, those discussions are also where you will learn how to draw useful conclusions without calculation. All of this will make you more fluent at problem-solving.

To develop fluency, it helps to understand that very few problems at this level can be solved only by direct plug-and-chug. Instead, each exercise requires its own combination of concepts and methods. To find the right combination, you have to understand the relevant concepts (see above) and be careful about your logic. Drawing charts and diagrams is often very helpful.

To develop these skills, try not to jump to an “answer” without much thought. For some reason probability seems to invite blurting, but blurting is often counterproductive. Take the time to lay out the puzzle pieces and think about how they might fit together.

Once you’ve figured out the appropriate combination of methods, you’ll know what to calculate. Then you have to calculate it. In 140 we’ll show you lots of ways to reduce calculation by – you guessed it – understanding concepts really well. But there will still be calculation to do, and sometimes this will take several steps.

Once you think you have an answer, apply some basic checks. For example, make sure it’s correct in simple special cases. Programming classes have the advantage that the programming language typically sends back error messages. Classes also include their own tests for whether your code is doing what it should. But there are no automatic error messages or tests in math, so you have to come up with your own. Testing out your own answers is a great way of making sure you understand what you’re doing.