Stories
Slash Boxes
Comments

News for nerds, stuff that matters

MATLAB Programming Contest Winner Announced

Posted by timothy on Sat May 21, 2005 08:54 PM
from the cigars-all-around dept.
gooru writes "The MATLAB programming contest winner has been announced. It is a semi-annual programming contest organized by the MathWorks. What makes the contest truly interesting is the final phase is open source. Contestants may submit as many entries as they want and can tweak other entries."
This discussion has been archived. No new comments can be posted.
Display Options Threshold:
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • MORTAL MATLAB (Score:4, Funny)

    by Anonymous Coward on Saturday May 21 2005, @09:04PM (#12602601)
    The next contest should be to the death. Execute those who fail it. There can only be one. Then we'll see some real open source programming.
    • Re:MORTAL MATLAB by Practically Alive (Score:1) Sunday May 22 2005, @11:33AM
    • 1 reply beneath your current threshold.
  • contests... octave.. (Score:5, Informative)

    Contests are a great and relatively cheap way for companies to attract attention.

    While your attention is drawn to the non-free matlab, may I also point out Octave, the open source alternative freely (libre, beer) available on your machines.

    On debian, apt-get search octav to see octave and extensions. Don't forget to install the additions octave-forge, etc. to get near-complete matlab equivalence. In some ways, it exceeds matlab, in some ways, it doesn't. And it is very compatible with matlab.
    • Re:contests... octave.. by dunc78 (Score:1) Saturday May 21 2005, @09:22PM
      • Re:contests... octave.. by deego (Score:3) Saturday May 21 2005, @09:39PM
        • Re:contests... octave.. by deego (Score:3) Saturday May 21 2005, @09:52PM
        • Re:contests... octave.. by norton_I (Score:2) Saturday May 21 2005, @10:15PM
        • what? by mnemonic_ (Score:1) Saturday May 21 2005, @10:24PM
        • A lot of these items are FUD.
          1) You can choose any editor you want to write your matlab code. You just need to run it in octave. Since octave has a command line interpreter, you can show the result with any editor that can display the results of a run command (emacs will do this, too)
          2) Yeah...it has readline, but that's about it.
          3) Poster asked, besides being free...this is part of the price.
          4) Not true. Any code not written in C, which is a good many of the numerical algorithms Matlab includes, have available source so that you can integrate the algorithms into any finished products (Matlab is for prototyping).

          Other than that, you're asking for more than is really needed to extend the functionality.
          5) Octave has a code repository. If they like what you write they use it. In other words, you can contribute to Octave.

          6) Your fault/FUD. It took me about ten minutes.

          7) I didn't have to. More FUD? Obviously this isn't a universal procedure.

          8) I've never looked at my License file. I never track what it's doing. This has never been an issue.

          9) See issue #3

          10) Is this even a reason?

          11) See issue #4

          12) Obviously you don't have very good reasons. I will present some good reasons after we get through this.

          13) This is true of Matlab as well. Try typing "ls" in Matlab and see what happens.

          14) See issue #3

          Having said all that, let me tell you why you should be using Octave.

          The biggest reason is the free as beer thing. Matlab+ all packages needed is astronomically expensive. It's a big deal. We're not talking Microsoft-who-sells-to-consumers expensive - we're talking big-contractors-who-work-for-Engineering-firms expensive. It's kind of like the difference in price between Oracle and Postgres.

          However, SOMETIMES it's worth it. As an Engineering student, I've tried and used regularly Matlab's image toolbox, Matlab's neural net toolbox, and their symbolic toolbox, and compared it to the normal canned algorithms.

          Matlab is very, very good. They put an extra polish on every algorithm they write. In general, they're better written, and produce more clever results than anything else. Keep in mind that I was dealing with underconstrained problems, so the issues where matters of estimation. Matlab got more accuracy or faster convergence out of it's canned algorithms than you'd get if you wrote them straight from the descriptions supplied by the algorithm's authors.

          Having said that, it's quite likely that there are certain areas that Octave will probably eventually fall behind. Symbolic work is one, I think, since their symbolic toolbox is actually an interface to Maple's symbolic engine, which they rent.

          Maple doesn't have the manpower to compete with the OSS people writing computer algebra systems. IMHO, right now it's about tied. Three years ago Maple was ahead.
          [ Parent ]
      • Re:contests... octave.. by NoOneInParticular (Score:2) Sunday May 22 2005, @01:46AM
      • Re:contests... octave.. by IntergalacticWalrus (Score:2) Sunday May 22 2005, @05:41PM
    • Re:contests... octave.. by AnObfuscator (Score:2) Saturday May 21 2005, @09:26PM
    • Re:contests... octave.. by digitalhermit (Score:2) Saturday May 21 2005, @09:34PM
    • Re:contests... octave.. by BobKagy (Score:1) Saturday May 21 2005, @10:33PM
    • I don't really know that I'd push this by Sycraft-fu (Score:2) Sunday May 22 2005, @01:50AM
    • Re:contests... octave.. by samhalliday (Score:2) Sunday May 22 2005, @09:28AM
    • 1 reply beneath your current threshold.
  • by reporter (666905) on Saturday May 21 2005, @09:10PM (#12602631)
    Invariably, in contests of this nature, people are apt to draw specious conclusions from the results of the contest. In a recent programming contest involving teams of students from across the globe, the American teams performed poorly. Professor Matloff then rebutted the cries for government intervention to increase the quality and quantity of computer-science students [com.com].

    Now, this Matlab contest is positioned to lead to the same silly cries. So, allow me to present a link to Professor Matloff's excellent article [com.com] to head off any silly speculations about the decline of American technical prowess.

  • TLL280 in 13 seconds? (Score:3, Interesting)

    by Anonymous Coward on Saturday May 21 2005, @09:13PM (#12602649)
    I guess for their speed programming award they are allowed to have prior source. If this wasn't the case, the author would have written it at 393 characters per second!

    I'm beginning to wonder if this was rather some sort of PR effort rather than a true programming challenge.
  • I Always Write my MATLAB Open Source (Score:4, Interesting)

    by schestowitz (843559) on Saturday May 21 2005, @09:37PM (#12602744)
    (http://schestowitz.com/ | Last Journal: Wednesday December 07 2005, @01:31AM)
    All my MATLAB code is Open Source. And I am the most popular author (jointly with Luigi Rosa) this month. http://www.mathworks.nl/matlabcentral/reports/file exchange/top10Authors/ [mathworks.nl]
  • The Problem (Score:5, Informative)

    by HillaryWBush (882804) on Saturday May 21 2005, @09:46PM (#12602783)
    Imagine a sandbox in which there are ants, sugar cubes, anthills, and rocks. Ants like sugar: collectively they want to bring as many sugar cubes as possible back to their anthills before sunset.

    For this contest, you will write the control program that each ant carries with it. Ants, being so small, have some limitations, of course. Each ant can carry no more than one sugar cube at a time. Further, each ant can only see her local vicinity. Your program, which is run sequentially for each ant, knows only what that ant knows. Thus you must bring about the best possible global outcome based only on local conditions. The ants don't have any memory as such, but they can leave behind a chemical trail to guide themselves and others across the sandbox landscape.

    Your score is determined by how much progress you make moving food towards and into the anthills. Ideally your ants will move all the sugar cubes onto anthills. Practically this may not be possible; do the best you can. You receive credit even by moving one sugar cube one step closer to an anthill.
  • familiar contest with ants . . . (Score:3, Informative)

    by bodrell (665409) on Saturday May 21 2005, @09:47PM (#12602786)
    (Last Journal: Tuesday April 15 2003, @11:00PM)
    I read in Scientific American not long ago about using the (software) ant strategy to find a solution to the traveling salesman problem, or something in that family of problems. I think it was lumped together with swarm technology, but I don't have the magazine with me, so I can't be more specific than that. I do know that DNA "computers" have been used to solve such combinatorial problems. This sugar cube problem is very similar--no exact solution, but you can converge on something close to exact.

    Anyway, you want to find the shortest route that goes through n number of cities. I know in one variation of the problem you can't hit the same city twice, but I don't know if that constraint applied in this case. The ants leave a "pheremone trail" which evaporates after a certain amount of time. If the ants start out randomly choosing routes, but over time the routes with more software pheremone are reinforced, because the ant objects choose those paths preferentially.

  • Just how bad is MATLAB? (Score:1, Insightful)

    by Anonymous Coward on Saturday May 21 2005, @09:49PM (#12602792)
    Since we're talking about a *programming* contest MATLAB, just how horrible a programming language is it? I've been told that MATLAB's sole value lies in its large suite of libraries, because as a language it borders on the God-Awful. Some real horror stories: no true local variables, until recently each function had to reside in its own file, no way to create cyclic references (!!!) (resulting in only reference counting for GC or something), no general-purpose objects, much less notions like OOP, closures, and the like. The phrase "it makes FORTRAN look advanced" came up. Can someone elaborate?
    • Re:Just how bad is MATLAB? (Score:5, Insightful)

      by alphakappa (687189) on Sunday May 22 2005, @12:31AM (#12603331)
      (http://www.ecogito.net/anil)
      You have dissed the language while it is amply clear that you have never used it. However let me clear this up - Matlab may not have the advanced features of c/c++, but it is designed to be a prototyping language - something that will help you test your algorithms fast. You can write code that will solve your differential equations, or do some signal processing with just a few lines - working with matrices becomes extremely simple since you don't have to worry about coding the intricacies of matrix manipulation. It makes FORTRAN look retarded as far as usability and speed of coding goes. It is definitely not as fast as programs created in C/FORTRAN, but it's not the speed of the code that's the objective here -it's how fast you can write up some code.
      [ Parent ]
    • Re:Just how bad is MATLAB? by nicsterrr (Score:1) Sunday May 22 2005, @01:18AM
    • Re:Just how bad is MATLAB? by kotku (Score:1) Sunday May 22 2005, @02:11AM
    • Re:Just how bad is MATLAB? by mwfunk (Score:2) Sunday May 22 2005, @02:32AM
    • 3 replies beneath your current threshold.

  • When I last used Matlab, we used it just for the matrix calculator and, IIRC, it was free. When did it become a commercial product? Did I miss something or was just not paying attention back then?
  • MATLAB is cool (Score:1, Insightful)

    by Radio Shack Robot (640478) on Saturday May 21 2005, @10:20PM (#12602892)
    (http://www.radioshack.com/)
    I am an EE. At first I hated Matlab, because it's totaly matrix based, nothing like Fortran. But after actually implementing DSP techniques, I came to love MATLAB.
    • 1 reply beneath your current threshold.
  • more alternatives to matlab (Score:2, Insightful)

    by poincare (63294) on Sunday May 22 2005, @01:28AM (#12603473)
    (http://darin.csua.org/)
    Many have been pointing out alternatives to matlab, so strictly speaking this is 'redundant', but not all have been mentioned:
    • Octave [wikipedia.org]
    • numeric python [wikipedia.org]
    • R [wikipedia.org] (awesome statistical package also does matrix stuff well).
    • Perl Data Language [wikipedia.org], commonly used by astronomers, much like the rest of perl in that it's difficult to wrap ones head around but capable of extremely powerful (i.e. terse) code.
  • by roskakori (447739) on Sunday May 22 2005, @01:38AM (#12603503)
    From the article:
    As noted, the unusual feature of this contest is that contestants submit code that is immediately scored, ranked, and displayed for all to see. In fact, as with the "Edit this Page" button on a wiki page, the contest is specifically designed to encourage participants to steal each other's code.

    I found it interesting that "steal" is used without any negative meaning. It's merely a shorter word for collaborating.

    Consider that right now we are told regularly that all kinds of reasonable activities (p2p, using patented software algorithms, making backups of things we paid for, ...) are "stealing". The intention would be that stealing is a crime, and hence these reasonable activities need to prosecuted and what not. However, if a culture emerges where stealing means collaborating, this represents a major backlash for the copyright cabal.

    I know, it's just words, but still...

  • by cahiha (873942) on Sunday May 22 2005, @02:38AM (#12603653)
    This is a pretty typical abuse of open source by a commercial company. Not only is MATLAB hugely expensive, in addition, while they make money on platform sales, they want other people to develop free and open source software for their platform to make it more valuable.

    In fact, the only thing that has made MATLAB valuable is that it is in widespread use and that everybody develops add-ons for it. As a numerical programming environment, it is technically considerably worse than available alternatives, both commercial and free.

    Don't waste your time doing free work for MATLAB (or other arrogant companies like that). The same amount of time and effort would have been better spent contributing to one of the open source MATLAB alternatives, like Numerical Python [python.org] and Scientific Python [scipy.org].
  • MATLAB serial key cracker (Score:4, Funny)

    by julie-h (530222) on Sunday May 22 2005, @04:02AM (#12603863)
    (http://slashdot.org/)
    I submitted the algorithm that MathWorks uses for generating the MatLab serial key.

    It have a user friendly gui and everything, so I had hoped it had a chance.
  • by StarsAreAlsoFire (738726) on Sunday May 22 2005, @04:03AM (#12603866)
    Do we get rewarded for showing how crappy MATLABs code is?

    For instance, their use of the single letter global variable (g, I believe it was) in one (or more) of their ODE solvers?

    beh. MATLAB is like crack; as soon as you start using it you know you should take the time to find a *real* solution to your problems... but really, it is far easier to continue on down the path you are on...

    No offence meant to the uber geniuses who create the algorithms. But that wouldn't generally be the folks at MATLAB, and when so, they (I hope) aren't the guys making it into crap code.
  • by ezdude (885983) on Sunday May 22 2005, @09:43AM (#12604822)
    This is not necessarily a bad thing, however. As an engineer, I use MATLAB (academic license) almost every day because it lets me solve the problems I care about, without having to worry about programming too much. There are many of us out there who are "literate" programmers, and took those courses in college, but as we get older (and have real responsibility), we just want programs that work and solve the problems we need to solve. That is what MATLAB is about. It's not about garbage collection and stack management. If that's your bag, then you need to stick to C or assembly, I guess. Having said that, I think a MATLAB "programming" contest is a bit silly.
  • by Stankatz (846709) on Sunday May 22 2005, @11:09AM (#12605202)
    This contest is bizarre. You're allowed to take someone else's code, make a few trivial optimizations to it, and resubmit it. If the new code is a tiny bit faster, you win! What the hell kind of programming contest is that? That's like me taking a draft of a novel by a famous author, fixing a few typos, and claiming a Nobel Prize in literature. Are they trying to jump on the OSS bandwagon to seem more hip with the younger crowd?

    And the worst part is that, as far as I can tell, there's no prize money! No way am I spending hours racking my brain just to get a blue ribbon and help to advertise their product.
  • ICFP (Score:1)

    by sgauria (745173) on Sunday May 22 2005, @11:18AM (#12605253)
    Wow, the contest description is just like the ICFP contest. http://www.cis.upenn.edu/proj/plclub/contest/ants. html [upenn.edu] I would have expected something more matlab-specific.
  • Re:Down with MATLAB (Score:5, Informative)

    I do as much as possible of my work (bioinformatics) in Numerical Python [sourceforge.net]. It's really nice to have the power of a general-purpose programming language as well as a numerical feature set that has equivalents for nearly every special-purpose MATLAB function I've ever needed. YMMV.
    [ Parent ]
  • Re:Down with MATLAB (Score:4, Informative)


    > Maybe someone already has... any suggestions?

    Yes, octave.
    [ Parent ]
    • Try Sci-Lab (Score:5, Informative)

      by reporter (666905) on Saturday May 21 2005, @09:28PM (#12602710)
      Try Sci-Lab [inria.fr]. Its functionality is about 1 order of magnitude greater than that of Octave. Sci-Lab has an extensive library of signal processing functions that equal the capability of Matlab.

      I use Sci-Lab regularly. With Sci-Lab, I have no need to dole out bucks for the commercial version: Matlab.

      [ Parent ]
  • Re:Down with MATLAB (Score:5, Interesting)

    by Strontium-90 (799337) on Saturday May 21 2005, @09:26PM (#12602701)
    If you're doing symbolic work, then Mathematica is the program to go with. But if you're doing numerical linear algebra and either don't need the speed of C/C++/Fortran or don't want to deal with those languages, it's kind of hard to beat Matlab. One nice combo is Maple/Matlab. Maple can call Matlab for numerical linear algebra work, and Matlab can call Maple for symbolic work.

    Despite all of the people who complain about Matlab being unstable and using up resources, I've always found that running the command-line version of Matlab is fast and stable. The GUI version has some nice features, but they usually aren't essential to the work that I do.
    [ Parent ]
  • by Latent Heat (558884) on Saturday May 21 2005, @09:52PM (#12602801)
    After an entire semester introducing a framework to do certain numerical computations in Java, and explaining that most of the Matlab functions are implemented in Fortran, C/C++, and more recently Java and that Matlab is really just a way of scripting numerical algorithms written in those other languages, students go off and do their semester project in Matlab.

    Matlab is the Visual Basic of numerical computing -- a hodge-podge of grafted-on features. Yes, it gets a job done, yes it promotes code reuse because of the extensive numerical and graphing libraries, but as a "teaching language" it is weak on important concepts, and it is proprietary as all anything, turning engineering colleges into trade schools for MathWorks. And once engineering students glom on to it, you cannot, just cannot get them to use anything else.

    I don't care if they implement a numerical algorithm in C++ or if they implement a numerical algorithm in Java -- both of those languages are pretty much callable from anything else on a wide variety of platforms. Yeah, you can call into Matlab too, but is there a free runtime you can download like with Java? And any kind of numerical algorithm using looping instead of built-in vector operations is going to be dog slow, so it is useless for any "production" use (in an academic environment, production use is where you throw a problem at it that taxes the capacity of whatever generation computers you have -- otherwise it is a toy numerical problem where everything you can discover with it has already been done.)

    [ Parent ]
  • Re:open source? (Score:2)

    by NanoGator (522640) on Saturday May 21 2005, @11:15PM (#12603067)
    (http://www.ferion.net/ | Last Journal: Monday May 06 2002, @02:16AM)
    "open source code for a proprietary platform? I don't think so. I suspect RMS would call this sharecropping'

    Are you guys really that zealous about what OSS code is? It's a simple programming contest, not a web browser.
    [ Parent ]
  • An open source matlab contest is the same animal as if Microsoft held an open source Excel or Visual Basic contest... except that Matlab costs a lot more, and Mathworks tend to be a lot more evil in its licensing terms.

    Matlab costs about $3500... but at my work, somehow it costs $70,000 a year because of some weird ass licensing scheme matlworks sticks large government labs with. I've tired to convince my project that for that money it makes more sense just to hire programmers to add whatever features we need to octave and go tell mathworks to fuck themselves.

    Oh, and by the way... all of that money is still not enough to get you bug reports noticed. For that you need to pay for some sort of premiere program.
    [ Parent ]
  • um.. i=0:1:10.
    Or do you mean address the first element with 0? Who cares if you start with zero, get used to it and move on.

    If you use Matlab in a Unix enviornment ^c works.
    [ Parent ]
  • by Zo0ok (209803) on Sunday May 22 2005, @02:00AM (#12603565)
    Theres an open source program called SCILAB that much resembles MATLAB. If you are to solve a problem from scratch in MATLAB, chances are you can successfully use SCILAB instead. You'll be amazed how mature and flexible the product actually is.

    On thing sucks... the syntax is different from MATLAB. You cant use MATLAB "scripts" without heavily modifying them first. Curly brackets, or braces around vectors? Spaces or commas between vector elements? You have to find out and reprogram your brain ;)

    SCILAB is available debian package. In gentoo just run "emerge scilab". I dont know about other distros, or BSD.
    [ Parent ]
  • Re:open source? (Score:2)

    by XMunkki (533952) on Sunday May 22 2005, @03:55AM (#12603840)
    (http://www.xmunkki.org/)
    Actually does it really matter if the platform is open source or not? The point in this competition was that you'd get the best result. And by making all the competitors show their solutions to others, they are effectively helping each other out. In the competition. I think the term "open source" makes people jump too much sometimes and expect too much. It's still okay to use and make open source software for the Windows, right?
    [ Parent ]
  • 16 replies beneath your current threshold.