Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Thoughts on Contests?
Index -> General Discussion
Goto page 1, 2  Next
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Saad




PostPosted: Sun Mar 23, 2008 3:47 pm   Post subject: Thoughts on Contests?

Programming Contests, in my opinion are misnamed and make for very bad coders, they are in fact algorithm knowledge contests. The actual code quality is not marked, rather its marked on if it works or not.

Programming contests make for very poor coding habits. This is due to the fact that contests have time limits. To finish in time all the bad coding habits are used:
- Lack of variable names - Contest code always consists of one letter variable names. This leads to a lot of of obfuscated code and only is readable by the writer and for a certain bit of time after which no-one has a clue
- Lack of thought into coding - This again is due to the time limit, we want to just start coding and try to get the program to work which is the exact opposite to what should happen.
- Memorization of Algorithms - Most contests problems are all based on certain algorithms. As a result people start to memorize algorithms since they always show up on contests. However in most situations these algorithms are not used.
You should be able to think outside the box for contests and come up with your own algorithms rather then just regurgitate them.

Also wtd makes a great point located here,
Quote:
As you take part in programming contests, keep in mind that the most important contest is with yourself: to constantly become better than you were before.

The worst programmer in the world would have a perfect formula for winning contests and use it again and again without change.


Now, I'm not saying that contests are bad in any way. However just realise that it leads to bad coding habits which should be avoided.

Comments/Different Opinions/Thoughts?, I want a discussion. Smile



Saad
Sponsor
Sponsor
Sponsor
sponsor
Mackie




PostPosted: Sun Mar 23, 2008 3:57 pm   Post subject: RE:Thoughts on Contests?

I've never taking part in a 'programming contest'. But I think it would be a good experience. I think that humans should mark the code, and only factor in the output when there's a tie.
zylum




PostPosted: Sun Mar 23, 2008 3:58 pm   Post subject: RE:Thoughts on Contests?

Quote:
You should be able to think outside the box for contests and come up with your own algorithms rather then just regurgitate them.


I would disagree with this point. Just because one knows how to do dynamic programing and recognizes that the problem they are doing requires dynamic programing, does not mean they simply regurgitate the algorithm... This may be the case for the easier contests such as DWITE, ECOO and CCC to some extent, but for the more recognized and difficult contests, this is not the case. For these, you require a considerable amount of ingenuity and thinking outside of the box.
Tony




PostPosted: Sun Mar 23, 2008 5:02 pm   Post subject: RE:Thoughts on Contests?

I'd love to have something more to the contests, but marking 100 submissions by hand is a bit too much. And DWITE is a fairly small contest.

Besides, it would be way too subjective. And it's difficult to compare programs done in different languages.

Although if there are ideas to change DWITE for better, I'd love to hear them as well.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
fishtastic




PostPosted: Sun Mar 23, 2008 8:47 pm   Post subject: RE:Thoughts on Contests?

I agree with Saad on some points

Programming contests does
-make a habit of using bad variable names
-using inflexible code structure due to time limit
-marked only based on work/not work (0%/100%)

also this years CCC did not have any interesting questions. In my opinion every question is a know it/ not know it questions. So people who memorized algorithms probably did better.

unfortunately there are no other ways of testing people's programming skill that can have a strict marking system. you cant give a 100% fair mark based on how good their code is.
Saad




PostPosted: Sun Mar 23, 2008 8:58 pm   Post subject: Re: RE:Thoughts on Contests?

zylum @ Sun Mar 23, 2008 3:58 pm wrote:
Quote:
You should be able to think outside the box for contests and come up with your own algorithms rather then just regurgitate them.


I would disagree with this point. Just because one knows how to do dynamic programing and recognizes that the problem they are doing requires dynamic programing, does not mean they simply regurgitate the algorithm... This may be the case for the easier contests such as DWITE, ECOO and CCC to some extent, but for the more recognized and difficult contests, this is not the case. For these, you require a considerable amount of ingenuity and thinking outside of the box.


