No, I'm not.
I'm saying you can't function as a computer scientist with 0 programming, and trying to train Computer Scientists in general while somehow shielding or protecting them from programming is something I'd look at very disfavorably. Even computer scientists need to program once in a while. A Computer Science program is doing a disservice to its "Computer Scientists" if it somehow manages to fail to teach them anything about programming.
And to be honest, I find it utterly, mindblowing absurd that anybody could take the alternative seriously. Think about it a bit.
In fact I'd go so far as to say that one of the several major problems facing the University system as a whole right now is this whole idea that theoreticians across all disciplines can somehow be fully severed from all practical considerations, as a result of too many people mindlessly chanting that Universities aren't vocational programs. A theoretician operating without any input from the practical world is a theoretician wasting his or her time, producing theories that will ultimately not even be of academic interest.
(There are very, very specific disciplines in computer science that might be able to get away with 0 programming, BUT the generic undergrad courses would not be able to be that focused. The generic undergrad courses need to be teaching some useful programming stuff.)
"Most colleges offer a more practically oriented degree."
You might want to check that. "Software engineering" or something is actually fairly rare as a distinct major, and while there will often be an "information systems" major of some sort (which it sounds like is what this guy actually took), that isn't so much "more practical" as "a reduced version" of the courses, often reduced to the point that you won't learn "programming" at all.
You are correct. I should have said "Most colleges I considered when starting my degree".
Look, we might have to agree to disagree. What I think, and what the one Computer Science Department Head I spoke to thought, is that Computer Science is math. Period. Just like a degree in Math, it does not have to have a directly practical application to serve a purpose. The fact that we have machines that run these theories is purely a sideline to the theories themselves.
"A theoretician operating without any input from the practical world is a theoretician wasting his or her time, producing theories that will ultimately not even be of academic interest."
I'm sorry, but many many theories that have become helpful for practical purposes were created by someone 100s of years before who didn't have any "practical consideratinos". Just because something isn't useful NOW or even in our lifetime, doesn't mean it isn't useful.
Quite frankly, I think programming (distinct from computer science) should go back to an apprenticeship based program if we can make that sustainable, and computer science (as in the degree program) should be kept where it is: Mostly theorectical with a minor side of practicality occasionally.
Sure programmers sometimes need to understand Computer Science theory, but most of what the average programmer needs to know about it does not require a degree but simply reading a book or three.
I'm not sure you got my point entirely. If you've got a machine sitting there than can help you, you should use it.
If you're going to write about operating systems, you're an academic fool if you don't also actually take some time to gain some real experience on the very-cheap systems that can help validate that you actually do understand what you're learning about.
If you're going to do AI, you're an academic fool if you don't take the time to implement some of your theories and see how they actually perform. Who cares what someone hypothesizes may work in the field of computer vision if they have no implementation?
And so on and so forth. Even if it is just math, you are an idiot if you pass up the opportunity to implement something to verify your theories.
And the result will be courses, especially at the undergraduate level, that turn out to be useful both for academics, and for programmers who want to learn how to write theoretically grounded code. Which, remarkably, is exactly what we actually have.
You are not benefiting by trying to split academics off from practice. It's a stupid idea and a stupid ideal. It isn't a win for anybody.
My anecdotal experience seems to match jerf's: I can't think of any undergraduate computer science program that appeared to favor math over at least moderately practical topics. But I've also not seen any undergraduate computer science program that appeared to be job training.
A local community college offers an associate's degree in "computer programming", and their graduates strike me as more obviously employable in the real world than area university computer science graduates. They learn skills that are known to be desired by major area employers, and the program seems to carry more of a "this is all about getting a job" sort of attitude.
I'm not saying that CSE degree programs shouldn't teach you how to write code or require you to write code. I'm just saying that they are not vocational training and therefore should not focus on training students to use whatever specific tools are popular in industry.
Contrast that with community college certificate programs where they offer courses like "C# Programming in Visual Studio" and "iOS Application Development." Those programs' mission is to get you a job, and they also cost much less time and money than a bachelor degree.
Instead, I just got a job by showing off said practical projects with no degree.