Message Boards Message Boards

Frustrated father writes computer-based algebra book


Hi. I am a father infinitely frustrated with algebra, as it is taught in our schools. I just can't believe computers aren't used more, even at the level of Algebra I.

I channeled my frustration and wrote a (free online) book about learning algebra by writing simple code. If anyone wants to take a look at it, please try a few lessons and let me know what you think. Here it is:

Thanks, Tom

POSTED BY: Tom Benson
5 months ago

There seems to be bias in the academic community against the use of computer algebra. I've been criticized for using Mathematica by professors teaching online courses in quantum mechanics, who seem to feel you aren't really solving the problem unless you do it all with paper and pencil.

POSTED BY: Frank Kampas
5 months ago

I actually found that students are the same way. They have such a strong expectation that all math/science learning be done with pencil and paper, that they can be greatly dismayed and outright irritated with computer assignments,

POSTED BY: Tom Benson
5 months ago

I second this observation. The push back from students when implementing flipped classroom assignments, cooperative learning activities, or even just plain active learning pauses during lecture is sometimes extreme and disruptive. My opinion is that this is a consequence of the entitlement philosophy many students have now internalized as well as the troubling trend of grade inflation (at least here in the US). I explained to all of my students that failure is a critical part of the learning process, and it is better for them to struggle and fail and reassess their progress during lecture and on homework assignments then it is to fail an exam or later at their job ...

More back to this topic, over the past two years, I have given students assignments where they needed to use a variety of engineering software: Wolfram Programming Lab, MATLAB/Simulink, COMSOL, Pro/II, Bluehill, BioPAC, WaveForms, and the Arduino IDE. I have found student acceptance to be mixed but slanted more to positive. I think that once they have reached the 200-300 level engineering courses, they realize that pen and paper is holding them back from a deeper understanding of the topic. Unfortunately, a new negative pops up once the students accept that they need to start using the computer (and associated data collection hardware for labs), they now want a complete template, algorithm, or step-by-step instructions for using the software to solve their problem or they want to be able to find these easily on the first page of a google search. Right back to the entitlement philosophy ...

POSTED BY: Timothy Ewing
5 months ago

Hello there and thanks for chiming in. I am glad to hear of your observations. Most I speak to about the computer in the classroom experience say "it went great! The student's loved it!"

Most of my work has been done in trying to integrate simple computer animation into basic physics (mechanics)--mostly simple stuff, like animating a single sphere on the screen, a la the vPython approach (although I used

Here are some things I've noticed about student and computer use (sorry it's so long):

  1. Observation: Students are challenged by general situations observed in the mechanics of animation, that deal with turning points, direction of motion (i.e. +/- signs), limits of motion, object-to-object interactions, and assessing motion based on different vector quantities.

Why: Students appear confused over issues a computer is and is not able handle "automatically." Their high expectation is perhaps due to their familiarity with video games where everything automatically "works."

How to rectify: Keep the computer assignment simple and based on only a single topic at a time, so students’ expectations can become more focused, grounded and realistic.

  1. Observation: When a program doesn’t work, students are quick to "try this and try that," involving haphazard changes to their code, hoping something will work.

Why: Students are impatient, wanting quick completion of their work.

Rectify: Encourage students to slow down and think through a problem before approaching the computer. The theme above serves as our guide to emphasize the meaning of motion, so we methodically engage them in a careful conversation about this theme and where they have addressed it in their code.

  1. Observation: Many appear unfamiliar with (keyboard) symbols required when writing code. Indenting code-blocks is rare, as is organization of on-screen text, and error messages are routinely ignored.

Why: An over-use of consumer applications, particularly on touch screen-devices where icons and large buttons are the norm and organization of text (in emails or “texting”) is rarely necessary.

Rectify: Persist with the lessons so students gain more and more practice (as science majors), gaining a deeper understanding of computer use beyond consumer-level software.

  1. Observation: Computer assignments typically require spheres to be drawn as “the object,” which require a center-point, radius and color. When a box is needed, many students will simply replace the word “sphere” with “box”, not realizing that boxes are not characterized by a radius. We also see difficulty when students consider how to orient an object about a certain point in space (i.e. to center it). Students are uncomfortable with the Cartesian coordinate system, as many have not been previously exposed to the positional effects of the z-axis.

Why: Weak K-12 preparation in the use of spatial coordinates and minimal experience students with precise visualization needs.

Rectify: Continue to demonstrate ties between geometry and mechanics (physics), as the location of an object relative to some starting point is a critical outcome of this course.

  1. Observation: Recommending to a student to do something like "move the starting position of your object at <5,0,0> over to the left a little bit," causes confusion. The same goes for the rendering of a vector component on an object, where the orthogonal components must be explicitly set to zero.

