00.Forums
Re: please help us improve imagine cup!
Started by BrianConte at 05-04-2006 6:11 PM. Topic has 12 replies.
  Page 1 of 1 (13 items)

BrianConte
BrianConte
Added: 6:11 PM on 5/4/2006

hi all,

we're starting our planning for imagine cup 2007, and could use your help.

our goal is to continue making imagine cup an amazing experience for students, and in particular to provide a competition which is challenging, enriching, fair, and fun.

of course we have been listening to all of your feedback in the forums, and are taking that into consideration in our planning.  but at this point we're looking for overall feedback and suggestions too. not just about the algorithm invitational, but all the invitationals, the web site, the format of the competition, and how we present it. how can we make imagine cup even better for you?

thanks in advance for your help!

brian



Meph
Meph
Added: 5:58 PM on 5/5/2006

 

     T-shirts !



blue_award
blue_award
Added: 9:16 PM on 5/5/2006
 Meph wrote:

     T-shirts !

I do agree so much!



TPReal
TPReal
Added: 3:20 PM on 5/6/2006
Herbert :-)


yueq
yueq
Added: 12:40 AM on 5/7/2006
I prefer Round1 of IC2005 while not what is of IC2006.

teamzulu
teamzulu
Added: 1:24 AM on 5/7/2006
A Microsoft person to answer questions in the short film forums :). There really needs to be a POC (Point Of Contact) for each invitational. For us over in Short Film we get answers from Microsoft people occasionally, but usually all of us speculate about what the answer is and we don't get official answers. And we don't know who is even in charge of running Short Film :). Any help is appreciated. Thanks,
                   -Scott


Scott Lynch
TEAM: LDLC

http://www.cardboardboxfilms.com


andrewpost
andrewpost
Added: 4:14 AM on 5/24/2006
Specifically in regard to the algorithm competition, I would like to explain why as an avid competitor in round 1, I was turned off by round 2 to the extent that I did not attempt a solution. Round 1 was to me, in every way a good measure of competitive algorithmics -- a simple system was described, the building blocks of the language were fairly easily apparents (although the ability to pass code as a variable did escape a few of us for some time), and there was room to find a better solution than anyone else in the world could through creativity.

Round 2 on the other hand represented a great number of things that seemed contrary to the type of competition being held. First of all, competitors were required to familiarize themselves with a potentially new fully fledged high level programming languange. Not all competitors are programmers, and even though I will be graduating with a computer science degree as well, my collegiate focus has been on my mathematics degree, and having to develop not only an optimized algorithm, but also to develop an optimimum implementation of this algorithm in a coding language I had no prior knowledge of, seemed daunting and unpleasant. I recall complaints in the forums about previous IC take home coding challenges, pertaining to how programs which utilized some lower level access to I/O functionalities (or some similar deconstruction of the language), had a competitive advantage, was to me very much and inhibitor towards competing in round two. Now, whille I may be willing to use a program developed in a microsoft environment for the competition, being required to learn the inner workings of a product I have no external need to familiarize myself with, is distasteful to me.

Furthermore, we competitors are all undergraduate students, with our own impossibly varied time constraints and responsibilities towards curricular goals, which ultimately have to supercede our extracurricular goals in this competition. I cannot expect the organizers of this event to try and coordinate the competition dates around the academic schedules of ever campus in the world; however powerful microsoft may be, the task is impossible. But while in Round 1 you needed to dedicate maybe 50 hours to make it into the second round, this was simply because all the other competitors were able to raise the bar to the level where it is unlikely that you could overtake them in a relatively short amount of time. In Round 2 it seemed to be assume that no amount of inspiration would account for more than 5% of your process, the rest left to perspiration in testing your algorithm against an array of sample cases, and building large charts of comparative code analysis to determine which method calls were the least time-intensive. This sort of time commitment precludes our ability to pick who among the competitors are the best at designing algorithms, but rather who is best at engineering algorithms.

Although I would not dare to say that the people who have won this round are not very likely the best designers of algorithms as well, but I do contend that this sort of second round is using a criteria of selection dissimilar to what seemed intended -- a student with a great deal of free time on their hands could build a solution better than nearly anyone else in this round, regardless of the ingenuity of the other competitors. With herbert, at least I was assured that a competitor unable to figure out that in level 48 you needed to split each iteration of your walk in the middle of a straight line, rather than at a rotation, they could not best my score on that level no matter how long they tried. In round two, a beautifully optimized algorithm would still be worthless without a thorough understanding of the processor costs inherent to each type of method call or data reference.

