Do you know a good and objective question/test to examine applicants for a scientific computing job?
(In fact, this test comes after the candidate passed an interview.)
1st) They need to be intelligent. (Edit, thanks for the words from Trent)
2nd) They would have to deal mostly with programming (C++ and Python, using scientific libraries), numerics and mathematics, but also with engineering and physics topics. Also, C-like or Fortran-like style is not desired... usage of O.O. concepts would be good.
The applicant may have access to compilers, tools, libraries and internet. The duration of the test should be no more than 4 hours.
Well, an easy problem is to ask someone to solve a simple ODE system using whatever libraries they wish to use. None of the libraries that I know of are straightforward enough that they can be learnt during the test. For example, solve this system for x=1:10
: dx/dt = -k (x^2/x)
.
A tougher one is to ask someone to solve a stiff ODE system. Here, the choice of algorithm becomes important and a 'guess' probably won't work. For example, most Michaelis-Menten equations are stiff.
dS/dt = - vmax * S/(Ks + S)
where dS is the rate of substrate depletion and vmax and Ks are constants (that you can give the candidate). Choosing the wrong solver here leads to rather disastrous results, as I have found out first hand.
Neither problem is any good on its own, since pretty much anyone could solve either one by trial and error given 4 hours to solve it. But as part of a larger test, they might be useful.
EDIT: What does it prove? Well, ODEs are everywhere in scientific computing. If you haven't at least dealt with them cursorily at some point, it's a big hole in your knowledge. I've only tried to answer the question as asked. "What are specific questions to ask an applicant to a scientific computing job?". To solve the problem the applicant is going to have to know
1) Basic calculus.
2) Some sort of a scientific computing library (MATLAB, SciPy, GSL).
3) If the question is asked appropriately (for example, if they were asked to compute a rate of acceleration), domain knowledge (physics in this case) is also tested.
I think this checks all the boxes :)