Why: Textbook-based curriculums offer no real opportunity for students to use vectors and immediately see their effects on a problem, and on-paper assessment is rarely thorough enough to expose incorrect use of vectors.

Rectify: Insist that vectors are a continual support structure for the problems, and refine lessons to constantly reflect the use of vectors throughout.

  1. Observation: Typing formulas into a computer can be a frustrating task. Students continually omit the asterisk for multiplication, using 0.5at^2 instead of 0.5at^2 and parenthesis are often overused, with x=(x)+(v0dt)+((1/2)a*t^2) being common. Expecting the computer to follow the order of operations is not natural, with many insisting must be represented as 1/2a(t^2).

Why: The students lack previous experiences of using math as a useful problem-solving tool; their education up to this point has focused on studying math. The regular occurrence of this point demonstrates a lack of adaptability of our students to different technical environments (here, the computer).

Rectify: Watch for similar issues when students and their use of large-screen calculators, with which they have much experience with formula input. Suggest to students that the use of parenthesis (including balancing them) on a computer is the same as on their math assignments or calculators.

  1. Observation: The use of variables before they have been defined is common. Mixing variable types is problematic as well, such as the difference between vectors and scalars. Although students are quick to declare that vectors are quantities with a "magnitude and direction," they are just as quick to misuse this meaning, often declaring a force as a scalar, which would lead to a scalar acceleration when using a=F/m. This casual use of variables upsets the kinematic equations that expect acceleration to be a vector.

Why: Pencil and paper mathematics, where most of their experience lies, is extremely flexible in terms of the presentation of a problem’s flow, in what must explicitly be written and when. Computer programming is almost a diametric problem-solving medium.

Rectify: Modifications to software, where physics and math pedagogy are integrated into the programming language itself. In this case, the software should identify undefined variables or improperly mixed data-types and point them out, with associated text/tutorials about why what they are doing is incorrect.

  1. Observation: To most students, the computer is mostly a very personal communication and digital media hub. Sit down with a typical student at some point while they start up their laptop. In addition to questionably appropriate wallpaper, the last song or video will resume, and messaging apps will go crazy with alerts as they update. It might take a few minutes for the computer and the student to settle down, before work can begin.

Why: To most, the computer is a digital entertainment hub.

Recitfy: Put level-appropriate "challenging" problems in front of our students, that will show them that they will not always find efficient solutions "on the web somewhere" or with point-and-click software. At some point, software will need to be written to solve a problem.

POSTED BY: Tom Benson
5 months ago

I like the style of the course. Why did you use python only and post it on the wolfram community or did I miss something?

POSTED BY: l van Veen
5 months ago you didn't miss anything. I visit here from time to time and noted that it's a good place for a discussion on using computers in math/science education. I used Mathematica almost daily, but still like the idea of using some BASIC-language-style instructional materials.

POSTED BY: Tom Benson
5 months ago

Hello Tom:

I only read the first 2 chapters. I know well and respect your motivation. But…

“one cent” - Don’t we fear that the young kids will only be able to differentiate a polynomial using a machine? I have been known to worry that today’s young pilots can only fly the plane in auto-pilot mode (i.e. Buffalo incident some years back). Using a DSL* may not allow landing the plane safely in all conditions.

“one cent” - You very quickly cover loops and conditionals. Dr. Wolfram specifically asserts that this is not the place to start. In my mind there is some tension between these approaches, because I think of Cases[] as a loop and conditional. But I am still learning what functional is.

Anyways, thanks for trying to be part of the solution.

DSL: domain-specific language

POSTED BY: Aeyoss Antelope
5 months ago

Thank you for your thoughtful response.

On your first point about using machine derivatives. I get what you're saying and I hear you on the autopilot (I think that one has even crept into the Boeing vs. Airbus debate.) I'm just not sure what's better....rote derivatives by hand as "the lesson" or computer-based derivatives, with some other goal (graphing f vs f' perhaps?) as "the lesson." Long long term, the computer derivatives might be all they need. Again, I just don't know...

I am familiar with Dr. Wolfram's position on this...I read his blog and quite like his book "An elementary intro to wolfram language," but conditionals and loop are MY FAVORITE thing to put in front of beginners. To me they're the first step into programming and getting kids to see what a machine can do: make decisions and do something over and over again.

Yeah, and on your DSL comment: Lua is so vanilla, I think lessons learned in it are easily translated into other languages.

POSTED BY: Tom Benson
5 months ago

Group Abstract Group Abstract