Archive for the ‘Science Competition’ Category

Musicology Research with Mathematica 9

November 30, 2012 10 comments

Musicology Research with Mathematica 9

By James H. Choi
Source Link

Mathematica 9 has one important new feature that is not even mentioned anywhere in bold fonts.  It belongs to the “other” category of improvements that interests select few.  Well, I am that select few who have been waiting version after version for this feature.

This new feature is ground-breaking-ly for those who are interested in analysis of compositions.  For example, can you algorithmically recognize if a composition is by Bach?  Or more scientifically speaking, can you calculate Bach-liness score for a piece of music?

We know it can be done because, paraphrasing a Supreme Court Justice on an unrelated case: “We know it when we hear it.”

But there is the first obstacle.  How do we enter the musical score into the computer?  One can scan music scores and recognize the notes and rests.  That’s exactly what my student Hyunjoon Song did, and he won the 4th place at ISEF in 2011 with that research.  But, as his mentor, I know what he has done still needs a great deal of improvement before we can start scanning scores of different sizes/fonts/styles.

What is more intriguing is that most of classical music pieces are already in computer readable format called MIDI (Musical Instrument Digital Interface) file format.  In other words Book↔Text File and Music↔MIDI file.  Every single note’s pitch and duration will be ready to be analyzed by your algorithm if you can import MIDI file.  “If” you can import, that is.

Mathematica has been able to export into MIDI for some time.  That’s how Hyunjoon Song above exported the result of his musical score recognition into MIDI and used a common media player to play it for the judges.

With Mathematica 9, finally you can import MIDI files:

This opens a wide gate for many research topics for those who are passionate about music and science at the same time.

Do you want to teach computers to measure your favorite composer’s greatness?  Now you have all the tools.  All you need is your insight and ability to teach the computer to act on your insight: algorithm programming.  The best tool for it is now clear.  It is Mathematica 9.

Korean version: Mathematica 9으로 하는 음악 연구

Science Competitions: Team or Individual?

November 27, 2012 1 comment

Science Competitions: Team or Individual?

By James H. Choi
Source Link


Many science competitions, such as ISEF and Siemens, let you enter as a team or an individual.   In case of Siemens competition, you must enter as a team unless you are a senior.  Neither competition restricts who your teammates can be; they could be from different schools and different ages.

So how should you enter?  Below are the pros and cons of entering as teams or individuals.  After reading these, you’ll have to decide for yourself.

Team Pros:

  1. You get to hang out with your friends.  This is an obvious benefit, but the trick here is that no matter how much you enjoy working together and feel like you work well together, the competition isn’t how much you enjoyed.  It’s decided based on your research results.
  2. The sum of your combined skills might be greater than your individual ones.
  3. Teamwork is superior when each of your strengths are complementary.  If two people know exactly the same thing, there’s no reason to join the force.  One exception is if the research is so great that you need more hands on a team to simply finish the menial work, but this is unlikely in a science competition.  You could also hire someone to do the menial work such as cleaning up, or moving equipment, especially if there would be no point to add this person to your team officially.
  4. A selfish reason: If you don’t know anything about anything, you could fetch a free ride to glory on the backs of teammates who know a lot.  If a team leader offers you an opportunity like this, by all means get on the bus. Cons:

  1. But if you aren’t careful, free riders might get on your bus.  You end up doing all the work while others sit around chatting or don’t even show up.  You won’t have many options in mid course; it is important start with the right team.
  2. Science competition judges expect teams’ work to be higher quality.  It is not our instinct, it is how we are instructed to look at team projects.  When I judge at ISEF, often I see that team work that could have been done by just one person.  When only one member of the team answers all my questions while free-rider-looking members standby smiling, then my suspicion deepens.  The “teamwork” category counts as 20 percent of the score.  These free riders just cost you at least this 20%.  Teamwork being no superior to individual work will also cost you unspecified points at the whim of the judges.
  3. The more people you have, the less likely you’ll find a common time and place you can all meet and work together.  The sheer logistic nightmare could drag the project down.

I recommend first-time competitors start on their own to build these skills. Running into your limitation is a good way to know what they are, and to determine whether you should make up for it, or outsource it.  Great teams come only from great, self-sufficient, experienced students working together.  Team up with someone only if you see a clear gain only for yourself, and know the person either through some vetting process such as car wash, or through a long friendship.  Don’t worry about the others because they wouldn’t join you unless they also see clear gains for themselves.

Categories: Science Competition

Why We Use Mathematica in Our Research Courses

November 13, 2012 8 comments

Why We Use Mathematica in Our Research Courses

By James H. Choi
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.


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.


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.


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.

My Suspicion About Weather Reports

March 16, 2012 2 comments

My Suspicion About Weather Reports

By James H. Choi
Source Link

Mark Twain famously said, “It is hard to predict — especially about the future.”

Of all people who get paid to predict the future, weather forecasters are the most vulnerable because–compare “Someday the world will end” type of predictions– their predictions are routinely confirmed or falsified.

Perhaps because of it they never seem keep records of what they predict.  Who would want to announce to the world how wrong you were, after all.

Modern “Chaos Theory” explains to us why long range weather forecast is impossible–because it depends on too many subtle, unmeasurable factors from all around the glove: called “The Butterfly Effect.”

Even though many weather services predict 10 days in advance, I was told by these Chaos Theorists that we cannot know that far into the future.  Thus I doubt the weather will even barely resembles what was forecast when the 10th day arrives.  If the forecast was accurate, I believe it was by a random chance, also known as dumb luck.

Forecasts require a lot of ground measurements and super-computer power to create.  I don’t believe every station broadcasting weather forecasts owns such resources.  (And if they did, what a waste.)  So there must be a few central forecasting agencies behind the scenes supplying data for meteorologists in front of the camera.  But how many agencies exist?  Two?  Ten?  Which ones are better than the others?  Does one agency let most stations parrot its single forecast?  I so far haven’t been able to find reliable sources explaining these details. prediction or forecast is dubious if they don’t specify their error ranges.  A 10-day forecast should have a larger error range than a 12-hour forecast, yet each of these has its own single-number high and low predictions with no error reported, no plus minus something.  The meteorologists must know the error range, yet they don’t release it. Why?   Perhaps this is because the error can be so large.   So large that it is useless, i.e., the high will be between 20°F to 106°F, and the low will be between -10°F to 92°F.

There is another thing that makes me curious.  Most countries have their own governmental meteorology departments that derive the weather predictions.  They get paid to do so, so regardless of accuracy, the departments must produce these forecasts.  I wonder whether these departments simply copy what other countries say their weather will be — many countries’ departments do post international forecasts, after all — or if it is the other way around.  Does one country’s meteorology department produce its national forecasts and just reprint international forecasts from the relevant country’s meteorology department?

We all rely on these forecasts, but I don’t think I’m the only one so in the dark about the mechanisms behind them.  So I’ve decided to get to the bottom of this.  I’ve assigned a research project to students in my SR90 course requiring them find all about this mystery.  In addition to finding all weather forecasting agencies, they are to record 10-day forecasts from various web pages and the actual temperatures 10 days later for various cities.   We will track the performance of each to see how each one fares.

This project will be the first of SR90 because it requires no equipment; a web page access, and Excel will suffice.  Students will record data, analyze them, and graph them, then draw their own conclusions.  I’m looking forward to unveiling the Mystery of the Weather Forecast.

Protected: How to win at Regional Science Fairs Part 3

March 3, 2012 Enter your password to view comments.

This content is password protected. To view it please enter your password below:

Categories: Regional Science Fair
%d bloggers like this: