No US College In Top 10 For ACM International Programming Contest 2013
michaelmalak writes "The annual ACM International Collegiate Programming Contest finished up last week for 2013, but for the first time since its inception in the 1970s, no U.S. college placed in the top 10. Through 1989, a U.S. college won first place every year, but there hasn't been one in first place since 1997. The U.S. college that has won most frequently throughout the contest's history, Stanford, hasn't won since 1991. The 2013 top 10 consists entirely of colleges from Eastern Europe, East Asia, and India."
Can someone draw us a diagram that explains the submission?
. . . we're still number one in obesity, right?
. . . and . . . how come I never get those programmers when my company outsources . . . ?
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
So what? I don't see any of those schools being real power houses of innovation either.
No skillful CS student would go to such a thing.
"Skillful" CS students are nothing more than code monkeys.
This programming contests have nothing to do with real world programming or the skills need for most CS fields. Certainly, these are fun algorithmic challenges, but the timed nature of these contests encourage quick and dirty solutions that have no place in the real world. Creating new algorithms and other kinds of CS research requires a lot of attention to performance, scalability and correctness that aren't tested by these contests.
Okay, maybe those High Performance Trading guys want crazy quick complex code that nobody can understand, but that's kind of the problem, is it not?
Agreed, it really is a shame that they dropped Fortran and Pascal.
who needs skill? we are the worlds mafia bully who spies on their email.
Cause or effect?
Questions raise, answers kill. Raise questions to stay alive.
Where's Caltech?
Agreed, it really is a shame that they dropped Fortran and Pascal.
What??!??
Questions raise, answers kill. Raise questions to stay alive.
All programming languages should be allowed. If I can't at least program in haskell, it's not worth it. And most good programmers probably think the same.
College might be considered a waste of time by the best programmers.
Another possibility is that the very clever are washing out of school before they even get to college. I once saw a study that suggested (not proved) that something like 20% of high school dropouts in the USA might be gifted.
In my experience most of the attention in public school goes to those that are ultimately ineducable. Gifted students are just expected to be fine without help. If they dropout, though, they're less likely to be programmers at a university.
Why is it that whenever another country beats the US in anything that is perceived as good, their achievement is somehow not relevant or "they had it easy" or som slashbot has an funny anecdote that he thinks disproves the whole claim?
Why is it that whenever another country beats the US in any metric that is perceived to be bad it's because they're socialists, "had it coming" or some slashbot has a funny anecdote that totally validates the claim?
And why is it that every time this type of bullshit assumption of american exceptionalism is called out, it's always "america bashing" or some such trope instead of an argument on the merits of the claim?
A contest that is limited to only C/C++ and Java is a disgrace to humanity. No skillful CS student would go to such a thing. This is completely ridiculous. Either pen and paper, or allow languages that are not among the very worst languages of the planet.
So... What language would you suggest?
Ada? Bash? Basic? BCPL? Brainfuck? Cobol? C#? D? E? Fortran? JavaScript? Ksh? Lisp? Malbolge? Perl? Python? Rexx? Tcsh? Whitespace? ...
I once saw a study that suggested (not proved) that something like 20% of high school dropouts in the USA might be gifted
I would have thought it was closer to 80%. You have to be pretty smart to see the writing on the wall as a teenager.
The article misses a few key points. A US team won every year until 1989 because it wasn't really accessible outside North America until after then. When the New Zealand team won in 1990 (the first winners outside the US), they had to compete in the California regional, IIRC, despite living on the other side of the world. It only really properly expanded internationally after IBM first sponsored it in 1997 - probably not coincidentally, the last time a US team won. It's also important to note that certain countries (such as Russia and China) take this competition VERY seriously, training people for years exclusively for this competition, so it's not surprising that they dominate it. Trying to read anything into trends in the 'winning' countries is fairly pointless.
-A former world finalist
The programming contest is partly skill, but mostly rote memorization and practice, and if you get the problem set ahead of time or even just a tip on some algorithm to study (there are tons of potentially useful formula to memorize) then you have an enormous leg up on the competition. The countries that have excelled at the programming contest recently are ones that stress rote memorization and that have, by Western standards, rampant cheating.
Coincidence? Maybe, but I see a cheating scandal in ACM's future.
When my team placed 2nd in our region they actually added test data after the contest to invalidate one of our programs, moving us to 3rd place (we learned that the judges constructed new test data specifically to fail our program). They did this because my college placed 1st and 2nd in the region and the rules at the time sent the fist and second team to international, but only one team per college, so our region was only going to have one team. This was a long time ago, but I wouldn't be surprised to find out they have the same kind of "professionalism" today.
Maybe that's what happens when you start teaching Python as an introductory language instead of Scheme?
Also worth noting that you can study and practice for these competitions, there are books explaining good training routines. So it's very possible those countries just practiced harder for the contests.
"First they came for the slanderers and i said nothing."
So it's very possible those countries just practiced harder for the contests
Quite true. Another possibility is that 'those countries' won fairly.
Quite true. Another possibility is that 'those countries' won fairly.
I'm going to assume by "won fairly" you mean, "won because their universities are better than ours." Because I consider winning by practicing harder to be fair.
That's what the article seems to be worried about, are the CS programs in those countries better? As if I have any idea.
"First they came for the slanderers and i said nothing."
Just based on population, you would expect 0 us colleges in the top 10 pretty often. The fact that we do better than that should be a good thing if you consider the metric important (I don't).
My team won our site in this contest the one time I competed. We edged out the rest of the state, but got completely destroyed by Stanford where they actually practice. There is just a huge gap between the people who practice these contests and memorize all the kinds of problems and fast to type solutions compared to people who are regular coders that occasionally want to look something up, don't optimize for typing time, or think about the design for 30 minutes. As someone who put only a couple hours into preparing, I felt I did pretty well, but compared to a team that practices regularly, it was hopeless.
That said, the top people who do really great are very impressive: some of those problems employ mathematics I simply never got to, and being able solve so many such problems really is quite a demonstration of knowledge and skills. Its also a demonstration of spending a ton of time polishing speed coding and problem reading and memorization, which seems like a total waste to me though.
There is just one Indian college in that list at position 60. Indian universities are equiped to mass manufacture programmers for IT industry, not for creating star programmers.
Quite true. Another possibility is that 'those countries' won fairly.
Don't be silly. The only way americans ever lose is if the contest is rigged or irrelevant!
Or better, it _is_ already lazy. I have done some competitive programming while studying, but it was a small group of students in a special elective course and only 6-7students in it. I already was a PhD student at that time and not taking the course, but I knew the professor doing it and he had told me that he was setting this up and also participating himself. Ended up being 1st until the professor and another student started "cheating" by using inline-assembler ;-)
Still, even in this specialized, elective course, only half of the student put any real effort into it. That is not good. Programming is something you need to be able to do reasonably well if you do anything advanced in IT, or you will never be any good at it. Historically, the west did protect its economic advantage by having better infrastructure, machinery and materials, but that is over. Any bright person with at least slow Internet access, reasonable English language skills and an older computer with Linux or one of the xBSDs on it can compete now on a world-class level, geography has become pretty meaningless. Or rather, being in the west is a disadvantage due to a pervasive sense of entitlement. Personally, I think this is a good thing. Competing on merit only is the only working way to identify talented people.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
This article is full of shit. MIT placed 0x0E.
I don't think "most good programmers" are that obsessed with their pet programming language, no. All the Haskell programmers I've met know their way around both C++ and Java, and wouldn't pass up on a fun challenge over a minor quibble like that.
If any of them were, they're probably not in college anyway, since most courses don't allow you to submit your homework in any language you choose.
I don't think this is a matter of lazy or stupid. There are smart people all over the world. Finding them is the problem. Also, the US thrives because of smart people, so why not give incentive to the special ones to come over?
That's what the article seems to be worried about
Damn! You got me.
It's "fascinating" that St Pete schools make the top 5 twice. No team from England, France, Germany, or India? Hmmm...
University of Central Florida ranked 48, that's gotta hurt anyone outside of China, the former USSR, and whatever other teams didn't just say "hey I know some C, WTF!"
CS student that cannot program in C/C++ probably cannot efficiently use other languages as well.
Coding etudes
Derogatory statements? Which statements were derogatory to you?
If you're really that thin-skinned, you should get off the Internet. The questions were asked honestly and not intended as flame-bait, mr. Cynical. Look at comment histories here on Slashdot. Any time the Chinese space program is mentioned, they are painted as copycats and uncreatively following in the same footsteps as the US/USSR. Any time India is mentioned, Indians are painted as dumbass code-monkeys who work for peanuts. Any time Europe is mentioned, it's always in the context of financial crisis and how socialism is baaaaaaaaad because apparently it exposes you to the excesses of the US financial sector. Any time Russia is mentioned, it's always some mafia/oligarchy reference despite what they achieved.
And any time a contest is not won by americans, it's always because it's rigged or irrelevant.
And then there are thin-skinned kids like you who look for "US" in every comment and jump on any perceived slight on your nation.
Which of the Indian teams are represented? I see one at 60th...
Caltech DNS.
Cal Poly DNS
Berkeley DNS
Penn St DNS
Ga Tech DNS
but Central Florida University, of fucking ORLANDO showed up to play.
fighting wars to worry about silly things like education and healthcare
You simply can't program well in Java. And any programmer that has taste doesn't program in Java. They do it perhaps because they get very rich. It also depends how you define a good programmer. For me more than 99.99% of the programmers on sites like programmers.stackexchange.com are beginners. Most good programmers I know have at least a PhD in CS and/or earn 3-6 salaries of a average programmer. For instance Standard Chartered Bank hires a lot of good programmers and they all program in haskell.
Java itself is a crime against humanity. And C# is "java done right", the most pointless language on par with Java. The only language from MS that is not completely utterly garbage is F* the successor of F#. Also there is not a single OOP language where innovation happens right now. The field is completely dead. (If not show me a single current state of the art paper). One of the few innovations of OOP in practical terms was, that Erik Meijer ported Monads from functional programming to C# (LINQ).
At my university a lot of courses on programming, at least more than 50% of the courses let you choose your programming language. Also the first programming language a student learns is haskell. Also carnegie mellon adopted functional first in 2011 (don't know about right now). So in a way the requirement of Java (or C++) favors bad universities.
The biggest crime in humanity is that some universities still teach Java. At least teach OOP in Scala.
Which of the Indian teams are represented? I see one at 60th...
Irrelevant. What's relevant: if there's little need in the US (or any other country) economy for software people, it is likely there will be no winners from US in the ACM competition (or winning will happen only as an exception rather than the norm).
In a sociological context, one needs quantity to develop quality consistently over time (that is: it is highly likely the talents need nurturing by an existing culture in their field for them to reach their full potential; and this requires quantity).
Note that quantity alone is not sufficient for the quality to emerge - if in need for another example, you only need to look at the today's music
Questions raise, answers kill. Raise questions to stay alive.
If you're really that thin-skinned, you should get off the Internet
That works both ways, and since you're the one who started the whine thread, this will apply to you specifically, in this context. It's much easier to have a discussion when you preemptively rule out everyone who does not agree with you, but that doesn't add any value now does it?
But since you decided to start a thread, specifically to ask questions framed with sweeping statements about the mindset of everyone on Slashdot (we're nearing the 3 million UID mark), you are in fact trolling. A proper solution would have been to offer counter arguments to those individual posts that you seem to take offense to. For now, you're just a bigot calling everyone else a bigot. Big whoop - that has never been seen before.
... whatever
That's a huge difference. Programmers can program in C/C++, but of course would never do that if C/C++ is not the best tool to solve the problem at hand. You realize that a lot of universities teach functional first? Carnegie mellon adopted functional first in 2011 (don't know about right now). My university did that in 2006 with haskell. So in a way the requirement of (C/C++) favors bad universities. Let's say the requirement was you have to develop in Visual Basic on a windows machine in visual studio. Then, out of principle, a lot of students won't go. The same is true with the stupid C/C++ requirement. I mean John Backus told the world in 1972 that imperative programming might not be the best idea, and people still don't get it in 2013. That was 42 years ago! There is zero innovation going on in OOP at the moment in the academic world. That my first comment got voted down is just a symptom of how bad it is.
Allow all languages or none (pen and paper).
Americas brightest programmers are too busy figuring out how to get people to click on adverts or how they can leverage JavaScript to glean as much information about a user as possible.
between Google,Amazon,Yahoo is there anyone left ?
Most good programmers I know have at least a PhD in CS and/or earn 3-6 salaries of a average programmer
Yeah, I don't think you'll find many of those in a college-level competition.
You can say a lot of bad things about Java and C++, and I have probably said most of them, but they're perfectly adequate for implementing an algorithm and running them over some output. You have the utilities you need - structures, trees and hash maps, linked lists, arrays, priority queues etc., and methods to work on them.
If you can't do a straight-forward implementation of an algorithm in either of those languages, sorry, but it's you that suck.
I'll assume that you take issue with my original questions and perceive the assumptions they make to be incorrect then.
I'd suggest you go back a few articles and look at what sweeping statements are made about other countries EVERY time they come up.
French? Surrendermonkeys.
China? Copycats and spies.
Indians? Dumbass codemonkeys and rapists.
Europeans in general? Decadent and lazy.
Russians? Mafia and oligarchy.
Mexico? Borderjumpers.
Arabs? Terrorists.
British? Go-to scapegoat for anything surveillance and privacy invasion related.
But look what happens when someone criticizes any aspect of the US which is not the government. Suddenly they're just "america-bashing" but everyone else is just supposed to take it. It's a double standard and it cheapens any potential for discussion about how someone achieved what they did and why we're not doing it ourselves. Personally, I'm interested in why we're not doing as well as others in this competition. Simply assuming the competition is rigged because some dirty unwashed foreigner won it is not satisfactory.'
Maybe it is to jingoistic "patriots" like yourself.
Well, yes, but Eastern Europe, East Asia, and India don't have the benefits of our television telling them they suck at games.
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
80% of average teenagers might think they've got the special sauce to bail, but the 70%+ ones are going to recognize that the college diploma is the minimum starting point unless a boomer has died, without losing their life savings, and bequeathed a goodly chunk of it to them for an idea that will probably fail.
It's possibly related to the results. Many of the top-tier universities use less industry-friendly languages for teaching undergraduates. At Cambridge we do a lot of ocaml, at MIT they use Scheme (and, apparently, Python), at a number of others they use Haskell. There are several reasons for doing this. The first is that teaching a less common language means that you don't start the course with half the students thinking that they already know the material. The second is that teaching a relatively simple yet expressive language teaches students to think about algorithms first and then about microoptimisation later when they learn their third or forth language.
In many other universities, there has been the growing trend to believe that the language that you should teach with is one that you would use to solve real-world problems. I believe that this is a mistake, because the requirements for a language for teaching and for creating maintainable large-scale applications are nowhere near the same. This would mean, however, that students from universities with this belief would have an advantage in these contests as they'd be using a language that they'd had a few years more practice with.
Looking at the results, however, I suspect that there's also a lot of apathy involved. MIT and Stanford are there, but they tend to encourage a very competitive atmosphere. Several universities that I'd expect to produce students that would do well appear not to have entered at all. Given the wide range of extra curricular activities available to students these days, I wouldn't be surprised if entering a competition is somewhere down the list.
I am TheRaven on Soylent News
or is this the one in Carnegie, Belarus?
Why do people hate on the US you could ask?
Its an interesting (but off-topic) question. But if people are hating you, there is usually a reason. Think about it.
"The 2013 top 10 consists entirely of colleges from Eastern Europe, East Asia, and India."
Here are the countries in the top 10 list
St.Petersburg, Russia
Shanghai, Russia
Tokyo, Japan
Taiwan
St.Peterburg, Russia,
Warsaw, Poland
Kiev, Ukraine
Belarus
Krakow, Poland
Moscow, Russia
And to those who say that this contest is irrelevant ... well, I'd hire those programmers in an instant and pay them well too. And I'm sure Google, FB and Apple would do the same. They can think fast and work hard under pressure. And they do know their algorithms. You can't find enough people like that.
And why teaching functional languages is an advantage? I actually see it as an academia's disconnect with real life. They could have been very well teaching liberal arts.
Coding etudes
A contest that is limited to only C/C++ and Java is a disgrace to humanity. No skillful CS student would go to such a thing. This is completely ridiculous. Either pen and paper, or allow languages that are not among the very worst languages of the planet.
These contests are writing about highly efficient programs performance and memory-wise and C/C++ are very adequate for such algorithm competitions. Any inefficient step performance or memory wise will be punished by failing tests and losing points. C/C++ has been one of the classical programming languages always used in algorithm contests. And what the fuck do you mean by "worst languages on the planet". You do not implement performance critical algorithms and data structures in Python or Ruby, this the correct job for C/C++ programming languages.
In Soviet Rssia University works.
I'll assume that you take issue with my original questions and perceive the assumptions they make to be incorrect then.
No. I'm calling you out on your use of derogatory statements to bemoan the quality of discussions, specifically the parts that employ derogatory statements, or stereotypes if you will. That is bigotry. I'm not disagreeing with you on the point you so hamfistedly tried to make, but your implementation of it.
Maybe it is to jingoistic "patriots" like yourself.
Fuck you, you simple minded, filthy slut. There, balance restored.
... whatever
Yes, education is failing, the economy is imploding, the NSA is becoming the KGB, the U.S. is going to hell in a handbag, and it's all because of significant whitespace.
I coach a team. Sent a team to World's last year. As much as I'm a fan of these contests, I am not worried about foreign schools dominating. China recruits their programming team when they are 12. Of course you are great at algorithm contests if you spend ten years preparing for them. That won't make you a well rounded individual though.
Bah! If you're not coding in binary assembler, you're just coloring by numbers. /s
I'd like to see a map with color coding for country and position just to understand better who took part.
Notably no teams from UK, Nordic countries, Estonia, Germany, Israel, ... so any results have to be viewed with this in mind.
The people from St. Petersburg are top notch, they have good schools, I'm not trying to play down their achievement. But I'd like to see this competition more like the Olympics with everybody taking part.
It does show sad results for the US. What's with the big drop in rankings?
ntr
You fail to realise that if the USA isn't getting in the top 10 any more, then it MUST be that the competition is worthless.
IT MUST BE!
east europe, east asia, and inida?
aren't those the places where hackers usually come from?
Wasn't the first virus written in india?
aren't computer crime syndicates based in east europe?
So in a way the requirement of Java (or C++) favors bad universities.
So people in CS program at an elite university can't program in Java? You win the idiot card.
I object to power without constructive purpose. --Spock
You got voted down because you are posting AC and you implied that people who are worthy of your grace can't program in Java or C++. Wierd.
I object to power without constructive purpose. --Spock
intercal
The second is that teaching a relatively simple yet expressive language teaches students to think about algorithms first and then about microoptimisation later when they learn their third or forth language.
This make a lot of sense.
there has been the growing trend to believe that the language that you should teach with is one that you would use to solve real-world problems.
A fundamental misunderstanding by the non-technical administration and dinosaur faculty. As has been stated before, this is not computer science. I wish the state education boards would place requirements (algorithm and mathematical requirements) on calling programs computer science. We have a CSCI program that teaches Excel, and graphic design (zero algorithms and only basic algebra required). The programming courses do get into structures and sorting a little bit, but the last one I took left off linked lists! (didn't have time)
I object to power without constructive purpose. --Spock
A fundamental misunderstanding by the non-technical administration and dinosaur faculty. As has been stated before, this is not computer science. I wish the state education boards would place requirements (algorithm and mathematical requirements) on calling programs computer science. We have a CSCI program that teaches Excel, and graphic design (zero algorithms and only basic algebra required). The programming courses do get into structures and sorting a little bit, but the last one I took left off linked lists! (didn't have time)
OTOH, it was within the last year that there was a /. article about major universities wanting to drop all of the math requirements from computer science degrees because it would encourage more people to enter the field. If you view a college as a business, the student as the consumer and the curriculum as the product, you may understand why today's computer science degrees have been so watered down. The CS department, like every other department is evaluated by how many seats they fill, at least on an undergrad level.
Why do all that work just to train your H1B replacement?
-----
Matloff: Corporate immigration policies force good people out / dissuade
talented students. U.S. loses innovation
To: H-1B/L-1/offshoring e-newsletter
Sun Jul 7 23:46:07 PDT 2013
http://heather.cs.ucdavis.edu/Archive/Rejected50XbyIntelResp.txt
-----
Employers bash the living snot out dedicated US IT workers for decades. Offshoring jobs like mad, and the few jobs that cannot be offshored, are given to visa workers that replace higher paid US workers.
Then employers start "shortage shouting" and point to the - perfectly predictable - declining interest in IT careers, and use that to claim they need even more foreign workers.
can I humbly add to french description : Brain specialists (perhaps due to research about inhibition of action on primates) For those who have the chance to understand french (?) : http://www.dailymotion.com/video/xpjec4_tv-lobotomie-la-verite-scientifique-sur-les-effets-de-la-television-conference-michel-desmurget-fsl5_news [dailymotion.com] in short : Television hurts brain and makes people unable to think. At best. SAT test plunging is synched to television adoption in US (31:53). 20:22 : the effect of television on child brain in one drawing ...
The problem is mostly one of marketing. If you're a top tier university, students will trust that teaching you Scheme or whatever is sensible because you've got a good reputation. If you're a second tier university, then students (and parents) have heard of Java and C# and know that industry likes them, and if one university uses them as a teaching language but you don't, then it's hard to convince them that it really does make sense. And your reputation is dependent on how well your former students do, which depends on the quality of your intake.
I am TheRaven on Soylent News
american students are deep in debt more than ever. so any effort not to make money looks pointless such as a programming contest.
most of CS student know very well that with less effort than programming contests they can get intern summer jobs at places like google and get paid 5~7k per month.
Interesting that all of the places that seem to be at the top of this competition are places that the US has been outsourcing programming to for the last decade or two. When there are lots of (relatively well-paying) jobs available in an industry, more people want to get into that industry. And when more people want to get into an industry (that is pretty specialized and having an education is almost a pre-requisite), they go to school to ensure that they can get into that industry. And when more people go to school, you tend to get more good students. And when you have more good students, you tend to do well in these kinds of competitions.
The corollary to that is that when you don't have jobs (because you're sending them all to countries with a cheaper cost of labor), then you don't have people who want to get into the industry. And when you don't have people who want to get into the industry, they don't go to school for that specialization. And when you have fewer people going to school, you have fewer good students, which means that you don't do as well in those competitions anymore. And that leads to a lot of wailing and gnashing of teeth about "How can we get young people interested in working in our industry?"
In my experience most of the attention in public school goes to those that are ultimately ineducable.
Define "ineducable".
Gifted students are just expected to be fine without help.
As they should be. If you're bright enough you should be able to learn it by yourself. If you can't, then you're not as clever as you think. Genuinely gifted students, or even just the "pretty bright" (top few percentile) should be cheap to educate. There's the library, it includes computers and Internet access if your family can't afford them, they'll be an exam on the following material next Thursday. Attend the lectures if you want.
and vagina
Irrelevant. What's relevant: if there's little need in the US (or any other country) economy for software people, it is likely there will be no winners from US in the ACM competition (or winning will happen only as an exception rather than the norm).
And yet the fact is the US has a huge appetite for software people. I know a bunch of ACM ICPC world finalists (like around 20), and at least half of them at one point in their lives ended up in the Bay Area working on software for some large tech company (yes, on H1Bs).
You can flame all you want about them "taking your jobs", but the fact is that there's a truly felt shortage of actually good programmers in the US. And it's not felt as strongly in other parts of the world, or at least that is my anecdotal experience.
Don't quote me on this.
The 4 smartest programmers I ever worked with were all high school/college dropouts.
Peter predicted that you would "deliberately forget" creation 2000 years ago...
FORTRAN. "If it can't be done in FORTRAN it probably shouldn't be done at all."
The guys winning this are the types that were into programming before college. They then have to find each other and form a team. Lots of reasons that might not happen in the US but would happen somewhere else.
There is one metric that absolutely lines up perfect with these results and that is during the 90's that is when the cost of college started becoming a significant barrier to entry and success. College has always been expensive but really it was in the 90's we started to use the dollar bill to decide who is truly competitive. This really boils down to the cost of books, computers, and tools which give students an edge. It's widely accepted that many rich students pay double and triple tuition to retake the same classes and inflate their grades, buy notes for their classes, or just pay people to do their work for them on craigslist. I respect the ACM and they have done a lot of good in the programming field so its really sad to see this. Just gives the govt yet another reason to go on about STEM students and why H1 visas are the bread and butter of development. I guess we'll never see that gritty diamond-in-the-rough mentality that was so popular in the 70's and 80's ever again. Its obvious the US thinks the best student programmers show up to school in lambos and party with the winklevoss twins. I think a lot of startups are hoping "that guy" will show up at their door as an intern and make all their problems go away by accidentally creating mathematical equations which they can bank millions on. Instead of standardized testing colleges should just put credit card readers on every student's desk at least then they can give up the charade.
I got a degree in C.S from U.C. Berkeley, and I now work for a company that's world-famous for having the best software engineers, and I work with people from all over the world. The best U.S. programmers can definitely compete and win in proportion.
Why didn't I compete in programming contests in college? Gee, why spend a weekend writing code and not getting paid when I could be surfing or talking to women or eating pizza or doing anything but writing code which is what I was already doing for 20 hours per week on top studying for all my non-CS courses.
For foreign nationals, this ACM contest is a great way to build a name from themselves, and get their foot in the door. For me, I knew I already had a good job waiting after graduation, so I spent my free time in college doing things I would not be able to do after graduation.
Sponsored by a local company (probably recruiting) and not officially ACM-sanctioned. These are the kinds of competitions where if you practice you'll do much better at them. Our college had just rebooted their ACM club and I got the distinct feeling that had we been dedicated for years a team could place very high. We were around the 80% percentile or so and still burned 1/2 our time figuring out the logistics (physical space and PC access was limited). On top of that, we had a couple questions worked out, just formatting errors (silly stuff like one too many CRLFs) that the automated graded rejected.
I'm not slamming these results since I think the project winners are probably very good programmers over all, but I bet a schools that focus and compete every year are at a distinct advantage. I've seen these pattern repeated in other areas like spelling bees.
I swear to God...I swear to God! That is NOT how you treat your human!
Proper CS students wouldn't touch code with a rented bargepole. See also: Djikstra, telescopes.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
The top 10 list does not figure any Indian College. In fact, the highest ranked college from India is IIT Roorkee (ranked 60).
Why do they have to invoke 'India'? I've checked and the first Indian University there is 'Indian Institute of Technology - Roorkee' at 60. An Indian University never finished in the top 10. An excellent track record, that's hard to beat.
I won more than my share of programming contests when I was in high school. It has less to do with the quality of the school than the caliber of the student. The skills follow the students, not the professors. If they don't get a pool of skilled freshmen every year, there's nothing the school can do to get them to the caliber they need to win these things. I was programming in BASIC from about age 8, making my own programs on my VIC-20, because I didn't get all the cool games of the C-64. By age 12, I was reading the program templates in magazines and changing them to make them harder or easier, or whatever. That level of availability and interest is what drives competitive programmers. Doing relatively small complete programs 1000 times before their first competition. I didn't like CS or programming at a college level. I didn't want to be programming 8 hours a day on some module that was part of someone else's spaghetti code. Instead, I ended up being top IT guy (technically, not managerially) at a string of companies, and liked that much better than what I've seen of programmers. But as an 8-14 year old, you aren't thinking to that time frame.
Learn to love Alaska
That's a huge difference. Programmers can program in C/C++, but of course would never do that if C/C++ is not the best tool to solve the problem at hand. You realize that a lot of universities teach functional first? Carnegie mellon adopted functional first in 2011 (don't know about right now).
Lots of universities teaching functional programming first =/= most of the top universities.
This inequality should be obvious to you if you were as brilliant as your words tend to imply you think you are. Whether you like it or not, top shit is written by top developers in C, C++ and Java, not Haskel or Lisp.
My university did that in 2006 with haskell.
So did you graduate recently (ergo talking with little experience) or are you just cheerleading?
So in a way the requirement of (C/C++) favors bad universities.
Non sequitur. Just because you say "in a way" so, that does not make it so. This statement of yours does not follow logically from anything you have said so far. Major failzx0r for a supposedly Computer Scientist IMO.
Let's say the requirement was you have to develop in Visual Basic on a windows machine in visual studio. Then, out of principle, a lot of students won't go.
That might be a "principle", but that does not make it a logical one. A programming language is a programming language. Good programmers can make shit sing with any programming language. Arrogant dilettantes hide their deficiencies behind principles. Besides, there is nothing inherently wrong with Visual Basic (or any of the modern BASIC incarnations.) They were never meant to be the most elegant of things, but tools to get things done.
That people write bad code with it is not truly a function of the language/system. After all, and as I've said, good programmer will code good shit with any language. Bad programmers will exhibit some limited competence in an idiot savant way with one technology while being completely inept with all others.
The same is true with the stupid C/C++ requirement.
Oh grow the hell up dude. Real world, complex systems developed by very intelligent people gets written all the time in C, C++ and Java. Combat, missile and aeronautic systems? Mostly C or C++ (some Ada here and there.) Critical systems like nuclear monitoring stuff or medical devices? Mostly C. Large, fault tolerant, highly available distributed systems? Java (and to a much lesser degree, Erlang).
Don't get me wrong, I enjoy functional programming languages (in particular Haskel and Common Lisp). But if we are going to be pedantic about the qualities of a language, let's get hung on the actual, large scale, uber-complex, real world successes of each. If we are going to be pedantic, let us be with some substance behind it.
I mean John Backus told the world in 1972 that imperative programming might not be the best idea, and people still don't get it in 2013.
Yeah Backus said it, but he never formulated a concrete solution. In reality, is there a significant need for one? From an academic POV, I would love to see one? From a practical POV, at this time, the world does not desperately need one.
That was 42 years ago!
So what? Dijkstra also said eons ago that GOTO was inherently evil. That was a proper response back then to people who resisted the idea of structured programming, and in particular resisted the implications of Böhm-Jacopini's Structured Program Theory.
But as that principle has become well established, the unrestricted demonization of the GOTO statement yielded some pretty stupid coding guidelines (thou shall not have more than one return.) Pretty stupid as there are cases where a GOTO statement is the right thing to do. Ergo why Donald Knuth and many others had a more relaxed, pragmatic view on the subject.
By
You're high school programming contests weren't nearly the difficulty of an ACM programming contest, sorry.
"First they came for the slanderers and i said nothing."
I just looked up an example. It was noticably easier than a number I had seen in high school.
But thanks for presenting your incorrect opinion as fact. Reminds me I'm on Slashdot, where people think their ignorant opinions trump reality.
Learn to love Alaska
An example, eh?
"First they came for the slanderers and i said nothing."
An example, as in an actual question from a previous year (2009):
http://stackoverflow.com/questions/1842587/can-you-answer-this-2009-acm-international-collegiate-programming-contest-finals
What an actual question from a few years ago doesn't count as a valid example? Whassa matta, proven wrong too often today? I don't have an example from the competitions from 20+ years ago to compare against, so I'm sure you'll invent whatever you want as an excuse for why I'm wrong and you are right. But I was there. I remember them. And I found an actual ACM question for comparison. But an eye witness isn't good enough when it contradicts your uninformed and biased opinion. Right? Again, your personal opinion will trump reality. As I said, standard fare. But it's always fun to play with the deluded.
Learn to love Alaska
I'm not sure why you think that problem is easy......you can't use the brute force solution, the running time will be too high.
"First they came for the slanderers and i said nothing."
I never said it was easy. You need to read what you are responding to before you complain. But then again, I've been joking about you being the standard Slashdot whiner, so that would be right in line. Answer for what you think they meant, even if not supported by what they actually say.
Learn to love Alaska
I seriously doubt you were doing dynamic programming in high school. If you were, props to you bro
"First they came for the slanderers and i said nothing."
Go look up the #1 public high school in the USA. Depending on the year in the results you find, that's where I went. You assume dynamic programming is required for a solution. Though the CS teacher there was big on recursion, so I'm sure some recursive solution would have presented itself. Not sure if you'd consider that dynamic programming.
Learn to love Alaska
You assume dynamic programming is required for a solution. Though the CS teacher there was big on recursion, so I'm sure some recursive solution would have presented itself.
The problem is not recursion, although that might make it easier to write; it's great you learned that in high school since most CS majors don't learn that until their second semester; the problem is that if any sort of straightforward approach is used (like the solutions shown on stackoverflow), the algorithm will end up solving the same subproblems repeatedly, and the number of subproblems will grow factorially as the input size increases. So you need some way to keep track of which sub-problems you've already solved. Dynamic programming is one way of doing that. The most common ecample of dynamic programming is to find the Longest Common Subsequence between two strings, like when you are doing a diff.
"First they came for the slanderers and i said nothing."
K-12 Schools here are crap, colleges spend much of thge time that used to be spent teaching "new things" to teaching remedial courses to bring the students up to speed.
Courses are truncated, and best and brightest have to "wait for others to catch up".
That and the fact that colleges and universities are bastions of the liberal elite, and "young blood" (especially bright people) are often bypassed by the "good old boy" network, so as they say, Garbage In Garbage Out.
Add that to the fact that ALL MBA's in business seem to have revered NON AMERICANS for so many years that the colleges don't graduate the number of computer professionals as they used to so smaller pool of talent.
When companies who are supposedly American dump money and software into foreign countries, OF COURSE their students will beat ours.
Our best and brightest are likely flipping burgers or "gang bangers" because they couldn't afford to go to university.
In the eighties, software was a big challenge for me. In the early nineties as well, as I had to master multiprocessor systems available for the "masses" -- Intel and RISC machines instead of big Mainframes, to support Internet transaction systems. Nowadays, big challenges are elsewhere, that's why bright minds in the US are looking elsewhere. Software is just another tool, something you can outsource to occupy your bright mind with real challenges. It's boring to solve a problem a lot of people can solve. In US, there are bigger challenges to tackle at universities -- a rich, challenging environment. In poorer environments, bright people have less choices. US people are not less smart than they were in the eighties and nineties -- their interests changed, that's all. For the record, I'm Brazilian.
America's colleges top......only in the American mind.
Looking at the number of attending teams, it looks like for the most part few US schools showed up (compared to the European/Asian countries.)
I was studying object oriented programming in 1991 in BASIC. The funny thing about the sample given is that the result was determined by methods that are itteritive, simple, and stupid. Often in the programming competitions, the data sets would be similarly limited, so the solution would be unrelated to the problem being solved. The "answer" is [LARGEST(bi)-SMALLEST(ai)]/(n-1) for all sample data. Yes, the entire "complex" problem is solved for all test data in a single simple statement. There are just a couple minutes for writing LARGEST and SMALLEST (optional, as all data contains one zero), and the bulk of the code will be I/O. No answer could be better, and the question was about optimum. If it was "hard" it would have you number the aircraft in the order they are in the dataset, and output the aircraft number and landing time after the answer. But as written, you can generate an "optimum" case in under a minute, and then write another section to catch the "edge" cases where the data doesn't allow fitting to the best case.
Not elegant, not easily modfied, doesn't work for all datasets, hard to have someone else understand it (we once had a problem rejected until the programmer got up at a whiteboard and explained it to the judges - yes, you can have a GOTO in basic that GOTOs itself, within a single-line multi-statement for loop - that's what happens when you solve it in your head in PASCAL or FORTRAN and have to code it in BASIC). But those are the types of solutions that would come out in these contests. Rarely was the code anything approaching "good" and they were algorithm tests, where most of the work was re-stating the problem in a different manner.
Learn to love Alaska
You can't do what I do in Haskell.
And I'd argue that a good programmer can program well in almost any language. I'd probably have to exclude brainfuck.
Perhaps *you* can't program well in Java.
Your solution fails for the case of:
3
0 10
10 15
1000 1010
Yours will print out 505, but the answer is 15
"First they came for the slanderers and i said nothing."
Correct, but that wasn't in the dataset. The "solution" given on that page had every comment giving another dataset that didn't work. Part of the contests is that you must get the correct answer for all the data, but the data is given, so accounting for edge cases not in the data will cause you to lose.
That and I was deliberately giving a "correct" answer that takes 10 seconds and obviously isn't exhaustive because I thought it funny. The "real" solution I would have come up with would likely have worked for more cases.
Learn to love Alaska
You don't understand the contest. The data given is the sample data. The true dataset is kept by the judges and is much, much larger
"First they came for the slanderers and i said nothing."
How many programming contests have you been in? How many wins? You seem to keep lecturing me about contests you have no knowledge of. I bet you are the type to argue with doctors "But I read about something like this on the Internet."
Most of the contests I've been in, you had to data-enter your own data (type in the "official" data from the printed sheets) for testing, and a few would provide sample data in a file. I'm almost all cases, the sample data was the contest data. The actual run files would be secure, to prevent manipulation of the data (for the ones run by judges, many would just take printouts of all source files involved, and outputs). But you'd "test" against the live data.
Learn to love Alaska
This is the ACM programming contest, it's not like it's some secret, random contest. They have them every year, the rules aren't secret. I participated in 8 of them, if you must know.
"First they came for the slanderers and i said nothing."
I run a University Program for a US company that specializes in multicore processors (Cavium). We have SW engineers in India like everyone else, but also two large teams in the US, including the previous DEC team of computer architects in Boston. I conduct an annual multicore programming contest; last year's winners were from Pakistan, which might support the theme of this commentary, but we are seeing strongest interest this year from US. Most likely this is due to our recent US outreach - we have been on campus at MIT, CMU, Cornell, Harvard, UW, Stanford, UT, UWash, ...since January. I also work with the IEEE on multicore programming curricula for ongoing education, and we see strong interest there too . My point is the passion and need is here in the US, but it needs to be better supported and understood. By the way, our contest is open to any undergrad in any major in any country, and some profs are considering it for a 1 credit project this Fall. Previous experience in C/C++ or architecture is NOT required. We provide examples, online seminars, sample code, etc. to get rolling http://tinyurl.com/oy75hdd
Well, if you want to market classes in Scheme, just mention that all the top-teir universities are doing the same thing.