Preview Edition of Calculus for Everyone Available

BP Learning’s Calculus book (tentatively titled “Calculus for Everyone”) is currently available as a preview edition. If you are wanting to check out our upcoming Calculus book in its present form (it is far from finished, with sections and chapters missing), you can check it out at the link below:

Calculus for Everyone

It is priced at cost so you can give feedback. If you teach Calculus to more than 20 students per year, email us at and we will send you one for free.

The goal of this book is to focus on the concepts and intuitions behind Calculus, rather than formally proving every stage. No limits, few theorems, just a step-by-step walkthrough of what Calculus is, why it works, and how to use it.

I have had many people tell me after taking Calculus (sometimes many years of it) that they never really understood what Calculus was even about. This book, rather than focusing on the arcane minutiae, focuses on the core principles of Calculus and how to apply it.

Fall 2016 – Week 13 Class Notes

We have two more classes before the end of the semester, but NO CLASS NEXT WEEK for Thanksgiving!


We started working on object-oriented programming and arrays this week. Remember, the goal of objects is to package up a bunch of related information into a single unit. Whenever you have information about a subject that all belongs together, creating an object is a good way to go.

We also talked about arrays, which allow us to store sequences of values (usually, arrays are used to store similar values, but they don’t have to).

We need to be thinking about what we want to do next semester. Some options:

  1. Simple games in JavaScript
  2. Dealing with server-side programming
  3. Communicating with and using third-party services like Google maps

The start of the next year we will review and finish the book, but then we need to proceed to an application area.

For you to do this week:

  • Read chapter 13
  • Turn in your section 3 assignment


For some reason, the Tennis game did not work on a lot of your devices. I am investigating this over the week. I have used this game several times before and it has always worked well, so we will figure it out.

I am working on the next book chapter, and will hopefully have it done by Friday (UPDATE – the chapter is now complete).

Please spend some extra time reviewing chapters you aren’t familiar with. A lot of you were not familiar with pull-down resistors, which is a requirement for knowing how to put this stuff together.


Keep on trucking. We are going through chapter 17 this week.

Fall 2016 – Week 12 Class Notes

Somebody notified me that I had not posted class notes this week! Many apologies!


This week is chapter 12. It is a bit esoteric, so if you don’t understand it all the way, that’s fine. Save it for later in your programming career – you will have questions about how something is working, and you can come back to this chapter and say, “aha! That is what was being discussed!” It is included where it is simply because we are talking about functions and scopes, and a lot of people in JavaScript use scopes in funny ways, and this will help you understand what is going on if you read someone else’s code.

Next week we are getting into objects and arrays, which will both greatly expand your programming abilities, and should also be back to a topic that is more in line with your common intuitions.


We did an analog Arduino example in class, so read the corresponding chapter (chapter 14). This next week we are going to do one more Arduino lesson, and then we will get back to normal electronics.


Not much to say – chapter 16 is next!

Fall 2016 – Week 11 Class Notes

We are approaching the end of the semester! I do not have plans for next semester laid out yet, but current plans are to keep the same time/place. Computer programming will be mostly through the book, so we will have to imagine something new together – maybe do a small JavaScript-based video game, or do some project-oriented JavaScript. Electronics will focus on power, motors, and probably audio. Calculus will go into more depth on the topics we have covered so far. Anyway, for this week:

Computer Programming

We have reached the point in computer programming which requires a lot of abstract thought. I see that some of you are struggling with the concept of functions. First of all, functions have a very specific syntax. You need to be sure you know how how it works. You need to understand the role of parameters, local variables, and return values.

Some people are confused by the stack. Remember that computers are stupid. Conceptually it is fairly simple – every time you call a function it gets its own scope with its own set of local variables, and when it is done it has to “return” the place that it was called from. However, when the JavaScript language implements this, it has to be very specific about how it happens. That is where the stack comes in. The stack is *how* JavaScript implements giving functions their own scope of local variables, and *how* JavaScript knows where to go back to. As a programmer, you will never directly access the stack – that is merely so that you know what JavaScript is doing to enable the magical ability to call functions and return to where you were when it is done. Knowing how it is implemented will be important in the next chapter when we do some more advanced things with it.

Remember that this is the second week to go over chapter 11. If you are struggling you should review chapter 10 as well. Remember, I am available for email consultation if you need it! The Section 3 assignment will be due on November 16th.


Today we introduced the Arduino. Be sure to download the Arduino environment and the USB drivers to do your homework. We are not going to be spending much time on the Arduino as it is more programming than electronics, but if you want to know more there are a bunch of links here.