I based that point on the contests I've done/seen (which are DWITE, CCC, ECOO, USACO, TopCoder), Top Coder I'd say is a great contest as like you said they do require thinking outside the box, however all the others, I feel have somewhat just the same algorithm (excluding ECOO, since it has some rather interesting questions that don't involve any algorithms discussed normally). However seeing as you've had more experience with contests, I'll agree with you there.
McKenzie




PostPosted: Mon Mar 24, 2008 8:45 am   Post subject: Re: Thoughts on Contests?

Computer contests are like so many activities that approximate something else. Boxing is not "real" fighting, debate is not a "real" argument and Computer contests are not "real" programming. There is a game element to programming contests. The fact that certain algorithms are over-represented is a game, that fact that there is no concern for things like the development life-cycle is a game.

Even though boxing is not "real" fighting, I wouldn't want to try my luck with a good boxer in a back alley. Computer Contests may not be real programming but the activity approximates it close enough to say that the guys with the best contest scores are probably great programmers, and that's been my experience as well.
A.J




PostPosted: Mon Mar 24, 2008 10:40 am   Post subject: Re: Thoughts on Contests?

Saad, I know that you started this forum as a way to tell me to stop doing contest practice questions.....
but I DON'T memorize algorithms or just use them from my memory.......I actually think.....
but I would agree that most people (including me) have obfuscated code. I also agree that contests usually DON'T define how good a person is. Your programming skills and your level of finesse are defined by your experiences/your knowledge in various subjects/topics. Most people don't just memorize algorithms eventhough it seems like they are. They in fact try to recreate the respective algorithms with every question they tackle.
Sponsor
Sponsor
Sponsor
sponsor
Saad




PostPosted: Mon Mar 24, 2008 11:02 am   Post subject: Re: Thoughts on Contests?

A.J @ Mon Mar 24, 2008 10:40 am wrote:
Saad, I know that you started this forum as a way to tell me to stop doing contest practice questions.....


This topic was not directed towards you, I'm sorry if you thought that. These were rather some thoughts I had and I wanted to see what other had to say.
A.J




PostPosted: Mon Mar 24, 2008 11:09 am   Post subject: Re: Thoughts on Contests?

No offense taken Wink
but I still say that people don't just memorize algos.
CodeMonkey2000




PostPosted: Mon Mar 24, 2008 11:22 am   Post subject: RE:Thoughts on Contests?

Meh, I like to do my own thing, as it strengthens the creative process.
fishtastic




PostPosted: Mon Mar 24, 2008 12:41 pm   Post subject: Re: Thoughts on Contests?

A.J @ Mon Mar 24, 2008 10:09 am wrote:

but I still say that people don't just memorize algos.

when you do a contest, you DO use (or develop on) the algorithm you memorized.

no one figures out all the algorithms they use by themselves.
what is important is the understanding of algorithm.
you can memorize the algorithm after understanding of it.
Mackie




PostPosted: Mon Mar 24, 2008 12:49 pm   Post subject: Re: Thoughts on Contests?

fishtastic @ Mon Mar 24, 2008 12:41 pm wrote:
A.J @ Mon Mar 24, 2008 10:09 am wrote:

but I still say that people don't just memorize algos.

when you do a contest, you DO use (or develop on) the algorithm you memorized.

no one figures out all the algorithms they use by themselves.
what is important is the understanding of algorithm.
you can memorize the algorithm after understanding of it.


I could argue that. While knowing an algorithm could help you do something faster. Coming up with your own algorithm is not only possible, but it happens all the time. How can you claim that no one figures it out on their own? Not saying A.J does, I'm saying some people do.
A.J




PostPosted: Mon Mar 24, 2008 1:12 pm   Post subject: Re: Thoughts on Contests?

Mackie wrote:

Not saying A.J does

Hey, what's that supposed to mean Question

anyways, I agree with Mackie. I am not saying that people come up with the algorithms, but I am trying to say that they don't MEMORIZE them. They merely understand them enough to implement it themselves.
r691175002




PostPosted: Mon Mar 24, 2008 3:33 pm   Post subject: RE:Thoughts on Contests?

IMO While programming contests are not at all similar to real coding, they improve your ability to code by a lot.
While yes, they involve writing what boils down to unmaintainable garbage, I have never brought any of my bad habits into real projects. Programming contests are not focused on testing your ability to write pretty code, they are focusing on your logic skills.
Most of the time you don't know all the algorithms by heart, but enough about how to solve similar problem that you have a pretty good idea of how to solve it.

I know for sure that I became a better programmer by learning about algorithms and problem solving. While it may not be something that comes up in everyday programming, when it does it will help a lot. I also found that it gives you a different perspective when approaching problems.
Display posts from previous:   
   Index -> General Discussion
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 2  [ 30 Posts ]
Goto page 1, 2  Next
Jump to:   


Style:  
Search: