Comp. Sci. Theoretical/Hands on.

<p>Hi!
I just have a question about computer science. Well, I am planning on majoring in comp sci; right now though, I'm only a junior in HS, but to get to the point, I was wondering what is the exact difference between a more theoretical comp. sci classes or straight hand's on comp sci classes.
When I asked an adcom from Cornell about their CS program, she said that the program was more theoretical. Is that bad/good? I'm not exactly sure what to think.
Thank you</p>

<p>It depends on what you are interested in.</p>

<p>Hands on comp sci is stuff like programming, comp architecture, practical algorithms, and software development.</p>

<p>Theoretical comp sci (or as I like to call it, the fun part), is more along the lines of limits of computing, limits of turing machines and multitape turing machines, P, NP, NP-Hard and NP complete theory, lots of number theory and discrete math, theory of algorithms and what problems they could be used to solve.</p>

<p>its neither bad or good. if you want to go to grad school in CS, your going to need the theory. If you want a good job, your going to need a solid mix of both. Any good CS program is going to have enough theory and math to get you a good job or grad school.</p>

<p>Oh, and theory is much harder. but think of it this way: Strong background in theory + general knowledge of hands on (you'll get that at Cornell) means you will get a good job. All hands on means your going to be a code monkey. Dont be a code monkey.</p>

<p>I just realized how I started that by saying it depends, and then ending it by saying theory is better.</p>

<p>It does kind of depend, if your not into the theory then its cool, but if you don't take a lot of it you wont have near the opportunities of someone who does.</p>

<p>look up stuff about "the halting problem" and "the traveling salesman problem" if you go "ooh! This is cool!" you will LOVE LOVE LOVE theoretical comp sci.</p>

<p>Good advice ehiunno. I used to hear this about engineering programs as well when I was in college many eons ago. I went to a school that had a more theoretical bent. The approach was that the theory wouldn't change, but the applied stuff would so if you get a good grounding on the theory, you can change and learn as the technology changes.</p>

<p>I have been involved professionally with software for quite some time. I prefer hiring people with a solid background in theory rather than a specific knowledge of a particular software package or language because if you understand the theory, you're smart enough to learn a new language or anything else.</p>

<p>I second ehiunno, the caveat is CS theory is much more difficult than hands-on knowledge. Personally I think theory can't be learned as well as hands on knowledge are, it depends on how clever and creative you are, for example: it's hard to teach someone how to design a totally brand new algorithm to solve a problem even though you may show them all known algorithm to solve similar problems but some genius may be able to design a good algorithm without learning all other known algorithm first.
On the other hand, hands on knowledge like learning how to code an O.S is "easier" in a sense that you can succeed if you invest enough time working on it rather than coding it cleverly.</p>

<p>Pearlygate is right, but look at it this way: certainly, its easier to learn to code an OS than to, say, write a compiler/assembler for a turing complete language that you came up with that does something original, or its a lot easier to learn how to use say, the bellman-ford algorithm than to come up with it, but look at it this way, who would you rather hire? The first guy, or the second one? I know I would rather have a few brilliant people that I have to shell out big bucks for than a slew of the former for cheap.</p>

<p>Or I could put it like this, which kind do you think Google hires? IBM even? Its not the first kind, its the second.</p>

<p>So in conclusion. Theory = win. But just be warned, a lot of theory isn't really applicable, its just good to have. CSists call it getting weaned off of theory when you get a real job as a CSist.</p>

<p>Thank you guys for the input. I now clearly understand the difference, and theory does sound fun. I like most aspects of programming, so I believe I'd enjoy theory as well as more applied CS classes.
Thank you for clearing the question up!</p>

<p>Does any one know by any chance if there are ranked CS/Engineering undergrad schools besides the ones on USnews? I'm trying to find more safeties/matches.</p>

<p>post your stats and I can give you an idea, but other than that, there aren't any rankings of undergrad CS programs. The EE and CE rankings will give you an <em>idea</em> but nothing solid.</p>

<p>haha. I'd be glad to. I haven't taken my SAT yet. I'm planning to in the Fall though. I'm expecting 700+ math and the rest will probably be in the 600's, but this is my junior year and this is when I am going to do most of my Ap exams,SATs,and SAT II. Although I did take bio sat..got 730 M, but that doesn't help much.
Do you mind if I message you when I take SAT and get results back?</p>

<p>not at all, i love to help</p>