So, you object to the term professional. Can we all pretend, then, that the OP asked about "in-class education/training in the field of computer programming"? I think we all know what the OP meant, even if it wasn't formally precise.

To answer the OP's question myself - I have a degree in Electrical Engineering (I'm not sure why brian d foy singled out civil engineers - at least in Canada, all types of engineers need licensing, not just civil engineers). I took a computer minor, which amounted to 8 out of 41 courses being computer-programming-related (two from computer engineering, two from electrical engineering, the rest from computer science). And I have enough hubris to think I'm the best programmer on my team ;-) The rest of my team has either a comp sci degree or diploma each.

And I need to point out an inference I have from brian's post above: that programmers do not need to be licensed, nor should they need to be licensed. Perhaps this wasn't meant to be implied, but I inferred it anyway. I do think that there should be places in software where licensing should be mandatory. For starters, anything that any engineer, doctor, or other licensed professional uses in the pursuit of that profession (e.g., CAD, aeronautic computation, etc.) should have the stamp of a licensed professional in order to be marketted to that profession. That stamp would also prohibit any sort of EULA which tries to limit damages in the area of the licensing that is not in accord with that industry in general. Yes, this could drive the software prices way up. But then the quality of that software would have to be methodologically proven, which would help so many engineers, doctors, etc., that it would probably be worth it.

Authoring a spreadsheet or the like would be one thing. Writing rocket guidance or medical-research software is a whole other can of beans.

There are actually two levels of engineering certification in the US. Basically, once you've gotten your degree in college (from an ABET accredited school), you can then take the first test (Fundamentals of Engineering, which then designates you as an 'Engineer in Training'). After working under a Professional Engineer (someone who's already passed the second test) for about 2-3 years, you can take the PE test. Once you pass the test, you can apply for licensing. I've only dealt with the Board of Licensure in Kentucky (I did some work on their databases ... reminder to self -- never take someone's word that it's 2 weeks of work, without specing it out yourself -- they neglected to mention that I was replacing an existing system, not making something from scratch (which might've taken only 2 weeks)) but the states seem to compare notes on the applicants, to see if anyone else has a reason to black list the applicants.

Now, my understanding for the licensing is that it's because certain fields in engineering have the possibility to do real economic damage or cause human casualties. Sure, doctors can kill people from negligence, but unless it's misdiagnosing the plague, they're only going to be found out before they've killed a dozen people. Civils, Structurals, and a few other fields have the potential to kill hundreds, thousands, or even more with one bad calculation (building collapse, dam bursting, etc.). That's not to say that electrical engineers couldn't kill people too, of course.

For quite some time, programmers weren't a profession on their own -- they were scientists, who also did programming, or similar. They knew the problems they were working on intimately. These days, programmers might be brought in on a contracting basis. For some folks, a typo might result in someone not getting their email; for others it might result in people dying.

I would love to see a form of purely voluntary licensing for programmers, so that you could be sure that the people that you're comparing for a job are similar in skills. I know there's Brainbench, and probably other similar companies, but I'd prefer it to be run by the programmers they're certifying, more like a guild or union. I'd like to see an apprenticeship systems for programmers, to replace and/or build on what they might learn in structured classes. I assume that some larger companies, who focus on software might have a mentoring program, or similar, but I've never worked in that industry.

I'd also like to see something like the FE vs. PE, where you have a basic skills test, and then a series of higher level tests for specialties. Just as you don't want a podiatrist doing open heart surgery, or a tax lawyer defending you in a murder trial, you might not want someone who specializes in making email feedback forms for websites writing database software to track capital elligible judicial cases, or tracking medical needs for neo-natal care patients. I don't mean to belittle people who make web pages (I do it myself), but there needs to be a different level of due dilligence, when you might adversely affect someone's life in more than just a superficial manner.

Indeed, I object to the loose use of "professional", and I don't know why I used "civil engineer" otehr than that's who I think of when I talk about this because I talk about building bridges. I want to distinguish that from "software engineer", which is not a proper term in a lot of places no matter what people put on their business cards.

We don't have to pretend that we know what the OP meant: I addressed that in the rest of the post as I talked about Computer Science degrees and formal training. I wrote a lot more than just the first paragraph. :)

Also, I don't say that programmers should not need to be licensed. I only point out that they currently don't. That's a different discussion, and don't mistake that to mean I implied anything other than the current state of affairs.

Ada Lovelace for the palindrome
Albert Einstein for having smelly feet
Alfred Nobel for his contribution to battlefield science
Burkhard Heim for providing the missing link between science and mysticism
Claude Shannnon for riding a unicycle at night at MIT
Donald Knuth for being such a great organist
Edward Teller for being the template for Dr. Strangelove
Edwin Hubble for pretending to be a pipe-smoking English gentleman
Erwin Schrödinger for cruelty to cats
Hedy Lamarr for weaponizing pianos
Hugh Everett for immortality, especially for cats
Isaac Newton for his occult studies
Kikunae Ikeda for discovering the secrets of soy sauce
Larry Wall for his website
Louis Camille Maillard for discovering why steaks taste good
Marie Curie for the shiny stuff
Nikola Tesla for the cool cars
Paul Dirac for speaking one word per hour when socializing
Richard Feynman for his bongo skills
Robert Oppenheimer for his in-depth knowledge of the Bhagavad Gita
Rusi P Taleyarkhan for Cold Fusion
Sigmund Freud for his Ménage ā trois
Theodor W Adorno for his contribution to the reception of jazz
Wilhelm Röntgen for the foundations of body scanners
Yulii Borisovich Khariton for the Tsar Bomba
Other (please explain why)