About

This site was created as a place for people to write simple computer programs in the context of exploring mathematics.

Why this site?

A few reasons drove the development of this site.

The first is that in today's technologically-based, machine driven society, our youth must learn to use computers for more than a hub of digital media. No matter what their field of study, the computer will play a central role. Be it in research or development, to really make progress, one must invariably program a computer, in one form or another. Further, this programming will be, at least loosely, tied to the principles and logic of mathematics.

In terms of programming, the second is that the modern operating system is an extremely difficult environment under which to program. We think this is a big turn off for most people, kids in particular. These days, it's simply too hard to get a computer to "do something." Are you really going to sit a beginner in front of Xcode? Visual C++? A Unix prompt? No way. And, is popping up an "about box" in JavaScript really going to interest people in programming?

We grew up programming the first home computers, like the TRS-80s. When you turned these on, you had no choice but to start programming them, because they didn't really do anything else. And the programming made sense. Print would put something on the screen, and input would read keys from the keyboard.

As we look at computer programming environments today, we wonder what ever happened to the being able to type a single line like circle(0,0,5) and seeing a circle drawn on the screen at (0,0) with a radius of 5?

The "instant response" type programming environments, at least for beginners, are hard to find. We believe such simplicity can draw beginners into programming because once you have the circle (which is a "head") you can do a line(0,80,0,-30) for the "body," and you are on you way to programming a stick figure on the screen!

Third, we've noticed that math offers a badly needed context for learning how to code. Likewise, coding offers a badly needed context for learning things about mathematics. You can learn math through coding, or coding through math, and this is our the core theme of our lessons. As A.A. Stepanov said in his book on generic programming, "The separation of computer science from mathematics greatly impoverishes both."

Codebymath.com

At Codebymath, you'll find a whole slew of coding lessons set in the context of basic mathematical discovery. Here, we'll show you how to do some creative programming to discover $\pi$ or calculate a tip. Or, you can also learn some creative math that will verify a trigonometry identity or show the difference between sine and cosine. And remember how boring it was to learn how to convert temperature between the $^\circ F$ and $^\circ C$ scales? It's a lot more fun to do it using an Arduino and some simple coding, all with an actual temperature feed coming in.

Technology

This site is a big mix of PHP and Javascript. The language used to teach the programming is Lua, chosen because of its minimal punctuation and clean syntax. The code-editor is courtesy of CodeMirror, and of course, how would we do anything without jQuery? The symbolic math is provided by GiNaC, the 3D-printing (STL functionality) is of our own making, and the GIF-animator came from here. The Prolog interpreter is tau-prolog.

Contact

We'd love to hear from you. Idea? Problem? Suggestion? Let us know. Please email Tom at tbensky@gmail.com.