## Why We Use Mathematica in Our Research Courses

**Why We Use Mathematica in Our Research Courses**

By James H. Choi

http://column.SabioAcademy.com

Source Link

Any computer language can do what other computer languages can do. The only difference is the efficiency. (Think of shoveling snow with a tea spoon. It can be done, but not efficiently.) At the same time, there is no computer language that can solve all problems efficiently. (You can race driving a school bus, but not efficiently.) A modern day knowledge worker in science/engineering will end up learning multiple computer languages for multiple set of problems (A spoon for tea, a shovel for snow) over his/her career. No one can go through a modern career knowing only Mathematica, or any other **one** language alone. (You can have a sports car, but you need to drive a van when you move 12 people.)

Of many different and capable programming languages, many of them available for free, why does Sabio Research use the most expensive one, Mathematica? (Professional version is $2,495)

Here are the reasons.

**Overview**

We are neither choosing a final computer language, nor the only computer language the student will ever know. Here we are choosing the first computer language which will be used by pre-college students not only for science projects, but also through their college, graduate school and professional career working on many different types of work. In other words, we are choosing a computer language that can handle integral equations, differential equations, number theory problems, statistics, complex analysis, signal/image processing, optimization, graphing, visualization, 3D modeling, animation, physics simulations, genomic research, protein structure analysis, stock market prediction, environmental research, etc.

**Cost**

While it is true that Mathematica is $2,495, student version (with the same capability) is $65/year. But rarely students need to spend even $65/year to use Mathematica. Many math and science competitions (ARML, ISEF, KSEA) also provide free Mathematica license to the participants or winners.

Many academically advanced high schools, and most prestigious universities, and graduate schools provide Mathematica license for their students for free.

**Advantage over C++, C# or Java**

Mathematica is an interpreted language. (It can also be locally compiled for a faster performance) Thus, students can see the results of their command immediately and this will allow students to tweak the code endlessly until it works just right. Such trial and error learning (which is the most common way of learning a computer language) would take 10 times longer on a compiled language.

**Advantage over Matlab, Mathcad**

Mathematica is superior in pure mathematics, and has the largest number of built-in mathematical functions. There are many advocates of Matlab, but they are all users of specialized applications for which Matlab is a superior tool. Those advocates do not have to solve a wide array of problems as our students do. And also, Matlab advocates usually don’t know much about the functional programming (as opposed to procedural programming) and how much faster it brings one’s idea to reality. Here is an example of Matlab’s code (the topic was chosen by and the code was written by Matlab to showcase Matlab’s capability) and Mathematica code (written by Mathematica to show how Mathematica handles it differently). The result: Matlab’s 90 lines vs Mathematica’s 13 lines of code to accomplish the same thing. You can see how much quicker Mathematica user would have finished the job.

**Advantage over Python**

Mathematica is an environment (almost an operating system) as well as a language. Mathematica not only solves problems, but also is an mathematical/technical word processor. Students can think, try, tinker, solve, then write report all in one environment. Mathematica has a massive built-in library. Whatever functions students need, they are already available in Mathematica without having to link to a third party library. In Python, students have to look for a third party library of varying quality/reliability and must go through the process of linking them. Mathematica has everything students need, and it works out of the box. Here is a comparison result with an older version of Mathematica.

**Common (and incomplete) perception of Mathematica**

There are many people who think they know Mathematica. These people have used Mathematica to solve some math problems. They have entered a few lines of code at most (because usually that is all it takes to solve a math problem.) These people are not even aware of what Mathematica can do, especially in the latest version. If they have never written full fledged software using the latest version, whatever they know is too limited and obsolete.

One common complaint about Mathematica by software engineers is that Mathematica’s syntax is difficult to understand. What they really mean is that they don’t understand functional programming concept because their brain got already hardened with procedural programming in their formative years, i.e., they just could not get rid of the accent, or understand other languages.

**Conclusion**

Students should master one versatile and powerful computer language early on so that they can use it for everything they work on to get answers/results in minutes, not hours or days. Mathematica is ideal for that role. By mastering Mathematica, students can turn their idea to a proof-of-concept demonstration in a record time. Here is an example.For example, if students were assigned to solve a difficult problem using a specific language (Python for example) during their summer internship, they can solve the problem quickly in Mathematica first, impress the daylight out of the supervising professor with a demonstration, then proceed to port the algorithm to the target language of supervisor’s specification.Mathematica is the only computer language that is procedural (C, C++, Java style), functional (Scheme, Haskell style), and rule-based (Prolog style) at the same time. This versatility broadens the idea of what a “computer language” is supposed to be for the students preventing them from being pigeon-holed into the peculiarities of the first computer language they learn. This is similar to speaking with a thick accent, or unable to speak, in second and third human language they learn. Those who had Mathematica as their first computer language will understand functional or rule based programming concept later in their career.

It is important to remember that students are not yet software/electrical/mechanical engineers. In fact, they are still open to all possibilities. Students working in coursework, research, internship, science competitions never compete on scalability, security, objective-oriented-ness, execution speed of their code. They compete on ideas–the algorithm development–and they complete on the cycle time–how quickly they turned an idea into a working demonstration. Mathematica is the best tool for turning your idea to a living, moving, 3D demonstration in a record time.

Writing software to sell? Test the concept/algorithm in Mathematica then hire someone else to port the code to Java/C++/C# to commercialize their creation! Remember, in this modern economy, we don’t become a technology superstar by coding. We succeed by coming up with ideas that can be demonstrated to science competition judges, college admissions officers, professors and venture capitalists.

But rarely students need to spend even $65/year to use Mathematica should be changed to

But students rarely need to spend $65/year to use Mathematica.

This one, I prefer to leave it the way it was written. Thank you.

Many academically advanced high schools, and most prestigious universities, and graduate schools provide Mathematica license for their students for free.

to

Many academically advanced high schools, universities, and graduate schools provide a free Mathematica license for their students.

This one, I prefer to leave it the way it was written. Thank you.

Students can think, try, tinker, solve, then write report all in one environment.

to

Students can be able to think, try, tinker, solve, then write a report all in one environment.

“Can be able to”

???? Are you serious?

Students should learn math, not mathematica. It absolves the professor from teaching the actual mathematics of the problem.

Perhaps you should read the article before commenting. I was choosing a computer language.