I went to one of those schools. Course quality in the CS department can be very hit or miss. You are right in that the instructors often have no actual programming experience. In this situation, the opposite of what you are thinking is true: automata theory is probably a better class than databases, because you don't need to be a good programmer to teach automata theory. A database class taught by a guy who doesn't program databases all the time is going to be lightweight at best and wrong at worst.
Advice is hard because it's very situation dependent. Do the courses use good books? Are the assignments worthwhile? For example of what I mean: At my school there was a prof who invented a cheap weather radar expansion board for PCs back when weather radar systems were standalone and cost hundreds of thousands of dollars. The hardware course and networking course taught by him were great. There was another guy who came back to teach after working in industry for 15 years. His courses were programming intensive and were also pretty good. In contrast the intro courses taught by the guys who went straight from grad school to teaching were weak sauce and a waste of time. HOWEVER, the automata theory class taught by one of those guys was good and was actually one of my favorite classes. Ultimately, I had a couple too many dud CS classes so switched over to a math major.
Thus, you'll have to examine the course offerings closely to see if you can piece together a reasonable major. If not it may be a better use of your time to just get a minor and take good classes from other departments. I have never regretted strengthening my math skills in lieu of taking half-assed CS courses. It was pretty easy to develop half-assed CS skills on my own.
I would totally go for a minor if my school offered them, but they don't, instead making it slightly easier to double major (about a third of students do so).
I've yet to have an assignment that was too far beyond a proof of concept. Students who wish to pursue such projects are encourage to do so during the summer as extracurricular projects.
Comments
I went to one of those schools. Course quality in the CS department can be very hit or miss. You are right in that the instructors often have no actual programming experience. In this situation, the opposite of what you are thinking is true: automata theory is probably a better class than databases, because you don't need to be a good programmer to teach automata theory. A database class taught by a guy who doesn't program databases all the time is going to be lightweight at best and wrong at worst.
Advice is hard because it's very situation dependent. Do the courses use good books? Are the assignments worthwhile? For example of what I mean: At my school there was a prof who invented a cheap weather radar expansion board for PCs back when weather radar systems were standalone and cost hundreds of thousands of dollars. The hardware course and networking course taught by him were great. There was another guy who came back to teach after working in industry for 15 years. His courses were programming intensive and were also pretty good. In contrast the intro courses taught by the guys who went straight from grad school to teaching were weak sauce and a waste of time. HOWEVER, the automata theory class taught by one of those guys was good and was actually one of my favorite classes. Ultimately, I had a couple too many dud CS classes so switched over to a math major.
Thus, you'll have to examine the course offerings closely to see if you can piece together a reasonable major. If not it may be a better use of your time to just get a minor and take good classes from other departments. I have never regretted strengthening my math skills in lieu of taking half-assed CS courses. It was pretty easy to develop half-assed CS skills on my own.
I would totally go for a minor if my school offered them, but they don't, instead making it slightly easier to double major (about a third of students do so).
I've yet to have an assignment that was too far beyond a proof of concept. Students who wish to pursue such projects are encourage to do so during the summer as extracurricular projects.