I loved the competition, and the problems that were concocted for our enjoyment were very beautiful and intriguing, but I really just could not bring myself to embrace the method of assessment and development required for round 2, and I fear that I may feel the same way if I make it to round 2 next year.


BrianConte
BrianConte
Added: 5:09 AM on 5/24/2006

thanks for all the great feedback. this is really helpful.

i do want to make one comment regarding how important optimizing for time was. you say

"In Round 2 it seemed to be assume that no amount of inspiration would account for more than 5% of your process, the rest left to perspiration in testing your algorithm against an array of sample cases, and building large charts of comparative code analysis to determine which method calls were the least time-intensive."

while it may be true that some people spent inordinate amounts of time optimizing their implementation at this level, i am not sure this was really justified. in the end, timing accounted for less than 2% of the scores (in aggregate). 98.3% of the scores came from the number of moves, and so minimizing moves was by far the most important thing, and this is a function of algorithm, not implementation. i know some of the leaders spent quite a bit of time writing their own classes and methods to optimize their running time, but honestly if their implementations took even twice as long it would not have had a material impact on the standings. put another way, no amount of time optimization would substitute for a true "inspiration" which minimizes the move count.

just food for thought. i do hope you consider participating in future similar competitions.

brian



VladOne
VladOne
Added: 6:34 AM on 5/24/2006

Being the first year in which I competed in IC, I want to say that Herbert was, by far, much more interesting and fun and as Andrew put it, a better measure of algorithmical thinking. H was just finding a pattern, coding it, and optimizing it and that was strictly algorithmics.

I was new to C# at the beginning of round 2 so I had a lot of trouble coding and debugging my solution. The truth is that, if MS wanted to promote their products, they did it, I really like the concepts, syntax and IDE of C# but it was frustrating using it in a competitive environment. I had the idea Psyho used in his solution of rotating the board so only the top border is checked but I couldn’t code it efficiently. And this is just an example of the advantage of experienced C# or VB users. Since rotating the board just eases coding and doesn’t improve moves the time it took for my program to that was equivalent to about 20 moves. I didn’t have the time to finish my better algo so I ended up using the pretty naive one I wrote the first week. Also, another thing I didn’t like was when Brian asked us how can the rules of Round 2 be changed after 2 weeks when, as I said, I had a solution ready for the problem and a couple of ideas. I think is the best example of bad organization. Bottom line is Herbert was much more challenging and fun.

 Microsoft Romania promised a book for the first 3 Romanian participants who enter Round 2. I was the first and till now I didn’t receive even a handshake :)

 Anyway, congrats to the winners and see you all here next year.



Psyho
Psyho
Added: 3:04 PM on 5/24/2006
I'll disagree with my previous speakers.

I was generally happy with problems given in those rounds.

About Herbert:
For me it's an interesting puzzle (like sudoku, griddlers, etc.) and IMHO all levels have been really good designed. The solution usually consisted of spotting pattern(s), and coding those patterns, which were essentially two different skills. The problem for the hardest levels was that usually patterns were not visible, so mostly it was sth like trial and error solving. My point is that in herbert scores depends mostly on time spent and not on skills/brilliance the competitor have. It was great for selecting top200, but it would horrible for selecting top6 - it would be too big time-consumer. Herbert is great because it doesn't require some prior knowdledge, but unfortunately it's simple (it tests only few skills).

About Protein:
This is really good NP-hard problem for people without knowdledge in advanced AI or algorithmics, because such knowledge doesn't give almost any advantage here (at least I haven't used anything advanced - only a couple of heuristics and lookahead). Excuses that someone haven't used C# or VS are really bad - there were lots of time (even between rounds) to learn it. Also VS is really good and intuitive IDE which you can use right from the start. And if you can code in c++, java or even pascal you won't have any problems switching to C#. And if you can't code and you are not willing to learn it then what are you doing in the algorithms competition anyway.

If someone spend 50 hours on herbert then it's really strange if he had not enough time on round 2, which needed much less time (unless everyone would have scores like pmnox or grey:) ).

Some things that could be improved in round2:
- like VladOne said, asking about changing rules after two weeks was bad idea
- SDK could be written in more efficient way, because there was too much speed boost with implementing our own board classes.
- going blind (with scores) for a whole month is a bit hard for people who doesn't have enough motivation (luckily I'm not one of them), I know that it's not an easy thing to do, but there's a lot of time to do this.

Also, this is my first time with IC and C# / VS :)

And few questions to Brian:
-How does the finals will look like (type of problems, testing environment like in round2, real-time leaderboard like in ACM)
-Is there a way to obtain problems from the last year finals