This week we are doing *two* chapters – 12 and 13. They are both very short, and we did most of the projects in class. I will grade your quizzes this week.


We started Integrals this week! Remember to finish your quizzes, and then read the first chapter on Integrals.

Fall 2016 – Week 10 Class Notes

I hope you all had a great break! I was expecting a little bit of difficulty coming back in to class, but it turned out that *I* was the one with the most difficulty getting back in the swing of things. I forgot my clipboard, so all homework assignments are delayed by a week. I forgot to bring the Arduinos to put in your boxes! These will be corrected next week. See below for more information about each class.

Computer Programming

Last week we did functions. I saw some of your homework, and one thing I noticed is that a lot of people used global variables in their functions. This is legal, but is a really bad habit. Good functions have all of their input come in through their parameters, all of their output come out through the return statement, and all of the variables that they use be local variables. There are a few exceptions to this, but by and large, you should try to live by this as much as is reasonable.

This week we started talking about how the computer stores the variables for its functions on the stack. I changed the schedule a little, and, because Chapter 11 is a bit esoteric, we are going to be spending two weeks on it. Also, I am going to delay the section three assignment a few weeks. Anyway, if you haven’t finished the homework for chapter 10, do that, and I will take up chapter 10 this next session. But no matter what be sure to read Chapter 11, AND COME WITH QUESTIONS! The stack is sometimes tough to wrap your head around, but it is an important concept!

Also note that the way that we discussed the stack in class is a little simplistic. The book does a more thorough job, which will come into importance in Chapter 12.


Major teacher fail – I had forgotten that I did not pass out Arduinos at the beginning of the year, and left them at home. Have no fear – they will be there next week! So, we were going to do Chapter 12 this week, but we will have to wait until next week. You should go ahead and read Chapter 12, but you won’t be able to do the projects until next week.

Also, I think the schedule had a quiz for this week – we will do it next week.

In class, we covered, in general terms, what microcontrollers were and how they were used. You can actually watch a video I made on this subject on YouTube here. Additionally, you can also watch a short YouTube video reviewing most of this semester’s material here.


This week we reviewed related rates. Remember the steps: (1) Create one or more models of the thing you are looking at. Usually this stems out of geometry, but it doesn’t have to. (2) Differentiate so that you have how the terms change with respect to each other. (3) Divide by dt to convert your differentials into rates. (4) Plug and chug.

I updated the calc book with most of the problems we did in class, plus one extra. Without using your notes from class, see if you can do the problems on your own this week.

See you all next week!

Fall 2016 – Week 9 Class Notes

Hello everyone! The big news this week is that there is NO CLASS next week! Don’t forget – if you show up I won’t be there!

Computer Programming

This week we concentrated on functions (Chapter 10 of the book). Remember, you can do anything in a function that you can do anywhere else. Sometimes, rather than making a function, it is easier to just write a program, and then wrap the functionality up in a function. Anyway, some of the problems are starting to be harder, so please email me if you get stuck.


This week we did logic chips. Next time we get together we will be starting to use the Arduino microcontroller board. We also have a quiz for next time. There will be questions from the last quiz, plus new questions on diodes, pull-up resistors, and voltage dividers.


Everyone did great on the quiz this week. I hope you all are pleased with your progress because I certainly am! This week is related rates. We will do another quiz soon, probably focusing on related rate and optimization questions.

Fall 2016 – Week 8 Class Notes

Another week is done! We had some hiccups in class this week, but I think everyone did well. I was the low-performer this week.

Computer Programming

This week we covered loops. We learned the parts of a loop and how they are implemented as “while” loops and “for” loops. I think everyone understood the general concept of a loop, but many people had trouble formulating exactly how and when to use loops, and especially how to get the loop to solve their need.

Think about it like this – any time you need to do something repeatedly in a row, you probably want a loop to do it. You need to figure out a “control” variable to tell you how many times to loop (so you know when you are done), and you need to figure out what you actually want to do during the loop – what is the basic function you are repeating.

Remember, the computer is stooooooopid. It will only do exactly what you tell it to do. Before trying to run your programs, you should try to trace how the program itself will run. Keep a sheet of paper, and write down exactly what gets placed in each variable at each step. Don’t invent steps that are not written! Think back to the game where we just fetched and processed instructions. The computer only does exactly what you tell it to, so if you are following your own code keep that in mind!

Email me if you have any problems or questions.

I will get your section 2 assignments graded this week and handed back to you next class. If you did not get your section 2 in to me yet, please email me soon!


