MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mathematica skill level snippet(s)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg104681] Re: [mg104666] Mathematica skill level snippet(s)
  • From: Leonid Shifrin <lshifr at gmail.com>
  • Date: Sat, 7 Nov 2009 06:44:32 -0500 (EST)
  • References: <200911061017.FAA08128@smc.vnet.net>

Hi Virgil,

For general programming, I would pick some of the simpler problems from
sources like the following:

http://projecteuler.net/

http://langref.org/

and ask the students to solve them in Mathematica.

For  Mathematica specifically, in "Introduction to programming with
Mathematica" by Paul Wellin et al, there is a number of good and relatively
simple problems in the exercise sections. Perhaps other introductory
Mathematica books which I am not familiar with may also have some good
exercises. Some problems from the exercise sections of Michael Trott's
programming guidebook (or examples in the main text) may also do.

>From what comes straight  to my mind, some recursive or rule-based (or plain
procedural) implementations of things like factorial,  Fibonacci numbers,
GCD, sorting, merge sort, select according to some criteria,  binary search,
or some problems like computing primes (sieve of eratosthenes etc),
frequencies of say characters in a string, testing a string for a
palindrome, and the like should give a good idea of students' ability. I
only mentioned programming problems since they are field - independent to a
large degree. For computational ones I would guess that any good multi-step
calculus problem done (say both analytically and numerically) entirely in
Mathematica will do what you need. One thing I would definitely do is to
separate programming and computational assignments and test these skills as
independently as possible.

But I have a strong feeling that most of the students will ordinarily have
the biggest
difficulty simply with getting the syntax right and being able to
explain/correct the unusual output (I certainly had this difficulty for
quite a long time myself). I am not even sure that this has so much to do
with the programming proper - rather with the (relatively complex for a
newbie) evaluation process and symbolic nature of Mathematica. Perhaps,
tests like "predict the output" or "what is broken in this example", or "get
this to work" will be at least as useful as programming assigments  proper
(in Michael Trott's programming guidebook there are a number of such
examples, although perhaps many of them are too advanced for the average
student).

It also depends on how much of the core Mathematica programming language you
would like the students to use. If the projects are such that the procedural
subset of Mathematica is enough, and its value in this context is mostly in
a large number of ready-to-use built-in functions, it is one thing. If
patterns, rules and functional programming will be needed, it is another
story. If performance can be important / critical, this is yet another one.
I know that some people end up creating a simplified framework of some kind
on top of Mathematica (sort of an API) to "isolate" their students from the
core Mathematica language, since mastering it  may take a course on its own,
and may not be directly relevant to the domain they are learning through
Mathematica (I personally don't like this option. If students are eager to
learn and are good in some other programming language, I would rather give
them a brief introduction to Mathematica at the beginning, and let them use
as much of the power of the language as they can. But I acknowledge that
often the "framework" way may be the right choice).

Hope this helps.

Regards,
Leonid



On Fri, Nov 6, 2009 at 1:17 PM, Virgil Stokes <vs at it.uu.se> wrote:

> I am a teacher and am often faced with the problem of how to determine
> the programming skill level for some of my students (3rd year
> undergraduates in Engineering and Physics). Knowledge of their skills in
> Mathematica can be very important for the design of student projects
> that require Mathematica.
>
> I would appreciate suggestions for small segments of Mathematica code
> (or perhaps a single segment of increasing complexity) that could be
> used to at least get an idea of their skills in Mathematica. You can
> assume they would be using Mathematica 7.
>
> All suggestions, examples, comments, etc. will be welcomed :-)
>
> --V. Stokes
>


  • Prev by Date: Re: remote kernel trouble
  • Next by Date: Re: How to make floating control elements?
  • Previous by thread: Mathematica skill level snippet(s)
  • Next by thread: Re: Mathematica skill level snippet(s)