Computer Science vs. Computer Engineering? 718
Dan B asks: "Like many other students across America, I plan on attending college as a freshman next fall. I am very interested in computers (I only reload the Slashdot site every five minutes), but there is something that perplexes me: what major should I choose? It seems that many companies are looking for computer scientists, but would they be desperate enough to accept computer engineers? What is the difference anyway? Well, a college guidebook could tell you 'computer engineering deals mostly with hardware' and 'computer science deals mostly with software', but that isn't clear enough for me. I believe the Slashdot community would be best fit to offer a more in depth perspective on the two majors."
Computer Engineers (Score:2)
Well... (Score:4)
Don't do either (Score:2)
You can become a computer programmer anytime. It's like carpentry, you learn on the job.
An education on the other hand is something that you get in college. Why not learn something that will help you make sense of the world, like history?
Simple. (Score:3)
Lame Joke. (Score:2)
The problem with Mathematicians is that they work on toy problems in order to get results.
The problem with Computer Scientists is that they cheat on toy problems in order to get results.
--
Well, what do you want to do? (Score:2)
IMHO, there's so much confusion in the marketplace over the differences in such terms that you should really worry more about what you want to learn and take classes appropriate to that. Some places, they're looking for sysadmins, they want you to have a comp-sci degree--other places, comp-engineering, for essentially the same role. Frankly, I think that most companies who specify their requirement so narrowly do so just because it sounds good, not because it really makes a difference in the job you'll be doing. I look for companies that are more concerned with your analytical skills and technical abilities than your credentials.
CSC vs CEng (Score:4)
If you want to work on embedded systems, or on DSP stuff, get a CEng degree.
If you aren't sure, get a CSc degree. If you aren't good at Math, get a CSc degree, a CEng degree is four years of math.
90% of jobs can be done by either a CSc or a CEng, and 5 years after you grad it won't really matter, it'll be your exerience that counts.
i started of in ceng and switched to csc... you need a _huge_ ego to do ceng.
Plan of attack (Score:4)
Second, talk to your advisor. This is invaluable. They will be able to explain the your different options (or point you to someone who can).
Third, as a quick guide. If you are interested in "computers" take an intro class that covers a wide range of topics so you'll get a feel for what's available. Also talk to fellow students who have related majors.
If you are interested in "programming" just go ahead and start in on the Computer Science major and decide on a concentration later. I would very strongly warn you against some kind of vo-tech, "we'll teach you VB and send you out into the world" type of major. Take the full science path--it's definitely worth it.
--
Non-meta-modded "Overrated" mods are killing Slashdot
Re:Don't do either (Score:3)
You can become a physicist anytime. It's a science like Computer Science, which is like carpentry, you learn on the job.
You don't learn CS on the job. You may learn some programming, but that is a far cry from CS theory.
Real Computer Scientists don't use computers.
Dancin Santa
Similar difference. (Score:2)
p.s. - half the programmers I know used to be engineers, but gave up on getting lousy jobs so they could do something they actually enjoy. Only one of them has an actual Comp.Sci degree, and what they do sucks ass.
not like anyone will actually read this...
Science v. Engineering (Score:5)
In reality, there's very little difference between the two majors. Both will teach you basic computer programming, a little bit of hardware, and some of the supporting math. A CE degree will probably require you to take a few more engineering courses, while a CS degree might have some more math. Really, I would consider those two degrees interchangeable, with the specific education you get depending more on the school you attend than the name of the degree.
My personal opinion? Get a physics or math degree with a CS/CE double major/minor if you want very high-level technical programming jobs (in an engineering firm, for example) or if you want to do academic work. Get a CS/CE degree (don't really think it matters which) if you want to be a software engineer/software developer. If you just want to make some quick money and have no strong love for computers, get a quick certification. Note that these are just general guidelines... I know several great technical programmers who are entirely self taught, and I know one guy with a BS in CS and and MS in Math that can barely write a "Hello World" program in C.
a must-read IMO (Score:3)
Nice comparison (Score:2)
CS vs. CE (Score:2)
The differences and similarities seemed to me to be.
1. Same amount of math
2. CE -> more HW, gate level, analog design - VLSI optional minor
3. CS -> a lot more 'theory'
Ex. Algorithms for CE was "Here are these algorithms, Big O notation, this is what each is good for, apply some of them, learn how to use them and research them." For CS majors is was "Prove these algorithms work, analyze them, workworkwork, don't program them or do anything practical with them".
4. CE more learning how to program and how to learn the principles behind the language. CS seemed to involve a lot more pointless suffering.
5. After finishing the CE course, I can design everything in the computer and it's software except the power supply and the chip masks. After the CS program my friend learned how to program in LISP and x86 assembler.
If you're schools program is like this, it's an excellent way to learn to program / design computers. But if it's just an EE program with some programming classes, you probably don't want to take it.
Get a course catalog (Score:5)
Please for the love of God don't be asking which one will make you more money. People wonder why managers are farming out good jobs to India, it's because American kids are walking out of college and saying "Whaddya mean you're not gonna pay me $100k? What did I go to school for?"
Computer Science (Score:2)
As a computer scientist, I can be expected to pick up any new concept reasonably quickly, becuase I learned the practice, not necessarily the implementation. It was also way heavy on math.
We didn't have a computer engineering program (although they may now), so I'm not sure what that is, but odds are it bridges the EE/CS gap.
The difference is literally academic. (Score:2)
If you take the engineering track, you will spend a year learning the physics of transistors, another year studying communications and signal processing mathematics, and much more time studying material which you will never use. Along the way, you will have a few interesting courses, especially if your department if flexible with the electives.
If you go comp sci, you will spend loads of time programming in Pascal, lots of time writing compilers (without even the slightest introduction to yacc), and learning lots of stuff you will never use. Along the way, you will have a few interesting courses.
You can tell the date that a professor receives tenure, as that is the date that they stop keeping up with general changes in IT. A truly useful degree in either field should ideally involve a professional certification, but I've never heard of any large institution doing it (which can be attributed mostly to hubris).
If you want a narrow focus in comp sci, then go comp sci. If you want a broader exposure to the physical sciences in general, go with engineering. You will not use up to 90% of what you learn in the field. Such is a degree.
Re:Don't do either (Score:2)
Or, even better, double-major--there are definite benefits to taking CS classes, especially ones that deal with theory. However, I agree wholeheartedly that there's a lot of value in having a liberal arts education. The biggest difference is that having the CS classes will probably be more valuable in an economic/job-seeking sense whereas the liberal arts classes (especially if you can focus in on areas that really interest you) will have much more value to you personally. My 2 cents, anyhow.
(Oh, yeah, I'm considering a double-major in English and Comp Sci...aside from the threatening senior-year workload, I think it should be doable.)
As a Computer Enginnering Student: (Score:5)
A Computer Science major deals primarily with programming and algorithms. They write programs, Operating systems, high-level drivers, etc.
An Electrical Engineer deals primarily with hardware - logic gates, and designing hardware that will perform algorithmic computations. IE. they design chips. These are the guys who work for Intel, AMD, etc. They don't worry much about programming.
A Computer Engineer is an Electrical Engineer that specializes in programmable computer devices, and therefore programming. So a CompE is mainly an Electrical Engineer, but also does a great deal of programming. Some CompE's design hardware, others write extremely low-level software, drivers, etc. Computer Engineers quite often work in the embedded market, as they have the skills to do both the hardware and software engineering involved.
Think of an Electrical Engineer as a geek who designs computer chips with a minor in math.
Think of a Computer Engineer as a geek who designs computer chips with a minor in Computer Science.
Think of a Computer Science major as a geek who programs computers, and doesn't design hardware.
And, in my opinion, it's funner to be a CompE because you can be doing hardware on one project, then software on the next.
Mathematics or a hard science (Score:3)
Disclaimer: I am a Maths graduate. I didn't take the programming options because they cut into my drinking time too much.
--
#include "stdio.h"
The difference.... (Score:2)
Computer science: much math-based theory, some programming
Computer engineering: much hardware design, hardware theory, some programming (assembly, C, C++)
Software engineering: tiny bit of hardware design, some theory, much programming, some software development process
Re:Course Choices (Score:2)
*Please*, don't go to a school that thinks a CS degree means you can program, in any language, whetehr it's VB,C,C++,Java, etc. Computer Science is not about programming -- as has been reiterated above. It's about understanding the core principles and paradigms of algorithms, theory of computation, operating systems, and language. It's about networks and about compilers, not about code. Computer Scientists are linguists, operations researchers, mathetmaticians, and prophets. They are not primarily coders. Don't confuse computer science with computer programming!
CE vs CS (Score:2)
I mainly made the switch because Software Engineering is more generic, more open to moving around to different areas. Once you know circuit theory and advanced signal analysis (ie. DSP) you are slotted in a specific area.
Keep in mind though, people like ASIC designers make good coin.
rLowe
It's all about the focus (Score:2)
In my experience, both comp sci and comp E majors could program. The real difference came when you crossed software with hardware, like in embedded programming.
If your goal is to write object oriented software, on user level applications, or create the next set of tools to be used for development, go comp sci. If you want to get into embedded stuff, it sure is nice to understand the hardware you are working with a bit.
Re:Your preference (Score:2)
--
Re:Computer Engineering is about Digital... (Score:2)
Yeah. Because Cormen, Knuth, Sipser, Rivest, van Dam, etc. are such IT whores and code monkeys.
The robustness of the degree depends not so much on the field but on the degree program at the school in question. You can go to any number of schools and get a degree that prepares you to be very good at IT, software engineering, etc. That does not completely describe the field of "computer science", however; it describes some of the applications of computer science. A scientist is a rather different creature by necessity.
Re:Don't do either (Score:4)
Don't listen to this. This is the reason that so much software sucks. And so many web pages. People that don't really understand programming and computers write ugly, kludgy code, and they're lucky when it works.
Computers are complex. You need to know a lot about everything. To write efficient programs you need to know how CPU's work. To make efficient CPU's you need to know how high level programming works. That's why a lot of CS and CE degrees differ by a small number of courses.
Re:Science v. Engineering (Score:2)
Computer scientists on the otherhand are more interested in the math and theory behind the applications. Computer Scientists do less "useful" stuff, speaking for the present, and are really just software academics. Its sort of like the difference between those who use ML and those who use Java.
EE476 Lab at Cornell (Score:2)
(PS - you can get an AT90S8515 kit for about $70 here [kanda.com] )
I'm a CompE and suggest it (Score:2)
When you get out in the real world, you don't sit and code every hour of your job. You have to look at your requirements every morning and make design changes based on your requirement changes. Sure you code most of the day, but the important stuff is the design you do every morning. Trust me, when it comes to coding, its better to be a good designer than a good coder. And, as you probably know, if you code all day without design, it usually results in wasting hours of coding something that isn't a requirement, where as if you spend that extra hour every day designing, you hardly have to go back on work you've already done.
CompE is the hardest computer degree... requires a ton of math and sciences, but its better to go through 5 years of hell and be set for life than breeze through 5 years, and spend the next 10 years proving your worth.
--
It Depends on What School (Score:2)
The basic tenet that CompE = hardware, CIS = software is true. However, my experience is that CompE is a much more well-rounded degree. A true plain-vanilla CIS major is nothing but a two-bit (no pun intended) lab monkey who sits in front of a screen all day. If you can find a CIS department that doesn't teach programming, but instead teaches software ENGINEERING then you will have the opportunity to learn about programming theory, algorithm theory, mathematical representations, etc. An engineering CIS department is a thousand times better.
On the other hand, at least at my school, our CompE department could wipe the walls with the CIS kiddies. We have to spend nearly as much time programming as they do, and are often better at it. I think that understanding the internal hardware makes you a lot more qualified to write code that best utilizes that hardware. And by the way, most CIS majors couldn't write assembly to save their grandmothers.
The final comment is that often CIS departments are not accredited progams, where on the other hand CompE generally is. That can be of critical importance if you end up at a state school especially. Always stick with an accredited program over a non-accredited one (unless it's some special program like video game programming or something that is not universal) because you'll be on the same playing field with other graduates in your major.
Hope it helps,
|\|\ajorachre -- out --
Re:Course Choices (Score:2)
Were I going back to school, the one thing I would look for is breadth in the curriculum. Am I going to be learning about the many different programming langauge paradigms? Am I going to have the opportunity to take classes in a range of areas (AI, systems, databases, graphics, HCI, theory, etc)? How much depth will I be going into in the various topics?
Concrete or abstract (Score:2)
I had an engineering-based education, and now work in a software-based field. Usually when I read a technical paper, I can tell from the level of abstraction/virtualization whether the author comes from a CompEng or CompSci background.
Re:Don't do either (Score:2)
Two Sentences (Score:2)
Seriously though, I would get a hold of the course catalog for a school you are interested in, and see which classes in which degree/department has more interest for you. For example, most CprE programs require some EE coursework; if you're not interested in EE, go CS. Career-wise, it makes very little difference really. Figure out which department you'd be happier spending 4-5 years in, and go with that.
That's a little biased... (Score:2)
If a computer engineer could easily go into programming, that's only because a programmer could easily go into computer engineering. Because there's such a dire need for programmers right now, even bad programmers look good. Maybe that's why it seems like computer engineers have no trouble programming. They don't look that bad by comparison to all the unqualified DotCom code monkeys. But real programming, just like real hardware design, is not something you just "pick up" but instead learn through years of experience.
On the bright side, that does mean it doesn't matter which major you pick as long as you get lots of exposure to different fields.
-Ted
Re:Don't do either (Score:5)
There is a big difference between learning programming on the job en being an educated computer scientist.
I don't mean to downplay possible intelligence, speed, intuitiveness, adaptiveness, etc. of self-made programmers, but you just cannot replace a university degree computer science with work experience.
A good computer science curriculum includes mathematics (calculus, linear algebra, algebra, discrete math, logic, formal languages). No matter if you directly use this math after your education or not, you will be trained in logical thinking by having followed these courses. It makes you aware of current problems in computer science and mathematics and enables you to recognize such problems on the job so that you will not try to re-invent the wheel.
Furthermore you'll learn lots about how computers, networks, operating systems etc. actually work. Although you may know a lot about computer without having studied them in university, you'll be surprised how much new stuff you'll learn when studying computer science. I knew a lot about computers before starting my studies, but know I am able to build a 1 or more bit CPU by myself if it was necessary. I would use the book of course, but I know down to the digital logic level every detail of how a modern microprocessor works. As for computer networks: my programming assignment consist of building my own networking stack including ARP/RARP, IP (with fragmenting/assembling), UDP and a TFTP server and client on top of that. The only thing I get is the ethernet driver, I have to build the rest myself.
Even then, programming is maybe 25% of the complete curriculum.
There's no way you'll get this knowledge when just doing programming on the job 5 days a week, without formal studying of the subjects.
CE vs CS vs EE (Score:3)
In a nutshell, CS is pure math/software (do NOT think CS is just programming), EE is pure hardware (from to atomic level up), and CE is basically a blend.
CS majors have very little hardware (I think one, maybe two digital logic courses is all).
EE major have very little software (a little assembler in a uP course, and one or two C/Java courses).
CE people do both. For example, at the University of Waterloo CE program, hardware and software is basically equally split, with a slight emphasis on hardware.
The problem is that, while CS and EE are basically the same everywhere, CE is _not_ the same everywhere.
Keep in mind that while a CE (and even EE, to some extent) can easily move into most programming jobs, a CS will find it difficult, at best, to move into hardware fields. CE/EE also have the advantage of understanding how hardware works, so are often preferred for writing low-level code (such as drivers), and will be better at debugging said code on a product.
If you like hardware and hate software, choose EE. If you don't like hardware, choose CS. If you like both, choose CE.
FYI, I am currently in a computer engineering program, but I had considered myself destined for computer science for all but the last bit of high school. I have zero regrets about choosing CE or CS (I know quite a few CS majors).
Major Major (Score:2)
Get a liberal arts degree.
Nobody cares what your undergraduate degree is, and you'll have plenty of experience when you graduate. You'll be a better human being and much happier if you don't kill yourself with geekthink before you learn how to write in English.
As an IT manager, my #1 criteria for hiring is, "Will this person creep everyone else out, or does he/she speak English and know how to behave in civilised society?"
slight difference (Score:2)
Computer Engineering is moreof how the hardware works. Like how to build your own CPU and such. This would actually get into the transistor level of hardware in many cases. You probably would take a few electronics courses as well.
Computer Engineering is an off shoot of Electrical Engineering, with a focus in Computer Electronics rather than general electronics. In some schools the difference between CS and CE or CE and EE is not that big. In the school that I went to it was assumed that if you were a computer engineer that you would basically be an electrical engineer with a focus in computers. Many of my CE friends (I was EE) had al the same classes as me except for maybe 6 were different. I had to take Signals and systems which dealt with fourier transforms and complex applied math, where the CE's did not as well as an EE I had to take Microwaves where as the CE's did not. However they all had to take Elcetronics, Semiconductors, and Computer Architecture, where as the CS students did not take these classes.
This was a few years ago so things could have changed since.
I don't want a lot, I just want it all!
Flame away, I have a hose!
Differences... (Score:2)
It'll be pretty flexible when you get started, too. Often times, you'll find that many of the courses you take within CE or CS will be the same. You'll take a lot of Math, some Physics... the basics. At the University of Illinois (the engineering school with which I'm most familiar) you'll take CE classes if you're a CS major (Intro to Electric and Electronic Circuits) and CS classes if you're a CE major (Intro to Computer Science). So, if you aren't entirely sure going in, you can take a little bit of both.
Rule of thumb is this: if you're interested in the nitty-gritty interworkings of computers and their hardware, you'll probably like CE. If you're interested in the nitty-gritty interworkings of software, you'll probably like CS. If you want to be a pointy-haired boss, and manage all of the above, MIS is the place to be.
Good luck!
~Di
Its about accreditation. (Score:2)
However, that is completely wrong.
You see, if a university wants to give someone a degree with the word "Engineering" on it, the program has to be accredited by ABET [abet.org]. The accreditation makes sure that students are learning enough programming and, yes, that they know at least something about circuits, computer architectures, and signals and systems (about one class each is enough). Therefore, only departments that have been accredited by ABET can give "computer engineering" degrees.
If a University wants to give "Computer science" degrees then it can get accredited by CSAB [csab.org]. Their accreditation requirements are more "lenient" than ABET's since they require fewer "hardware" courses (if any).
Usually, the only difference is that a computer engineer has to take about three more classes (circuits, computer architecture, signals and systems) than a computer scientist in order to fulfill the degree requirements, but it depends on the school.
Note also that CSAB and ABET are integrating [csab.org] their CS and CE accreditation so in the future there probably will not be any difference.
The U. Michigan has a good FAQ [umich.edu] on the subject.
I know this because almost every singly student I advise asks me about it.
Either or? Neither will matter in the long term... (Score:2)
Know what? In the long term it won't matter which degree you get, because I think it's far more important what you do BESIDES get your degree while you're at school that'll make the difference. It became apparent to me when I went back to school (at 23) to get my degree (after a few abortive attempts in other majors) that 'Computer Science' programs were by and large designed to churn out academics - people who are supposed to remain in academia researching the most minute details and esoteric topics. They're NOT designed to turn out people who are useful in industry - building THAT skill set is up to you.
If you want to prepare yourself for a job in the real world, get either type of degree (C.S. or C.E.). In the meantime, get a job in face-to-face customer support, work on a help desk at your school, and spend as much time as possible filling your option classes with courses OUTSIDE the CS/CE curriculum. In order to succeed in the business world you'll need to be far more rounded than the typical CS or CE degree will make you.
Take business classes, take history of science, take geology - take SOMETHING to make you more than 'just' a geek. (I consider myself a geek still, by the way. I'm 34 now, and I started with computers with a TRS-80 Model I Level I at 12 in 1978).
If you want to make it in the business world your computing skills will only carry you so far. Make sure you're more than the sum of your geek skills and you'll excel no matter which degree program you choose.
-drin
Re:just offer a quote from Alan Kay (Score:2)
Re:Don't do either (Score:3)
Don't listen to this!! The absolute worst people I've programmed with have been these sorts of people... who think they can slack through college and the "pick up this programming thing" on the job. They absolutely lack the discipline of programming, don't plan their programs out well enough, and lack the insight into useful algorithms and methods to make programs work. These sorts of people will become managers and lack the knowledge of true software engineering to manage effectively.
If you want to get into programming, go into Computer Science. If you want to get into the hardware engineering for computers go into Electrical Engineering, since I feel the "Computer Engineering" degree doesn't go into great depth in either CS or EE (or so the programs I've been exposed to have been)
Eng's vs. Sci's... (Score:2)
I don't believe that there is a firm line between Computer Engineering and Computer Science, but I would suggest it isn't a hardware/software issue at all.
In Engineering School we had much more of a focus on problem solving, as opposed to the research oriented focus of your typical Scientist. For example, a CS major might study sorting algorithms in great detail, while an Eng major would simply learn the basics of sorting, and the advantages of different methods.
This difference isn't just found in the computer field, as we can have Chemical Engineers and Chemist, Civil Engineers and Material Physicists, and so on. Generally what separates the two teams is that scientists investigate natural phenonomon, while the engineers specialize more in applying this research to real-world problems.
Of course this is a generality, but seems to apply to the science and engineering environments I've been a part of.
hardware and software (Score:2)
Disclaimer: I majored in Electrical Engineering with a Computer Science minor. I went to a school where my peers generally considered the Eletrical Engineering program to be more rigorous than the Computer Science program. I confess that my opinion may be schewed by this experience. YMMV.
The terms "Computer Science" and "Computer Engineering" are somewhat nebulous; different schools will use them to mean slightly different things. "Computer Science" is almost always far removed from hardware. "Computer Engineering" may or may not be. Some schools will also offer a Computer specializiation within their Electrical Engineering program; this will definately be hardware-oriented.
That said, being close to the hardware you'll learn more about assembly and about how the guts of a computer works. An Electrical Engineering program is typically much more calculus-heavy than a pure-software program. Being closer to the hardware will prime you for doing low-level work such as kernel hacking, embedded systems, compiler hacking, fine-grained optimizations, dealing with network packets, etc. You'll also likely to learn a whole slew of other interesting things about electronics, signals, and how to avoid-calculus-and-use-algebra-whenever-possible (Eletrical Engineers have developed many innovative techniques for this). You can become better at programming in C than the average pure-software person since you'll understand what the machine is doing underneath it all.
With a more purely software program, the school is more likely to expose you to things like Java, GUIs, databases, and other high level things.
In my experience, many companies will gladly hire anyone with a CS or EE degree as long as they have the requisite skills. For example, for an embedded systems programmer, a computer-focused EE or a low-level-focused CS are both suitable. For GUI work, a CS is more likely to be hired simply because you're not going to find many entry-level EEs with GUI experience.
(Hint: virtually everything electronic is an embedded system these days. Particularly sexy, high-paying jobs can be found in the networking industry. Somebody needs to program all those routers and figure out how to make the Internet backbone better, faster, and cheaper...)
Eventually, for a programming job, it doesn't matter which degree you have; it's your skills that count. If you spend lots of time coding on your own time, that goes a long way, and the skills you accumulate will open countless doors for you. Employers often like to see that you have a degree, but once they see that they begin looking at what you know how to do.
YMMV
-- AgthorrLook at the details (Score:2)
Computer Science is the study of computer programming, but usually does NOT get into the software engineering aspects, much. It's much more concerned with implementation than design.
Software Engineering, on the other hand, fixes entirely on the design (oh, for the days of JSP, JSD, Z, reification, etc...) and leaves the implementation to others.
This difference is NOT trivial. If you're good with abstract mathematical notation, SE is a good field to be in, or would be if anyone hired people in this field. (Well, the military probably do, but I doubt much beyond that.)
On the other hand, if you're good with programming and logic, then CS is probably the better field. Sitting behind a desk, scrawling equations on bits of dead tree just doesn't compare with typing the actual instructions into a machine.
CE probably gives more options (Score:2)
Then when you're done, you're free to take either route. Trying to go the other way, CS to CE, might not be as easy. You'll miss out on the circuits, digital systems, electromagnetics, linear and digital integrated circuits classes. Which although not uneccessary for for CS, are crucial to computer system hardware at the board and chip level.
CE might be better (Score:2)
Now for the important part. Here is what you can do (without a lot of trouble, anyway) with each of the degrees:
CS: software (mostly app/GUI software)
CE: software, hardware, embedded software (any low level software really)
EE: software, hardware, embedded hardware
Please no flames by CS people who do jobs I didn't list, this is from what I've seen at my school.
Notice which ones allow you to do more. And yes, software companies will go for EE's and CE's. I had a few recruit me, in fact, although I wanted to go into hardware.
The saying is this: EE's can be taught software. CS's cannot be taught hardware. I'd go for CE in your case. EE and CE degrees are far more "robust" than CS degrees in my opinion. Keep this in mind, however: you won't have to choose a major or lose much time if you don't decide for sure until about the end of your second year. The coursework proabbly won't vary by more than a few classes in that timeframe.
Here is some information you may find cool (Score:3)
I've had to deal with the same questions as you and it boils down to how passionate you are about certain aspects of the computer world. Be advised this is not the be-all end-all of advice.. but it may help you:
a) Do you love hardware? Do you long to learn how your motherboard works? How a CPU is built? How do you create those chips on your motherboard? Do you find electronics interesting?
b) Do you love programming? Do you strive to solve complex programming issues? Do you write tools or programs in your spare time?
If you agree with A, choose Computer engineering.
If you agree with B, choose computer science. Computer science, in most programs, is MOSTLY programming theory, with very little hardware.
Choosing route A will lead you to learn basics about computer science, but as well how computers were first designed, to how complex today's chips are, and methods on how to design them. You will do far less programming than a CS major, but you should still come out with the ability to write good programs, as well as hardware design.
There are degrees which combine the best of both software and hardware, being a Canadian I can only point out two examples. These are both Engineering examples.
Sysyms & Computing at University of Guelph [uoguelph.ca]
Systems Design Engineering at University of Waterloo [uwaterloo.ca]
My advice... (Score:2)
----
Learn ALL standards (Score:2)
Oh and to the people saying that you may be required to declare a major up front: Yes, I know. That's why I said "if you MUST".
--
Non-meta-modded "Overrated" mods are killing Slashdot
Whatever you do, avoid the straight and narrow (Score:2)
Try to do college on the 5-6 year plan, if you can. Avoid the straight and narrow. Look upon the list of required classes the university will give you as a starting point, and not as a sacred document. The more you learn, the better you are in your job.
One good example: GUI design. Part psychology (how people act), part art (it looks good), part engineer (it works good).
Take an art class (or two). Throw in some philosophy, geography, history, classics, and a foreign language. Expose yourself to strange people, ideas you disagree with, and crowds you wouldn't normally hang with. Every thing you learn is another tool you can use later.
Your ultimate goal should not be to complete college, but to have bettered yourself when you graduate.
Re:Well... (Score:3)
Even more than that, Computer Science has NOTHING to do with Computers!!! It is the study of what can be computed. If you want to break RSA encryption, you COULD do it on a Cray, or you COULD do it with rocks on toilet paper!!!
I've had little exposure to CE so I can't comment on that...
Re:Whatever you do, avoid the straight and narrow (Score:2)
I just thought I'd throw that in, since I don't have moderator points right now
learned this the hard way... (Score:2)
My school has a major called CS&E, which I chose 5 years ago, because I was young and naive. The problem is, I learned which I wanted to do after I picked the major. Now, I find myself stuck learning about transistors (not that that's bad, I just don't like it) even though I know that I'm going to be a software developer. I regret wasting time in CE classes, but I must admit I did learn something, and that is never bad.
You need to ask yourself what you enjoy doing, and what you can see yourself doing for the rest of your life. This is tough, especially when you havent sampled either major enough before college. I would suggest, if possible, going in undeclared, take a few lower division classes from each major (make sure to do that early, like within 2 semesters, so as not to waste a lot of time) and then pick.
--
Re:Huh? (Score:2)
--
Non-meta-modded "Overrated" mods are killing Slashdot
Here are the differences (from a current student) (Score:2)
Software Engineer: A software engineer is very different from a computer programmer. A SE will learn how to set up large software projects (normally with a team), and carry out these projects. Emphasis is on writing real programs, as opposed to proving that you *can* write the program (which a CS major would do). Software Engineers are drilled in good code structure and the correct way to set up very large programs.
Electrical Engineer: Pure Hardware, analog and digital. This covers a huge range, from RF circuits, microwave antenna, radio, microprocessor, microcontroller and asic design. Very low-level, usually the only programming (if any) a EE will do is in Assembly or C.
Computer Engineer: A computer engineer combines the digital aspect of an Electrical Engineer with some of the Softare work of a Software Engineer.
The three "Engineer" majors really have very little to do with what the CS majors do. A software engineer could get by never using scheme and lisp, whereas a CS major would use those quite a bit.
Also, for none of these should you expect to take a course in C, or C++, or something designed to teach you a specific language (except maybe an advanced C++ course for Software Engineers.)
Moller
Education-style differs (Score:2)
---
Computer Engineering as it applies to employment (Score:2)
And in reality noone these days worth their salt gives a lick about your degree - only if you can be productive. And think you're getting a higher salary by being more flexable and/or working w/ hardware (many times more difficult)? forget it - you're not even close to the 60k+ starting salaries GOOD new-grad CS people get.
Re:Well... (Score:2)
Re:Just graduating from Computer Engineering (Score:3)
The typical "CS is software, CE is hardware" is rather vague and almost stereotypical, but I think it's reasonably accurate.
As far as software courses go, the core courses here include Java, data structures and algorithms, an OS course, and a software engineering course. 4th year elective courses include AI, database, distributed systems programming and more software engineering courses
I myself graduated from CS at Waterloo a few years back. (For those who don't know, Waterloo is, deservedly or not, arguably or not, Canada's most reputable university for computer-related studies. It's a couple of hours drive from Toronto.)
I agree that CE is a bit broader than CS, but I'd disagree that CE is simply a superset of CS (as somebody else, not you, has stated).
At Waterloo, the difference is not just one of focus, but of administration: CS is part of the Mathematics faculty, and CE is a part of the Engineering faculty. I understand Waterloo is one of the few universities that has an entire faculty devoted to math.
The CS curriculum there includes very math-like subjects such as computing theory and abstract machines like Turing machines and finite state machines. And obviously, there are more pure math courses.
P.S. From one Waterloo alumnus to another (soon-to-be), get ready for lots of letters from UW begging for money...
--
Re:Don't do either (Score:2)
Pure computer science doesn't focus on tools, methodologies, or implementation. It focuses on proofs and design.
Hence the famous quote by Donald Knuth, "Beware of the above code; I have only proved it correct, not tried it."
I happen to dislike much of this way of thinking. However, without pure CS the rest of the programming community would be far less enabled. Think of it as the difference between experimental and theoretical physicists.
A Correction (Score:2)
The fact that everyone has been getting the "up" and the "us" in the wrong order is just frustrating. You may now all go back to your trolling, but please, in the future, troll with the proper word order.
--
CS=pure theory+X, CE = X = physics (Score:2)
Unfortunately, once someone discovers the frontier, the can it, and it becomes a black box for everyone to use thereafter. "Programmers" are people that use these canned boxes (after hopefully learning at least a little bit about data-structures and basic algorithms). You can go to trade school or pick up a "learn X in 21 days" and be a high paid programmer.
Software Engineers are true engineers that treat a piece of software like a bridge; they handle the whole process from concept, to prototyping, to implementation, to testing. They also program (though not necessarily).
Electrical Engineering (which is what I took), first and foremost teaches about electricity, materials, and the physical devices (like radios, alternators, and computer-parts). You are free to take all the programming and com-sci that you like. EE's also can focus on communication theory or filtering tools (often used in audio / visual). Anything an EE does will involve some type of programming (but rarely in C; More like VHDL, Matlab, or others).
In many Universities, Computer Science requires you to learn some Arts or applied science. Programing is only useful if you use to towards another field. So you'll have to learn "education", for example, so that you can write programs for teachers. Or learn Geology, and write software for them. Etc.
Computer Engineering is Computer science with the focus on computers. It's probably closer to EE than Com-Sci (at least at the University of Delaware), because you learn about material science. Because it's engineering, you're closer to being a "software" Engineer; you have much of that engineering theory (you have many physical design projects throughout the course-work). Once you're CompEng, you have the option of doing literally anything... You could pick up a minor in Medical science and write software for them, or go straight into designing the next great Video Chip, or just rent your services out for web design. In CompEng, you have fewer available electives since much will already be chosen for you (math, physics, EE, com-sci).
Com-sci gives you the most flexible course options, especially if you're not interested in physics or hard math, but Comp-Eng is a more valuable degree over-all (if you purposefully take a diverse set of courses).
And of course (Score:2)
http://slashdot.org/askslashdot/00/12/27/1634227.
Re:Get a course catalog (Score:3)
For example, at my university, there is Computer Science, Electrical and Computer Engineering, and Information and Decision Science.
CS is focused on algorithms, data structures, compilers, although there are some system options.
ECE has a lot more flexibility, you can essentially get a CS degree with only a few hardware classes, or you can get essentially a physics degree, or the more traditional EE curriculum...
IDS is where you go if you want to be an IT/web whore, you have to take a few "real" programming/algorithms type classes, but it's mostly web applications and such.
But, YMMV at any school, so get the catalog, talk to students, etc. Be warned, most students will answer that theirs is best - listen carefully to why they think so.
-Alison
Re:Don't do either (Score:2)
Re:Course Choices (Score:2)
Also, a school that has a good CE as well as a good CS major, should "cross breed" the programs. So that CE Majors get a taste for the people that they're designing for, and the CS majors get a taste on the physical limits of hardware. Makes for strange bed fellows, and also helps technology increase
FYI, I am a student at University of California at Irvine. =/
Course titles are totally misleading. (Score:2)
In the EE curriculum which I pursued, there was a course called "EE Materials and Devices." All this class addressed were diodes, BJTs, and FETs from an extremely theoretical standpoint. When someone says "and devices" to me, I am thinking of more than 3 devices in total. Ditto goes for "Principles of Electronic Instrumentation" which basically covered the same material in an introductory capacity. Man, was I sick of transistors by the time that was over. It was a waste of time.
Or how about "Linear systems and signals" which was a continuation of continuous Laplace and Fourier analysis from differential equations, or "Signals and Systems" which opened the discussion of discrete applications of Laplace and Fourier? Did the course catalog rightly discuss how these studies grew out of differential equations? Of course not.
Sorry, but a freshman will have absolutely NO idea what these courses address by looking at the title or a one-paragraph discussion in a course catalog. Were they to know, they would be somewhat disappointed.
Re:Don't do either (Score:2)
My experience from my days as a student slave in the chemistry stockrook taught me that most real chemists shouldn't be allowed anywhere near chemicals, especially the organic chemists. Damnit, all they ever do is make really dangerous things that smell bad.
_____________
I object to that portrayal (Score:2)
That difference is a relatively recent creation. In its early days, physics was an experimental and theoretical pursuit for the scientist. The increased complexity has "forked" physics.
In any case, experimental physicists aren't any less physicists for validating theory. They're the "experiment" part in the scientific method. Theory that can't be demonstrated is hot air (see early philosophy) and experiment with no aim is generally regarded as psychosis.
In short, my point is that experiment is vital to "sciences." If thought-experiments are all that make up "Computer Science" then it would be best classified as a branch of mathematics. The theories in CS (stemming from Turing's and John Von Neuman's in automa) are the scientific part. "Theorems" belong to pure mathematics.
____________________
Re:Course titles are totally misleading. (Score:2)
Re:Plan of attack (Score:2)
What is computer engineering (Score:2)
Computer engineering has its roots in electrical engineering. Electrical engineers do not only learn about circuit analysis they learn about microwave transmission, waveguides, transmission lines, optics, analog/digital communications, neural networks, etc.
Since computer technology has its extreme set of complications such as VLSI design, embedded system design, digital networks, microprocessor design, etc, the computer engineering field was created to face these specialized challenges.
Computer Scientists on the other hand tend to learn software engineering principles, theory, programming languages, and there math coures tend to be less intensive than an electrical engineers by default. This by no means implies that computer scientists do not or cannot take hardcore math classes.
Computer engineers do take computer science classes such as computer architecture, assembly, object oriented programming.
To sum it up:
Electrical Engineers: Physics, computer architecture, math, minimal programming.
Computer Engineers: Computer architecture, firmware design, math, low-level programming.
Computer Scientists: Software engineering, programming languages, theory, math.
If you equally love hardware and software pick computer engineering. Although I believe there is more long term security in the traditonal fields of CS and EE.
If this still does not help, you can do what I did, which is take them all
Re:Don't do either (Score:2)
From my experience CS and ECE majors learn "cookbook" ways of dealing with problems. Now, there isn't anything wrong with that, but it isn't the best approach. I have found that the physics and math majors do much better in the ECE and CS courses then the ECEs and CS majors do. The reason why is because physics and math are the basis for all of engineering, so not only do you have all of the knowledge gained through the ECE and CS courses that the pure majors get but you have a fundamental understanding of what is happening. The most important difference, though, between physics/math vs ECE/CS is that physics/math teaches you to use what you have to approach problems that you have NEVER seen before, whereas the ECE/CS teaches how to approach problems that look similar to ones that you have seen before. A good analogy is learning phonics vs whole language, both technically "work" but phonics teaches how to deal with new words whereas whole language requires some outside source to teach you.
Take the courses that you are interested in, but my advice is to learn the fundamentals.
Re:As a Computer Enginnering Student (WRONG) (Score:2)
Myth - "Those with more interest in the hardware or architecture design aspects of computers should be CE majors." This is a common misconception, since both CE and CS degrees require a balance of software and hardware courses. In fact, CE is for those wishing an engineering degree, and CS is for those preferring a more science-oriented degree, or those preferring a computing degree within the context of a liberal education. from here [umich.edu].
The difference lies in the pre-reqs... (Score:2)
What I'd suggest is to look at the minimum number of courses needed for each major and decide what you like the look of best - after all, after you finish the base classes you can take just about anything you want including classes for the other major! Try and make the whole thing as interesting as possible for yourself.
I'll now offer one glib obvservation - CS majors spend all thier time time in a computer lab, EE majors spend all thier time in physical labs wiring stuff or doing experiments.
And to address your question about companies being "desperate" enough to hire EE's for programming - EE's are just about as desireable in my mind as CS majors. I don't think you'd have any problem either way, so don't let that be an issue in your decision.
Computer Science == dotcom whore? (Score:2)
Your comparision of Computer Science to dotcom whore is about as accurate as calling a music education student an industrialist.
Especially with the advent of IST majors, and colleges which specialize in the internet and information marketing the students for careers, people have to keep in mind that in general, a CS degree supercedes an IST degree.
Now back to the comparison of CS and CE.. To say one is better than the other is just horseradish. Neither can properly exist without the other. Yes a computer engineer is taught some programming, but they are typically nowhere near as skilled with programming theory and optimization. Yes CS students have a basic understanding of logic and circuit design, along with a core in assembly, but they can't just jump into creating embedded systems..
Whatever you do take LOTS of math. (Score:2)
Algorithm's and impedance. (Score:2)
In CompE, you will probably never be asked to prove that a problem is np-complete, or need to determine the order of a sorting algorithm. These are high-level analytical techniques that relate to programming concepts in general that you really only learn in CS.
On the flip-side, a CS student is never going to be asked how to solve a field equation, apply Gauss' laws, or prove that the transient response of a steady-state circuit can be effectively ignored.
Really, both of these things come down to the types of advanced mathematics you end up learning. Most of what made CompE different at my school was Electrical Engineering coursework; and most of that is deep into the land of differential equations, complex number planes, and all sorts of high level calculus. On the other hand, the CS coursework that really matters is the study of algorithms and of the theory of computing in general; doing proofs, using deductive logic techniques, and other types of analytical math.
As for programming and hardware, there is no difference generally in what you learn. Even the most simple of electronics typically requires at least some code to do anything useful. And even the most abstract programming techniques ultimately will run on a real machine with real, physical considerations. Chances are you will learn everything you wanted to know about architecture and programming in either course. It's really about whether you want to understand more fundamentally the properties of electrons or the properties of numbers.
Re:Don't do either (Score:2)
You go to a liberal arts school and learn computer science so that you know that Joseph Leibnitz defined God in terms of the many worlds theory described in the second paragraph of the bogo-sort [tuxedo.org] definition. While you're there you take classes in logic, physics, math, chemistry and computer science so that you know better than to use the bogo-sort [tuxedo.org]. There's a lot more to going to college than getting job training. If all you want is some job training go to a community college for a couple of years and learn to program or repair electronics or whatever.
_____________
Re:Whatever you do take LOTS of math. (Score:5)
Programming is much more like artistic composition within contraints (which happen to be mathematically related).
Way back when IBM needed to find the first programmers to code for their new computer systems, they searched for a professional field that matched the requirements for writing software.
Do you know who they actively sought? It was not mathematicians, it was musicians.
Music has a very structured/math like feel to it at the lowest level, but the true expression of music is not number crunching, but artistic expression within contraints.
As for your assertion that math grads make the best programmers, I think you have a far to narrow and biased view of the skills and talents required to produce good software.
It depends on the profs (Score:5)
In general, a CE (computer engineering) degree is a digital design degree version of EE with a stronger emphasis on software and systems. Many schools though concentrate mostly on systems and software, while others are truly about architecture and hardware issues such as interfaces and integration. If there is a professors that teachs a lot of course on OS design, and none on the use of microcontrollers then it would be a very different degree from others, but a very valid degree.
I have a EE background with a strong emphasis in computer design and software due to a few professors with similiar interest. If CE was offered when I got my BS I probably would have been a fairly good fit for it. As a EE though I feel I got more of a background in the way things work than a CE, but no idea about higher level things like compiler design, OS (although I did work with real time executives), or computer graphics. So given that I'd say the following:
CS: If you are interested in programming languages, compilers, OS, graphics, and studies of general algorithms.
CE: If you like computer control, design, interfacing. In general a healthy mix of hardware and software leaning towards the later.
EE: If you want to know how all of the underlying technology works, but aren't interested in things like programming language design or databases. Up until a few years ago you could graduate from almost any EE program with very little programming, but this is changing quickly.
Most important though is to look at who teaches what courses and what their teaching and research interest are. If they are in stuff you don't like then you probably won't like the degree you'd get from them.
To be repetitive... (Score:2)
Algorithms, optimizations, sorting, searching, patterns, etc, are all mathematical in nature. Even if you can't grok the math, you have to have some intuition involved, or you're just not going to be able to do the CS work.
You're correct that 90% of jobs can be doen by either a CSc or CEng. But those 90% of jobs can also be done by math majors who programmed on the side, or people who were EEs, or whatever. If you can do some real analytical thinking, and can handle structured work, you can program ^^
Geek dating! [bunnyhop.com]
Call (or visit) the school, talk to professors... (Score:3)
As far as the suggestion about the liberal arts degree. If you pick up a degree in English or Philosophy or some other liberal arts area, I think you better prepare yourself for the future. A lot of the work that is done by people in IT doesn't require you to have a CS degree. You can learn on the job, employers will send you to MCSE or Linux training, etc. and you can pick up certificates. When the computer market takes a downturn (as it is at the moment, at least in the dot-com sector, cross your fingers Slashdot :) ), the ability to move into completely different fields may outweigh the advantages of being an "expert" in the field you were working in (and yes, I was just laid off from a dot-com where I had been working for 4 years, so I know a little about this).
Don't worry about what looks good to HR, whatever you do. People in HR are idiots when it comes to hiring. They take a laundry list that is sometimes given to them by the person you'd actually work for, but oftentimes they just steal stuff from other companies job postings. The HR types can't tell the difference between CS, CE, and the hole in their ass. If all you're worried about is impressing HR, save your money, spend a couple thousand on getting a few of those certificates with the fancy letters (MCSE, DBA, A+, etc.) and you'll get a job.
As far as what you do in school, pick the major that you enjoy the most and that you'll actually finish. If you go into CS because it will look good for clueless HR types and you hate programming, you won't be a very good programmer and you may not even get your degree (it's easy to get burned out). A degree in a "non-profitable" major is better than no degree because you can then go back to school for your Master's, when you really start to learn about the subject at hand.
And besides, even in the technological future, the world will always need people who know how to write...
The Skinny (Score:2)
The hardware you cover is enough for you to be able to interface real-world devices with software. You don't go into much power electronics (thankfully...)
The software aspect teaches you enough to go out and write basically anything, but leaves out the more theoretical stuff.
I've got a Computer Engineering degree, and now I write embedded software. Still, I know a lot of CompE's who go into software jobs exclusively. Some companies look for Computer Engineers specifically if they need someone who can handle hardware / software interfacing well, or even just for straight software if they appreciate the Engineering approach to design. Others (usually founded by CS graduates) will not even consider Computer Engineers over Computing Scientists.
I don't know how many other places are doing this, but the University of Alberta (where I graduated from) is now offering a stream of Computer Engineering called Software Engineering, which is basically Computing Science with an Engineering approach. Plus you then have an Engineering degree.
Blah blah blah. Hope that was interesting for someone.
Re:Don't do either (Score:5)
Yes, programming can like compared to a skill.
Yes, self-trained programmers can pick up really bad habits.
Yes, good design and problem-solving techniques are often taught in a CS curriculums.
However, there is no reason these skills cannot be learned by intelligent and motivated individuals outside of the ivory tower.
Moreover, going through a CS program is not a guarantee that you will be a good software programmer or designer.
I'm a successful programmer and software architect that has created well-designed and reliable systems for businesses. And i got a B.A. in Anthropology. Programming used to be a hobby to me. I became more interested in it at the end of my college education. After that, i learned "on my own" and took a few more classes, and got into professional programming. I found that even for "professionals", you have to be continually learning new techniques and studying new ways to design things. My liberal arts education served me well in this. I think learning on your own really means learning from others through books and the internet, and doing your own self-created experiments.
I think if i were a CS major, i would have got a programming job sooner, but i would have to learn on my own to be as good as i am now anyway.
There are many ways you can reach the goal you want to acheive.
Re:CS vs. CE (Score:2)
Even with all the disdain for coding that goes around this discussion, there's no substitute for long hours spent playing with the system. An hour of programming can explain better than five of poor lecture notes.
-grendel drago
Re:As a Computer Enginnering Student (RIGHT) (Score:2)
CS students take digital logic design courses, but those alone could hardly be called "hardware courses".
----------
Not so ridiculous (Score:2)
A computer scientist is not defined by the existence or use of computers. As a macho ego statement, "Real Computer Scientists don't use computers" is silly, but not ridiculous.
Just like the analogy that physicists don't play with physical objects. Some do, but quite a few don't. They border on the realm of math, of course.
You're right that it is elitism, but computer science is much more about the science of computation than the science of computers. In that sense, CS can live perfectly fine without computers. Just a pen and paper will do.
On the other hand, programmers are much more intimately tied to computers, and as such can't trivially exist without them. Programming is an implementation and a justification of the science of computation in the same way that carpentry and architecture are implementations and justifications of the science of physics.
Geek dating! [bunnyhop.com]
Re:As a Computer Enginnering Student: (Score:2)
My univ. happened to combine both Electrical and Computer Engineering in one degree, although there were "concentrations" in 5 different areas (ranging from pure physics to pure EE to CE to almost pure CS/programming)
By far, it differs according to your school. Each defines their degrees slightly differently. The best thing you can do is avoid concentrating until you absolutely know what you want to do. I was fairly fortunate that my school required me to take different classes in different concentrations to earn my degree. I ended up with a lot of broad knowledge because I was interested in a little bit of everything!
From my experience, a "pure" CE student will focus on: state machines, instruction set architecture (assembly and lower), and processor/chip design. My CS friends tended to take more mathematics (algorithims, set theory, etc.) and deal with issues such as how to write drivers, graphics, OS, etc.
From an employment standpoint, it makes extremely little difference. I graduated having realized that while I could program, it wasn't my favorite activity in the world. Unless you're applying for a very specific role (chip design at Intel, c++ developer, etc.), your major will play very little role. Employers are looking for your experience. What classes did you take? What projects did you do? What employment opportunties did you take? What do you do for fun that fits their field/profession? As long as you have the basic skills required, your degree signifies that you have the knowledge needed, and the ability to work in an environment to accomplish goals. They'll teach you the rest. If you don't find yourself learning in your new job, then it's time to move somewhere else, you're not being utilized.
Hope this helps. :)
Re:Don't do either (Score:2)
If you read what the guy wrote, you'll see that he is 1) just entering college and 2) asking about careers in industry. I wrote my answer specifically for him. If he were to follow your advice, he'd waste 10 years of his life getting a PhD in Comp. Sci. then he'd find that his specialization hindered his ability to get a job as easily as someone with a Bachelor's or Master's degree.
If the person was asking what courses to take to get into the right graduate schools in order to land a job as a professor of Computer Science, then your criticism might have merits.
Re:Plan of attack (Score:2)
This is good advice. There's no substitute for talking to someone who knows the territory. However, make sure you do everything you can to get to know the system yourself. I have been led astray several times by incompetant advisors; on one occasion, only intervention from the Dean of Students kept my graduation date from being threatened. Had I taken the time to truly understand University policy, I could have saved myself the headache.
Also, recognise that your classmates (especially upper-classmen) are absolutely invaluable in helping you make good decisions. From things as simple as which classes/professors to avoid/seek out to the more subtile, like helping explain the convoluted academic policies you're likely to encounter. Talk to your fellow students, and listen to what they say. This information is ususally better than any you will get from your advisor.
Couldn't agree more. Anything not directly associated with the CS dept. is likely to be a serious mistake if you want a career as a techie. (ie, programming, not just managing programmers.) What you get from a Computer Science degree are the fundamental concepts that help you learn new languages/techniques/etc. I always thought that Scheme might just be a waste of time, but over and over again I've found the concepts I used in writing good Scheme code (high-level stuff like abstraction & simplicity, as well as techniques like continuation/closure passing) useful in my every-day programming.
In short, if you want a technical job, I urge you to go the Science route.
Advantage of CE over CS (Score:2)
As a working computer engineer, I'd like to point that that the above description fits computer engineers better than EEs. It's CEs that design hardware on the gate/algorithm level, while EEs generally work on "back end" -- they do custom cell implementations, place & route, I/O design, etc.
Of course, since CE is a very versatile program, many CEs specialize in software engineering, and just end up as programmers. That's the advantage of CE over CS -- you can do both CE and CS jobs with one degree.
----------
Re:Simple. (Score:2)
Excuse me? Aren't you forgetting a little something called "bandwidth?" Everybody knows that the only reason for living in the dorms (and going to school in the first place) is for Ethernet.
Comment removed (Score:3)
Re:Computer Engineers (Score:3)
Ask Slashdot: Computer Science vs. Sex? (Score:3)
Ask Slashdot: Computer Science vs. Sex?
Dan B [bulwinkle.com] asks: "Like many other students across America, I plan on attending college as a freshman next fall. I am very interested in computers (I only reload the Slashdot site every five minutes), but there is something that perplexes me: why can't I get any? It seems that many companies are looking for computer scientists, but would any girls be desperate enough to accept one? What is the difference anyway? Well, a college guidebook could tell you 'computer engineering deals mostly with hardware' and 'girls deal mostly with shopping and makeup', but that isn't clear enough for me. I believe the Slashdot community would be best fit to offer a more in depth perspective on the two options."
--