Electronics this week was, well, kind of a fiasco. That is mostly my fault. First, I lost the attendance/grading sheet. Don’t worry, I found it this evening. All is well. We also spent more time reviewing than I anticipated. Then, all of my plans were on my computer, which lost power. So, we ended up trying to squeeze one of our larger projects in a very short timespan without any plans. Unsurprisingly, that didn’t go well.

In any case, I have a solution. I recorded a video of what I was planning to do/show in class. You can follow it at home and try it out and see how it works for you. You can view the video by clicking on this link. I am uploading it to YouTube as I type, so it might not be available until tomorrow morning (October 6). Anyway, if you were confused in class, PLEASE watch the video, as it should clear most things up. Email me with any issues you are still confused about.

Remember, the “output” of the LM393 has two states – positive and zero. The zero state basically connects the output directly to ground. The “positive” state is kind of wierd, as it merely disconnects itself from the circuit. This allows you to provide your own power to the output. Therefore, we use a pull-up resistor to provide power to the circuit. You should have a 2,000-ish ohm resistor in your box. This would be optimal for that circuit.

Note that this circuit is also in your chapter. The one difference is that the circuit in the chapter uses a 15,000-ohm resistor, but I gave you a 10,000-ohm resistor. That’s because I don’t have any 15,000’s at the moment, but a 10,000 should do fine. For the first (fixed) voltage divider you can use any two resistors as long as they are of equal value.

One more note – the LM393 can be easily broken. If the output gets connected to the positive rail without a resistor, it croaks pretty quick. If you think you did everything right and it still doesn’t work, bring it in next week and we can check your LM393 to see if it is working right. Bring in your working project for next week. If you can’t get it to work, email me.

There is a quiz scheduled for next week, but I think I am going to back it up a week and make sure everyone has the time to get themselves more familiar with the common circuit patterns. We are learning one more next week.


Apparently, I am behind on giving you all a quiz. We will have a comprehensive quiz next class session. You all are doing well, so I have no doubt you will do well on the quiz.

Fall 2016 – Week 7 Class Notes

We are almost to the halfway point of the semester! That means, we need to start thinking about next semester soon. I think I am going to see if we can renew with the current venue because it seems to be working for everyone. If anyone is having issues with the time or place (or anything else), please email me.

Computer Programming

First of all, the “Section 2” assignment is due next week! Pick your favorite homework problem or book activity from Part II of the book (chapters 6, 7, 8) and turn it in for an official grade.

This week we dove into the syntax of the JavaScript language, focusing on basic statements and also conditional statements (i.e., the “if” statement). The reading for this week is chapter 9 up through (and including) section 9.3.1. We are not doing any homework from the book this week, but you are encouraged to type out the programs from the chapter to solidify your knowledge. Next week we will finish chapter 9 and study looping mechanisms in code.

Note that the more you program, the better you will be at it. That is why I am encouraging you to do the examples, they will help you think about programming. I really like the fact that you all improvise on the assignments during class, because that helps your thinking, too!


UPDATE!!! In the chapter, there were some mistakes. (1) On page 79, in the middle of the page, it improperly suggests a ratio of 100ohms to 200ohms to get an 8V output. This should be 100ohms to 800ohms. (2) In the problem section, on #1, it should specify that the LEDs are red. (3) On questions #4 and #5, remember that the resistance of the load should be 10x the resistance of the parallel resistor from the voltage divider (see pg. 80).

Quizzes were handed back this week. The biggest problem, as I mentioned before, was understanding Kirchoff’s Voltage Law. Remember, the voltage drop between any two points on your circuit will be the same no matter what path you take! If you want to see the answer key, click the link below:

Quiz 1 Answer Key

This week we started talking about resistor circuit patterns. The reading is chapter 9. The most difficult circuit pattern we are covering is the pull-up resistor, but it will be important for our project next week. The reason it is called a pull-up resistor will become more evident in the next week.

Feel free to play with your circuit boxes throughout the week. One of my goals in providing you with your own take-home circuits is to make sure that you all are comfortable building circuits on your own. So feel free to experiment!

Don’t forget to download the latest version of the book.


This wee we moved from talking about the derivative to talking about differentials. If you can successfully make that pivot, you will be well on your way to understanding the finer points of Calculus! Chapter 10 is the reading, but I don’t yet have the problem set written. I will try to do that tonight or tomorrow. Calculus book is now available!

Fall 2016 – Week 6 Class Notes

Week 6 has just begun! Keep up the good work.

Computer Programming

We are now officially programming! I know it took us a while to get here, but I think that the preparation time was worthwhile. My goal was to hone your intuitions so that everything the computer does makes more sense as we learn about it. Remember – computers are stupid! They only do what you tell them! Everything they do has to be listed in the instructions or it doesn’t happen! Keeping those things in mind will propel you to really understanding computer programming.

Note that from here out even though the only official homework assignments are the problems in the back of the book, you will be a much better programmer if you type in each of the programs in each chapter. This experience will help you out a lot.

The second problem in the homework assignment may be beyond what is possible from where you are. However, think about the problem and make an attempt at it, even if you don’t get it all the way working.

Everyone is doing a good job on the computers during class. You all have a good ability to type, and a good habit of making the programs your own.


For most of the students, electronics is the most difficult class. I know that many of you are struggling, but take heart! This is not only your first year to take electronics, it is also my first year to teach it, so I am still finding out at what pace everybody learns at.

I know you are struggling, but I am more encouraged by what you do know than what you don’t yet know. Some of it will come with time. Because of that, I am taking this week as a review week. We will not go through the next chapter this week. Instead, take the time to re-read the previous two chapters (Series/Parallel and Diodes). See if you can re-work some of the problems. Don’t just take a break, use this as an opportunity to catch up.

Focus especially on Kirchoff’s Voltage Law. This is a pivotal (and somewhat unintuitive) law that is leveraged over and over in electronics. Being familiar with it and how to work problems with it will help you immensely!

Most people had difficulty with the quizzes this week. That’s okay, because even though you are especially familiar with the material from the last two weeks, most of you did very well on the material before that. However, let me point out that when doing anything, you should always show your work. I was able to give partial credit on several questions, but only if I could see what you were doing. If you just have a wrong answer, I can do nothing but mark it wrong. If you show me your thinking, I can at least give you credit for the parts of your thinking which are correct. Also, in complex problems, leaving it completely blank is unhelpful. The last question I gave partial credit to anyone who even started working on it. If you just labelled the resistors with their voltage drops without doing any calculations I gave some credit because I could verify that you had some understanding. I only labor on this point because it will help you in the long run.

The average value for the quiz was 28/40 (basically a low C). I had two students get 40/40. I had no one get less than half. That tells me that the work is difficult but doable, and that you all may be struggling, but are definitely making steady progress.

If you have any struggles or questions about the material, please email me!


Not much to say on the Calculus front – GO CALCULUS STUDENTS! Today we worked on solving real-world problems using Calculus, and generalizing our solutions developed in Calculus into basic formulas.

Next week, we will look at the derivative from a different perspective – the perspective of the differential. Chapter 9 this week!

Fall 2016 – Week 5 Class Notes

This was a tough but good week! I am happy with everyone’s progress on the material. Even if you think you are struggling, I think that everyone is actually doing pretty great. Keep up the good work!

Computer Programming

I am very impressed at how well everyone took to writing HTML this week. We started learning CSS and everybody is well on their way. The two most important concepts for CSS are (1) the idea of separating out content from presentation, and (2) using class and id attributes to specify special HTML elements on your page.

Note, however, that in class we put the stylesheet directly into our page for simplicity, but the book will have you store the stylesheet in a separate file, included by the “link” tag. These are basically equivalent, but the nice thing about the link tag is that if every page references the same stylesheet, you only have to change one file to change your whole website.

You all are doing great, and very soon we will be doing JavaScript.


Many of you noticed that this was a math-heavy chapter. It’s obvious I need to rework the chapter a bit to make it more obvious how to work the last problems. Below is how to work the now-infamous “Problem 13”, but first, a quick summary of the method. It is time-consuming, but hopefully each individual step makes sense. The steps are simple, but combining them is more tedious than difficult, once you know the trick. Also, just to make everyone feel better about it, one of my Calculus students said, “this week the math in Electronics was harder than it was for Calculus”. Anyway, take heart. Once you understand how these things work, it will be second nature to you. And that is more my goal – once doing this sort of calculation is second nature, then the stuff that we do next semester with audio circuits will be *much* easier to understand. When you can look at a circuit and can tear it apart in your mind, then understanding what people put in a schematic will be much easier even if you don’t bother with the actual calculations. Knowing that it *can* be calculated is just as important as everything else.

The key to it is realizing that anytime you come up with an “equivalent resistance”, you can (at least temporarily) replace that whole subcircuit with a single resistor with that resistance. This is especially helpful when you have combinations of series and parallel resistances. You basically use the series and parallel resistance formulas until you have a value for the resistance of the whole circuit, then use Ohm’s Law to find the current. Then you go back through and use the newly-found current to find voltages for each segment, breaking your circuit back apart into components as you go. So, here is the play-by-play for problem 13:

First we need to get the resistance for the whole circuit.
Starting with the positive terminal of our battery, we notice that the circuit immediately branches into two parallel lines. One line is R1, the other line is R2, R3, and R4. R2, R3, and R4 are all in series with each other, so the total resistance of those resistors is found by simply adding them together. We will replace them with a new resistor, which we will call R2-3-4, which will be 250 + 125 + 100 = 475 ohms.

So, now, our parallel resistance is between R1 (300 ohms) and R2-3-4 (475 ohms). Using Equation 7.2, the total resistance of this will be 1/((1/300) + (1/475)) = 183.87 ohms.
So, now, we can replace that whole shebang with a single resistor of 183.87 ohms. We will call this replacement resistor, R1-2-3-4.

Now, since we have replaced that whole subcircuit with a single resistor (R1-2-3-4), we now have a series circuit between R1-2-3-4 and R5. So this resistance is found simply by adding them together. So the total resistance will be R1-2-3-4 + R5 = 183.87 + 150 = 333.87 ohms.
Therefore, the total resistance for the circuit is 333.87 ohms.

Now we can find out how much current is passing through the whole circuit using Ohm’s Law.

I = V / R = 9 / 333.87 = 0.02696A

Okay, now, to solve for voltage, we can either start at the top or the bottom of the circuit. Let’s start at the top. So, we have this parallel resistance (R1-2-3-4) which is 183.87 ohms. 0.02696A is how much total current is flowing through it. Therefore, we can use Ohm’s Law to find out the voltage drop across this circuit:

V = I * R = 0.02696 * 183.87 = 4.957V

Now, to find out how much current is flowing across each individual element, we can also use Ohm’s Law.
For R1, the current isn’t known, but the voltage is (we just calculated the voltage drop across the whole parallel circuit). So, using Ohm’s Law, we find:

I = 4.957 / 300 = 0.01652A

So, the voltage drop across R1 is 4.957 and the current is 0.01652A.

Now, the other branch, R2-3-4, is 475 ohms. We can either calculate the current using Ohm’s Law, or just use Kirchoff’s Current Law. The Current Law says that the total coming out must be equal to the total coming in, so since we have 0.02696A coming in and 0.01652A going out one way, that means that there is 0.01044A going through the other pathway. Ohm’s Law would give us the same answer:

I = V / R = 4.957 / 475 = 0.01044A

Now that we have the current, note that the current going through each resistor will be the same (since they are in series), so, we can use Ohm’s Law to find the voltage drop in each:

For R2: V = I * R = 0.01044 * 250 = 2.61V

For R3: V = I * R = 0.01044 * 125 = 1.305V

For R4: V = I * R = 0.01044 * 100 = 1.044V

The total voltage drop matches the expected = 2.61 + 1.305 + 1.044 = 4.954V (a little off from rounding – we will use our original number, 4.957 for the rest).

Now, there are two different ways of finding the voltage drop across R5. We can either use Ohm’s Law (since we know the current (0.02696A) or we can use the fact that we just ate up 4.957V to find the remaining voltage.

Using Ohm’s Law: V = I * R = 0.02696 * 150 = 4.044V

Or, using the fact that it is a 9V battery, and that R5 is the only resistor left, we know that R5 must eat up the rest of the voltage in the circuit. So, since it started at 9V, and the parallel circuit ate up 4.957V, the voltage before the resistor is 9 – 4.957 = 4.043V. After the resistor we are back at the negative terminal, so the voltage is zero, so the voltage drop across this resistor is 4.043 – 0 = 4.043V. This only differs from our Ohm’s Law version due to rounding.

This week we are working with diodes. I didn’t give out any diodes because we were running short on time, but the text doesn’t require you to have one. I will try to give out regular diodes and zener diodes next week if you want to play around with them, though I may not currently have enough for everyone.

Next week we are going to go over some basic resistor circuit patterns, and then the next week we are going to build our first semi-useful device — a darkness sensor.

Don’t forget to download the new version of the book!


Today we covered and proved some of the basic rules of Calculus. I am not so interested in you all knowing the proofs as much as understanding the types of ways that rules are proven, because it helps you realize why we need special rules for different operations in Calculus.

You should memorize these rules: The power rule, the constant multiplier rule, the addition rule, and the exponent rule (i.e., all of the rules from the chapter). I will try to get the book updated tonight with exercises for Chapter 8 (if you download it and there are no exercises, that meant that I haven’t finished it yet).