Slashdot Mirror


Computer Science vs. Computer Engineering?

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."

718 comments

  1. System Admin by bullseye2 · · Score: 1

    Become a Sys Admin.

    1. Re:System Admin by mrs+clear+plastic · · Score: 1
      I started with Electrical Engineering at Worcester Polytechnic Institute in 1976. I was in hardware for approx 2 years and then gradualy morphed into something akin to system administration

      This started with integrating communications and computer systems with the U.S. Navy. Then it involved in sonar system integration.

      Computer science was too theoretical for me. It lulled me to asleep. I loved practical stuff and hands-on with hardware and toys.

      System administration has been one of the most hands-on occupations that I have been in and that I have seen that has paid well. It has wonderful variety; especially if you are in a small or loose shop where they don't try to pigeon hole you into something specific.

      System admins do a little of everything; programming, integration, software evaluation, hardware issues (including electrical power and air conditioning planning), as well as many great human relations skills.

      --
      Cleara
    2. Re:System Admin by Anonymous+Slackard · · Score: 1

      System administration is great for folks who can't carry a coding load. Hope that helps!

    3. Re:System Admin by alsoc · · Score: 1

      Id say the same here, I go to Cal Poly Pomona and both of the majors are in a big boom period. If you have a masters or Phd the CS Dept. At Cal Poly will definitely hire you. Drop them a note telling them you want to do part time lecture and see what they say the address is: http://www.csupomona.edu/~cs. Since we have a shortage of CS classes each quarter more tenure track Phd's and part time master degree lecturers are needed.

    4. Re:System Admin by Stimpy2319 · · Score: 1

      I am working a Bachelors in CS and working as a Systems Administrator here at USM. Sys admin is ususally quit challenging and is not what some people are making out to be that all you do is change paper. I admit it does have its down times occasionally but those are so far and few between that they are a welcome relief.

    5. Re:System Admin by gascsd · · Score: 2

      what?

      a little of everything; programming, integration, software evaluation, hardware issues (including electrical power and air conditioning planning), as well as many great human relations skills

      when's the last time you read BOFH? what about rigging e-mail systems, elevators, video cameras, the NOC, and most importantly, giving users 4 megs of space?

    6. Re:System Admin by Novaldex · · Score: 1

      I did Computer and Electronic Systems at Strathclyde. The course is designed to get the best of both worlds, and to make us "more marketable".

      And guess what I do now?

      Sys Admin.

      Wonderful job.

    7. Re:System Admin by peter+hoffman · · Score: 1
      Thanks. GC

      You're welcome!


      OpenSourcerers
    8. Re:System Admin by CaptainTact · · Score: 1

      Man! I sure don't know who you folks have been talking to about what Systems/Network Admins do, but I can assure you that I don't do any of the grunt work you're talking about. And neither do any of my co-workers.

      If a dang user is too lazy to get his fat butt out of his chair and go change the toner or paper level in his printer, then I guess he's just not going to be able to print today, because I sure as heck am not going to do it!

      I have way too much to do with keeping an eye on my Exchange servers, fielding technical requests from our Help Desk, maintaining the print SERVERS, yadda yadda yadda.

      --
      ~Captain Tact(less)
    9. Re:System Admin by Anonymous+Slackard · · Score: 1
      Actually, I code quite a bit and enjoy it, I go out of my way to learn new languages. It is just I don't want to spend the rest of my life coding in front of a screen, I enjoy the variety presented to me by being a sysadmin. In almost all of my CSCI classes I was the only person who could consistently code programs to work the way they were intended without just playing around hoping I hit on something that worked. Jason Kavanaugh

      So post the name of your college so that we can ridicule it!

  2. Computer Engineers by Kinchie · · Score: 2

    Well, computer engineers get to drive more trains.

    --
    Protege Posterioram Tuam
    1. Re:Computer Engineers by JPrice · · Score: 1

      Actually, at the University of Waterloo in CS we've got a real-time computing course in which one of term-long projects you can choose to do is write a system for controlling a set of trains.

      Only the Computer Science students get to drive trains here... who knows what the Comp. Engineers do :)

    2. Re:Computer Engineers by L8Knight · · Score: 1

      From the eyes of a computer engineer...

      The difference, in my opinion, is in the non computer courses. As an engineer you take tons of physics and tons of math and all those other classes that we love to hate. Like it or not, you'll have an engineer's degree, which means you'll have all the hard classes. But you also take some pertty cool classes. My curiculum (at Milwaukee School of Engineering) was split down the middle with half going for software and half going to hardware. This was nice because our electives finished our choise. So don't think that you have to work with hardware if you're a computer engineer.

      In addition to the above, you gain an advantage in programming if you know how the hardware works. That fact has helped me many times.

      There were some other comments in this thread about making sure you take C/C++/Java and I can't second that enough. I would also try to get some assembly just to know what that's all about. A software design class wouldn't hurt because most larger companies will ask if you know UML.

      The engineering path is definetly the harder one. Another side bonus to picking the engineering degree is that if you flunk out you can always switch to Computer Science. :)

      Just my two cents,

      L8Knight Programmer

    3. Re:Computer Engineers by pforce · · Score: 3

      Actually, the curriculum for a computer engineer or computer scientist can vary greatly from one university to another. At the University of Illinois, for example, the computer science department is in the college of engineering. This means that we CS guys go through the same physics and math as all the other engineers in our college. This translates to five plus semesters of math, all the physics you can stand (and then some), chemistry... well, you get the idea. There is also a great deal of theory in general ideas of computer science as opposed to just straight coding. Computer architecture courses are also a big part of the curriculum. Computer science and computer engineering are different, though related, paths. I think it would be a mistake to say one or the other was inherently more difficult than the other.

    4. Re:Computer Engineers by Rytsarsky · · Score: 1

      Here at Ole Miss, there's a B.S.C.S from the School of Engineering, or a B.A.C.S from the School of Liberal Arts. I know, it's weird, but that's Mississippi for you.

      --
      God became man to enable men to become sons of God. -C.S. Lewis
    5. Re:Computer Engineers by dmatos · · Score: 2

      Well, we're taking an RTOS course right now, but it doesn't do anything useful. All it does is run a bunch of special test programs to make sure we understand things like interprocess communication, memory management, and preemption.

      Our fun classes deal more with hardware, and with programming the hardware directly. Microprocessor interfacing, digital design, etc. I like to think that we get a lot of the hands-on knowledge without having to delve into the tedious mathematical proofs that programs work that CS students have to do.

      Plus, our mascot isn't a giant pink tie :)

      --

      It may look like I'm doing nothing, but I'm actively waiting for my problems to go away.
      --Scott Adams
    6. Re:Computer Engineers by slyckshoes · · Score: 1

      I agree. I'm a student at U of I and I'm going to end up taking a bunch of hours in CompE to satisfy requirements. The two majors are so closely related here that you're not allowed to double major because it wouldn't take too much extra work. As far as CS goes, I'd like to claim that it's really a glorified math major in many ways. And please don't tell me that any CompE (or other major) can learn how to program just as well as a CS person without much effort. If you define programming as pretty syntax, then maybe, but good programming involves finding the optimal solutions to problems and to do this you have to know a good deal of theory. It's just as bogus for me to claim that I can build a bridge just as well as any Civil Engineer, as long as I had a little practice.

  3. Well... by Yhcrana · · Score: 4

    Computer engineers deal with logical bits and gates: they build the I/O that computer scientists talk to, and they design things to work better and faster than before. Computer scientists (of which I am a part) deal with the same type of information, but we deal with it on a different level: we study programming language theory, algorithms, data structures and the like. How do you contain that data? How do you sort it? Etc.

    --

    The voices in my head don't like you

    1. Re:Well... by cd_Csc · · Score: 1
      Rochester Institute of Technology (RIT) is offering "The First Bachelor of Science Degree In Software Engineering In the United States". They promote it as a cross between CS and CE.

      Having been accepted into the program for next year, I would appreciate any input regarding this program in comparison to others. Their website is http://www.se.rit.edu/.

    2. Re:Well... by coors · · Score: 1

      That is not totally true. Computer Engineering also deals with programming language theory, algorithms, data structures, etc. Basically, if you're interested in software, you should go with CS. However, if you are also interested in hardware, computer engineering is a good mix of the two. Like another person said, look at the classes for both and make a decision about what you'd rather do.

    3. Re:Well... by wmulvihillDxR · · Score: 3

      Computer scientists (of which I am a part) deal with the same type of information, but we deal with it on a different level: we study programming language theory, algorithms, data structures and the like. How do you contain that data? How do you sort it? Etc.

      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...

      --
      Check out Althea for a stable IMAP email client for X. Now with SSL!
    4. Re:Well... by Oo.et.oO · · Score: 1
      ... and if you are interested purely in the hardware go with EE.
      don't give me any of that bulls&%t about not wanting to study analog stuff either. High speed signals are ALL analog and SI is very important.

      i made the mistake of doing computer eng. thinking i would learn how to build computers. i was wrong, and was bogged down in too much CS crap. I am better off knowing it... but now i'm playing catchup for my EE MS. good luck

    5. Re:Well... by Anonymous+CowboyNeal · · Score: 2

      mm. I go to RIT, and I can tell you that SE is _NOT_ (and I repeat, NOT) a cross between CS and CE. Software Engineering is about engineering the software development process; it has less of a focus on CS's "algorithmic thinking" and more on churning out good, quality code in today's languages. So think about that good and hard.

    6. Re:Well... by ExoDemon · · Score: 1

      Of course, like any generalization, there are exceptions... I have a computer engineering degree with a focus on software... which is what enabled me to get a job designing CAD tools for a VLSI design center. I do all the 'computer science' things, as well as knowing enough about the bits, gates, and device physics to get the software right. I preferred computer engineering because I wanted to learn more about the workings of the computer I was typing on, as well as the way the software/OS/firmware/etc. worked on top of it. It's really your personal preference, as described in other posts.

    7. Re:Well... by dimator · · Score: 1

      They promote it as a cross between CS and CE.

      Sort of like this? :) That's what I'm taking (5th year). See my other comment


      --

      --
      python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
    8. Re:Well... by RiBread · · Score: 1
      That's exactly why I got my computer engineering degree, and how it's taught at Cal Poly

      Other likely job categories for a computer engineer:

      • Embedded Systems
      • Device Drivers
      • Robotics
      • Automated Test systems
    9. Re:Well... by alsoc · · Score: 1

      Id say the same here, I go to Cal Poly Pomona and both of the majors are in a big boom period. If you have a masters or Phd the CS Dept. At Cal Poly will definitely hire you. Drop them a note telling them you want to do part time lecture and see what they say the address is: http://www.csupomona.edu/~cs. Since we have a shortage of CS classes each quarter more tenure track Phd's and part time master degree lecturers are needed. The students here love CS and are in great need of more lecturers and professors.

    10. Re:Well... by cadfael · · Score: 1

      Except of course for computer scientists that work with I/O gates and get engineers that program them. The line just isn't always there...
      -- The Hollow Man

      --
      -- The Hollow Man
      Non illegitimati carborundum
    11. Re:Well... by jbrians · · Score: 1

      Heh... I think you are being fed a load. At the U of Wash (In the top 10 US CS&E schools) CE and CS people range from 45-75 first year out. CE people often take hardware design jobs and make on average 1 or 2K more than CS.
      -Brian

      --
      "Faith strikes me as intellectual laziness." -Robert A. Heinlen
    12. Re:Well... by dustind · · Score: 1
      I have a computer engineering degree, I just graduated last May. There are 3 primary disciplines: computer science, computer engineering, and electrical engineering. If you picture a spectrum, with the left side being software and the right side being hardware, then cs falls all the way to the left, EE all the way to the right, and CE right in the middle, and I do mean smack dab in the middle.

      So, which should you do? I would say if you like hardware and software, go with CE. You'll get enough experience that you can go either way. As a CE major, I still had plenty of data structures, algorithms, operating systems, and other CS classes, enough I feel to handle any CS job. However, I also received a lot of exposure to hardware, and in fact my current job is primarily hardware-based (I'm working as a CAD Engineer doing standard cell library characterization and SKILL language programming).

      It's nice because, at any time, I could switch over to programming. I have experience with Visual C++ and MFC, OpenGL, and software design in general, know several languages, etc. But I could also switch over to exclusively hardware if I want.

      So, choose wisely, and good luck.

    13. Re:Well... by cypher6_06 · · Score: 1

      There's a university here in Canada, Concordia, that offers 4 different programs in Comp. Sci. Basically they're the same essential core, but they diverse in what fields you want to go into. There is one that crosses CS with CE. Then again you could just go into Computer Engineering. I'm actually in this same dilemma. Problem is I'm *IN* CS now

  4. Course Choices by extrarice · · Score: 1

    Beyond which title to choose, just make sure you don't go to a school that thinks a CS degree means you know Visual Basic. Make sure that you are taught C/C++/Java, and preferably some UNIX courses on scripting, perl, etc. Get as much experience on as many platforms as you can.

    Good luck!
    er

    --
    "Jesus saves, but everyone else in a 10 foot radius takes full damage from the fireball."
    1. Re:Course Choices by Bellwether · · 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!

    2. Re:Course Choices by pmcneill · · Score: 2

      IMHO, this is just plain wrong. It's *much* more important that you learn how to think algorithmically than to learn all the languages that are currently "hot". It's trite, but the important thing about college-level computer science curriculums is to learn how to keep learning. If you don't think so, go to DeVry.

      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?

    3. Re:Course Choices by lordmage · · Score: 1

      Oh lord, this is what is WRONG with colleges today.

      CS is turning into a "Web Design and Programming" Degree instead of the real intellectual computer degree that it has been. We see Computer Science degrees become more and more worthless as we continue to try and hire BS degree people.

      Come on, questions like: What is a Round Robin scheme? What does a semaphore do? These simple questions are beyond these people today.

      --
      I can program myself out of a Hello World Contest!!
    4. Re:Course Choices by To0n · · Score: 2

      As a student that goes to a campus with an ICS major, as well as a student that is INTERESTED in going into that particular field as a major or minor, or double major, I can vouch that some schools do belive that CS turns into part Web Design and programming. At my school, there are such classes as Sysadmining through a particular OS, and, yes, the obligatory "web" class. But that does not mean there aren't other classes out there for students like myself to choose. There are the inquisitive, math heavy, "theoretical" classes, such as algorithm design, network topology design, etc. A truly good school will teach you Java, C, C++, but only as tools to help you understand the ideas that go behind making those languages work, and work effectively.

      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. =/

      --
      blah
    5. Re:Course Choices by guinsu · · Score: 1

      The university I attended placed a heavy emphasis on C and C++ (even though half the faculty were barely proficient at C++ and just coded in it like it was C) and were uninterested in teaching multi-threaded or event-driven programming. It was UNIX CLI all the way.

    6. Re:Course Choices by CmdrPinkTaco · · Score: 1

      As the above poster has mentioned it is important to understand the differences in the degrees. When I went away to school I started of as and ECE (Electrical Computer Engineer). I knew that I liked programming, but had little experience in it. I knew that I liked electronics, and likewise had little experience in them. ECE was a major that I chose knowing that I was going to pick one either Computer Science or Electrical Engineering, not both (that would be an XOR :).

      The first year focused mainly on EE (Circuits I & II). The second year focused more on the software side (CompSci I & II and 8086 assembly). After two years of core classes and a taste of both sides, I decided to declare myself as a CompSci major. I found that the theroy and the "newness" of CompSci as a field of study really appealed to me. I have always enjoyed programming and applying the theory that has been taught to me. I found EE to be very limiting and very black and white (not literally as in gates).

      Bottom line is that it depends on what you enjoy, I think that people should be able to explore more majors here in the US (don't know how schools work in other countries), but had I not chosen my major to be ECE then I would have ended up doing EE instead of CS and I would be in a job that I don't enjoy as much as I do now.

      I wish you luck in your endeavors.
      --------
      "Counting in octal is just likst counting in decimal--if you don't use your thumbs."

      --
      Please give your mod points to others, Im at the cap. They will appreciate it more
    7. Re:Course Choices by captredballs · · Score: 1

      This is very true, but I would advise that you look for some practical experience in your education. I took a whole bunch of CS programs, but also took a program where I was in a semi-realistic development environment. This taught me that algorithms, languages, paradigms and provability are only a part of what it takes to create great software.

      --

      I suppose I'm not too threatening, presently, but wait till I start Nautilus
  5. Don't do either by PD · · Score: 2

    Be a liberal arts major.

    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?

    1. Re:Don't do either by Dancin_Santa · · Score: 3

      You can become a computer programmer anytime. It's like carpentry, you learn on the job.

      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

    2. Re:Don't do either by nkpatel · · Score: 1

      Ah, that is a good idea. However, I don't know too many employers that hire history majors to write software.

    3. Re:Don't do either by chris311 · · Score: 1

      I don't know many employers that hire history majors to do much of anything.

    4. Re:Don't do either by Dancin_Santa · · Score: 1

      You'd be surprised at how many elves are History majors. They are really good at making those toys, let me tell you.

      Dancin Santa

    5. Re:Don't do either by thomash · · Score: 1
      You can become a computer programmer anytime.

      You may be able to become a programmer anytime, but you can't become a computer scientist anytime.

      Whats the difference? A programmer can program, a computer scientist solves problems. I first need to see that guy which uses the same algorithms as I do, does the same design as I do and did learn to program on his job. I need to find the guy, who does never ever use bogo-sort but learned programming on the fly. I don't know him yet.

    6. Re:Don't do either by Anonymous Coward · · Score: 1

      You may learn how to write programs, but the underlying theory wouldn't be there. You would only be able to pump out trained monkey code, and not understand what you're doing. Construction, on the other hand, is something you learn on the job. Explaining how to frame a house to someone doesn't involve understanding the different ways a house can be framed. All you're worried about is the end product. I have experience in construction, some computer science, and I'm majoring in computer engineering. I highly doubt that someone could learn in their spare time how to write the code and build the machine that you sat down at to write your post.

    7. Re:Don't do either by sparty · · 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.)

    8. Re:Don't do either by Kalani · · Score: 1

      Real Computer Scientists don't use computers.

      How ridiculous is that? Isn't that sort of like saying, "Real Chemical Scientists don't use chemicals?"

      Honestly, hasn't this elitism carried a little bit too far? Yes it is reasonable to say that "Computer Science" is more involved than what some slack-jawed kid does to scrape together a working perl script of some sort, but CS still does involve computers.

      You would be better off saying that "hack programming" is to CS as "some guy on a balcony looking through a telescope" is to Astronomy.

      Make sense?
      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    9. Re:Don't do either by jason000042 · · Score: 4
      You can become a computer programmer anytime. It's like carpentry, you learn on the job.

      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.

      --

      are you a dirtyfreak? I am.
    10. Re:Don't do either by Dfiant · · Score: 1

      Uh-huh, and real carpenters don't work with wood, and real writers don't write. More accurately, I'd say "real computer scientists don't need to use computers." Of course, if you want to go beyond theory, I should hope a computer scientist would test on a computer. =)

    11. Re:Don't do either by greg_barton · · Score: 1

      You can become a computer programmer anytime. It's like carpentry, you learn on the job.

      I wouldn't go quite that far. You can't learn everything on the job. At least minor in CS. That way you get some theory under your belt.

      I say this from experience. My undergrad degree was in psychology. Out of college my only jobs have been in the IT field. I eventually got a masters in CS because I felt it was necessay. It wasn't necessary to program, but it was necessary to program _well_ and to understand the big picture.

      But definately focus primarily on stuff besides CS. Computers are an empty bowl. You've got to fill them with something. Fill your mind first and the computer will follow. :-)

    12. Re:Don't do either by lithis · · Score: 1

      we've got a philosophy/religion major working here as a programmer.

    13. Re:Don't do either by ichimunki · · Score: 2

      Here goes my ability to moderate in this thread, but I just wanted to point out that this is the single best post I've seen on Slashdot in weeks.

      --
      I do not have a signature
    14. Re:Don't do either by roguerez · · Score: 5

      I'm not sure whether this was a troll or not. Anyway..

      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.

    15. Re:Don't do either by EastCoastSurfer · · Score: 1

      How about do both. I got my CIS degree from a liberal arts college. I like to think that I got the best of both worlds.

    16. Re:Don't do either by Doctor+Memory · · Score: 1

      Dunno, I was an English major and I haven't had any problems finding development work in the last ~20 years. My code is solid and my documentation is immaculate... :)

      It certainly helps that I had courses on algorithms & data structures, language design and compiler implementation, and information theory between the endless compare-and-contrast writing assignments and literary criticism classes. I wouldn't expect a "raw" liberal arts major to write code very well with just OJT (although no worse than anyone else with no formal training).

      --
      Just junk food for thought...
    17. Re:Don't do either by Mazzella! · · Score: 3

      Be a liberal arts major. You can become a computer programmer anytime. It's like carpentry, you learn on the job.

      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)

      --
      1.3L, 3 moving parts, 280 HP, no Turbos, wanna Race? RotaryNe
    18. Re:Don't do either by fuzzcat · · Score: 1

      (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.)

      It's very doable. I chose a similar (but slightly different) path myself. I chose to get my undergraduate degree in English (emphasis in critical theory), and now I'm working on my Masters in Computer Science. You'd really be surprised how nicely the two fit together. English (especially with a lot of courses in theory and critical models) teaches you how to think about thinking and writing (metacognition and metanarrative). Computer science teaches you how to think about programming. The thought pattern is quite similar and (to a theory geek like me) quite enjoyable as well.

      --
      "The further I get from the things that I care about, the less I care about how much further away I get." -Robert Smith
    19. Re:Don't do either by NineNine · · Score: 1

      I do. I've been a professional programmer for years, and I have a business degree, witha minor in biology.

    20. Re:Don't do either by Geeky+Frignit · · Score: 1

      Real Computer Scientists don't use computers.

      Preach on, brother...

      I have a CS degree, and the only computer I have is at work.

      --
      Tired of sitting at that karma cap? Start a flame war today! See just how low you can go!
    21. Re:Don't do either by Jedi+Alec · · Score: 1

      A programmer can program, a computer scientist solves problems.

      Allow me to disagree on that one. First of all, a programmer should be able to program. Second, computer scientists don't solve problems, they hire techsupport people to cover 'm up while they're thinking of a workaround...

      --

      People replying to my sig annoy me. That's why I change it all the time.
    22. Re:Don't do either by NineNine · · Score: 1

      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.

      But that's not at all realistic. In the real world, it's much more useful to know how to use Visual Studio, or know the MFC, or know how to use Oracle, than it is to know how to build your own network stack. Very few people end up going to work every day, re-engineering TCP/IP. Many, many people who are professional programmers, go to work every day writing COM objects and SQL queries.

    23. Re:Don't do either by Amokscience · · Score: 2

      Edsger Dijkstra, winner of a Turing Award and a contributor to the field of Computer Science in many many crucial areas (proofs, path finding, semaphores, etc...), does his 'computing' with a pen and paper.

      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.

      --
      Fsck cluebie moderators. I'll say what I want, offtopic or not. And fsck having to qualify every bloody statement just
    24. Re:Don't do either by NineNine · · Score: 1

      . They absolutely lack the discipline of programming

      Again, this isn't realistic. 'The discipline of programming' doesn't come into play on the job too often. more often than not, it's about critical thinking, and getting the job done quickly. Most CS people are too mired down on the job worrying about making 'pretty' code, so they usually end up getting left in the dust.

    25. Re:Don't do either by skbenolkin · · Score: 1

      Offtopic as it may be (I have no insight on Computer Science/Engineering anyway), I've always taken the opposite view: thanks to public libraries and the God-given ability to understand what's in them, I don't need to pay tuition to learn about ideas. I doubt this is the answer for everyone, though.

      To paraphrase one of my more honest college profs., "The real reason you are all here is for certification." Of course, that was Chemical Engineering . . .

      Scott
      --
      "Frederick, is God dead?" --Sojourner Truth
    26. Re:Don't do either by roguerez · · Score: 2

      Imagine your university only teaching you things like writing COM objects and SQL queries. Then you would not have learned how a protocol actually fundamentally works, but only specific implementations of protocols. That is not science. When you've had to code one yourself, you'll actually learn how it works. It doesn't matter if it's TCP/IP or another protocol. You had to build one, therefore you are able to create another one, perhaps one you design yourself. As for SQL, in my databases class we had three types of query languages: relational algebra, tuple calculus and domain calculus. The SQL chapter was only an informative read because it's just an implementation of a formal query language. When you know about formal languages, you could pick up any real life language in a very short period. That's the whole point of a university degree. Learning 'real life' things is what you do on the job, but many time faster and better than someone without a formal education.

    27. Re:Don't do either by jimlintott · · Score: 1
      You can become a computer programmer anytime. It's like carpentry, you learn on the job.

      Apparently it is even easier to become a TROLL.

      My recommendation would be to take Carpentry as opposed to Liberal Arts as then you would at least have worthwhile skill.

      To answer the original question. Which is more fun to you? Hardware (CE) or Software (CS).

      Or you could be another mindless Liberal Arts Zombie and get a good job being a bartender.

      What does a Liberal Arts Grad say to an Engineering Grad?
      Would you like fries with that sir?

      I know many Liberal Arts Grads who now can't afford to hire a carpenter.

      Why not learn something that will help you make sense of the world, like history?

      The World Makes Sense?
      Nothing I've seen in my forty years here can substantiate that claim.

    28. Re:Don't do either by demaria · · Score: 1

      Well you could also say "real architects don't build the house".

      Computer Science is about theory. Of course, you will use a computer at some point to test things out, mostly because you don't want to compute everything by hand, and seeing merge sort actually work may be a nice thing. Most CS cirriculums do offer the ability to learn how to program decently and such (my school has a course on windows APIs), sometimes teamed up with the CE or EE departments. Many people do this to become more well rounded and would require less on the job training.

      But yeah, computer science does not need to be done on computers at all!

    29. Re:Don't do either by MinusOne · · Score: 1

      > Ah, that is a good idea. However, I don't know too many employers that hire history majors to write software.

      Well, I'm a history major and I have been writing software for a living since 1983. Of course, I was writing software for money in high school back in 1978 and I did take quite a few computer science courses in college. I guess you could call me a history major with a CS minor, but they didn't have a minors program where I went to school.

    30. Re:Don't do either by Mazzella! · · Score: 1
      "They absolutely lack the discipline of programming"
      Again, this isn't realistic.

      And it is this kind of thinking that makes software suck so much. Programming without dicipline is bad... It is hard to maintain, debug, read, comment, extend, etc... You must have dicipline to program.
      --
      1.3L, 3 moving parts, 280 HP, no Turbos, wanna Race? RotaryNe
    31. Re:Don't do either by lizrd · · Score: 2
      Isn't that sort of like saying, "Real Chemical Scientists don't use chemicals?"

      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 don't want free as in beer. I just want free beer.
    32. Re:Don't do either by Baumann · · Score: 1

      You are correct, any dolt can become a programmer. In my organization, the programmers are the lowest life form - just above testers. By programmer, I mean a code-monkey - someone that implements somebody else's algorithm or design. My degree is a 13 year old computer science degree. In addition to the theory of CS, I got some heavy math, and hardware design as well. And I use all of those things constantly in my position. All too often, I seen poor designs coming from people with current CS degrees, due to not understanding how the complier does things, or how the OS works, or even how the software is affected by the hardware and the hardware by the software.

    33. Re:Don't do either by styopa · · Score: 2

      Although I don't agree with PD's approach, I agree that both should be avoided as primary majors, minor or get an equivalent minor in them.

      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.

      --
      Disclamer - Opinion of Person
    34. Re:Don't do either by Sinjun · · Score: 1

      Political Philosophy Aristotle called it the "Master Science of the Good" Learn why technology is evil, then go practice it.

    35. Re:Don't do either by pcb · · Score: 1

      You can become a physicist anytime. It's a science like Computer Science, which is like carpentry, you learn on the job

      IMO, CS is not a science in the true sense of the word. Science generally deals with figuring out 'how' the physical world works (not 'why'). Science is to be discovered, not created.

      Whereas, CS is an artificial construct. Its underlying theories and models constantly change over time (languages, monolithic kernel vs microkernel, etc - compare this the Maxwell's eqns or Newton's laws - they always remain the same [forget relativity, its just a superset of Newton's laws]). It is interesting to note that because of this, specific 'on-the-job' experience in CS is not as important as it is in other fields. A very general understanding of the field is far more important. As a friend of mine use to say, "One of the great things about computers (and CS in general) is that if you wait long enough, it goes away". Compare this to a doctor or chemist: what they learned 20 years ago is probably true today (more or less).

      How many times have you had to learn something for a specific project and never had to use it again. That is one of the problems of CS, you don't generally build up your knowledge base - it is completely replaced. Oh well.

      --
      'Men never commit evil so fully and joyfully as when they do it for religious convictions.' B. Pascal
    36. Re:Don't do either by lizrd · · Score: 2
      . I need to find the guy, who does never ever use bogo-sort but learned programming on the fly. I don't know him yet.

      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 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. 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.
      _____________

      --
      I don't want free as in beer. I just want free beer.
    37. Re:Don't do either by ceesco · · Score: 1

      Q: What did the history grad say to the CS/CE grad? A: YOU WANT FRIES WITH THAT? hyuk hyuk

      --
      Ceci n'est pas un sig
    38. Re:Don't do either by Nohea · · Score: 5

      OK, i think there is a major assuption many people here are making: you can only learn software design theory and/or discipline in an accredited CS program.

      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.

    39. Re:Don't do either by Kalani · · Score: 1

      Well you could also say "real architects don't build the house".

      I could say that, but it'd be irrelevant. Architects aren't scientists, they're better conceived as engineers (applying actual physical laws to create structures that have various desired properties.) The analogy, carrying over from my reference to chemistry, would be a chemical engineer (e.g.: Timothy Leary.)

      Computer Science is about theory.

      No purely esoteric study is classified as a science. This is for the same reason that mathematics and religion aren't classified as sciences. Science involves provable theories. Experiment is just as important as theory in the sciences. Remember 8th grade Science and the definition of the scientific method?

      As another analogy, consider chemistry again. If I wanted to calculate the molarity of reactants and products for a dissociation reaction of 0.1M HCl, I would first have to deduce the quantities of H ions and Cl ions. The expression looks something like:

      Ksub(a) = x^2 / (0.1 - x)

      (Where Ksub(a) is the acidity equilibrium constant for HCl at the temperature of the reaction and can be found in a Chemistry handbook)

      This can be expressed as:

      x^2 + Ksub(a)x - .1KSub(a) = 0

      You'll recognize this from your algebra class as a quadratic equation. My point is that the quadratic equation (and the associated formula x = (-b +- Sqr(b^2 - 4ac)) / 2a) belongs to mathematics, the hypothesis that this particular equation applies in physical reality belongs to "theoretical chemistry" and the proof that it does actually happen belongs to "experimental chemistry" (the latter two make up the science of "Chemistry")

      You dig?

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    40. Re:Don't do either by Dancin_Santa · · Score: 1

      Couldn't a Computer Scientist test whether a binary search is quicker than a linear search by commissioning a handful of students to look up random names in the phone book using both systems and comparing the result?

      Computer Science is pure thought stuff. What's nice is that it is directly applicable to 'computing' as we know it. Math is the same way.

      Dancin Santa

    41. Re:Don't do either by thomash · · Score: 1
      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 definition.

      I am sorry, but you're confusing two things. What Leibnitz said, was that we live in the best of all possible worlds. This bases on the idea that god would never make a world which is not as perfect as possible, as this would be stupid and non ratioal. Therefore, somehow, all the war, the hunger and the bad luck on earth is necessary.

      What the multiworld theory of quantum mechanics says is that every time you do a quantum mechanical measurement, you 'split the universe'.

      To get on topic again: I learned all this in my education of computer science. Obviously we can do it also the other way round. We use computer science as a major a learn physic and philosophy as a minor...

    42. Re:Don't do either by PD · · Score: 2

      You really can be a physicist anytime? Really? I don't have a physics degree. Do you suppose they will let me run my experiments on the cyclotron at the university? Do you suppose that someone will pay me to learn field equations?

      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.

    43. Re:Don't do either by Nohea · · Score: 1

      Well, although architect don't necessarily have to know how to actually build the house, you can be a better architect by understanding the properties of your building materials practically. And you learn that by building a house.

      I've been researching a lot of Java/EJB stuff lately, where people like to do really "good" designs. But when you actually start doing the programming, things can look different. And some of the best designs are influenced by practical techniques. That's what completes the feedback loop.

      Computer Science IS a social science, since it involves modeling human processes and behavior.

    44. Re:Don't do either by Dancin_Santa · · Score: 1

      I think you've confused Computer Science with another related branch of computing, namely Software Engineering.

      JMHO,

      Dancin Santa

    45. Re:Don't do either by Kalani · · Score: 1

      Couldn't a Computer Scientist test whether a binary search is quicker than a linear search by commissioning a handful of students to look up random names in the phone book using both systems and comparing the result?

      Sure, and in that case he'd be using a computer (though it's a jury-rigged computer really and hardly representative of real-world computesr.) Still, "faster" can depend on the actual computer system. A "Computer Scientist" can show that a certain algorithm is linear and that another is quadratic, and so the former algorithm is generally faster than the latter one (though that may not always be the case.)

      What I'm saying is that no "science" in "pure thought stuff." Perhaps CS ought to have something like a "Grand Unified Program," the parts of which we (as computer scientists) should deduce.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    46. Re:Don't do either by Pinball+Wizard · · Score: 1
      you made my day with that comment. I've realized most of these people use the piece of paper as a crutch. Its painful to admit that someone could be as good or better of a programmer than you and know about algorithms & compiler theory without having spent 4+ years & $60,000 getting the degree.

      The funny thing is, a good self taught programmer who knows his stuff actually found more efficient 'algorithm' to obtain his knowledge. And you are correct - calling a 22 year old with a 4 year degree a computer scientist is stretching things a bit.

      --

      No, Thursday's out. How about never - is never good for you?

    47. Re:Don't do either by jonbrewer · · Score: 1

      I dunno 'bout that advice to do neither...

      I'm working a job requiring CS skills and BioChem background, and was just looking at masters degree programs in both Bio and CS.

      It seems my 4.5 years of liberal arts education included very few of the prerequisites for applying to grad school in either subject. I'll need around 2 full semesters (36 credit hours) of target coursework in either before I'll be considered for the masters programs - and this will be a bitch to do at night.

    48. Re:Don't do either by Dancin_Santa · · Score: 1

      I think we are debating semantics at this point.

      Dancin Santa

    49. Re:Don't do either by Kalani · · Score: 1

      Computer Science IS a social science, since it involves modeling human processes and behavior.

      I've never heard that one before. I assume that by "human processes" you mean computation in general. In that case, is computation a basic property of the human brain or can it be found in other places in nature? That sounds like a provable hypothesis to me (and probably one which CS can strive to answer) as long as "computation" is fairly rigidly defined. I'd say that computation has been going on for much longer than humans have been alive (see the Leechium processor -- ah, that processor at Georgia Tech that was made from leech neurons.)

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    50. Re:Don't do either by Chris-en-topper · · Score: 1
      What does a Liberal Arts Grad say to an Engineering Grad? Would you like fries with that sir?

      One of these days you may find yourself sitting across from a liberal arts degree holder wearing black robes and holding a small wooden hammer in his hand. Please be sure to tell him that joke for me. I'm sure he will agree that his useless education has rendered him utterly powerless in the presence of your vast engineering prowess.

    51. Re:Don't do either by naoiseo · · Score: 1

      ya don't do either. No wait, just do more.
      I went to university all gung-ho for computers, realized as I was there that mind numbing programming wasn't how I wanted my brain to spend it's time, picked up a double major in CS and Psychology.. and loved it (at a liberal arts school none the less!).

      Honestly guys (and gals), if I hadn't gotten the psych degree too.. I don't know if I would consider myself an educated person now. I can't stress enough how important it is to explore disciplines that are never expressed through the natural flow of information in the typical north american upbringing (the media, your parents, your peers, and your teachers). I found out that nobody at all who has a popular conception of the discipline of psychology has anything close to a true understanding of the field (of course most psychologists don't either, but thats another story) - and it really is a field that allows for some mind expansion

      Now I work in the computer industry, not programming, but utilizing what I learned about computers and about humans.. DON'T GO ALL TECHNICAL, WE NEED BOTH SIDES OF YOUR BRAINS!!!

    52. Re:Don't do either by Jaeden · · Score: 1

      "all they ever do is make really dangerous things that smell bad."

      No way, my OChem lab smells great. It's my Zoology lab that's the big stinker.

      cjd

    53. Re:Don't do either by Pinball+Wizard · · Score: 2
      I need to find the guy, who does never ever use bogo-sort but learned programming on the fly. I don't know him yet.

      How interesting that you quote from ESR's book. I think you should surf his site some more, you just might find the person you are looking for.

      --

      No, Thursday's out. How about never - is never good for you?

    54. Re:Don't do either by tb3 · · Score: 1

      Works for me. I've got an Hons. B.Sc. in Physics, and I've been working in IT for 14 years now. Can barely remember what F=ma stands for.
      -----------------

      --

      www.lucernesys.comHorizon: Calendar-based personal finance

    55. Re:Don't do either by Kalani · · Score: 1

      I think we are debating semantics at this point.

      I agree, but that doesn't trivialize the argument. "Science" is certainly said a lot in our society. It is generally regarded as being a source of infallible information. Shouldn't the definition of a "science" be pretty rigid?

      Anyway, I really do think that "computation" should be regarded as a branch of mathematics. I don't think that this "issue of semantics" is trivial either. To wit, most people think it's funny when they hear garbagemen called "Sanitation Engineers." This is because their discipline doesn't stem from a science (as electronic engineers or civil engineers do from physics.)

      This "semantics debate" actually has a lot to do with what will or won't be done in the real world.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    56. Re:Don't do either by Microsift · · Score: 1

      Absolutely, learn to think, I have a political science degree, and work with people with cs degrees, some of them can't problem-solve their way out of a bag. On the other hand there are some concepts which you need to be aware of.

      --
      My other sig is extremely clever...
    57. Re:Don't do either by PD · · Score: 2

      >I'm not sure whether this was a troll or not.

      It wasn't.

      >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.

      Not true. I did it, and so have a great many people. Some people learn better outside of a classroom, and that includes difficult subjects like Calculus and Computer Science.

      The person who asked the initial question knows themselves best. If they are a person like me, they will learn computer science as well as anyone in a classroom. If they are the kind of person who does well in a classroom, then the suggestion others in this thread gave is a good one: do a dual major, or minor in comp.sci.

      Everyone seems to think I am diminishing the importance of comp.sci. fundamentals. Not true! I am proclaiming the strength that a good liberal arts education can provide.

    58. Re:Don't do either by glenn+mcdonald · · Score: 1

      Actually, I think the reason so much software sucks, and so many web pages, is the exact opposite: that it's fairly easy to learn to code, even to code well, but much harder to learn how to apply these skills in some way that will actually improve anybody's life, instead of contributing to the parade of annoyances. The best argument for majoring in some liberal art (or, for that matter, a creative art like writing or photography) is that if you do it right you will learn how to think about people, who are by far the hardest parts of any interesting problem, technological or otherwise.

    59. Re:Don't do either by Wansu · · Score: 2

      Be a liberal arts major

      I have to agree. Many good programmers have a liberal arts background. Lots of programmers are musicians.

      --
      Wansu, th' chinese sailor
    60. Re:Don't do either by woody_jay · · Score: 1

      You must want to work for Microsoft with that attitude.

      . Explaining how to frame a house to someone doesn't involve understanding the different ways a house can be framed. All you're worried about is the end product.

      You must not have much experience in construction if all you are worried about is the end product. How about making sure the end product is going to last for a while? That just goes to show you where that 4-year degree put you. You don't have any more of a clue about the real world then when you started. Tell you what, get a job, work for a few years, then post back and tell us how much you learned in that precious 4 years at a "higher institution". Personally, I don't put much stock in someones opinion who is still in school. You're just sayin' what they've trained you to say.

      --
      Of course, that's just my opinion, I could be wrong.
    61. Re:Don't do either by techwriter2002 · · Score: 1

      Q. What did the history grad say to the CS/CE grad? A. Your son/daughter is flunking history, you geek!

      --
      "You're the one with the earthshaking reputation. I'm just a flunky. I'm along for comic relief."
    62. Re:Don't do either by PD · · Score: 2

      Hard to get a job with a liberal arts degree???? Consider the following (not so serious!) resume:

      Employment History
      1988-1990 *Professor Smith's Lab* College programming job. Did what Dr. Smith wanted. Blah blah blah.

      1990-1992 *Bob's Software Emporium* Entry level job at a 3 person programming shop. Built lots of blah blah blah.

      1992-1994 *Millie's Mid Level Foo Works* Programmed with a team of 5 people, in a company of 35, blah blah blah

      1994-1998 *Somewhat larger company* Built lots more crap for a bigger company

      1998-2001 *Even bigger company* Movin' on up. Mega corp programming, blah blah blah

      Education
      B.S. University of Idaho, History, 1990

      This isn't unrealistic at all. The employer looks at the resume and says "WOW! 13 years experience!" He doesn't give a shit about the history major.

    63. Re:Don't do either by jovlinger · · Score: 1

      Someone once said that anything that has to call itself a science isn't. By that argument computer science isn't a science, while physics is. (many excellent professional programmers were physiscists who needed to solve a problem and got hooked -- the problem decomposition skills and intuitive understanding considerably between the two fields)

      But the grandparent poster is actually quite accurate. In many cases, you'll be better served by getting a broad liberal arts education with a few key comp-sci courses and then self study.

      Programming is not yet a science, not even an engineering discipline. There are a few basics that you will need to learn, in order to get the right foundation for your self-study, such as good problem solving decomosition, algorithm analysis, language theory (P, NP, P-Space ...), fundamentals of OS, networking.

      After that, you really need to just program program program until you develop your own understanding. Only then are you able to fully grasp what the later courses in a Comp Sci education can get you -- the problem being that you often need more than 4 years in total before you reach that stage.

      Hence, I'd recommend getting the basic Comp Sci courses, and then getting as broad an education as you can. You'd be suprised how easy other subjects become when you can attack them with your programming knowledge. I really enjoyed statistics, econometrics, and economics, because I was able to tackle semi-real problems for my papers by using computer simulation; find a good model of consumer behavior, find some economic historic data, see if it fits: instant ecomics paper.

      ramble ramble ...

    64. Re:Don't do either by Rumble · · Score: 1

      Shouldn't the definition of a "science" be pretty rigid?

      Hehe, by doing a bit of investigation in the field of philosophy of science, I think you'll soon discover that there has historically been a very blurry line between science and non-science and we still don't really have a concrete definition of science nor any sort of critereon for determining what is science and what is not. In fact, many of the important scientific discoveries of the past (what we would term science) were not arrived at in a fashion that we would consider scientific today. Philosophers like Karl Popper and Thomas Kuhn would be some good philosophers to read as an introduction.

    65. Re:Don't do either by SquierStrat · · Score: 1

      You can learn anythign as you go, so why bother with colelge at all...duh because when you apply for a job they ask that you have a CS or equiv. degree (comptuer engineering would also work...)

      Derek

      --
      Derek Greene
    66. Re:Don't do either by pkesel · · Score: 1

      It's true, you can be a competent computer professional without a computer degree. But look at it this way. It's the computer scientists who are writing all those books you buy at Borders to learn how to do it.

      --
      - Sig this!
    67. Re:Don't do either by ashultz · · Score: 2

      A lot of the difference is having had a few courses in algorithms, data structures, and theory. Even good self-taught programmers tend to have to reinvent wheels which an attentive CS major will have been taught about already. Red-Black trees, anyone? O(n) vs. O(n^2)? Someone who has been through a CS major will know what to make of stuff like this.

      Mind you, being a CS major doesn't make one a good programmer, but it helps make a good programmer into a deep programmer. And lack of a real CS education has produced a lot of bad code from smart people.

    68. Re:Don't do either by KevinMS · · Score: 2


      I agree many people learn better outside the classroom, and often at a pace that makes a CS students look like they're in kindergaten, they laugh at this blind devotion to a degree when the actually knowdledge of these graduates is just random sections of a few text books, less then what they usually pick up at a bookstore in a day.

      Also, I dont believe there is any degree that proves you are a good programmer which is much more important than a "computer scientists" in terms of demand and employment.

      Also, whats this dogma about math being so essential to computer programming??? Take for example apache, slashdot, navigator and linux. How much math is in there? And if there is, how much is not wrapped in a nice library? C'com people, isnt it obvious, programming isnt about math or calculations, its about good writing. You have to be good at explaining to BOTH the compilier/interpreter AND other programmers what your program should do.

      To all those arrogant cs degree holders who think you're what its all about think about this: somebody who is self educated in the programming business has proven that they can do it again when the technology changes, degree holders have proven then can pass tests and labs, who would you hire?

      --
      Sneakemail is to spam filters what an ounce of prevention is to a pound of cure.
    69. Re:Don't do either by markmoss · · Score: 1

      "No purely esoteric study is classified as a science." Except for certain branches of physics that is: Particle physics where they need $ billions to do the next experiment and even that is not enough --they don't really expect to get unambiguous results until they get an accelerator the size of Texas. Or all the areas where they speculate without concern that any possible experiment could invalidate their theories (Grand Unification Theories, the creation and composition of the universe...). IMO, it's not really science, but they have most people fooled. This is why I switched to engineering.

    70. Re:Don't do either by rockhome · · Score: 1

      I will have to shtrongly disagree with the idea that Computer Scientists learn "cookbook" ways of dealing with problems.

      Computer Science is an outgrowth of discreet mathematics, using many of the same methodologies and practices mathemeticians use. Mathemeticians bank on reducing complex problems to QED problems, which are then easy to solve. This is not "cook book", this is analysis, finding out not how to get from point A to point B, but how A tells you how to move towards B.

      The beauty of God's creation, as Chaos theory has taught us, is that even vastly complex systems have an underlying order that can be understood. In my computer science education, I became more prepared for programming and a host of other possibilities because I don't know how to create a hash table, but what a hash table is.

      I have seen smart people who know perl/C/python, etc. struggle with problems that I think are simple because a lack of understanding in basic principles of computer science.

      "Cook book" problem solvers are those who don't understand how things happen, but merely what the result is. "Cookbook coders" don't understand the problem solving methodolgy, just that if they jiggle the pieces enough, the problem works itself out.

      A computer scientist, on the other hand, finds the core of the problem and solves that problem. For instance, a coder might see "tar this directory, but make sure the tar file is under 2GB, if it goes over, split it into 2 files." and he codes a simple method to add files until the total size will exceed 2GB.

      The Computer Scientist sees the same problem and separates it into pieces of a set of variously sized items, and n containers of size 2GB. She then solves the problem using principles learned from the classic "Knapsack problem", resulting in a vastly superior program thatn above.

      And show me an on the job learner who has a practical understanding of O-notation.

    71. Re:Don't do either by jbaltz · · Score: 1
      Alas, I think the point has been missed...

      Computer science (the body of knowledge, like computability, complexity, automata, etc.) is akin to physics.

      Computer programming is a skill. It can be learned on the job, and many parts of the skill can be learned independently of computer science (to wit: all those folks who go to trade schools to become COBOL Charlies, who don't learn much about data structures, complexity, etc.)

      As to the original question: what is the difference between computer engineering and computer science: I can say that most people in the "Real World(tm)" don't really know or care. Most HR people and recruiters with whom I've dealt don't have an idea what the difference is, and unless your CEng. program has some known significant digressions from CS programs (e.g. it's two years vs. four), there will be no practical difference. (I speak from my own experience on both sides of the interview desk, having interviewed dozens of people over the past few years for various positions.)

      If you're trying to sell yourself to a particular position (e.g. you're trying to market yourself to a hardware group) you might be able to play up your CEng background, if you have one. For a generic entry-level programming position, there will be (in my humble estimation) no difference. So comb through what is there, and pick what you like. (Major in liberal arts and minor in CS!)

      Disclaimer: I majored in physics and math. I only taught CS.

      //jbaltz
      //jbaltz
      --

      --
      I am the Lorvax, I speak for the machines.
    72. Re:Don't do either by ahaning · · Score: 1

      Edsger Dijkstra, winner of a Turing Award and a contributor to the field of Computer Science in many many crucial areas (proofs, path finding, semaphores, etc...), does his 'computing' with a pen and paper.

      Reminds me of a quote I read somewhere (a sig, maybe?):

      "Number 3 pencils and quadrille pads."
      --Seymoure Cray (1925-1996) , when asked
      what CAD tools he used to design the Cray
      I; he also recommended using the back side
      of the pages so that the lines were not so
      dominant.



      kickin' science like no one else can,
      my dick is twice as long as my attention span.

      --
      Withdrawal before climax is very ineffective and those who try this are usually called "parents."
    73. Re:Don't do either by The+Deep+Blue+Funk · · Score: 1

      Of course sufficient experience can make up for the lack of the right piece of paper, but on the other hand that's hardly a good argument for forgoing the CS degree. The 1998-2001 part could've been the first gig out of college, and who knows where that person would've been 10 years later? Just because it's possible to get decent programming jobs without a CS degree doesn't make it a good idea to forgo the CS degree.

    74. Re:Don't do either by Kalani · · Score: 1

      I think you'll soon discover that there has historically been a very blurry line between science and non-science

      It's not that blurry. If the scientific method applies, it can be considered a scientific experiment. We've had some pretty clear distinctions between Science and philosophy for a long time now. Scientists like Newton would be good to read as an introduction.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    75. Re:Don't do either by Kalani · · Score: 1

      Except for certain branches of physics that is: Particle physics where they need $ billions to do the next experiment and even that is not enough

      Well if it's testable then it's science.

      There's a line from a play called "Arcadia" that's really great. It's something like, "... it doesn't matter whether the universe is spherical, or shaped like a table, or jumping up and down on one leg. It's not the truth that makes us human, it's the pursuit of the truth."

      I think I've probably botched it seriously, but I think that's close. In any case, I can see where theoretical physics is reaching out into fantasy (at least with some of the string theory stuff.) Testable hypotheses are the bedrock of science. The rest is just mental masturbation.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    76. Re:Don't do either by styopa · · Score: 1

      I have found that there are two types of computer scientists - programmers and developers. Developers work around problems, they understand the core of what is going on and can do amazing things, programmers those people who know how to program and can do a decent job but do not have a good grasp an problem solving.

      My experience with academic computer science is that they are set up to mass produce programmers. This is mainly because there is a huge influx of people who are going into computer science for the money rather than because they love the material. There are still a smaller portion of people who are there because they truly love programming and I have found that those people generally have learned how to problem solve not from their classes but from other experiences. The best of the best from programming come out of the computer science department, but a majority of the people just slide by. I don't know a single person in physics programs who just slides by.

      show me an on the job learner who has a practical understanding of O-notation

      Actually, I know someone who took one computer science class in college, got his degree in philosophy and has a better understanding of object oriented programming than 90% of the people that I have met who are in an academic computer science program. He learned everything on the job.

      When a majority of the people produced from academic computer science are programmers rather than developers. When the classes become too large to allow for special attention. When the program is pressured by industry to produce as many computer scientists the program reduces itself to producing "cookbook" programmers rather than developers.

      --
      Disclamer - Opinion of Person
    77. Re:Don't do either by jjsaul · · Score: 1

      The best advice I have is COOP! Or work while you are in school, or take 5 years and alternate years with working and education. When someone is sifting through a stack of a few hundred identical resumes, experience stands out more than education. A portfolio of good work is even more impressive, with the other two grounding it. I also think you will find that the experience will help you decide whether your education is going in the direction of your greatest interests.

      The parent poster is a little emphatic about not majoring in the tech degree. You will find that those in the industry without one tend have a major chip on the shoulder about it. Take the advice with a grain of salt. NOT having the degree closes some doors. I specialized in patent IP in law school, then was unable to take the patent bar because I don't have one of a set of specified technical degrees.

      Also, if you might be interested in a graduate school you'll find it difficult to get into the best programs with an unrelated degree.

      Last advice - be interdisciplinary. Techs may be in high demand, but more so are those with more than just technical expertise to offer. And you will probably find that you are able to break new ground in areas an everage tech would be unable to master.

      Oh - one more thing. Browse the whole campus bookstore and choose courses based on the source material for any humanities subjects.

    78. Re:Don't do either by fmaxwell · · Score: 3
      you just cannot replace a university degree computer science with work experience.

      And you just cannot replace work experience with a university degree in computer science. If given the opportunity to hire someone with four years of professional programming experience or someone with a four year CS degree, I will take the person with the experience. I don't need someone who knows language theory, calculus, and how to how to reinvent network stacks. I need someone with practical experience related to the work they will be assigned. I have seen degreed engineers completely blow projects because they lacked the professional experience to be successful. They did not understand schedules, budgets, or office politics. One spent days reinventing something rather than just purchasing a commercial library. He thought it would save us money!

      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.

      What makes you think that universities are able to attract skilled computer science professionals to teach there? Most professors make a pittance compared to what a talented software engineer can make in the private sector.

      I dropped out of college to take a software engineering job. I learned far more in that job than I would have ever learned in college. The professors and instructors that I had in college knew less about software/firmware engineering than I did and some of them were downright incompetent. The inefficient, brute-force programming demonstrated by some of them is probably to blame for the code bloat that has caused common business applications to require 650MB CD-ROMS as distribution media.

      While it would be absurd to condemn all degreed engineers or college professors, assuming that people with college degrees in computer science will be better software engineers is equally ludicrous.

    79. Re:Don't do either by tokengeekgrrl · · Score: 2
      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.

      I take no disrespect to your statement and I am a self-made programmer. I have a question for you, though, if you don't mind me picking your brain for a moment.

      I did take some computer programming and math, (I took some advanced calculus and logic but had already placed out of regular calc and linear algebra), in college but did not major in either because both depts were very unfriendly towards women and I was paying waaay too much money to deal with such animosity in my major. I concentrated on political science and music instead, music theory satisfying my appetite for math.

      I picked up computer work during and following college and it came quite easily to me. While contracting back in 1995, I took it upon myself to complete a Programming Concepts and Algorithms class. I've also taken other classes from Oracle, Informix and other companies to administer or develop for their products but I don't consider those to really count.

      I constantly feel like I'm lacking in my skills and want to go back to school. I've even talked to some schools who would allow me into a masters of computer science provided I take a few undergraduate cs courses in assembly language, algorithms and pass a calculus test given my 6+ years work experience (I know it's nothing compared to many many people but hey, it's a start).

      My problem is that first of all, I'd have to go back parttime as I do not see it as in my best interests to leave the field completely, particularly because I'm lacking in a formal degree. Secondly, would it be worth it? Should I just go back for another undergraduate degree? Some schools do offer a 2-year undergrad CS degree for professionals who already have a non-CS degree. Or should I go back for Math instead? I really do love math so I'm tempted but would the CS degree be better?

      Thanking you in advance for your consideration.

      - tokengeekgrrl

    80. Re:Don't do either by MaxGrant · · Score: 1

      I learned programming on my job. My degree is in English Lit. I never had any trouble picking up programming, and I don't make peanuts doing it. It depends on your aptitude for logic, and your attention to detail. And I fully believe one can learn them in the wild as well as in an academic environment. Provided the aptitude is there.

    81. Re:Don't do either by Rumble · · Score: 1

      I wasn't talking about the difference between science and philosophy, but on how to recognize what is science and what isn't (which is, as far as I know, the main issue in the philosophy of science). I'm glad you brought up Newton, though. In your original post, you stated that people generally regard science as a source of infalliable information, however Newton's own theories have been proven to be not correct. Albeit his theories are adequate for many useful purposes (predicting the orbit of the Earth, for example), it is impossible to determine what inherent truth there is to his claims. In one of your other posts, you mentioned something about truth not being important, but rather the pursuit of truth (is important). I agree in principle with this, however in the real world, you simply cannot rely on people's unbiased pursuit of the truth. As in the past, there are always a myriad of reasons why science cannot be unbiased. In the past, religion was the cause of much bias in scientific discovery, even into the 19th century. In todays economy, where science is for the most part big business, research grants and empolyment opportunities are just two factors that have the potential to skewer the pursuit of truth.

      If the scientific method applies, it can be considered a scientific experiment."
      So would you consider things like Creation Science science? If not, then I don't see how you can stand by this statement.

      This whole post is pretty off topic with the general discussion in this thread, so with regards to the general theme of the thread... I can't really think of too many scenarios where what a computer scientist does is scientific at all. Pure computer science is as abstract and theoretical as mathematics. Computer Science to me is a branch of mathematics dealing with computation. Perhaps a more appropriate term for those theoretical computer scientists would be computician.

    82. Re:Don't do either by Rumble · · Score: 1

      Computer scientists and programmers (which is what most cs grads are) are generally reknowned for being excellent problem solvers. Either you are surrounded by idiots, or you live inside your own little world. I would make a comment about how many graduates of the computer science students that I graduated with are generally excellent independant thinkers, however since I hate and despise all of them for being inferior to me, I will refrain from doing so. (That was sarcasm for the humour impaired)

    83. Re:Don't do either by MaxGrant · · Score: 2
      What does a Liberal Arts Grad say to an Engineering Grad?

      He says your grammar is atrocious, your argument is based on specious generalizations, your logic is abominable, and he makes plenty of money as a self-taught programmer anyway. Along with some stuff about how plotting a novel (or an essay, or a piece of music), writing it all down, and revising it with merciless attention to detail and internal consistency not being a whole lot different when the code is in C++ rather than English, or musical notes. Talent is talent. Discipline is discipline. Brains are brains. The first programmer had to teach himself. Who says I can't do it too? Not my employer, who pays me awfully well.

    84. Re:Don't do either by kimmop · · Score: 1
      We've had some pretty clear distinctions between Science and philosophy for a long time now. Scientists like Newton would be good to read as an introduction.

      You mean Newton's Philosophiae naturalis principia mathematica (The Mathematical Principles of Natural Philosophy, 1687)? That sure makes a clear distinction between Science and philosophy. ;)

      While I do agree, that the philosophy they write in philosophy departments around the world is mostly useless, I still consider philosophy as the foundation of all (both axiomatic and natural) sciences. As philosophy means "the love of wisdom" it should be the cornerstone of all science (and life in general).

      --

      --

      --
      Binaries may die but source code lives forever

    85. Re:Don't do either by Kalani · · Score: 1

      You mean Newton's Philosophiae naturalis principia mathematica (The Mathematical Principles of Natural Philosophy, 1687)? That sure makes a clear distinction between Science and philosophy. ;)

      Yes, and his work in optics, and innumerable other writings. He is the poster child for objective measurement. Have you read his Principia? Newton disliked philosophy, but he lived in a time when it was necessary to publish work as philosophy. You'll glean as much out of some of the things written by him and those who knew him in James R. Neuman's "The World of Mathematics" (put out in the 50's -- it's a REALLY great collection of essays showing the human thought behind mathematicians and scientists.) Still, and I'm going to assume that you have read his Principia, Newton's own work shows cogent deductive reasoning. That's at the heart of the scientific method.

      While I do agree, that the philosophy they write in philosophy departments around the world is mostly useless

      I didn't say that. I only said that it's not scientific.

      As philosophy means "the love of wisdom" it should be the cornerstone of all science

      There's an assertion that begs for a proof. Like a lot of things in life, this is generally used as so much doublespeak.

      Thanks though.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    86. Re:Don't do either by raju1kabir · · Score: 2
      I have experience in construction, some computer science, and I'm majoring in computer engineering. I highly doubt that someone could learn in their spare time how to write the code and build the machine that you sat down at to write your post.

      That's because you're knee-deep in the academic environment even as we speak. This environment thrives on creating artificial complexities and mysticisms surrounding subject areas in order to justify its expense and time and trappings and prestige.

      Or, less charitably, you're sitting there in college, and finding it quite hard despite having tutors and classmates and books to help you, so you couldn't even imagine how someone else could master the material without all those aids.

      Out in the real world, gifted programmers are split pretty evenly between the school-trained and the self-taught. Many of the brightest, most capable and widely respected never bothered to finish school.

      Likewise, many celebrated physicists and mathematicians throughout history have been entirely unschooled.

      Credentials are nothing (except for vendor creds like MCSE, which are substantially less than nothing). Capability is everything.

      --
      "Patriotism is your conviction that this country is superior to all other countries because you were born in it." -- GBS
    87. Re:Don't do either by alienmole · · Score: 2
      I think you could help answer your own question by trying to identify more clearly what you want to get out of going back to school. You mention that you feel that you're "lacking in [your] skills". I know people who've gone through full undergrad and masters degrees in CS who still feel that way when it comes to writing code in the real world, so I think you need to figure out more about what you need or want to know more about, and try to find a school that'll give you that, or even pursue that knowledge outside of school.

      If one of your goals is to have the piece of paper that says you're a qualified computer scientist, then clearly you have to go back to school in some form to get that. But if that doesn't matter so much to you, there are plenty of ways outside of school to gain knowledge that's directly relevant to your skills, or that will provide you with an excellent foundation to work from.

      If you're good at studying by yourself, on the CS side there are classic textbooks like SICP (link has full text; also see the Slashdot review) and other reference books like Knuth's The Art of Computer Programming, or more focused books like Aho et al on Compilers. Studying material like this on your own can be difficult without any guidance, which is of course one of the reasons people go to college. But starting along this road may also help identify what you're interested in and what you're not, and where your strong and weak points are. That could help you choose your next step.

      If you do start self-studying, some social support can help - joining mailing lists related to the topics you're interested in, finding local people who're interested in pursuing something similar (perhaps via clubs), etc.

      Aside from the traditional pure CS material, there are plenty of good books out there that relate more directly to the world of work. One book that I've recently found helpful is "Analysis Patterns - Reusable Object Models" by Martin Fowler. This covers patterns that arise often in general business and financial applications, so may not be the kind of thing you're looking for specifically, but I mention it as an example of the kind of stuff that's out there - there's far more than just "Java for Dummies", and if you want to improve your skills and knowledge, you should seek some of these out.

      If you do go back to to school, I think in some respects, Math might be a better choice, since (a) you really love it and (b) I think it's a "deeper" subject - compared to many advanced math topics, much of computer science is simple by comparison. But this comes back to what you want out of it: a math degree would open up science and engineering jobs that you could never get without it, but it doesn't directly provide you with CS skills, although a smart employer should recognize that a math major with CS skills is a great catch.

    88. Re:Don't do either by Inspector · · Score: 1

      Woohoo and amen to that! Just a little rider though; the CS and CE courses can also differ a LOT. Just depends on your focus in CE (hardware vs software)

      --
      Michael Gentili
      - He's just some guy, you know?
    89. Re:Don't do either by Inspector · · Score: 1
      Wrong. In fact I work at a firm with a self made CE. He spent one semester at U of Waterloo, examined what he'd be learning for the next 4 years and realized he knew it all already.


      I know this because I happen to have a CE degree myself and I havn't yet found a subject that he doesn't know more about than I do.


      In fact, I'm convinced it's the four years of experience that he gained while I was at U of T that gives him a leg up :)

      --
      Michael Gentili
      - He's just some guy, you know?
    90. Re:Don't do either by Some+Dumbass... · · Score: 1

      There are many ways you can reach the goal you want to acheive.


      More to the point, College isn't the only place you're allowed to learn :) It's four (or more) years of very structured and intensive learning, so it's good for learning a specialized area, but it's not the end-all, be-all of everything.

      Remember, there are programmers out there right now who predate "Computer Science" as a major (and maybe as a field?)

    91. Re:Don't do either by Issac_Hayes · · Score: 1

      Because history will not get you a job.

    92. Re:Don't do either by Inspector · · Score: 1
      Also, whats this dogma about math being so essential to computer programming??? Take for example apache, slashdot, navigator and linux. How much math is in there? And if there is, how much is not wrapped in a nice library? C'com people, isnt it obvious, programming isnt about math or calculations, its about good writing. You have to be good at explaining to BOTH the compilier/interpreter AND other programmers what your program should do.

      You don't seem to know very much about computers. How much math is there in there?! Are you kidding me? It's ALL math. And we're not talking about floating point 2.3e5/1.88e2 stuff here. Most of the meat of the code (the important stuff like sorting algorithms, scheduling, interthread communications, etc...) comes from theory of computation, which is math. Without the computer scientists and engineers working away on this stuff, we wouldn't even have multitasking operating systems.

      Also, your point about talking to the compiler/interpreter hits the nail on the head. If you don't know how the compiler works, how can you be sure your program is doing what you think it's doing? And BTW, without all that math, we'd still be writing assembly language.

      --
      Michael Gentili
      - He's just some guy, you know?
    93. Re:Don't do either by Issac_Hayes · · Score: 1

      Computer Science IS a social science, since it involves modeling human processes and behavior.

      This is ludicrous

    94. Re:Don't do either by Issac_Hayes · · Score: 1

      DON'T GO ALL TECHNICAL, WE NEED BOTH SIDES OF YOUR BRAINS!!!

      I was thinking about having the right side of my brain removed and putting in another left.

    95. Re:Don't do either by Issac_Hayes · · Score: 1

      The guy who came up with quicksort didn't teach himself computer science. It has nothing to do with coding and everything to do with theory.

    96. Re:Don't do either by Commie · · Score: 1
      "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"

      I'm not meaning to put you down here, but to be blunt, you have no idea what you're talking about. Which you've admitted, since you're in school and have had no/very little experience at a job.

      There are a lot of "jobs" out there that are far more challenging than building a rudimentary networking stack.

      It sure better be possible for you to learn "this knowledge" in an informal setting, because that's how you're going to be learning for the vast majority of your life. The theory you learn in 4 year techical degree is the tip of the iceberg --gaining a deep understanding takes far more time.

    97. Re:Don't do either by Bodrius · · Score: 1

      By your argument Physics is not a science because it deals with how to build levers, heat things, electrocute people or send radio signal. The answer, of course, is that Physics doesn't deal with that, it deals with the underlying rules of those phenomena. In the same way, Computer Science deal with the underlying rules of information processing. Both sciences (and practically any science) concern themselves with applications because experiments are a vital part of that "science" concept. But programming is not the main focus of a CS just like building machinery is not the focus of a Physicist. That's what Engineers are for, in both fields. It doesn't surprise me to see the confusion, since even many CS students make that mistake, but you may take a look at that sig on another message in the thread: "Real Computer Scientists don't use computers". It should be "Real Computer Scientists don't JUST use computers" but the point is valid. "Real Mathematicians don't use calculators". Of course they actually do, but the real work has nothing to do with that.

      --
      Freedom is the freedom to say 2+2=4, everything else follows...
    98. Re:Don't do either by zerofoo · · Score: 1

      I guess you'll be flipping burgers if you don't keep learning new things. Actually, this is true in any field, so don't study anything.

    99. Re:Don't do either by Anonu · · Score: 1

      What kind of advice is that? History is for those who live in the past... What use does that have?

      --
      SIGSIG -- signature too long (core dumped)
    100. Re:Don't do either by dubl-u · · Score: 2
      Be a liberal arts major. You can become a computer programmer anytime. It's like carpentry, you learn on the job.
      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.

      You may not be aware of this, but getting a liberal arts degree is different than slacking through college. There is some correlation, but the two are distinct pursuits. People who think they can slack through anything will be bad coders and worse designers. But a CS or CE degree is no guarantee of being useful.

      Some of the worst code I've ever had to untangle was written by people with a CS or CE degree; they were so used to doing short projects that they handed in and forgot that they never learned what it takes to write code maintainable over the long term.

      At least a liberal arts major approaches the buliding of software knowing that they don't know everything, whereas many people with freshly minted C* degrees are unaware of that. This is especially important when dealing with non-technical issues like software usability, working in a team, understanding the business needs, and surviving office politics.

      My personal experience is that experienced developers who lack formal training are much better at overcoming obstacles than those who only have technical degrees. This is probably just because the less driven and adaptable types without degrees give up before making a career out of it, but it's still an important difference when hiring.

      That's not to say that CS or CE degrees aren't useful or worthy pursuits; I'd recommend it to anybody who wants to be a top-notch progammer. But I would also recommend a strong dose of liberal arts: without understanding the broader context into which your code fits, your horizions are much more limited.
    101. Re:Don't do either by roman_mir · · Score: 2

      Hi Kevin.
      I was reading through all this thread and realized that there is nothing to add to all that was said but by the time I got to your post I had developed a picture in my mind that discussion in this thread takes place between two groups of people - self taught programmers who have not being formally educated in computer science and computer science students who mostly started programming in their cs courses.
      Let me introduce you to another side of discussion that may not have hit you as obvious - myself.
      I was twelve when I read my first programming language book (I am 24 now,) the book was on Basic programming. I did not own a computer, and I did not know anybody who had one (have grown up in the former Soviet Union and at that time PCs where not around there.) I wrote my own simple programs and games into my paper notebook. I got my first computer programming experience with Atari 600 and later Atari 800, and then something called a Spectrum system (a complete computer in your keyboard with 512Kb on board memory and a tape player.) I was in my first year of college in Ukraine, I was 15 when I got to use networked computer facility (not IBM not MAC, I couldn't even tell you what those machines were.)
      I immigrated to Israel where I learned Pascal, Turbo Pascal, C and C++ on my own. Immigrated to Canada and while spending day time in Dawson college in Motreal I was disassembling software at night time on my own 386 (seven years ago.) In 1996 I went to UofT (University of Toronto) into a CS prlogram and I am happy I did. I was forced into calculus all over again and linear algebra but I was also taught boolean logic formally, inductions (good for proofs of correctness - I actually used this at work once to prove that something was infeasible to do in a given time frame.) I was taught Data Structures, why there are different data structures, what types of algorithms to use with different data structures for inserts, deletes, updates, searches and other manipulations. Computer organization courses let me understand what really happens inside the machine, how to use logic to build hardware. We actually built 4 bit adders and even a simple version of CPU with internal bus, registers, IP (instruction pointer), instruction set, ALU and simple memory.
      Scientific, symbolic and graphic computation theories - that was tough, but I am glad I took that - they show the inadequacy of naive computer solutions and techniques to remedy inadequacies. Symbolic computaion, plotting, 3-D graphics and conventional programming languages.
      AI and Principles of programming languages courses taught me lisp, scheme, prolog, ml.
      Operating systems course allowed me to built portions of OS kernel in java :) imagine - HD and Memory management, Caching, multitask schedulers done in Java.
      I learned something about Business in Business of Software course - we had various speakers and even Fred Sorking (CEO of Hummingbird) was there to tell us something. I really liked that course.
      Of-course I had to take courses I did not want to and did not like taking (Stats for example) but, what are you gonna do, they forced us to do that...

      I started working in industry on my second year of the UofT working for a small startup that grew into 70 people in 3.5 years. Did projects for Bell Mobility, Canada AT&T, Canada Xerox, Canada Coke, and more during 3.5 year period, learned a bunch of stuff from my work, learned more about business and now I am working as an independent contractor for almost two months at a market rate.

      What I want to say is that there is no substitute for formal education at your workplace. There is no substitute for the work experience you may get on the job. The combination of these can be more powerfull and more useful for you or anyone who wants to become something more than just code cruncher. On my new job I just redesigned portions of their project to run sixteen times faster than what it was by identifying the most important bottlenecks and introducing new techniques like an assynchronous message queue a simple version of which I just finished building for my employer - very good results.
      In 5 months no one here could get the same results - is it thinking within the box?

      Anyway, I gotta go, but think - it's should not be 'either or', it probably is better when you have 'and'.
      Cheers
      Roman

    102. Re:Don't do either by lgas · · Score: 1

      The only problem is that when I was in school they didn't teach you anything that would help prevent the software you develop from sucking. They didn't teach configuration management, they never mentioned revision control, they spent very little time on design, none on testing, no mention of the term "life cycle", especially not in any useful sense, etc.

      While you really do need to study software development to produce good software, I think you can study all the right stuff on your own... I think school will teach you more bad habits than anything else.

    103. Re:Don't do either by dkoziol · · Score: 1

      I agree totally. I just got my BS in CS from a college of engineering. I came to the conclusion that CS belongs in the math department ( which is where I should have been ). Cs is less concerned with the physics that goes into making computing machinces and more concerned with what any computing machine ( and not just electronic digital machines ) can do. This means mathematical proofs. CE worries about the physics more. If you want to software engineering, either would be appropriate. CS would just give you a more theoretical underpinning concerning the problem you will be solving, and CE will give a better understanding of what the machine can do.

      --
      damkoziol
  6. Simple. by The-Pheon · · Score: 3

    Give up now! If you "only reload the Slashdot site every five minutes" you will have no time for your classes and it would be a waste of money to go to college! =D

    1. Re:Simple. by dboyles · · Score: 2

      ... it would be a waste of money to go to college!

      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.

      --
      -- "Complacency is a far more dangerous attitude than outrage." -Naomi Littlebear
  7. Computer Engineering is about Digital... by nullset · · Score: 1

    I'm a third year computer engineering student at georgia tech.

    This is what it looks like to me:

    CS = dotcom whore. You'll probably go into IT or be a code monkey

    CmpE = Digital Design, things like pipelining, cache, etc etc etc. The intro Cmp E classes are digital design (intro to digital logic etc)

    I think a computer engineering degree is more robust (esp. if you get a P.E.). A Computer engineer could easily go into programming if so inclined.

    --buddy

    1. Re:Computer Engineering is about Digital... by opeuga · · Score: 1

      code monkey

      Yes, we prefer donkey-coders. Thanks.

      ope

      --
      ---- http://www.opedog.com/
    2. Re:Computer Engineering is about Digital... by korinthe · · Score: 2
      CS = dotcom whore. You'll probably go into IT or be a code monkey

      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.

    3. Re:Computer Engineering is about Digital... by foodmike · · Score: 1
      I don't think is quite an accurate description.

      I think nullset is right, a CS major may very well go into IT or be a code monkey, but a CS degree doesn't mean you have to be a "dotcom whore." A CS degree can offer many opportunities besides being a code moneky. Many CS majors get jobs doing ful software development tasks, such as building large complex systems.

      I don't want to sound like I'm putting down a CE major though. It is also a very worthwhile and interesting field. It all depends on what you want to do.

      I always thought of it like this: CE's design, develop, and build the hardware. They handle low level logic and stuff like electricity, which a CS major like myself doesn't quite understand.

      CS majors build systems on top of this foundation utilizing different theories and tools.

      One other thing: someone made a comment about going to a good school that teaches C/C++/Java, etc. This is SO important. Find a school that teaches you not only languages or how to build hardware, but the theory and ideas behind them. Then you can learn anything.

      -FM

      --
      Busy, busy, busy...
    4. Re:Computer Engineering is about Digital... by DetritusX · · Score: 1

      Yeah, listen to an Engineer tell you to study engineering instead of Computer Science. Makes sense to me...

      --
      .sig this!
    5. Re:Computer Engineering is about Digital... by xantho · · Score: 1
      I'm a third year computer engineering student at georgia tech. This is what it looks like to me: CS = dotcom whore. You'll probably go into IT or be a code monkey CmpE = Digital Design, things like pipelining, cache, etc etc etc. The intro Cmp E classes are digital design (intro to digital logic etc) I think a computer engineering degree is more robust (esp. if you get a P.E.). A Computer engineer could easily go into programming if so inclined.
      Word. I'm a second year Comp. Sci. student at Tech and I can attest to the fact that they train you t o be a code monkey. The first two CS classes you'd take here easily have 1300 people in them, which sucks in terms of personal attention, believe me. They have lots of help, but only 2 actual professors, and the TAs don't have much authority to help you. I'm personally getting fed up with the College of Computing here, such that I might become CompE later, but it remains to be seen whether I get mad enough to switch. It's easy to be a brute force programmer, and that's what an untrained CompE person could be. The point of going into Computer Science instead is to learn data manipulation and algorithms. The Computer Scientists (ideally) write eficient code because of their training, but right now, it just seems like I'm going to learn about linked lists another 12 times before I graduate.

      --Xantho

    6. Re:Computer Engineering is about Digital... by natet · · Score: 1
      >I'm a second year Comp. Sci. student at Tech ...

      The first two years at most programs may seem like they are training code monkeys, but once you start taking upper division course work, you realize how much about the theory of computation they have taught you.

      I just graduated with a bachelors degree in CS. I considered CE, but didn't go that route simply because of time. I was a transfer student, and to become a CE, I would have had to go back and take the Freshman circuit courses and stuff.

      In my program, I learned a little about hardware, quite a bit about networking, a lot about finite atomata and algorithms, and some about computer languages in general. Along the way, I wrote a compiler, learned about GUI design, studied Operating System design, and databases.

      As for linked lists, they are one kick A** datatype. You can create a ton of other datatypes from them!

      --
      IANAL... But I play one on /.
    7. Re:Computer Engineering is about Digital... by eastMike · · Score: 1

      First of all, I want to say that not all schools are like this. I went through the CS program at MSU and can tell you that their program gives it's students quite a bit of opportunity to learn CE subjects. Now, I only went to one school, so I don't have much basis for comparison, but it seems like my education there was rather robust.

      Second of all, if you're only a second-year CS student, then I think it's a bit premature for you to "attest to the fact that they train you t o be a code monkey." Of course they're gonna concentrate on teaching you how to code at first. Why? Because, first of all, you're busy taking the university-required liberal arts classes etc and are only taking like one CS course per semester anyway (instead of 2 or 3), and second of all because you can't write good code until you know how to write code.

      Time is fun when you're having flies.

      --

      Time is fun when you're having flies.
      -Kermit the Frog
    8. Re:Computer Engineering is about Digital... by CS101 · · Score: 1
      Well, I am a 5th year CS student at Georgia Tech. I have a slightly different opinion of the two majors. ;) As someone who used to be a CmpE major, I also have a good perspective of each.

      CmpE does equal all the things nullset mentioned, but it also mostly equals Electrical Engineer. There is not a School of Computer Engineering. There is a School of Electrical and Computer Engineering. There is a very strong relationship between the two and it shows in the course work.

      CS majors can certainly become "dotcom whores", but I argue that almost anyone can become "dotcom whore". It takes a little time to read an HTML book and maybe a JavaScript book, but you're on your way. I keep hearing people complain that the College of Computing is not teaching anything useful, and they drop out and go to the local tech school to get their IT degree. These people didn't want to be Computer Scientists, they wanted to program.

      There is a lot of theory involved in real CS. There is also a lot of Math. I was required to take 8 Math courses. Many people don't realize this when they enter a CS program. They think they are going to learn VB, and then get mad when they have to take so much math. Then on top of that, no one teaches them VB :)

      An electrician is not an Electrical Engineer, in much the same way as a computer programmer is not a Computer Scientist. When choosing a degree you need to decide what you want to study. Look at the coursework, talk to students, and talk to advisors.

      -CS101

    9. Re:Computer Engineering is about Digital... by SquierStrat · · Score: 1

      I plan to attend GA Tech in the fall, and what the school is telling me (I was looking into doing a dual major Comp-Sci and Electrical Engineering) is the computer engineering combines comp-sci and electrical engineering into one major, with leaning towards electrical engineering. Wheny ou look in the paper and see that they want someone with a computer-science or equiv. degree, comp-eng would probably be equiv. :-)

      Derek

      --
      Derek Greene
    10. Re:Computer Engineering is about Digital... by catch23 · · Score: 1

      I don't think this student is a good representation of our school, Georgia Tech. At every school, there are stupid people you know.

    11. Re:Computer Engineering is about Digital... by eewanco · · Score: 1
      I have a BS CompE graduate from CMU, now with around nine years of experience as an embedded software development engineer.

      While the smug CS grads may be correct that in CS you learn more theory, and that CS grads (well, CS grads from pre-eminent schools) are better equipped to write more theoretically efficient algorithms than CompEs are, to be honest, most of the code in my industry is really not all that complicated. Clever algorithms are great for solving the problems that they fit, but a great number of programming problems just don't benefit from any mathematical analysis at all. I've barely applied anything beyond the simplest mathematics in my coding, and even where mathematics is truly relevant (e.g. queueing theory), it takes such complex mathematics to model the simplest, most ideal system that the math may benefit you in abstract comprehension and intuitive understanding, but not in coding.

      The other thing to consider is that code that is "efficient" at a theoretical level may be quite inefficient at a practical level, because of insufficient understanding of the low-level details (such as the ridiculous amount of overhead that C++ drags into an application).

      The appropriate skills to have depends on the problem. You need the theory of CS to make good compilers, encryption engines, graphics rendering engines, etc. You don't necessarily need a lot of it to forward packets, or design a GUI, or to program a piece of hardware.

  8. Lame Joke. by SpanishInquisition · · Score: 2

    The problem with Engineers is that they cheat in order to get results.
    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.
    --

    --
    Je t'aime Stéphanie
  9. Around here by Dancin_Santa · · Score: 1

    Around here we've got mostly CS folks. However, there are a few CEs and EEs around that have only a little less knowledge about CS as any of the CS people do.

    In beginning your career, it is not necessary to know *everything* about CS. I have a feeling that's why the CEs and EEs are able to fit right in with their comparatively lower CS knowledge. Everything else you can pick up along the way.

    CE might actually open more doors down the line than you realize.

    Dancin Santa

  10. I'm Afraid That... by Fleet+Admiral+Ackbar · · Score: 1
    many schools nowadays consider 'computer engineering' to be the MCSE, drag-and-drop doofus crap, when in fact it is more of an ENIAC-building vibe, as noted above.


    Personally, I would choose computer science, just because it sounds better to the untrained (read: HR) ear.

    --
    Carefree highway, let me slip away on you.
  11. CMPE vs. CS by TheLurker · · Score: 1

    Here at Georgia Tech the CMPE program is part of the school of Electrical Engineering, and deals more with the hardware side of computing, where the CS dapartment is it's own school which focuses more on the software side.

  12. Well, what do you want to do? by ScuzzMonkey · · Score: 2

    You didn't really mention what your career aspirations were. Hard to give advice on which to pick when we don't know where you're headed.

    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.

    --
    No relation to Happy Monkey
    1. Re:Well, what do you want to do? by Genghis · · Score: 1

      As mentioned above, your interests would have a big influence on what you wish to do.

      If you are interested in a specific field, it could make sense to get a degree that leads to that field and back it up with a CS double major or minor.

      For example if you are interested in doing communications systems work, an ECE degree concentrating in communicaitons theory with a CS double major/minor would be an excellent combination.

  13. Your preference by NukeIear · · Score: 1

    CS does deal more with algorithms, OS design, compiler design and with a few classes in hardware. CE is generally harder then CS and is a mesh of CS classes with EE classes. So you get an idea of how a computer works and a better idea how to build complex circuits. Generally a company wants a CS major OR they want a CE major, they aren't mixed and matched unless the hirer is an idiot. So basically just do what you like more, coding or screwing around with circuits.

    1. Re:Your preference by yamla · · Score: 2

      I agree with most of what you said. However, note that at my university, Computer Engineering is significantly easier than Computer Science. There is a huge amount of overlap between the two, of course. CompEng students take many of the same compSci courses, at least for the first two years. CompSci students take many of the same eng courses (though harder math and english courses, of course).

      --

      --

      Oceania has always been at war with Eastasia.
  14. CSC vs CEng by FigBugDeux · · Score: 4

    If you are more interrested in writing Windows (Linux) Apps, Web stuff, or DB stuff, get a CSc degree.

    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.

    1. Re:CSC vs CEng by travisbecker · · Score: 1
      you need a _huge_ ego to do ceng

      I'm curious about this statement, why did you say that exactly? (or was it just sarcasm)

      Travis

    2. Re:CSC vs CEng by turacma · · Score: 1

      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.

      If you're not good at math I have to question dealing much with computers at all, but this statement is misleading. CS still has quite a bit of math requirements (I had to take 4 calculus cources, linear algebra, probability among other things).

    3. Re:CSC vs CEng by nd · · Score: 1

      It's very difficult.

    4. Re:CSC vs CEng by jfinke · · Score: 1

      I disagree... I have a CS degree and we had more math then the CoEs did. In fact, I graduated with a math minor. Now, a lot of the CoEs took the extra math classes to get the math minor, but still...

    5. Re:CSC vs CEng by Chris-en-topper · · Score: 1

      I've seen CE students run screaming from some of the CS courses that I took, and vice versa. As an undergrad I noticed no correlation between CS and CE and difficulty of the degree, the intelligence of the person getting the degree, or anything else. But as a grad student the CE courses were generally easier and more "dot-com whore" oriented than the CS courses, oddly enough.

    6. Re:CSC vs CEng by (startx) · · Score: 1

      Not good at math get a CSC?!?!? where did you go and what did they teach you. CS theory is ALL about math! Algorithms, sorthing, etc. Hell, I started in calc here at UMR becuase that's the lowest you CAN start and get a CS degree! When I graduate I'll have an accidental math minor because it's required for the CS degree.

    7. Re:CSC vs CEng by FortKnox · · Score: 1

      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.

      The question is, what are you willing to do in those five years?
      CompE's tend to get better jobs with better pay. Its a bit easier to get the job you want with the engineering degree, but not impossible to do with the CS...
      And on the math comment posted in the replies, most CompE's have to take an additional 2 whole math classes to get their minors (I got mine).

      --

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    8. Re:CSC vs CEng by DetritusX · · Score: 1
      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.

      Actually my university it's the opposite. CS is a math-heavy degree - I will actually recieve a B.Math (Bachelor of Mathematics) degree with a major in Computer Science. CompEng is more on the practical side - much less programming/theory/algorithm stuff after the first year or so and lots more hardware and design.

      I guess the moral of the story is that the contents of the actual program at the actual university to which you are applying are most important in making this kind of decision.

      --
      .sig this!
    9. Re:CSC vs CEng by Columbo · · Score: 1

      I'm another that disagrees with the statement regarding math requirements. Our CS degrees were very math-based. After all, pure CS is a math-intensive endeavour. Actually, CS is a department of the math faculty where I went to university. More importantly, however, the TYPE of math that we did was different. Both faculties were very math intensive, but we did much more in the area of proofs and theory than the engineers did.

    10. Re:CSC vs CEng by ncc74656 · · Score: 1
      If you aren't good at Math, get a CSc degree, a CEng degree is four years of math.

      There's a fair amount of math behind a CS degree as well...maybe not to the extent of a CE degree (no differential equations, for example), but if calculus, discrete math, and statistics elude you, you could be in for a rough time in a computer-science program.

      --
      20 January 2017: the End of an Error.
    11. Re:CSC vs CEng by Atlantix · · Score: 1

      I strongly agree with your first two statements. But the third is opposite of my experience. I was a CEng major and spent most of my time in courses involving logic design, circuit design, and programming at the hardware level (assembly, VHDL, and some C for embedded systems). There isn't a whole lot of difficult math involved unless you think boolean logic is hard. My CSci major friends took courses in OS and application level programming and software testing/verification. That last part is VERY math intensive. It means you have to be able to mathematically prove that your software does what it is supposed to do, and does NOT do what it is not supposed to do. Generally their classes involved a lot more theory while mine had more hands on practical experience building and testing things. The end result is that while the CSci majors can theoretically program circles around me, their efforts are worthless if I don't do my job right. Hmm, perhaps that explains why you think we CEngineers have a huge ego?

    12. Re:CSC vs CEng by Atlantix · · Score: 1

      But as a grad student the CE courses were generally easier and more "dot-com whore" oriented than the CS courses, oddly enough.

      Weird, where did you go to school? The grad CE courses at U of Illinois (my alma mater) and other schools I'm familiar with tend to be very hardware oriented. Things like measuring ground bounce in a circuit board, EM interference, and crosstalk. That's about as far from "dot-com whore" as you can get.

    13. Re:CSC vs CEng by RainbowSix · · Score: 1

      "If you aren't good at Math, get a CSc degree, a CEng degree is four years of math. " Actually CS is just as much math. I'm not talking about pansy numbers either. I mean the set theory stuff.. that is some hard stuff. Of course there are specialties in both fields that have no math involved. In any case, I would say do both. I'm considering majoring in CS with a minor in robotics to bridge the gap.
      --------

      --
      --------
      It's OK to be social, just don't tell anyone about it.
    14. Re:CSC vs CEng by demaria · · Score: 1

      If you aren't good at Math, get an Information Studies & Technology (IST or IT) degree.

      Computer Science is math.

    15. Re:CSC vs CEng by emberg · · Score: 1

      I think you've oversimplified the situation. I'm finishing up a CEng degree and I know many, many CS majors, and there is a great deal of overlap. Though it's been my personal experience that it's easier to move from CEng to CS than the other way.

      CEng is not four years of Math. Neither is CS. Though you do need to have at least a competant grasp of mathematic concepts to do either. I'd say CEng is more differential equations and CS is more probability/statistical type stuff; though I've only taken a couple of high level CS courses, so I don't know it for sure.

      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 agree with the 5 years after school it won't matter which degree you got; you'll keep learning and you're interests will determine the jobs you take and where your career goes. As for the 90% part, I'm assuming there's an unmentioned quailfier of "programming jobs". You're average CEng has had at least a decent exposure to programming languages and skills and can handle most programming tasks. More theoretical computer science projects would pose a greater challenge to CEng and I would guess that most CS might be daunted by the task of dealing with designing hardware (I've known some who downright hate even dealing with it on the job).

      My advice to anyone contemplating this question:
      - If you like working with software already and are into/good-at problem solving/algorithm stuff, go with CS.
      - If you like dealing with hardware/system design and/or low-level (ie. Assembly) programming go with CEng.
      - There is also the option of not deciding right away, if your chosen school allows it, getting a taste for each and then deciding. OR you could be semi-masichistic and just do both :)

      Whatever you decide to go with, just remember:
      Good, Quick, Cheap: Choose Two

    16. Re:CSC vs CEng by tomblackwell · · Score: 1

      The fact that you took quite a bit of math to get your CS degree has no relevance to the crushing amount of math needed to get a CE. I remember asking someone in their 4th year of a math degree about one of my 2nd year CE/EE math questions and he looked at me like he was a dog and I was asking him to play the piano...

    17. Re:CSC vs CEng by Doctor+Memory · · Score: 1

      Depends on what kind of math you're bad at. I had a horrible time with trig and calculus, but discrete math and geometry were a breeze. Dunno why, just is.

      --
      Just junk food for thought...
    18. Re:CSC vs CEng by turacma · · Score: 1

      Actually in real life CS has little to do with math these days.
      I wasn't talking about real life, I'm talking about in a school environment. The question was about the differences in the degrees. I was merely trying to point out in a CS program, math still plays a large role (well, relatively speaking), and saying "If you're bad at math, go into CS" is a little erroneous. I've had friends drop out of CS because they couldn't hack the math.

    19. Re:CSC vs CEng by paulschreiber · · Score: 1

      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.


      Ummm ... you obviously haven't been paying attention to the University of Waterloo. Here, CS is part of the math faculty. All CS majors are required to take three calculus courses, three algebra courses, two statistics courses, a combinatorics and optimization course, and two more math courses (I took logic and differential equations).

      It's important for a CSer to have a strong math background -- after all, a good chunk of any algoirthms course is graph theory, anyway. :-)

      Paul
    20. Re:CSC vs CEng by MAXOMENOS · · Score: 2

      Let me add to this: if you are good at math, do either CS or CE. If you do CS, consider a minor or second major in Math.

      If you decide that you don't like CS and want to pursue a more CE route, you can get a Masters' degree part-time that will allow you to make that transition. Same with CE and wanting more of a CS background.

      ObJectBridge (GPL'd Java ODMG) needs volunteers.

    21. Re:CSC vs CEng by DJerman · · Score: 1

      What the heck, get both -- then you can program microcode...

      --
    22. Re:CSC vs CEng by Aragorn379 · · Score: 1

      I have a Computer Engineering degree from the University of Illinois and sastisfied all but one of the requirements for the CS degree. At least at this college, CS and CompE have similar amounts of math. The main difference on the math front is the type of math that is emphasized. Both cover discrete math, CS tends to go into more depth here while CompE needs to devote a fair amount of time to continuous math. Obviously, the amount of math will vary based on the university and the quality of the degree.

    23. Re:CSC vs CEng by demaria · · Score: 1

      I am curious if your education level (high school, current college, past college), and if you're currently enrolled in a CS program as you describe above.

      What you are describing is NOT computer science. Nor should it be. Any curriculum calling that CS is doing an injustice to the term computer science. What you're describing is a 4 year, $20,000/year trade school. That's the Devry institute of Computer Science.

      What you're describing will train you to perform great right out of college, but supply no help in the long run. Tweaking parameters of SQL? What if next year something better than SQL comes out?

      Here's the best description I've heard of computer science. "That's what we want you to do, to think hard, obsessively, for a long time, about very little."

      The idea is, if you know the theory behind how it works, everything else will come naturally. If you can understand how scoping works, then it doesn't matter what language you're programming in, it'll all make sense more quickly.

    24. Re:CSC vs CEng by bridgette · · Score: 2

      If you aren't good at Math, get a CSc degree

      I'm *still* traumatized from Algebreic Structures (abstract algebra), and I graduated 5 years ago!

      Any math class where you use a set of operations and a set of formulae to solve a set of equations is a cakewalk. Yeah, you might have a problem that is many pages long, but as long as you take your time and are careful about checking your work, eventually you will get some reasonable answer.

      I can't even tell you what I did in abstract algebra, I've supressed most of the memories, but I know it did not involve any actual numbers (eg. involving the digits 0-9). For the first five minutes of the first class the professor covers everything you've ever learned about set theory (eg. Venn diagrams). The remainder of the semseter is them spent trying to comprehend an endless stream of "Let [letter] be a [entity] (and let [letter] be a [entity])* then [letter][symbol]([letter][symbol])* is a [entity]; Let [letter] ....." I vaugely remenber loosing my shit around the time of the "orbit" chapter.

      I can't look (under the advice of my therapist) but you can, if you must:
      http://www.math.niu.edu/~beachy/aaol/rings.html
      http://www.math.niu.edu/~beachy/aaol/structure.h tm l

      --
      - bridgette
    25. Re:CSC vs CEng by CaptainCarrot · · Score: 2
      If you aren't good at Math, get a CSc degree, a CEng degree is four years of math.

      You are completely off your nut. I was a CSc major and could handle the math the engineers had to do with half my brain tied behind my back. The math required for CSc was the most abstruse I have ever encountered, especially when it came to language and automata theory. It's dense.

      Here's a clue: In institutions where they do not have dedicated departments for these subjects, the equivalent of a CEng goes through the EE department. A CSc goes through the Math department.

      --
      And the brethren went away edified.
  15. Slashdot is only about computers? by wadetemp · · Score: 1

    I find it interesting that the prospective student's gauge of how much he/she is interested in computers is that he/she reloads Slashdot every 5 minutes. That's great and all, but I don't think of that as much of an indicator. Slashdot is about much more than just computers... and especially about much more than just engineering and science specifics.

  16. Comp Sci & Comp Engr by Wavicle · · Score: 1

    Computer Science covers the research and application of computers to solve and study problems in the real world.

    Computer Engineering covers the research and design of computers.

    A computer scientist is more likely to spend time programming. A computer engineer is going to spend time building computers. A wise company looking to fill a programming position would accept a CS, CE or EE major.

    --
    Education is a better safeguard of liberty than a standing army.
    Edward Everett (1794 - 1865)
  17. computer scientists ARE NOT programmers by zhrodague · · Score: 1

    I think that it depends on whether you're an "applied" person or a "theory" person. Computer Engineering as I learned it focused more on taking core principles and applying them to known problems. Computer SCIENCE (I stress the word science) took core principles and used them to create more complex ones. For example, a Computer Engineer would take their knowledge of C and C++ and use it to create an embedded system. A Computer Scientist would take the C and C++ and figure out either how to make it better or to apply it to some highly theoretical problem. I think the key thing to understand is that computer scientists ARE NOT programmers. They are theoreticians. If you like the math, go computer science. If you like taking basic knowledge and extending it to a real world problem, go the computer engineering route.

  18. Difference between CS and CE (at my school) by turacma · · Score: 1

    I'm a CS major at Northeastern. My roommate is a CE major at Northeastern. CS classes tend to be more programming oriented, algorithms, software design, etc. CE classes are more hardware oriented, computer architechture, gate arrays, the physical junk. So, the real question is what would you rather do: poke some code to make it work better on the hardware (CS), or make the neat new hardware to make software writing easier (CE).

    1. Re:Difference between CS and CE (at my school) by Randall+Shane · · Score: 1

      However, in the real world, you decide what you want to do : write neat new software that requires new hardware to run efficiently, or make neat new hardware that requires the software to be completely rewritten.

  19. Plan of attack by OlympicSponsor · · Score: 4

    First, unless you absolutely must, don't declare a major. Just take required classes your first semester to get them out of the way. If the school is large enough, every class will be offered nearly every semester anyway so you'll be in no danger of falling behind.

    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

    --
    Non-meta-modded "Overrated" mods are killing Slashdot
    (Hey Ryan! Here's your proof!)
    1. Re:Plan of attack by NukeIear · · Score: 1

      Usually a CS or CE major must declare going in. At my school at least, getting into the College of Engineering is a pain in the ass unless you start off in there. Once there it takes a year of Academic probation before getting kicked out. But if you start off outside COE, it takes a year of 3.5-4.0 GPA to get in. But YCMV so check it out.

      Votech does suck, might as well go get a MSCE.

    2. Re:Plan of attack by Kefabi · · Score: 1

      Be careful. In California anyway, many schools have what's called an IGETC for the city colleges (IGETC let's you finish your general ed. before you transfer), and many universities have a general ed all students are required to take. Computer Engineering is almost always an impacted program. Which means, you need to take so many computer classes your first two years, that while everyone else is doing 40 units of general ed, computer engineers have to do much less. Case in point, I only have to take one English class, and a few other GE classes to transfer. Everything else is Math, Programming, Physics, Engineering, etc... Some school are also like that with Computer Science. Check with an advisor about what classes you should be getting if you are definately going into computers, and don't assume that the regular general ed is good for you. You could get screwed over in a year or two when you find out you took unneccesary classes and still need more computer classes to go on.

    3. Re:Plan of attack by mikers · · Score: 1

      I got my CE, but I am finding I want more CS like experience now.

      It is possible to get a CE because it is more general and opens more doors (to both the software and engineering sides of the industry) and then take vocational courses for upgrading progamming skills.

      The university I attended only taught us programming theory, and concepts in UNIX and at best Linux. Now I am developing almost entirely in Windows. The only place that will teach Windows like stuff is a vocational college.

      Get the CE for demonstrating competience in many areas, and then specialize and fine tune your programming knowledge with VO courses in what you really like (be it Java, MFC, Oracle, IBM, Sun or whatever). They'll teach you to actually work with stuff in the real world, and you'll be able to apply the theory you learned in university.

      mike

    4. Re:Plan of attack by fsbogus · · Score: 2

      I would suggest that you double major in both and drop one after two years. At that point you should know what you like. The course load overlaps. Lots of math. Skills used at either discipline are applicable to both. If you don't wish to double major then major in one and minor in the other. Either way there is much overlap in courses. However in any event you are not very likely to take easy, mellow courses with which to explore the liberal arts side of your mind. There just won't be much time left with a double major or a major with a minor.

      --

      The statement below is FALSE

      The statement above is TRUE

    5. Re:Plan of attack by battjt · · Score: 1

      At Rose-Hulman, you could double in EE/CS, but not CE/CS because of the heavy overlap. That's what I did, then at the end of my sophomore year, I dropped the EE (I hate memorizing junk).

      Joe

      --
      Joe Batt Solid Design
    6. Re:Plan of attack by BlueFrog · · Score: 2
      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).

      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.

      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.

      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.

    7. Re:Plan of attack by WillyLane · · Score: 1
      >>>Get the CE for demonstrating competience in many areas, and then specialize and fine tune your programming knowledge with VO courses in what you really like (be it Java, MFC, Oracle, IBM, Sun or whatever). They'll teach you to actually work with stuff in the real world, and you'll be able to apply the theory you learned in university.

      Well...

      The University education should give you the analytic and theoretical skills to be able to teach YOURSELF new languages and technologies. No need to pay a vo-school lots of money.

      -WL

    8. Re:Plan of attack by Bitsy+Boffin · · Score: 1
      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.

      I disagree with you here. I am a BSc in Comp. Sci. and I included in my first and second stage es (it's a 3 stage degree here in NZ) Philosophy, Logic (2nd stage), Psychology, Cognitive Psychology (2nd stage), Statistics and Discreet Mathematics. Granted Stats & Math were quite closely related to CS courses, but the philosphy and psychology were also very useful and highly related. In philosphy and logic we went into such delights and programming Turing machines, proving computability, Godel numbers... in Cognitive Pshycology we went into such areas as Artificial Intelligence, perception (important for interface design), useability.

      All of these courses helped and stimulated my mind immensly with respect to my CS major.

      Not to mention, you go to University, not to learn how to do a job, but to learn how to learn.

      Canterbury University CS Dept.
      --
      NZ Electronics Enthusiasts: Check out my Trade Me Listings
    9. Re:Plan of attack by Black+Parrot · · Score: 2

      > First, unless you absolutely must, don't declare a major.

      I've got nothing against that strategy (I'm fond of the "scenic route" approach to life, myself), but be careful about it if you want to finish in less than six years. I know of reputable schools where the CS major has prereq chains 9 semesters deep, and enrollment pressure at some of those schools means that you aren't guaranteed the courses you want even when you're a senior. (I know guys that have had to stay an extra semester just to take one class that they needed, and I've heard of people that had to stay two extra semesters for the same reason.)

      --

      --
      Sheesh, evil *and* a jerk. -- Jade
    10. Re:Plan of attack by Scouras · · Score: 1
      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).

      Actually, advisors seem fairly useless. At The University of Texas anyway, they were always a waste of time. I'm not saying this out of childhood spite either. They don't know the curriculum and will just read from the flowchart when suggesting courses or a major. Go see what they have to offer, but don't expect much help.

      A far better idea is to join the ACM which is applicable to any major and looks good on the resume. Your school's ACM should have some good socialization opportunities, and you should use these during your first year to meet as many upper classman as you can.

      Find one who knows his shit (not necessarily the person who gets straight A's mind you) and ask what he/she think about the curriculum and everything. If you find the right person, he/she will know what's up better than any Advisor and half the Faculty as well.

    11. Re:Plan of attack by Skwirl · · Score: 1

      >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.

      Were these IU University Division advisors? because, 99% of the time I knew more about a topic by looking in the Bulletin than asking a UD advisor (who would flip through said Bulletin anyways before saying "I don't know.") There _are_ competent advisors, but you don't get access to them until you're an upperclassman, at which time you probably don't need one. (This is the case for the School of Journalism, at least). The main CS advisor at IU is pretty on the ball, as well.
      Okay, enough ranting. The moral of the story is that, ideally, you should track down whoever is the expert when a tricky question arrives and shoot them off an email.

      >I always thought that Scheme might just be a
      >waste of time

      Oh man, I used to hate Scheme, and then I discovered that Scheme had the do-until looping structure. All this time, my profs were pretending that ugly tail-recursion was the only way to loop in Scheme. Ugh. What still bothers me about Scheme is that, for such a pedagogic language, there are few, if any, good, concise references for it on the web. Is a complete, scannable list of syntax so much to ask for?

    12. Re:Plan of attack by testpoint · · Score: 1
      "we'll teach you VB and send you out into the world"

      Couldn't argree with this more. Almost everything you learn in "vo-tech mode" will be obsolete in 5 years. I've seen too many "experts" in the current fad language who can't program didley.

      Learn the fundamentals and then you'll be able to use any language that comes along.

      If you plan on doing imbedded systems programming (cars, medical products, industrial control, etc.) get to know the hardware side of things. You'll get better work and more $.

  20. wait and see? by korinthe · · Score: 1

    Why not wait to decide until you get to school, take a class or two in each of the departments, talk to the profs, undergrads, and (possibly) gradstudents, and find out which one tickles your fancy the most when you have a much better idea of what it would be like? The first year or two of college is notorious for change-and-growth. Very often people graduate with a degree in a field they were barely considering as pre-frosh. If you haven't decided yet what college you will be attending, pick a school that has both departments. Often a well-rounded CS major will need an Engin class or two, anyway, and the same goes for CE. You'll be better off giving yourself a chance at both departments. That generalizes to "pick a school with PLENTY of good departments, in case you want to go even farther afield." HTH :) Curran (originally Biochem, now CS, thanks to the chemistry dept's intro-CS-course requirement :)

    1. Re:wait and see? by korinthe · · Score: 1

      crap. forgot about those pesky line breaks :)

  21. CS vs. CE by spectreone · · Score: 1

    I was a computer science and engineering major at the University of Connecicut around the time that they decieded to create two separate degree programs as well (and have CS, CE, and CSE degrees all in the same department). The way that the difference between the two degrees was described to us was that CS deals more in theory, and CE more in design principles. This is primarily why CE tends to deal more with hardware, and CS with software. At least thats the way it was explained to us.

    1. Re:CS vs. CE by Grendel+Drago · · Score: 2

      Indeed. I'm in the second year of the CSE program (actually goofing off at lab and not paying attention to Norton and Thevenin's theorems.) I picked the CSE degree because a) "engineering" sounded cool, b) we took more core courses, and c) CS is halfway to being an MIS weenie (boy, am I gonna get it for that one), which is like CS, but without the coding.

      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

      --
      Laws do not persuade just because they threaten. --Seneca
    2. Re:CS vs. CE by rbennett · · Score: 1

      It really all depends on where you are and what the programs offer. Try to think about what you are interested in and see who offers the most applicable courses. Look at the faculty and what they are researching. Do they bring in grant money? That can be an indicator of a good program.

      If you are not sure, look at the prerequisites. It may be much easier to switch from one to the other. In the case of UC, I would have had a much easier time switching from CompE to CS because the Engineering school has alot of basic coursework that CS did not have. Also, if they are in different schools they might have different admission standards. Go into the one that is tougher and would be harder to switch into (if there is a difference).

      I got a Computer Engineering degree from UC as well. Although I started out in EE, after a digital systems design class I decided to switch to CompE. I considered going into CS, but at the time CS was in the math department and pretty much sucked. Third rate faculty and program. The CompE program, on the other hand, had an excellent faculty with lots of interesting research. (they merged CS into the ECE department the year after I graduated)

      I ended up doing software, and the department really came through on that. I had professors doing things like formal methods of software specification as well as the usual algorithms and data structures type stuff.

      One thing that really impressed me about the program was that they never taught a programming language (I had to do plenty of programming for assignments, but it the basic policy was do it in any language you choose). If you are going to a university to learn a programming language, you are wasting your money. The real value of an education in this area is to learn the concepts behind how to design software and different areas of computing (like databases and algorithms). Programming languages and techniques will constantly be changing throughout your career, but a good theoretial foundation will serve you well.

      On a final note: I really think that there is something to be said for knowing the entire picture. Just like the point #5 above, I know how to design *everything* (albeit not neccesarily at a professional level) in a computer.. from the architecture to the CPU to the OS to a compiler. But knowing those things does not mean that you have to operate at a low level. Much of my professional career has been working with UML and Java (implementing software, teaching courses, and giving presentations - if you look at the info from JavaONE '99 I am sure you can figure out who I am).

      Now, I do feel that I have to give props to CS people. True CS people do innovative work and are truly scientists. Unfortunatley I have gotten the impression, both from my experience at school and from working with and hiring software development professionals, that alot of what passes as "CS" in schools is no more than a vo-tec program.

    3. Re:CS vs. CE by eewanco · · Score: 1
      I have a CE degree from CMU, which has both a strong CS program and a strong CE program. I knew a lot of people in both programs (and many who switched between them) and got a good idea I think of the distinction, and I would agree that the key distinction is between theory and practice.

      Don't listen to those who malign or exalt one or the other; which one is right depends strictly on you. Do you like to build, create, and solve real-world problems? Do you like getting "down and dirty" in the hardware? CE is better for you. Do you prefer more abstract work, such as designing algorithms or solving theoretical problems? Do you prefer to remain aloof from the grungy details? CS is probably better. So think about what you like best about computers, and use that as a guide. If you're less interested in solving concrete problems or practical applications, that would be CS; if you get frustrated by having to study stuff that has no apparent real-world application, that would be CE.

      While it is true that CE is often more hardware oriented, I work as a software engineer (albeit on low-level embedded software), and if you want to do hardware, EE is really most appropriate.

      I would also point out that the difference depends a lot on the university; as others have pointed out, the semantics are frequently distorted. At CMU, the CE degree was mostly the EE degree with the analog stuff replaced with CS courses. The CS degree was actually much more math-oriented, though it is not so at all schools (sometimes, it's just programming). I saw many people attempt one major unsuccessfully and switch to the other. I think this was due more to personal temperment than whether one was "harder" or "easier" than the other.

      Another aspect, though, to be honest, was cultural. Engineers and CS people, despite the similarity in training, are very different (IMHO!) in culture. At CMU at least, the engineers were the conservative, quiet types, and the CS people tended to be the more liberal or radical ones, and often stood out more from a cultural or social standpoint. So maybe you fit into one cultural group much more clearly than the other (or maybe you disdain one of the two cultures). That's another guideline.

      Eric

  22. The difference is perceived by Iscon+in+Siiscon · · Score: 1

    They are much like the distorted titles given to people in the computer industry.

    i.e. Systems Analyst(old term) = Software Engineer/Network Engineer(new terms)

    --
    __________________ Hey Moderators!! Fuck Off! Thanks.
    1. Re:The difference is perceived by Joe_Camel · · Score: 1

      Not according to the Society of Professional Engineers. The company I work for changed all the programmers' job titles back to Analyst or Specialst due to a lawsuit filed by the SPE a while back. It is ILLEGAL for you (or your company) to advertise you as an "Engineer" if you don't hold a PE certification.

      --
      "I ain't 'nobody,' dork....right?"
  23. If you're up to it... by cavemanf16 · · Score: 1

    Take electrical engineering. Definitely a difficult route to take, and I am no where near dilligent enough to do it, but those guys make boatloads of moola! If you can finish an EE degree, you can basically have your pick of jobs.

  24. Similar difference. by cyb0rq_m0nk3y · · Score: 2
    Yeah, damn engineers - can't live with 'em, can't kill 'em. Just like those damn programmers - its that whole law and morality thing. If we could just get over the whole death thing, we could kill either at will, and no one would care.

    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...

    --
    eat shit and die, Bambi!
  25. Science v. Engineering by dissipative_struct · · Score: 5

    Well, semantically, CS deals with the "science" of computers, while CE deals with the engineering aspects. If the academic computer tracks stuck the the normal definitions, the CS track would stress algorithm development, mathematical analysis, computational theory, etc., while the CE track would stress creating software and hardware systems to solve problems in the real world.

    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.

    1. Re:Science v. Engineering by leko · · Score: 2

      I have always thought that there should be a distinction between Software Engineers, and Computer Scientists. Well... There already is a distinction, but I think schools should off them as two separate majors. Software Engineers will become code monkeys. They will be well paid, and that is good because that was probably their intent.

      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.

    2. Re:Science v. Engineering by ProudestMonkey · · Score: 1

      Some schools now offer the Software Engineering major, in between the realm of Engineering and Computer Science. My University introduced that particular major just this year. It might be a nice balance for you... one thing I can honestly recommend, no exaggeration, is to stay as far away from Engineering as possible unless you really, really don't mind working your arse off. I am by no means implying that Computer Science students don't work hard. But most computer languages can be self-taught, while many Engineering concepts require more explanation from an informed source (i.e. the professor). I am by no means trying to frighten you, I'm just being honest (also I have to admit that commenting on your question provides me indirect joy - helps keep my mind off of the Materials, Systems, Engineering Ethics, and Thermodynamics homework that I should be doing ;))

      As for the hardware/software distinction - I have to disagree with that a bit. Computer Engineers often take several programming classes in addition to their "general" engineering classes - after all, hardware is useless without software to run it. It's true that engineering in general does focus on the physical. But Computer Engineering is one major that often has several tracks to choose from - you can deal more with software if that's what you're interested in.

      OK, so I have no idea if this helped at all. Hope so. Best of luck :)

    3. Re:Science v. Engineering by mrust · · Score: 1

      They have a name for true computer scientists: "mathematicians"

    4. Re:Science v. Engineering by chrisperfer · · Score: 1

      I would agree with the above post. If I had it to do over again, I would probably go the physics / cs double major.

      As it was, I got an EE (with a concentration in computer engineering) undergrad degree, which more than adequately prepared me for a CS masters degree.

      My experience is that either you have the sort of mind for programming or you dont. If you do, then any math / physics / cs / ce undergraduate degree will serve you adequately. If you dont' then whatever program you choose will likely be unpleasant.

    5. Re:Science v. Engineering by Venner · · Score: 1

      >I can honestly recommend, no exaggeration, is to >stay as far away from Engineering as possible >unlessyou really, really don't mind working your >arse off. I am by no means implying that Computer >Science students don't work hard.

      Lol. I can attest to the fact that Engineering students work harder, being one myself. Just looking at the classload at my university, CompE majors basically have no opportunity for electives at all - we max out every quarter with major-classes. CS people, on the other hand, will generally take 2, maybe 3 courses for their major per term (as opposed to engineering's 4 every term)

      Our CompE degree is basically a Electrical Degree, with the analog electronic and power systems courses, and the addition of almost an entire CS major :)
      My two cents.

      --
      A preposition is a terrible thing to end a sentence with.
    6. Re:Science v. Engineering by Venner · · Score: 1

      Man, I even used the preview button :P
      <i>Without</i> the analog, etc... is what I meant.

      --
      A preposition is a terrible thing to end a sentence with.
    7. Re:Science v. Engineering by ProudestMonkey · · Score: 1

      4 Major classes every term? I take 5! *transfers to your school* ;)

    8. Re:Science v. Engineering by headwick · · Score: 1

      "In reality, there's very little difference between the two majors"
      Nothing could be further from the truth. I have a degree in Computer Engineering. There is a great difference between CS and CE. The CS track would stress algorithm development, mathematical analysis, computational theory, etc. The CE track however varies everso slightly from the EE track. The differences between the EE and CE degrees are just a few classes. I did not have to take Tri-phase power, EM fields, Electronics 2, or DSP fundamentals. I instead took Computer system design 2, Engr sys software, Data Structures, and a couple of "computer" related courses as opposed to general "electral" courses. A CE is nothing more than a specialized EE. A CS degree lacks many if not all of the major engineering courses. The main point is if you want to program independant of the system or the solution, analyze the how efficient an algorythm is, etc. then CS is the route. If you want to work, engineering solutions, either for or with a computer, designing and or implimenting design, CE is the way to go.

      --
      ~ fact is not dependant upon your belief therein. ~ ~ Have I therefore become your enemy because I tell you the truth?
    9. Re:Science v. Engineering by spunkmirej · · Score: 1

      Not quite... You're talking about the diference between software engineering (which is a fancy way to say 'coder') and CS. The original question is the difference between CS and computer engineering ( a subspecies of electrical engineer )

    10. Re:Science v. Engineering by Dutchy · · Score: 1

      I agree with most of this, but have a lot of troubles with...

      If you just want to make some quick money and have no strong love for computers, get a quick certification

      I think this displays a very shallow view of engineering and science degrees. I have a degree in Systems & Computer Engineering, but most of my courses had nothing to do with computers, and thankfully so. I don't 'love' computers, and I would be hesitant to hire a programmer who did. They're a tool, and that's it. I think I'd be a little curious about a cabinetmaker who LOVED tablesaws.

      I consider it unfortunate that so many engineering schools seem to be moving towards the technical, and away from the theories of systems and their various relationships.

      --
      Just keep it simple.
    11. Re:Science v. Engineering by Venner · · Score: 1

      Ah, but we're still on quarters :)

      --
      A preposition is a terrible thing to end a sentence with.
  26. Either by smoondog · · Score: 1

    The differences between these majors are clear when you consider that one is from an engineering school and the other is from (usually) letters and science or other. I think in the end, you will be well served with either. As a graduate student, if you are interested in an academic career I would think about CS. As an undergraduate I would consider either. I have heard of C.E. programs focusing more on hardware and CS focus more on software, but in practice I don't think that is true.

    These days, I would also consider branching into other fields, such as bioinformatics, theoretical chemistry or medical informatics. I think there is a lot of exciting work going on outside of CS or CE that is right in line with traditional CS/CE research.

    -Moondog

    1. Re:Either by MoooKow · · Score: 1

      I have heard of C.E. programs focusing more on hardware and CS focus more on software, but in practice I don't think that is true.

      Um, at I don't know about other schools - but at Michigan State University the difference is *very* drastic. Computer Engineers take hardly any of the same classes as Computer Scientist. CE majors take almost entirely electric engineering classes.

  27. Evaluating programs by cecil36 · · Score: 1

    When choosing a college or school to enter, look very closely at the curriculum that you are required to take in order to graduate. Most CS and Comp. Eng. curriculums do require programming, but the languages that they teach is up to the administrators of the degree program. If you are choosing CS, select a program that mixes theory and application of those theories (such as Automata and Theory of Computation with a course in compiler design). Also network with various computer clubs located on the college campus, or in your community, as they can provide leads into getting jobs, or business opportunities with new products or services or existing products and services in new markets.

  28. a must-read IMO by Kwantus · · Score: 3

    'fraid I've no grand advice other than to suggest you take the myth of a SW labout shortage into account.

  29. Nice comparison by Eoli · · Score: 2

    Can be found here. Written by a professor at California PolyTech.

  30. i did neither, my boss did both by lithis · · Score: 1

    my boss says that all the comp sci classes were wastes of time, but i was planning on majoring in cs. he much prefers ce, as do some of the other high-up guys in this (small) company. however, i never went and am doing just fine.

  31. CS vs. CE by zuvembi · · Score: 2

    I just graduated from University of Cincinnati with a degree in Computer Engineering. One of my friends was in the UC CS department (he graduated at the same time). YMMV at other universities.

    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.

  32. That's a tough one. by barryblack · · Score: 1

    I just graduated with a computer engineering degree and I struggled with this decision for four years. Basically, my advice is this: Do whatever you think is going to make you the happiest. Computer engineers seem to get paid a bit more out of the gate, but most computer engineering places aren't as fun. The arugement that my professors used was to go into comptuer engineering and you can do computer science or computer engineering when you are done. I don't think that is the best arguement though. If you aren't going to be a computer engineer, you really don't need to know all that stuff. Also, you do learn a lot of computer science on the way to a computer engineering degree, but in my opinion, its not enough. Go with what you love.
    --------------------------------------

    --
    --------------------------------------
    in a world without bounderies or fences, who needs Gates anyway?
  33. Go for something else by SonCorn · · Score: 1

    I would recommend that you get a degree in something like electrical engineering and minor in computer science. The EE degree is just a broader version of the computer engineering degree and will allow you more leway in a job after school, and companies will want you evven more if you have a double major or minor in CompSci because then they will think that you know how to use computers. Good luck to you in whatever you choose. But for me I will be happy with my Chemical Engineering degree and MBA

    --
    What good is a used up world, and how could it be worth having? --Sting
  34. Get a course catalog by dmorin · · Score: 5
    See what the course load is like for both majors. Then look up the courses. See which ones you think you'd like better. Go for it.

    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?"

    1. Re:Get a course catalog by nosilA · · Score: 3

      This is probably the best advice I've seen! The programs vary vastly from school to school, what is "CS" at one is "CE" at another or "IT" at another. For the most part, any place hiring programmers will consider CS and CE the same way - it's only really hardware or really theoretical jobs where they care either way.

      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

    2. Re:Get a course catalog by mostejo · · Score: 1

      Yup, you should look at what courses are in the major at each school. When I graduated in Computer Engineering, it was half EE and half CS, with options to lean more either way.

      Now, the major was split into two: an almost hardware "Computer Engineering", and an almost software "Software Engineering"

    3. Re:Get a course catalog by MSjogren · · Score: 1
      I agree completely (on both counts actually)

      Don't pick courses because of what you think you'll get paid after graduating, I have several friends who have done that. All of them have regretted it later.

      You study because
      1) It's fun (at least that's what I think)
      2) You learn stuff.

      The best advice I can give is to try to find an education that gives you as many choices as possible (hrmm... isn't that what my old man used to say to me?), and I don't just mean work opportunities after you've graduated, but also many choices as to exactly which courses to take.

      I'm a comp.sci. major myself (at a university in Sweden) and this program has a lot of freedom and choices, there's zillions of kickass courses I want to take... Ah, I wish I had more time...

      Basically, the differences have been pointed out fairly well by a lot of people, albeit with some differences. Oh, I'd say there's more maths at CS than CE, mostly algebra and discrete mathematics. AFAIK, CS is also much more theoretical than CE, but things like algorithm complexity and data structures are really important if you want to design good, fast applications.

      My advice is, pick whatever education that gives you the most choices, that's what I did. I started out with maths and now I'm a comp.sci. major.

      Good luck!

      --
      All signatures with truth values are false.
    4. Re:Get a course catalog by slamb · · Score: 1

      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...

      At my school (the University of Iowa), this doesn't seem to be true. I'm a freshman ECE major, and it seems to me to be very rigid. It's a fairly set path all the way through. I'm thinking of changing to computer science because of this.

      That agrees with what you said earlier, though, that the programs vary vastly from school to school. It might have a lot more flexibility elsewhere. Looking into the courses needed before choosing a major is definitely a good idea.

  35. They're too smiilar to say! by DavidpFitz · · Score: 1
    My school gives B.Eng in Computer Science (go figure!) but the truth is they are one and the same thing.

    Some could say Comp. Eng. is more market driven and Comp. Sci. is more research driven, but at undergraduate level they're really the same. It's almost impossible for an undergrad to participate in research -- they just get taught how to build software and understand methodologies.

    I take an Atrificial Intelligence degree, which is definitely science... but software engineering and derivatives could definitel be classed as engineering.

  36. 5th Year Victory Lap by hilltop · · Score: 1
    First, unless you absolutely must, don't declare a major.

    Sounds like ag reat way to end up at school for 5 years...

    well, you probably will be in school for five years if you get a CS or CE degree. Unless you want to take summer school... bump that!

    hilltop

  37. Computer Science by cnkeller · · Score: 2
    I got a ComSci degree from UMD. Very heavy on theory, ie prove this algorithm runs in this time, design a better scheduling algorithm for your OS,create a language and build the compiler, etc. Very language independent. Most of my projects were implement this, we don't care what you do it in, C, C++, Lisp, etc. In fact, I was never taught a language, I was taught language theory; heaps, call by reference/value, etc. You were expected to learn the language on your own. Probably my best example was my compiler theory class. The professor said "I don't care if you can build a compiler or not when you get out of this class. In ten years you won't even remember how (asusming you don't do it for a living). What I expect is that you will know how to read the book for the rest of your life (the Dragon book). That way, you'll know how to build one if you need it down the road."

    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.

    --

    there are no stupid questions, but there are a lot of inquisitive idiots

  38. I think it's mostly the classes by SPautz · · Score: 1

    I started out in Computer Engineering, but I didn't like the material covered: it seemed to have just a little too much low-level stuff for my taste. The Computer Science classes seem to have much more programming-oriented stuff like syntax and methodology, but the Computer Engineering classes seemed more problem-solving and design-analysis based. There's also Computer Information Systems which has a lot of the general computer concepts covered, plus several business classes.
    When I changed majors I asked my employer what they thought about the difference in majors, and they said there wasn't enough difference between the curriculums for them to decide on a single one: they would accept either CS or CpE majors for any position. According to them, CpE majors seemed to be better at problem-solving tasks, but CS seemed better at implementing stuff. At any rate, it's a matter of preference.

    Overall, I say start out with either a double-major or a minor in one, and work from there. Each has a lot of overlap with the other. If you decide to change majors later you'll know enough about the curriculum to know you made the right choice. If there's a demand in either field, there will probably be nearly the same demand in the other, so try both out and end up with whichever you like more.

  39. I'm a Computer Engineer Major by Kefabi · · Score: 1

    I picked computer engineering. Pretty much, the main difference between computer engineering and computer science is this. Computer engineering is both computer science AND electrical engineering. The main reason I chose computer engineering over computer science is this, I'm in the College of Engineering which means I have access to all the fun engineering machines. I still learn a ton of programming, but I get a good amount of electronics and engineering on top of that. You get a more clear understanding of how the entire computer runs. In my mind, that makes the major a little more rounded out.

    Of course, I'm happy with that. This is completely my opinion. Some people absolutely hate electronics though, so YMMV.

    -Kef

  40. CS all the way by cluening · · Score: 1

    I started out as a CE major, thinking I would like the EE part of it. As it turned out, I liked the first semester of EE and hated the rest of it. So, I switched to CS and have done well. The EE stuff probably wouldn't have been to bad, but it was both a) hard and b) uninteresting to me. Had it been only one of those (hard but interesting or easy but boring) I wouldn't have minded, but both at the same time was terrible. So, I would say that, if you really like deep math and such, CE is good, but if not, I would avoid it. I'm getting by perfectly fine with my CS knowledge thus far...

    --
    Posted from the wireless couch.
  41. The difference is literally academic. by emil · · 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.

    1. Re:The difference is literally academic. by (startx) · · Score: 1

      pascal? I started with C++ at UMR, have done some C and Java here, and even fortran, where did you get taught pascal?

    2. Re:The difference is literally academic. by mmelder · · Score: 1

      I don't know what school you went to, but it sounds like you should have picked another. My school focused on concepts like data structures, algorithm analysis, and computational theory. Many of these classes didn't have any programming in them. The classes that had programming used java, c, lisp, or haskell, but java most of the time. My school is very up to date. Also, if you don't use 90% of what you've learned, you must not be a very good programmer or your school didn't teach you very useful things. Every day, I use most of the skills that my school helped teach me.

      --

      Phluid!

  42. Go for both: Computer Science and Engineering by GregGardner · · Score: 1

    I got my major in "Computer Science and Engineering". It is a single major at the University of California, Davis, at least. Not sure how many other universities offer this major, but I couldn't decide on which I wanted to do, so I did both. I chose it mostly because it didn't require as much high-level math as the Computer Science degree and didn't require as much high level EE stuff as the Computer Engineering degree. It was more well rounded.

    1. Re:Go for both: Computer Science and Engineering by lgordon · · Score: 1

      I have a CSE (actually it's accredited as a CE degree) from UF also. I bill out about $125 an hour as a C++ OO architect. I find most of the compsci majors do not take seriously the notion of software as engineering.

  43. I don't agree by iso9660 · · Score: 1
    Anybody can teach himself programming and be an average programmer with some talent.

    But with that talent and a serious programmer's education, the same person can be a great programmer.... some things you just can't learn on your own.

    IMHO, the choice depends on how much programming means to you. Do you want to spend the majority of your life programming - or is it just a hobby among others? If so, history may be a better choice...

    --

    I wish that my brain could do SMP...

  44. Huh? by OlympicSponsor · · Score: 1

    Programming is, at worst, a "skilled labor" job. That means it requires training to be good. (Your carpentry comment just reveals you've never done any). History, on the other hand, is simple memorization or, at the most, some thought as well. You don't need a teacher to learn history, you just need a book.

    By all means, you should go to a liberal arts college--knowing history is very very very important. But for gosh sakes don't MAJOR in it.
    --
    Non-meta-modded "Overrated" mods are killing Slashdot

    --
    Non-meta-modded "Overrated" mods are killing Slashdot
    (Hey Ryan! Here's your proof!)
    1. Re:Huh? by Kalani · · Score: 1

      You don't need a teacher to learn history, you just need a book.

      The same can be said of just about anything. Honestly, I'm not of the mind that everyone ought to have a degree in some liberal art, but there's no reason to misrepresent certain fields of study. Anthropology and Archaeology are very important to the deduction (or induction) or historical facts. The disciplines of every area of study can be magnified to complexity, we shouldn't oversimplify like this.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    2. Re:Huh? by NineNine · · Score: 1

      No it doesn't. I'm a profressional developer, and I've never taken a single class of any kind.

    3. Re:Huh? by OlympicSponsor · · Score: 2

      I didn't say you needed training to be a professional, I said you needed it to be good. There are plenty of non-good professionals out there. There's even the occasional untrained good programmer, those these are MUCH rarer.
      --
      Non-meta-modded "Overrated" mods are killing Slashdot

      --
      Non-meta-modded "Overrated" mods are killing Slashdot
      (Hey Ryan! Here's your proof!)
    4. Re:Huh? by simm_s · · Score: 1

      Not to be an asshole but by definition a professional is traditionally educated and certified in the field they are working in.

      "profession n. an occupation requiring advanced academic training, as medicine, law, etc.[webster]"

      This is not to say that a person from a liberal arts cannot be a great programmer or computer theorist.

      Companies tend to higher untrained "professionals" when trained computer expert supply is low and demand for products are high. When the economy shifts downward they then start looking at the dictionary definition of professional

  45. Being a Comp. Eng. by weink · · Score: 1

    I am a computer eng guy doing software development, and the main differece is that when you take comp eng major, we had to take a lot of engineering base courese. Such as advnaced eng cal, and math, plus a lot of electrocal eng classes. But we also do a lot of programming, and software development. On the other hand, computer sci peopel do a lot more software development, such as graphics, AI, and DB.

    But overall, I think I got more out of Computer Eng. due to all the other enginnering classes we had to take. Its really helping my current work with wireless, and network applications. Even at the higher level.

    However, I belive that this is only a part of learning, most of real experice is from hacking around Linux, and from work. So, as long as you are willing to hack and learn, there is no differce...

  46. As a Computer Enginnering Student: by sl3xd · · Score: 5

    I'm currently a Computer Engineering student, so I think I have some qualifications to describe the difference.

    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.

    --
    -- Sometimes you have to turn the lights off in order to see.
    1. Re:As a Computer Enginnering Student: by GPFCharlie · · Score: 2
      As a ECE graduate, I have some experience in different areas.

      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. :)

      --
      Somedays it's just not worth chewing through the restraints...
    2. Re:As a Computer Enginnering Student: by ProfBooty · · Score: 1

      I recently graduated from RPI with a EE Degree. Due to a lack of programmers on the market, I was constantly asked at every interveiw, "Do you like programming?" CE is EE without any of the VERY hard stuff. Most CE's take the core EE curriculum and the upper level CS or embedded systems courses. CS believe it or not is a far "easier" major. If you are looking for a broader curriculium with opportunites to double major or explore humanities take CS. From an employers perspective, if you are any of the above EE/CS/CE you are equially as higherable in almost any industry. From a money perspective, EE/CE is generally higher.(Super high if you are going in to chip design). Most engineers are around to check other engineers work(Its something like 3-1 process engineers to designers or something like that).

      --
      Bring back the old version of slashdot.
    3. Re:As a Computer Enginnering Student: by RevRigel · · Score: 1

      All electrical engineers are not 'geeks who design computer chips, with a minor in math'. You're right about the geek part and the minor in math part, but there are many of us who are strictly power, electromag, analog, telecom, etc. Designing computer chips is one of the most boring jobs I can imagine. Every time in high school when someone tried to tell me what electrical engineering was, they took me to tour the fucking Motorola plant for another time (Hey, kid, sit in this cubicle and use a software logic analyzer until you're 45, when we'll fire you based on your age!) (that's Mot specifically, not the industry) and showed us the wonders of producing, testing, and packaging ICs.

      Now that I'm actually a major sequence EE student, I find that some of the things I enjoy most are analog. Which is not to say that I don't like digital things, or that at some point I might not want to design computers, but trying to shoehorn an entire world of disciplines into 'We draw transistor masks on the computers and use nasty chemicals to etch them.', a specific manufacturing technique (this is EE, not Manufacturing/Industrial/Process engineering), is bland and simply puts me to sleep. Thank god I knew in advance that EE was what I wanted to do, and had more exposure than that, or I would've run for my life.

    4. Re:As a Computer Enginnering Student: by Multispin · · Score: 1

      I'm a CompE student at U of Washington.
      This distinction really depends on school. Here the CompE major is part of the Computer Science and Engineering Department. At other schools It's part of the EE department.
      There is certainly a little more hardware involved in CompE, in our case it's 2 EE classes and some digital design courses.
      The major is broken up into two tracks, hardware and software. The hardware track is more digital design (VLSI, etc) oriented. The software track has a little more focus on the notion of 'software engineering' and embeded systems.
      The cool thing here is that there is very little actual difference between the majors. I took the CompE software track because I like embeded systems. Basically UW CompE pretty much equals CS some extra stuff.

    5. Re:As a Computer Enginnering Student: by rowjlm · · Score: 1

      I graduated electrical and computer engineering 5 years ago. I think getting a CE is much more versatile in finding jobs that interest you. There were many more entry level programming jobs in embedded companies available when I started job hunting. I was more interested in ASICs, FPGAs and the like, but I just didn't find that. I took an embedded programming job, and after a little while I got the opportunity to take over more and more hardware design because I had that background. The CS majors I worked with didn't... It just gives you more opportunity to find what you're happy doing. Employers all told me the combo software/hardware CE background made applicants more useful, they could "use" my skills in many different ways. Looking for my second job, I could play with my resume more, focusing more on the software or hardware depending on the job. Go CS only if that's what you really want to specialize in and you're sure about it. If not, the more engineering AND programming you pick up in school the more options you have.

    6. Re:As a Computer Enginnering Student: by TurkishGeek · · Score: 1

      This is really funny; and misleading; I might add. The average EE program contains a lot more, and more difficult math than the math that CS majors have to deal with.

      In most US CS programs, all the math that a CS major ever sees after basic calculus is a course in discrete mathematics, a course in probablity and/or combinatorics. In the EE program, most typically a class on differential equations, a class on linear algebra; and most often a basic Signals & Systems class is required. The Signals class in itself is almost a math class with new concepts like Fourier analysis, frequency domain, etc.

      Your friends who choose to go to EE because they "couldn't handle the math" will regret it when they take their first differential equations class. Both disciplines make use of math, but CS majors mostly deal with combinatorics/discrete math dealing with integers; whereas EE heavily depends on more advanced subjects like differential equations. CS majors who believe they are math geniuses simply because they understand the Bellman-Ford algorithm the first time are strongly encouraged to visit a senior level Antennas and Propagation class to bring themselves down to earth. Trust me, I spent a nice chunk of my life in both disciplines, taking a B.Sc in EE and moving on to get grad degrees in CE; being an assistant for CS students in between.

      --
      Zigbee Central: A Zigbee weblog
    7. Re:As a Computer Enginnering Student: by GreatOgre · · Score: 1

      I know this has almost nothing to do with the topic, but I'm a MechE. I find it to be more fun, because while the CompE's are designing the guidance controls, I'm busy designing more weapons to take out the targets the CivE's across the street are building. Meanwhile, the Industrial Engineers are still trying to find a confortable seat in said target while the ChemE's are sniffing their concotions. And the CS students, well, they are sitting in front of their computers playing Doom, Diablo, ... wishing they could blow something up.

    8. Re:As a Computer Enginnering Student: by Chris+Siegler · · Score: 2

      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.

      I like your breakdown, basing it on the hardware. But you can also look at it from the opposite end, from the user.

      A CS writes programs for users, even users who happen to be other engineers.

      A CE writes programs another abstraction away from the CS, programming for programmers.

      A EE writes the stuff that forms the foundation for those CS and CE hackers.

      Being a CS or sorts (Math), I often envy those EE's so far from the users.

  47. Weigh your options by WhyPanic · · Score: 1

    Choose based on your interests. Ask yourself this: do I want to build the cutting edge technology or do I want to use the cutting edge technology. If you are reloading slashdot every five minutes, I am thinking you would be happier with Computer Science. However, you have other options. I myself am a student in Management Information Systems. The programming methodologies we use in my MIS coursework are far superior to the methodologies I used in my CS coursework. In my experiences, the computer science classes tend to be almost all programming related and the ones that are not tend to be really abstract; whereas, my MIS classes have focused more on real situations (in other words programming for a concept versus programming for a reason).

    --
    ...see you auntie
  48. Mathematics or a hard science by Anoriymous+Coward · · Score: 3

    Any good course in these subjects will contain a fair bit of programming along the way, with the benefit that they won't tell you how to do it. You'll get a good grounding in critical thinking and methodological approaches to solving problems, and you get to teach yourself programming to do the course work, which is how 90% of real-world code gets written - i.e. to solve a problem.

    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"

  49. The difference.... by KnightStalker · · 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

    --
    * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
  50. Engineer vs Scientist by schulzdogg · · Score: 1
    I graduated in spring of 99 from Arizona State University with a degree in Computer Systems Engineering. There are two sets of differences: Differences based on the program, and differences based on the degree.

    First the Degree: CSE is much harder than CS. You end up taking a lot of math and physics. As a result your study of purely computer based things is less than CS. You generally take the same basic class's (algorithms/datastructures) but CS takes more in depth programming class's. CSE will teach you how a computer works, from the electrons up. CS will teach you all the funky cool things you can do with those computers.

    The program diffrences vary from school to school. ASU for example had a CS department that was not clearly led, with no real sense of direction. Each student chose the electives they wanted and went with no real thought from the administration about how the program should be set up. CSE had several excellent teachers (Dr. Pheanis being in the forefront, if you are at ASU take CSE421 it will make you a programmer), and a well laid out plan that brought you through with a comprehensive set of knowledge. You should talk to students and professors and get an idea of how their program works.

    I personally am glad I took CSE, the extra math and physics helped shaped my thinking. Plus I learned computers from the silicon up. At the time though I was jealous of my friends who were doing AI and Encryption codeing while I solved Differential Equations.

    If you can force yourself to code take CSE, you'll learn a lot. If you don't code much take CS it will force you to learn to code.

    Hope that helps.

    1. Re:Engineer vs Scientist by schulzdogg · · Score: 1
      Some advice:

      1. Learn to Read

      2. Build up some reading comprehension skills.

      3. Reread my post.

      You are moron.

  51. CE vs CS by rlowe69 · · Score: 2

    As guy who switched from third year Computer Engineering to a new Software Engineering program, I can tell you that Computer Engineering IS a lot of hardware. However, at my school it consisted of a lot of signal analysis, which if you don't like *complex* math, I don't recommend.

    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

    --
    ----- rL
  52. It's all about the focus by Gen-GNU · · Score: 2
    Computer Engineering, (at least at the college I attended), was a hardware degree with a software focus. Computer science was a software degree, with no hardware. I decided on CompE, so read the below with my bias in mind. =)

    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.

  53. Science vs. Engineering by cprael · · Score: 1
    Well, based on the definition set you're using, and from my perspective, you can more-or-less break the development community down into 3 groups:

    • Electrical engineering: This group primarly deals with hardware/firmware, using engineering principles to solve a given product design problem.
    • Software engineering: This group primarily deals with software, again using industry-standard engineering principles to solve a given product design problem.
    • Software scientists: This group does research on new technique and technology, dealing primarily with software.

    Now for the killer. Based on all the exposure I've had to the industry, ~80% of software developers fit into none of the above categories. The vast majority of developers, however much they may shout and yell otherwise, are artisans, not engineers. They are to engineers as the cabinet-maker or blacksmith is to the guy who designs and supervises the construction of a bridge. They use rule-of-thumb, eschew systematic standards, and refuse to apply "real" engineering principles. This, btw, is one of the reasons why professional (certified) engineering groups really dislike the term "software engineer" - it ain't true, and it cheapens the certifications they have to spend years earning and testing for.

    BTW-- Don't believe me? Go check out the design process requirements for, say, structural engineering, and then see if any "modern" software development group would be willing to apply that level of rigor.

  54. CSE = CS + CE by pornaholic · · Score: 1

    I'm a Junior now at Northern Arizona University, where they offer a CSE degree. Recently they added a CE degree also, but I think I still prefer the CSE.

    This CSE degree is doubly accredited by abet and the other accredidation board (can't remember the name). I am learning both hardware and software concepts and aspects through this degree program.

    The only thing I wish was different is that our school offered a wider variety of upper level CS courses for us to choose from. If you ask me, a person who just loves to learn new things, CSE is the way to go. It gives you a great background to both fields, and you can always pursue further education in any field that you wish to refine.

    Don't wait to declare unless you want to spend more than 4 years! They have it all planned out...

  55. EE476 Lab at Cornell by ch-chuck · · Score: 2

    was just here a little while ago - an example of Computer Engineering. You decide.

    (PS - you can get an AT90S8515 kit for about $70 here )

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
  56. Experience From interviewing by Warloch · · Score: 1

    I just finished my BS in Electrical Engineering at Texas A&M. From talking with my friends and recruiters, CEs that focus on hardware have a wider variety of jobs to choose from. If you don't want to code 24/7 then look at going into CE and emphasizing on hardware. You will still end up coding in some form or another, but you will have the oportunity for more variety in your life. CEs and EEs are expected to know how to code and many companies hire them for that as well. My personal bias is twards hardware. You also will have a better base if you decide to change majors to another engineering discipline. You will already have the basic engineering classes and won't loose as many hours.

  57. Just graduating from Computer Engineering by TheMenace · · Score: 1
    I am going to graduate from the Computer Engineering program at the University of Waterloo in April.
    It seems that many companies are looking for computer scientists, but would they be desperate enough to accept computer engineers?

    I find this a little funny because no one in my class is worried about getting a job, so I guess companies are desperate enough. :-) If you are just looking to land a job, either one will get you one as long as you are competant (and I assume that you are).

    If you are really interested in just doing software I would suggest going into Computer Science. If you are interested at all in hardware, Computer Engineering might be good for you. At Waterloo we take both hardware and software courses, but most of the emphasis is on hardware unless you are taking the Software Engineering option (which I am not).

    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've probably forgotten some).

    On the hardware side, our core courses include circuit analysis, control systems, microelectronic devices, digital design, communications systems and microprocessor structure. 4th year electives are more advanced/detailed versions of the above includeing wireless, VLSI systems, computer architecture, wireless communication and more.

    I guess it kind of boils down to decideing if you want to focus on software only or do you want a bit broader education that includes some hardware/circuit stuff. I like doing software, but hardware also interests me a lot and that is why I chose Computer Engineering over Computer Science.
    --
    -- themenace
    1. Re:Just graduating from Computer Engineering by DeadVulcan · · 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...

      --

      --
      Accountability on the heads of the powerful.
      Power in the hands of the accountable.
  58. go computer engineering. by Thrakkerzog · · Score: 1

    It is easy to switch from computer engineering to computer science. It is not always as easy to go the other way around. Try computer engineering, and if you don't like it, you can switch to computer science.


    -- Thrakkerzog

  59. CS or CE by c0d3r · · Score: 1

    It depends on whether the school you go to is more practical application or more theory. Most good schools don't even have computer engineering.. its often cs or ee or eecs.

  60. Pick The Path U want by user_used · · Score: 1

    I had the same choice in front of me several years ago, and opted for the Computer Engineering Track. The reasons being more than just to work with hardware, the truth is that most engineering programs will require you to learn alot about the various aspect of Electrical Engineering (which CE is apart of). This is a good thing for a wide and veried tachnical footing has alowed me to jump from project to project looking for what I really want to do. Example being I have done cell phone design, computer programing, 10 Giga Bit asic design, Turbo Codes, and now I am designing an asic chip set to run 4 G4+ boards in a clustering enviroment including modifying the LinuxPPC to run on these boards. What Im trying to say it's easy for a Computer Engineer to jump into fields suh as programing, and designing algorithims, but a Computer Scientist cant just jump into the Computer Enginnering Fileds.

  61. Amusing Titles by AlphaBrav · · Score: 1

    Well, what buzz word do you preffer? Science or Engineering? I find both the titles amusing in the context of computers:

    One is called Engineering, although you can not become a Professional Engineer in "Computer Engineering" AFAIK

    The other is called Science, although I've never seen the scientific method outlined in any computer book.

    I hope you get my point. Not like anything can be changed now.

    I wish they would be called more appropriate names. I am not trying to knock them in any way - the education received is challenging and I respect anyone with such a degree. But it seems the fields are trying to get garnish some reputation by "piggy-backing" on established fields of education. Try Computer Programming or Computer Design. Those fit better to me :)

  62. Whoring is better than being a technology slut by Heidi+Will(fuck+you) · · Score: 1
    Why deal with all that worthless technology. It does nothing to better our lives. In reality, it only furthers our weak perception that we've accomplished something meaningful.

    I highly recommend investing your time and effort into whoring yourself out, much the way that I do. You don't have to deal with the lonelyness of cold technology, or the bitter landfalls of power outages. Instead, I like to put out for whomever walks by: man, woman, or animal. I've even settled for mineral lifeforms, when they arrive on comets from Mars.

    Long live the sluts and whores, for we shall inherit the earth, as well as many, many lovely diseases.

    --
    I'm a motherfucking whore! Watch me suck you off for FREE!

  63. Engineers are always better... by Astin · · Score: 1

    Computer Engineering is much more than hardware. I'm a Comp Eng who took the Software Engineering option (as opposed to the non-accredited CS software "engineering" option). I find that I'm able to assimiliate and use information much quicker than any comp sci I've ever run into. Given, out of school, CS students tend to have a broader programming background, and could whip me in Java or VB programming for the first couple months. But if I sit down and learn and use the languages, I'm running circles around them because I can evaluate what can be done instead of relying on procedures I've had driven into my head.

    Simply put, Computer Engineering teaches you how to learn from practical experience in the real world. On top of that, there is a solid hardware background so that where a comp sci understands the programming, and possibly the programming theory, the comp eng understands just as much and then some. I find I walk into a group that is predominately comp scis and programmers and realize that they tend to have limitations that I don't perceive in myself and other engineers.

    Wow, was that ever an arrogant ERTW rant... sorry. Comp Sci is a perfectly legitimate field, if you want to deal solely in software (not necessarily programming, but you don't go much deeper than the code level of any application). If you want a richer foundation, I'd suggest Comp Eng. The higher pay is nice too :).

    --
    - In hell, treason is the work of angels.
  64. I'm both by kallisti · · Score: 1
    When I graduated, my major was Computer Science and Engineering (CSE). During my time in college, there was a change in the accreditation board, ABET (Acc. Board of Engineering Tech., IIRC) lost the right to accredit "science" courses. This meant that lots of smaller colleges lost the right to say they had a CS degree. The new board (don't recall who, offhand) had much tougher requirements, such as a certain percentage of PhD degreed professors. My school dropped the mixed CSE degree as did just about everyone else. The degree is now Computer Engineer, but nothing much else has changed.

    From what I've been able to discern, what I learned in school covered the same ground as most of CS, perhaps with less theory. We did cover Turing machines, FSMs, advanced data structures, AI, operating systems, architecture, etc. But we also covered the physics of semiconductors and lots of electrical, mechanical and electronic engineering and physics which isn't directly relevant to CS. As it turns out, I work in 3D graphics and games where all that physics did come in useful, but that's something of a fluke.

    I did graduate ten years ago, so some of this has undoubtedly changed.

  65. Why decide right away by artoo · · Score: 1

    There are the differences which have already been mentioned, so I'll give you my $.02 worth of advice.

    Check out the school and the classes required for both programs. There's a good chance there will be overlap, and after taking some intro programming and hardware classes you can probably make a more informed decision based on which you like more and what you're good at doing.

    Don't forget to check out other departments as well. Having gone to a school with an CE in engineering and what they considered usual CS degree in business (NT and Novell stuff), I checked out the Math deptarment and found they had a degree with a conecntration in CS - logic, language formation, angorithm analisys, and a great UNIX lab.

    Good luck with school whatever you decide to pick.

  66. I'm a CompE and suggest it by FortKnox · · Score: 2

    I'm a programmer. Been so every day of my life. I chose CompE over CS and IS. It wasn't easy, because CompE is a lot of electronic work. However, learning to be any type of engineer requires you to learn (more like pounded in your head) how to be a pristine designer. Learning stuff like OOP, UML, and design patterns are easier. CompE's can make design documentation in their sleep.
    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.

    --

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  67. do 'em both by taco1991 · · Score: 1
    Where I went to school I got a double major in both of them and the cirriculums differed by about 6 courses. The difference is the focus - CS stresses programming and software design. CoE had the basic CS cirriculum, the basic EE cirriculum, then upper level focused on digital architecture and design and related courses (networking, OSs, etc).

    The two majors complimented each other very well - I left knowing alot more about the innards of a computer than most CS people do from their school courses. (it also can be more lucrative =) I could have just as easily gotten EE/CoE degrees and taken a more hardware approach and been a EE with some programming knowledge.

    While your major doesn't have to do anything with what you end up doing after you graduate, the CS degree makes you more suited for a programming job while a CoE degree may give you more freedom to choose from hardware and software jobs even though you aren't as well specialized as a CS or EE...

    --
    "Corrupting our youth one mind at a time"
  68. It Depends on What School by Majorachre · · Score: 2

    When I was going through this same decision process, I decided that either was a valid position. Certain schools however have an outstanding program in one of the fields and that's what you should study. For instance, Carnegie Mellon is probably THE school for Computer Science, but their CompE department isn't world class. Alternatively, UIUC probably has one of the best CompE departments but their CIS department isn't number one.

    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 --

  69. Comp. E. is a SuperSet of Comp. Sci. by Enoch · · Score: 1

    I am a Senior at CWRU, where Computer Engineering is, basically, a superset of Computer Science. As a CE, you take every software class a CS person does; but then you take the Engineering core instead of the Arts and Sciences core. The Engineering core is infinitely harder than the A&S core, and that fact leads to some elitism around campus b/w CE's and CS's (i.e. CE's think they are more 31337 than CS's).

    One good thing about CE is the fact that you do take a lot of EE classes and the more advanced electromagnetic physics classes. And, while you may think that those have nothing to do with Software Dev., they actually do... a lot. Understanding what a computer does from top to bottom, from every 0 to every 1, for every 5 volt difference, and understanding what voltage is... well, you are a better programmer because of it. Note: I did not say you would be better than a CS programmer, but you personnally would be a better programmer than not having taken those classes. Oh yea, you also take the more advanced maths, which helps a great deal. There is a lot of math involved in programming. Well, not in VB programming; but in any real language while creating a real application. Any analysis or algorithm or testing or verifying is done via mathematics. So, math helps.

    Just my $.02,
    Jeremy

  70. Concrete or abstract by sstammer · · Score: 2
    The main difference between CompEng and CompSci, IMHO, is the attitudes towards abstraction and complexity. In CompEng, the emphasis is on concrete things (e.g. hardware gates, device physics etc), whereas in CompSci, the emphasis is on software, which leads to a tendency for more abstraction and virtualization.

    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.

  71. Two Sentences by Lish · · Score: 2
    Computer Engineering is about how to make the computer. Computer Science is about how to make the computer do what you want.

    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.

    --
    "This message is composed of 100% recycled electrons."
  72. Sorry about the link by Warloch · · Score: 1
  73. Details of ECE by beekman1 · · Score: 1

    First off let me state that if you decide to take computer engineering, be prepared to do engineering. Expect to be doing more physics, Chem, Math and whatnot than you can shake an AP course at. After that my understanding is that most colleges are simalar to drexel, where i go. ECE or computer engineering, is pretty much Electrical Engineering, with a focus on ICs, and computer systems. if you like to understand & owuld like to design the hardware that means ECE, where as OSs could be more a CS thing. However there is a whole lot of ever lap.

    --
    distrust any enterprise that requires new clothes!!!
  74. That's a little biased... by Ted+V · · Score: 2

    Speaking as a software engineer, I personally know a whole lot of Computer Engineers and Computer Programmers. Most of the hardware folks know how to program and most of the software folks know how to design circuits. But let me tell you... The code from most hardware designers is utter trash compared to the stuff that the real software teams puts out. To be fair, I wouldn't dare design a real circuit.

    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

  75. And by ALL means. . . by Salgak1 · · Score: 1

    . . .Learn the C Programming Language. Learn UNIX. NT/2000 is a somewhat useful skill, but Unix is more important. . .

  76. My take by eXtro · · Score: 1
    First of all, ignore the "don't take either" comments. Learning a language is the smallest part of the skills a Computer Scientist or a Computer Engineer. New languages are introduced and old ones fall out of favour, you can pick new ones up fairly easily. Computer Science does deal mostly with software, but in a good program shouldn't deal mostly with programming languages. It should deal with algorithms, optimization and other things that help you write stable and maintainable code in any modern language. You'll be exposed to languages in the process, but the language shouldn't be the goal of the course, just a mechanism to get to the goal. Take courses you're interested in, if you like graphics take those courses. You'll still be learning the basics I mentioned however, just in a more digestible format for you.

    Computer Engineering is more about the how's and why's of the guts and external interfaces of a computer system. How do architectural decisions effect performance and scaling for instance? How do different cache sizes and mechanisms effect performance for given applications? You'll spend time writing software and you'll spend time designing hardware and often you'll be doing both at the same time.

    You can avoid university and still do well, some notable people have taken this route. Most become code monkeys however, they implement others work rather than architect the systems (software and/or hardware) that they work on.

    I'm an electrical engineer with a lot of computer science courses, so I'm a bit of an outsider. I've seen the curriculum of my more (and less) succesful friends though, and the above is my take on the succesful programs.

  77. Problem solving by Erk · · Score: 1

    As a general rule of thumb, Computer Engineering (which I am a student of), deals mainly with hardware as you say. But another important aspect of engineering as a whole is problem solving.

    An engineering degree teaches you how to think more than anything else. Now, it's true that as a comp-eng graduate, you can go do most things that a comp-sci major can, because you take many of the same classes. But it does not work the other way.

    The engineering provides you the ability to 1) determine if a problem exists and 2) find the quickest, fastest, easiest, most efficient way to the solution.

    Here's a classic example:

    A computer science student is given the problem to write a sorting routine for 100 items. The comp-sci major will analyze each method to determine the optimum solution for ALL potential data sets, and therefore chose the solution that fits best in the long run.

    A computer engineer just sees that they need to sort some short list, opens a book, and copies down the code for X sorting routine. They necessairly care that it's the most optimal thing, but it's one more step towards their goal of building a machine that will dominate the world.

  78. to become a computer GOD... by RevDobbs · · Score: 1

    ... double major in Electrical Engineering/Computer Science. At my lowly tech school, the CompEng program was put together as a combination of the former two degrees.

    In general, CompEng is viewed as hardware design, CompSci as software-related (programming, db management, etc.)

  79. Be a Scientist, not a Computer Scientist by ScottEllsworth · · Score: 1

    I went to Harvery Mudd College as a Physicist with Econ and CS concentrations. That I did not have a CS degree hurt me a bit in getting my entry level jobs, but the exposure to lots of computational physics, computational engineering, and just plain solid thought really helped. I learned how to break down problems into core difficulties and crank work, and to remember the important bits, without cluttering the mind with trivia. (My definition - trivia is what can be looked up without breaking workflow. Important knowledge changes how I approach a problem.) I ended up with an MS in applied mathematics and an MS in Industrial Engineering in later years, which did help, but which were the same kind of toolbox expansion that I got in CS classes. I would reccomend against being a liberal arts major, but I would take a fair number of liberal arts classes. They do broaden the mind, but it helps to have gotten practical salable skills as well. A good way to do the above is to get a solid programming class or two at a junior college before heading off to college, then trying to get programming jobs either at the school or elsewhere during your summers. Then, if you find you like computers, you will have solid job skills. If you discover that you hate it, then you will find out in time to pick another life direction while still in college. Scott

    --
    --- scott_ellsworth@alumni.hmc.edu Java, Databases, and Software Magic
  80. your major by room101 · · Score: 1

    I went through the same process about 10 years ago. I chose computer engineering. I feel that it is a better degree. Overall, however, you won't see any difference when finding a job: the degrees are pretty much the same.

    Computer engineering has more of EE (electrical e) and more hard-core engineering (like statics and dynamics). Any you have a few less electives than you would with computer science (at least at my university).

    Overall, I feel that CEs have a better foundation of how the software meshes with the hardware, which I think is important. That difference alone has helped me differenciate myself from the pack. I think that CE is harder than CS.

    Keep in mind that YMMV (your mileage may vary), espacally depending on what school you go to.

    HTH

    --
    room101 -- how much can you stand before they break you?
    (they always break you eventually)
  81. CS vs CE by KaotiX · · Score: 1

    I'm a junior CS major. I chose CS rather than CE becuase I'd rather be doing software design rather than developing the next line of processors. Now don't get me wrong, you'll take courses in architecture with the logic gates and all that, just like I have, but the CS curriculum focuses mainly on programming and coding. Basically, just think about what you want to do carrer wise: Wanna write code or create the SoundBlaster Plutonium?

    --
    "... true power is taken." - J.R. Ewing
    1. Re:CS vs CE by diverman · · Score: 1

      Yeah... I'm with ya here.

      As a CE grad, and having been working for the last 4-5 years, I started off trying all sorts. Initially I got into Systems Administration, and working with the low level software and hardware. Then I started getting into the software side more. But I find that a lot of what I learned about the larger view of the system has helped me.

      My biggest gripe is that I think people, including school catalogs (as mentioned in the initial post), go with a quanitative view of the majors. They represent a major by number of programming vs hardware classes. But the best way to look at it is not quantity (like a business major would), but rather the mindset of each. When working with hardware problems, you think differently, and approach problems differently. Software problems also have a unique approach. Computer Engineering gives you a little more balance with each.

      -Alex

  82. CE vs CS vs EE by Basilisk · · Score: 3

    The fields of computer science (CS), computer engineering (CE) and electrical engineering (EE) are very inter-related.

    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).

  83. Major Major by gruber76 · · 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?"

    1. Re:Major Major by frinkster · · Score: 1
      I wouldn't say "get a liberal arts degree", but the point about learning to communicate is extremely important. I am a Computer Science major, and at my school we had to take quite a few "liberal arts" courses. I wanted to experience that (and meet some women) so I took a wide variety of them. Foreign languages, English, Communications, Political Science, Music Theory, and Economics. I would have been bored out of my mind if I majored in any of these (although I am minoring in Economics), but each were definitely worthwhile in that I had to communicate effectively with non-geeks. I can be within inches of a beautiful women who is almost busting out of her shirt and still look her in the eye when talking. In other words, I can fit into a society/corporate environment where the "geeks" are a small minority. Quite a few people are surprised to learn that I am a Computer Science major.

      I wouldn't recommend skipping the CS or CE degree - the grounding in computer fundamentals and theory you learn will be invaluable later on, but make sure you get a healthy dose of liberal arts courses. As an added plus, they can usually help to pad your GPA.

    2. Re:Major Major by pyite · · Score: 1

      Liberal arts degree? Heh. I think learning things more universal like math is much more important then learning a language that isn't spoken everywhere. Math is the universal language and don't forget it. On a side note, even though music theory is considerred a liberal arts type class, if you think about it, music is all math and thus fringes on the border.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    3. Re:Major Major by geggle · · Score: 1

      This "liberal arts" thing must be some artifact of how the US education/employment system works. Obviously I don't understand it properly - maybe the concept of undergraduate/graduate is different, or the course structure is different?

      On the other hand, I have noticed that Australian technical degrees (engineering, comp sci, etc.) seem to be highly specialized compared to their equivalent US degrees. For example, I did a CS degree, during which I did only math, physics, and comp sci subjects - there were no english, history or other humanities-type subjects required. I think this might happen because Australian Universities don't have a common first year for everyone (you specialize right from the start).

      In Australia, a liberal arts undergraduate degree will do squat to get you a software engineering job *as a first job*.

      I do, however, agree that after the first few years, no employer will be particularly interested in what your degree was. At that point it'll all be based on prior experience, which can be a problem if you get pigeonholed in your first few years of employment.

  84. CS is for Math and Theory People by bbuda · · Score: 1

    I was facing this very dilemma about a year ago, as I enrolled in the University of Michigan. Here are a few things to keep in mind:

    First, most schools don't make you declare a major until your Junior year (this can come quickly, however, if you enter school with a lot of AP credit). This will give you some time to take a sample engineering course and a sample CS course.

    Second: At my school, the CS program is located in the Liberal Arts College, while the CE program is in the Engineering College. This may not be true at your university, but it illustrates an important difference: here at UMich, 75% of the classes a CS major takes are in other fields: math, physical sciences, and humanities and english. On the other hand, 75% of the classes a CE major takes are Engineering courses: both electrical and computer engineering, and general engin. courses. A much smaller fraction of CE classes are outside the field.

    This leads to a third point: it's not that CS is more software and CE is more hardware, but CS is more theory and CE is more practice. While you will take both theory and applied classes with either major, once in the workforce a CE major is more likely to be involved with building products for the real world, while CS majors focus on research. You need to think about which of these career paths is more appealing to you.

    With the criteria above, I personally chose to go CS, as I wanted a broader education and wanted the opportunity to take a lot of non-CS classes. However, a lot of the info I have provided is specific to my university; your best bet is to check with the advisors at whatever school you enter. As I said before, they probably won't make you declare a major the day you enroll, so you'll have some time to meet with advisors, professors, and fellow students.

    One final note: consider your school's prestiege in each field. For example, if your university seperates the two fields into two different colleges (as here at UMich), it is likely that the different schools will give different degrees (i.e. Bachelor of Engin. vs. Bachelor of Science). Look at college and career guides to see which of these schools is more highly ranked. Here at UMich (unfortunately for me) the Engineering School is a little more prestigious than the Liberal Arts School. This may also be a factor in your decision.

    Hope I could help you out.

  85. slight difference by josepha48 · · Score: 2
    Computer SCience really is a science. It deal with the science of computing. What dos this mean? It means that you are probably going to study about things like how a database works. The software part of a database. Computer Science also requires more programming classes, like C or C++ and probably now Java. You'd probably not be required to take any electronics courses, but you'd probably have to take lots of numerical analysis courses and logic courses.

    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!

    --

    Only 'flamers' flame!

  86. Differences... by Diana,+Goddess+Queen · · Score: 2

    The first thing you want to do when you're making this decision is ask yourself what sorts of things you want to do. What do you like? Do you prefer taking your box apart to recompiling your Linux kernel? Is it more interesting to you to read about diodes, transistors, and electricity or about linklists, loops, and theoretical math?

    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

    --
    "O frabjous day! Callooh! Callay!" She chortled in her joy.
    1. Re:Differences... by Aragorn379 · · Score: 1

      Getting slightly offtopic here, but have to respond to mention of my Alma Mater ('96 CompE).

      My experience was that at UIUC the CompE majors take the CS courses (mostly as electives) and the CS majors take watered down versions of the CompE classes (mostly as constrained electives).

  87. just offer a quote from Alan Kay by bzhou · · Score: 1
    From this article by Alan Kay:
    Somebody recently asked me what I am and I answered along the following lines: there is a discipline called mathematics, one called science, and one called engineering, and if those are put in a Venn diagram the intersection of the three is modern-day technology. Engineering was around a lot longer than science, but there is very little engineering that is done today that is not hooked into scientific investigation and scientific results. And math is the lingua franca for both of these disciplines. I would say that, temperamentally, I am basically an idealist, which makes me pretty much of a mathematician. Scientists tend to be realists, and engineers pragmatists. I am much more of an idealist than a realist or a pragmatist. In a way, when I think of myself, I think of myself as a scientist more than a mathematician or an engineer, but when I look at what I have done it has been mostly math and engineering and very little actual science. So these are just three ways of dealing with those things.
    1. Re:just offer a quote from Alan Kay by canning · · Score: 2

      clear as mud. thanks.

      --
      I love the smell of Karma in the morning
  88. CS vs. CompEng by ThePoorYak1 · · Score: 1

    Become an Electrical Engineer My experience with Computer Engineering was that it was exactly Electrical Engineering, with several Computer Science classes added. A Computer Engineering degree will also allow you to get your PE (Professional Engineering) License. You can learn computer programming anywhere, and employers look at experience a lot more than what your college degree was in for most computer positions. This is why I am saying become an Electrical Engineer, it will give you more options than a computer degree, with the same starting salary range. ThePoorYak - of course, what do I know, I'm just a poor yak

  89. Its about accreditation. by jmvidal · · Score: 2
    As I student I earned degrees in "Computer Science and Engineering" and, like most, always assumed that computer engineers were more into hardware and computer scientists were into software more.

    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. 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. 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 their CS and CE accreditation so in the future there probably will not be any difference.

    The U. Michigan has a good FAQ on the subject.

    I know this because almost every singly student I advise asks me about it.

  90. Either or? Neither will matter in the long term... by drin · · Score: 2

    Preamble: I hold a Bachelor's degree in Computer Science, which I obtained in 1994. I'm presently the Director of System Engineering at a large wireless company in southern California.

    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

  91. Eng's vs. Sci's... by Dutchy · · 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.

    --
    Just keep it simple.
  92. Why settle for just one???? by Craka · · Score: 1

    I am a Sophmore (First year student with credits of a Soph) at the Colorado School of Mines, which it happens does not have a Computer Engineering major. So, I decided to go with an Electrical Eng. and Computer Science Dual Major. My goal has always been a Computer Engineering degree, which I plan to persue as a grad student. So I'll walk out of college with 2 B.S.'s (EE and CS) and a Masters in CE..... It'll just be impossible to find a job : p

    But anywho, I think you really need to look at what you want to do... Many colleges look at Com Sci as programming only, and if you want to do that, there's your major. However if you want to actually build and design Com Eng (which is much akin to Elec Eng) is your best bet. If you don't know I would really say go for a CE, you'll be much more marketable, as you can do more than just program, and you will pick up programming on the way. But hey that's just me.

    --
    "Madness and Genius are separated solely by Degrees of Success." -Unknown
  93. hardware and software by Agthorr · · 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

    -- Agthorr
  94. This is a matter of personal choice by Geeky+Frignit · · Score: 1

    The way I see it, it all depends on personal preference. I started school as a computer engineering major, mainly because it had the engineering instead of science on the end of it, and besides, the first year of CS and CPE were virtually the same.

    The deciding factor occurred when I had to take a class on digital devices and logic design. I enjoyed a good deal of this course, but I hated working on a breadboard. I kind of figured that this was a signe that I was not too keen on the electronic aspect of everything, but I enjoyed the algortighm analysis, algorithm design, etc. of CS.

    For me, it turned into which I liked working with most, breadboards or keyboards. Granted with CPE you can do just about everything a CS can do, but call me a wimp, I don't like NAND gates.

    --
    Tired of sitting at that karma cap? Start a flame war today! See just how low you can go!
  95. It doesn't matter by NineNine · · Score: 1

    It doesn't matter what your undergrad degree is in. Pick something that you're interested in. If you can code or admin, you'll get a job out of college, no problem. In fact, I probably would pick something OTHER than computers so A. You don't get burned out and B. so that you can be a better rounded person that can speak in something other than computer geek speak.

  96. My school by bobhope · · Score: 1

    I went through the same dilema. I am currently a CS major in a school of engineering. Which means that I will take all the core engineering courses and have an engineering background in computer science. To a company, this looks better than a "arts and science" CS degree. My school also offers computer engineering. They have a chart of courses that overlap between Comp Eng, Electrical Eng, and Comp Sci. as far as courses go, Comp Eng is basically a cross between CS and EE. The professor in a Comp Eng course I took described what a Comp Eng does: "He constructs and communicates with intelligent machines".

    You will find CS to be a lot more programming theory and high level language stuff. Analyze yourself, what do you like to do? One of the best things you can do is find someone in the field! Ask them what they do. Find an EE, a Comp Eng, and a Comp scientist, compare/contrast what they do. Try and get a job doing something in the field. My first job was just entering junk into a database. While there, I learned how to design them and now I get paid more than all my friends.

  97. 3 options by Oofoot · · Score: 1

    There were three options at my school... Computer Science (through the liberal arts school), Computer Science (through the engineering school) and Computer Engineering. The difference between the options is pretty clear; The liberal arts school offered more background in the arts as well as socal issues, and it had fewer science and math requirements. Computer science through the engineering school allows for one to gain a broad understanding of the other engineering disciplines, and does not require you to take a foreign language (Not language as in lisp, language as in Ancient Greek). The computer science curriculum through the liberal arts school tends to be easy; the most difficult classes will be in your major. The engineering route puts you in engineering classes that sometimes require knowledge of advanced math and sciences. Interesting stuff for most people also interested in computer science.

    And then there is the computer engineering curriculum. Sign up for this one if you want to design chips.

  98. cs vs ce by veritasny7 · · Score: 1

    Do what I did. Get a Masters Degree in Molecular Biology and then go get a Masters in Comp Sci. You'll have your head packed with k3wl stuff to ponder while your a sys admin and then when Bioinformation FINALLY goes market it might pay off.

  99. My viewpoint as a CE by toothie815 · · Score: 1

    CE = 2 years of fundamental engineering background + 2 years of more specialized stuff

    CS = liberal arts education + CS classes in between

    at least in my school...

    If you really want to know what the difference between the majors are,read IEEE journals vs. ACM journals. You'll see the difference. As far as getting a real job, that's a different story (don't CE people get paid more (on average, of course)?)

    1. Re:My viewpoint as a CE by Issac_Hayes · · Score: 1

      Not here. I'm a CS/Applied Math double major. I haven't taken anything outside of CS or math once I fufilled my GenEds.

  100. It all depends on what you want to do.... by rm-r · · Score: 1
    A computer engineer is someone who plays a part in the design or construction of hardware. A lot of this is logic work to prove that a chip won't lock up under certain conditions- actual silicon is more the field of a material scientist.

    A software enginneer is what you know as a programmer- not just convering coding, coding, coding but covering algorithm design and general system design issues.

    These are just two branches of Computer Science, which is in itself IMO a branch of Mathematics. Other branches are AI, Cybernetics, Human-Computer Interaction, Industrial Simulation.

    If you're only just going into college, let's face it you probably don't know what you want to do when you've finished (if you do, I guarantee you will have changed your mind by the end ;-)

    There are very few employers who will be looking for a specialist in a small field at college graduate level- most want someone with a good all round education that they can turn into a specialist in THEM, this is how so many phyicists, mathematicians, etc get into the industry. You don't stop learning after college, college just proves you can learn to a certain standard.

    Obviously a comp.sci. background is useful for any area of comp.sci. whereas if you study a smaller subject you may find yourself at a disadvantage if you go for jobs outside of that smaller subject, my advice to you is to take comp.sci., and do minors in something cool and arts or humanities based, that interests you, but is not computer related (try to find something ;-) employers like to see more than one dimension to a prospect and it will pay big style both in your own prospects- but for yourself to

    --

    J-aims
    --
    Yo, whatever happened to peas? Join T( H)GS
  101. Re:But Computer Scientists GET PAID more by nkpatel · · Score: 1

    I was a CompE major, and I'm writing software. As a CompE at my school (University of Illinois at Urbana-Champaign) I took courses that spanned from very EE to very CS - Circuits, E&M, Analog Circuits, DSP, Data Structures, and OS - as well as CompE courses like architecture and digital design. Granted I didn't get ALL the theory behind the CS topics, I came out with a broad base of knowledge. In short, I think taking the CompE route will help you gain a deeper knowledge of what your software is doing with the transistors below it. This hopefully makes you a better programmer.

  102. Look at the details by jd · · Score: 2
    Computer Engineering is sometimes used to talk about building the physical hardware. But it's also (mistakenly) used to refer to "Software Engineering", which is a whole different kettle of fish.

    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.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  103. CE probably gives more options by Logger · · Score: 2

    You probably can pick up the CS information handling stuff that you'd miss from a CE or EE degree on the job. CE or maybe better yet, EE with leanings towards CE, gives the background neccessary to design systems from the electron up.

    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.

  104. CE might be better by MillMan · · Score: 2

    CE gives you more options. At the school I went to, CE is a cross between EE and CS, so you'll take some of the junior level EE courses and cut a few CS courses. At a lot of schools, I think they have special CE courses, but the coursework is probably pretty similar to what I had in my upper level EE courses.

    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.

  105. Information Sciences and Technology by Arlo · · Score: 1

    Try this: Information Sciences and Technology at Penn State University. It is what I am enrolled in and have found it to be very fulfilling.

  106. Here is some information you may find cool by toast- · · Score: 3

    I am a 4'th year Computer engineering major.

    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

    Systems Design Engineering at University of Waterloo

  107. The college guidebook is correct. by AFCArchvile · · Score: 1
    Computer Science deals with programming, while Computer Engineering deals with microcontrollers, VLSI, and a little programming as well. I'm a freshman at the Wentworth Institute of Technology, and right now I'm taking an Intro to C class (in fact, in just a half-hour I have to code my midterm project!). I'm also taking Circuit Theory II (I took Circuit Theory I last year), and Electronic Design. That intro to C class is my only significant programming class, but I'll probably take tne next level C class as an elective later on.

    As for networking or becoming a sysadmin, that's an entirely different major group altogether.

    --
    "Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
  108. College Degrees in Technical Fields by splatter-ns · · Score: 1

    Essentially, you have more options open to you than what you think..

    First off, no matter what people tell you, a degree is essentially useless in the IT industry. The only thing that matters is your experience, knowledge of the position you are applying for, and ability to live on the cutting edge (bleeding edge is preferred) of the technology of the day.

    Companies who are searching to hire individuals to fill their positions are searching for EXPERIENCE. If you have no experience, you will not get the job, regardless of the fact that you have a BA, MA, PhD, or are a BMF besides (thank you, Cheech & Chong).

    What I did was to attend enough college to learn the skills I need in the real world (basic software engineering, how to screw the .edu and use all its bandwidth for my servers, how to do a kegstand without puking) and then quit school to run an ISP with my friend. After the ISP lost its funding, I moved to Silicon Valley and became a developer for Netscape... all with no college degree. Instead of *spending* money on a less-than-useful college education, I'm *making* money that I can use to gain more certifications and knowledge that pertain directly to my job. Additionally, I'm learning new things every day (as anyone in the IT field will tell you, they *all* learn new things every day).

    The choice is yours.

    --
    He who walks on burning coals is sure to get burned. -- Sinbad
  109. My advice... by Skeezix · · Score: 2

    Computer Engineering deals more with low-level stuff..not just hardware, but the theory behind Electrical Engineering. I would suggest taking at least two Electrical Engineering classes while taking some Computer Science classes. See where your interest and talent lies. For me After to EE classes, I asked myself, "What the hell are you thinking? You don't care about how a transistor really works at this low a level!" And I immediately switched to straight Computer Science. On the other hand, a lot of people really love that stuff. Try and see.
    ----

  110. Learn ALL standards by OlympicSponsor · · Score: 2

    Don't just learn C and Unix. Learn how to program without an IDE. Learn how to use a non-GUI workstation. Learn HTML. Time spend on fundamentals NOW is time saved on reinventing (or relearning) the wheel later.

    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

    --
    Non-meta-modded "Overrated" mods are killing Slashdot
    (Hey Ryan! Here's your proof!)
  111. Whatever you do, avoid the straight and narrow by scotpurl · · Score: 2

    I'll state up front (no hidden agendas here) that my degree is in Geography. Before that, I had 3 years of a mechanical engineering degree finished before switching.

    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.

    1. Re:Whatever you do, avoid the straight and narrow by MikeBabcock · · Score: 2

      So well stated.

      I just thought I'd throw that in, since I don't have moderator points right now ;-).

      --
      - Michael T. Babcock (Yes, I blog)
    2. Re:Whatever you do, avoid the straight and narrow by ErikZ · · Score: 1

      Bah, I can better myself thoughout my whole life. And it's far easier to do so when you have a paying job.

      Go to college, jump though their silly hoops, graduate, start life.

      Later,
      ErikZ

      One last hoop to go.

      --
      Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
  112. learned this the hard way... by dimator · · Score: 2

    I learned this the hard way, so you're very lucky to find out early. CS deals mainly with software, programming, algorithms, operatings systems, languages, etc. CE deals with hardware, logic gates, transistors, processors, etc.

    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.
    --

    --
    python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
  113. CE major here by Prabal+Singh · · Score: 1

    OKay, first of all, if you dont like playing with wires, hardware, tweaking stuff (hardware), and configuring your own stuff etc etc Then you should NOT be a CPE major. If you like to write software or configure your OS then you should be a CS major. Being a CPE major, i hope that someday i would be programming the next generation chips someday.. And my friend, being a CS major will be writing programs for my chips!

  114. engineering vs. LAS by Beckman · · Score: 1
    The difference from my perspecive is the difference between being in the college of engineering v. the college of LAS.

    As a computer engineer you'll be required to understand basic engineering/science principles including design, econimics, physics, chemistry, and mathematics. The college of LAS is more relaxed. The only real requirement is to understand how to program and have sufficient credits.

    That being said, I wouldn't say that a CE is necessarily better than a CS just because more fundamentals are required. A CS could take all the mathematics and design courses taught to CE's, but there is no requirement to do so. It's more of a matter that hiring a CE you're assuming a minimum level of ability which is greater than the minimum level required for CS.

    Of course a good hiring manager would look beyond the title on the degree and hire based upon the individual's experiance and abilities...

  115. It doesn't matter really... by Lester · · Score: 1

    If your gonna be a geek, pick literature or history as your major, then you can be a well-read geek. Geek-dom comes from within, not the classroom. Wanna learn C/C++/Java/Perl?? buy a book, and spend your classroom time learning how to think.

    --
    'Sometimes I think about killing myself, no, wait, that's you.' -- Jack Handy
  116. Keep your options open by t1deman · · Score: 1

    Take your core classes first, especially math. You can take classes that fall into both majors. You can always switch.

    I know a lot of Computer Engineers that took a lot of Software classes & that took a lot of Hardware classes. Depends on what you like. Computer Engineers usually focus more on embedded systems and hardware/software. Computer Engineers can do software, I'm an Electrical Engineer and do software development for a living.
    If you want to do software go for CS.

    Now the twist to all of this, I know more people that WERE engineering students, and graduated with a NONtechnical degress. The drop out rate is huge.

  117. Here are the differences (from a current student) by moller · · Score: 2

    Computer Science: Computer Science deals with the theory of computer programming. If you have been reading Slashdot long enough, you will have seen discussions regarding algorithms, O(n) or O(1) problems, NP complete and so on. That's computer science. The coursework will generally deal a lot with writing programs in Lisp and Scheme (and other interpretive languages). There will be a good deal of mathematical proofs (number theory, set theory). You will be asked to "prove" that the algorithm you are using can solve the problem in polynomial time, for example. A computer science major learns "how" to program.

    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

  118. I'm both... by robbo · · Score: 1

    I did my undergraduate degree in comp eng, my master's in comp sci, and now I'm doing a PhD in comp sci.

    The differences? At most schools, the admissions requirements are much higher for comp eng. There is a much stronger focus on applied math, digital design and signal processing in comp eng, whereas comp sci focuses on software engineering and theoretical comp sci (ie, Turing machines,etc). In either degree you'll learn how to program. Again, the kinds of programming skills you pick up are different-- I'm a great systems and OS programmer but ask me to implement quicksort and I'll say "It's already in libc!"

    So why did I switch programs? The short answer is that the supervisor I wanted to work with is in CS. I'd be doing the same research (robotics and computer vision), irregardless of what grad program I'm registered in. It probably means I'll have to be a CS prof rather than and Eng prof, if and when I graduate..

    If you've got the marks, go for the comp eng program-- it's more rigorous and demanding and you'll learn more useful stuff.

    --
    So long, and thanks for all the Phish
  119. CS/CE/EE by RoscoeChicken · · Score: 1

    My school created a Computer Engineering program using money from a Defense Department grant. The DOD funded and oversaw cirriculum development in the early 80s out of concern at the rising costs of personnel to do the grunt Ada programming and basic digital logic design. The classwork ended up being a watered-down combination of EE and CS -- enough circut design to do digial logic and sufficient programming to get by at a DOD contractor shop, but nothing in depth on either side of the hardware/software divide.


    I graduated 10 years ago so things may have changed a bit.

  120. which major? by ostrich2 · · Score: 1
    Hell, you might as well choose Romantic Literature of the French Revolution. Trust me. You'll change your major. I don't care if you love computers. I don't care if you're good at working with them (in whatever capacity). Whatever you think your life's ambition is going to be, it's going to be something else.

    You'd be surprised how many people in the workforce today got all the way through college as a microbiologist, or philosophy major, and only turned to computers later in life. Some of the best consultants I've worked with had no computer courses whatsoever during college. And yes, many of the people I've worked with didn't even graduate.

    So think long; think hard; and then choose whatever major you like. You'll change in two semesters anyway.

  121. CS vs CEng by Mike_K · · Score: 1

    Well, the truth is the distinction is not very clear. CS is supposed to look at a more theoretical part of the field (theory, graphics, algorithms, AI, etc) while CEng is supposed to look at more practical topics (compilers, databases, operating systems, cpu designs). The bottom line is that whichever you do, there is a significant cross over.

    If you are a CEng student and an employer is only looking for CS students, then they either have a very good reason (unlikely, unless you're going to a 'think tank' environment) or they don't really know what they want. Most employers will look at both CS and CEng students.

    At my undergrad institution, there were many professors who were in one deparament and affiliated with the other (CS and CEng). In my new school, we don't even have a real CEng departament. There is a Systems group in CS departament (which is where I am).

    Good luck with your applications.

    m

  122. Engineer, that is unless your rich already by oldstrat · · Score: 1

    Computer scientists, world holding capacity, thousands at most.
    Computer engineers, world holding capacity, nearly unlimited.

    A scientist does research, no production... no immediate profit.

    An engineer does work for the scientist (probably a ratio of 10 Eng. to support 1 Sci.
    Plus the engineer gets the glory of making the Fuped product work in the the field, and adapting it to a changing world. Ratio probably 3000 Eng. to 1 Sci.

    The first rule of life is survival (making a living). Cars are repaired every day, they are only designed from scratch when the world can't make them the old way any longer.

    I don't know how you get your conception of Sci. = Software and Eng. = Hardware....

    There are both Sci. and Eng. in both, there has to be because Scientists can't produce anything without Engineers.

  123. applied vs. theoretical by kav.latiolais · · Score: 1

    CS = logic/computing theory CE = applied cs

  124. Go with what interests you by Jungle+Boy · · Score: 1

    If you want to eventually get a job as a programmer, IMHO it really doesn't matter which of those two paths you take. I'm a computer engineer by degree (well, at least in a year I will be), but I'm working as a software developer right now right alongside all the CS majors. You should consider which of the two you would rather study. If you like hardware, then CE is rather nice since the cirriculum (in my experience anyway) is split about 50/50.

    And while traditionally CE's, as Yhcrana put it "deal with logical bits and gates: they build the I/O that computer scientists talk to, and they design things to work better and faster than before", as a CE you get all the programming skills you need to hack through code along with everyone else.

    So, just look at the curriculums and try to figure out which you would enjoy more. It's not like you can't switch later anyway.

  125. It can be done by ciaohound · · Score: 1

    Computer science is offered at most of the elite "liberal arts" colleges. The liberal arts should teach you to love learning and problem-solving, which are essential to what you'll be doing in this industry. In ten years of working I've encountered plenty of self-taught folks with such educational backgrounds. But don't hamstring yourself by not taking the core CS stuff -- at least take data structures and algorithms, and see how it goes from there. I wish I had taken more of those classes, and sooner than I did.

    --

    --
    Oh, yeah, it's not easy to pad these out to 120 characters.
  126. Education-style differs by nano-second · · Score: 2

    At many universities, you will find that comp.sci majors learn languages because they use them on assignments for a course whereas comp.eng majors take courses whose sole purpose is to teach a language. Also, engineering students (at least at Canadian univs.) tend to have less freedom in choosing electives. They often take more than the usual course load (6-8 vs. the 5 in other faculties - in a 4month semester). This may or may not be to your taste. In general, as a CS student, you'll have more opportunity to direct your education, since you get to choose more of the courses yourself. If you are interested in non-traditional pairings with CS such as History, Fine Art, etc you may prefer the freedom to choose your own electives. Most comp.eng's I know don't get to choose any of their non-major courses until their last couple terms. At the U of Waterloo (where I'm in CS), computer science contains a lot more math courses (it's part of the math faculty) than comp.eng.
    ---

    --
    I hope you're not pretending to be evil while secretly being good. That would be dishonest.
    1. Re:Education-style differs by Jucius+Maximus · · Score: 1
      Exactly Right!

      I'm a comp.eng student at a Canadian university. And don't flame me for this, but in first year we do Java. The course is cis*165 and people in CS, Engineering, and even B.A.compsci (yes, bachelor of arts in computing) take it. In second year we do C, and then after that there's assembly and such.

      And about electives. I get FOUR electives in my five year (co-op) program. In comparison, the biological engineers get eight, comp.sci gets ten, and B.A.compsci get somewhere around twenty-one.

      As to the differences between engineering and straight comp.sci, I find that the engineering program is FAR harder in terms of the number and density of courses that you take. But then again, as a computer engineer you'd probably make more money.

      In engineering, you look at ways approaching design problems in general, whether they be in the successor to FireWire, or in robotics, integrated mainframes, military systems, data compression, etc. Desktop computers or otherwise aren't always the focus. You take some serious physics/mechanics/material science and mathematical analysis courses. The result of engineering is a new process or tangible item that meets the criteria and constraints of a problem.

      On the other hand, in computer science, you learn the languages sooner but are more confined into learning about software programming and theoretical algorithmic stuff. Personally I can't stand the theoretical stuff...I'm taking this theoretical CS course now called discrete structures and I can't stand it...so boooring.

      O'Toole's Commentary on Murphy's Law:

  127. Computer Engineering as it applies to employment by deander2 · · Score: 2

    I started out my education (at Virginia Tech) as a Computer Engineering student and later switched to Computer Science. I did this because I was told that CpEs (CpE == Computer Engineer) get a more rounded computer education and that "engineers" are more respected, command higher salaries and are more employable because of greater flexability. What I found was that 70% of CpE was EE. If you're going into hardware or chip design you need that EE background, but if you're going into anything else, you will have wasted 60 credit hours on material you will never use. And the cost of that (besides monitary) will be minimal programming knowledge.

    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.


  128. Why did everyone miss the obvious answer? by WickedLogic · · Score: 1

    .... do both. Either at the same time over or alternate semesters or do one after completing the first.

    Not that I should speak because I was a college dropout.....
    --
    Wicked Logic
    'if it ain't wicked I didn't make it.'

  129. CS vs CMPE @ GaTech by adamtegen · · Score: 1
    There is already something posted from GaTech, but I thought that I would elaborate.

    First of, I graduated with a BS in CS 2 years ago. I'm adding my opinion because my thoughts are different since I applied all the knowledge I learned. Plus, YMMV.

    The main difference, that I could tell, was that CS was software. Lots of it. Functional programming(LISP), Procedural Programming (C,PASCAL), Object Oriental Programming(C++,SmallTalk), and Logical Programming (Prolog).

    So what does that mean, you might ask. IF you paid attention, you should be able to pick up ANY language, and its subtleties very quickly. You've learned all the fundamentals, with languages in mind.

    You also learn lots of theory. I didn't know a single person who didn't complain about the theory. Boring !@#%. But, after having working in the real world, its VERY useful. Too many people program don't have a clue, and there code works on test cases, but dogs in real environments.

    You also might learn about design. Depends on the school I think. Design is KEY to a maintainable and scalable system. I've coded more than I would like, where C code is slapped together to make a program. If you weren't the original author, you better be wary of any big changes.

    I also had only 2 hardware classes. Just enough to understand the implications of my programming for the chips, etc. If I had to make devices, I would be MUCH less qualified than a CompE.

    As far as Math, it varies. At GaTech, CS was almost a discrete math minor. 3 years of Math, or more, I think. But CompE's had more calculus, FFT's, etc.

    The average CompE isdefinately more qualified for Hardware then a CS. But there are specialties.

    I'd like to say that CS majors are more qualified to code, but that's ridiculous. First of all, I've known a lot of extremely bright and qualified CompE's. Anyone can code. Ok not anyone. But there is a huge difference between coding and designing and authoring maintainable code. There is definately and art to it.

    If you want the best of both worlds. Double major in CS and CompE, or even CS and EE.

  130. The decision isn't final... by Gruneun · · Score: 1

    As someone who started out in computer engineering and switched to computer science, I would have to say they're pretty evenly matched when it comes to curriculum (this, of course, is relative by school). I switched because I found I enjoyed the programming aspect much more than the hardware.

    Placed in the same situation, I would still go to engineering first. With all of the required core engineering classes that I took my freshman year, I know it was much easier to switch the way I did, but I've seen people add years to their education trying to do it vice-versa.

  131. The corrolary to that is... by mizhi · · Score: 1

    what's the use of college when you've got /.? :-)

    --
    Humorless sig goes here.
  132. Academe by DSL+Pimp · · Score: 1

    Odds say that no matter what you plan, you will probably change majors six or seven times. Declaring a major in your freshman year is usually a waste of your time. Use your first year for General Education credits, hang out with CS & CE guys, and see where it leads. The MCT I know with all the development experience, the one that makes the most money, he was a history major who like to program for fun. Good Luck!

    --
    "If I were important, I would have a sig file..."
  133. CS vs. CE, Why not both? by yostinso · · Score: 1

    I'm currently a college freshman, majoring in CS, but I'm pretty sure that I'm going to tack on a CE minor, just to know some of the underlying things that I can use so much as a programmer. At my college (WPI[.edu]), anyway, CS seems to focus on a lot of theoretical background to programming; things like algorithm design, backed by LOTS! of math, and quite a bit of focus on interface design. CE, on the other hand, seems to be focused on underlying hardware, from designing hardware (logic gates and up) to writing low-level machine language to run on embedded systems. I have a friend who's a CE major, who gave me a good description a year ago: CS majors write the software, CE majors design the hardware, and EE majors build the hardware. There's crossover, of course, but that's actually a pretty good summation. --Yostinso

    --
    --Yostinso--
  134. Advice from a CS/CE Dual Major by Mr.+Sketch · · Score: 1

    When I started college five years ago, I had the same question and my solution was: why not do both? (perhaps that means I'm better suited for management ). I recently graduation with a BS in CS and a BS in CE and looking back I almost regret getting the CE major. Perhaps that's just because I was a programmer at heart before I started and I found all the CE-core classes painful and almost to the point where I considered dropping the CE major my junior year, but at that point I figured I had gone this far, might as well finish. In the end, all it (the CE major) did was lower my GPA.

    I believe that any CS student could do the work of a Computer Engineer with maybe minor training in the specific industry. In fact, my CE capstone project was really just an applied CS project but using a different processor (whop-de-doo).

    Things I learned from my CE cirriculum:
    - Circuit Analysis and Design (boring and trivial, IMHO)
    - Computer Architecture (common sense)
    - Embedded Systems (applied CS)
    - Digital Logic (repeat from the CS course Discrete Math)

    Things I learned from my CS cirriculum:
    - Algorithms and Data structures (useful when doing any sort of programming)
    - Algorithm Analysis
    - Advanced Problem Solving (useful for anything)
    - System Level programming and OS Design

    In my opinion, a CS background will give you more fundamental skills and knowledge that can take you farther than a CE background and can be used in more places than just programming or theoretical studies.

    But like everyone else has said, if you like doing the list of thing listed under the CE stuff, then go CE, if you like the CS stuff, go CS, and if you're not sure, stay undeclared until you take a course or two in both of them to see what you like more and if you like both, do a dual major. If you do a dual major it's possible that you can get a job doing both CS work and CE work. Right now I'm programming for a company that writes software that computer engineers use to design systems so it helps that I know what a transistor and a FETT and digital modulation sources and stuff like that are.

    Good luck to you, I hope this helps you figure out what you want :).

    1. Re:Advice from a CS/CE Dual Major by Mr.+Sketch · · Score: 1

      Perhaps I should clarify the difference between being more difficult and not being able to do the work. When I say that it was more difficult for me and lowered my GPA, it was the difference between my mid-90's grades for CS and high-80's for CE classes (I'm not sure what that translates to in letter grades, but I'm guessing A's for CS classes and B to B+'s for CE classes), that just means that I had a bit more difficulty for them, but it was not impossible.

      For instance, with the capstone project I mentioned, there were four groups. Our group was the only one that had a person with a CS background (me), and our group was the only one that actually had something working to show at the end of the semester. The other groups had little things that almost worked and there was one group that had absolutly nothing to show at the end of the term.

      That is the difference between something being more difficult and just not being able to do the work. But I know that's just an antecedial story and there were probably other factors involved, but still I'm sure I could have put any CS student on the other teams and they would have come along a lot farther.

      I still maintain that any CS could do the work of a CE with minimal training. However, I also believe that any person can do anything they apply themselves at, I just think CS's have a better foundation. I'm sure that CE's could do the same work as a CS, but I think it would take more effort and more time than a CS doing the work of a CE.

  135. A Correction by DoorFrame · · Score: 2
    Now I know that we all love to use this phrase, but I've gotten annoyed as of late by it's misuse. Go back and watch the movie and you'll see quite clearly that it's:
    • "Someone set UP US the bomb."

    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.

    --

  136. CS=pure theory+X, CE = X = physics by maraist · · Score: 2

    Com Sci is the science of computation. It's a high level abstraction that searches out mathematical algorithms. You learn a programming langauge like you learn english, then you use it to discover new frontiers (such as compression, encryption, AI, etc).

    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).

    --
    -Michael
  137. And of course by Breace · · Score: 2

    dont forget to read up on CS vs CIS:

    http://slashdot.org/askslashdot/00/12/27/1634227.s html

  138. I am a CE, 3 1/2 semesters in by Zipper123 · · Score: 1
    I attend the State University of New York at Buffalo as a CE major. How did I decide the matter? UB offers CS, EE, and CE (my three possibilities), and I used elimination:

    I personally dont want to be a programmer for life, which ruled out CS (in my mind). Also, I love hardware in addition to software.

    I considered EE but felt there was not enough computer information in the major.

    That left me with CE, which is harder here at UB than either CS or EE; I take nearly every CS course and nearly every EE course and have a much busier schedule than CS and a slightly busier schedule than that of an EE major.

    1. just my .02 on how I see/saw it
  139. Perhaps consider a CSE program... by southpolesammy · · Score: 1
    If you're not completely sure that you wish to pursue one path or the other, don't choose. Do both. Of course, I'm hyping my own school's program, but the Computer Science & Engineering curriculum at Ohio State is broad enough to give you both the science aspect of the CS world as well as the engineering background to be able to apply that science background towards the development of real world things.

    Check out their offerings at http//www.cis.ohio-state.edu

    I chose the CSE track with a specialization in Information Systems which means that I have the science, engineering, and business backgrounds on my resume, and although this is a LOT of work to accomplish, the applications of that path are very rewarding.

    Most of all, do whatever you want to do. At some point, you'll probably change your mind on what you like doing, so also try to make sure that your studies are broad-based enough to give you options to pursue if/when that day comes.

    --
    Rule #1 -- Politics always trumps technology.
  140. Associate of Science by foo+fighter · · Score: 1
    My advice is to go to a two year school and get an AS degree in Computer Information Systems, Computer Programming, or Desktop Publishing.

    Computer related employment is the industry with the fastest wage and employment growth and it's projected to stay that way until at least 2006.[1] In that industry, the fastest growing occupations include computer support specialists, systems analysts/administrators, database administrators, and desktop publishing specialists.[2] All of these occupations' entry- to mid-level positions typically require only an Associates degree, possibly with a couple years experience.

    Benefits of two year degrees include more topical and relevent information that can be directly applied to the job, a quicker entry into the workforce, lower student loans, and an almost 100% guarantee of good paying, relevent employment after you graduate.

    [1]http://stats.bls.gov/news.release/ecopro.t03. ht m
    [2]http://stats.bls.gov/news.release/ecopro.t06. ht m

    ==========foo fighter==========
    Do not mistake understanding for realization,

    --
    obviously no deficiencies vs. no obvious deficiencies
  141. There is a huge difference by hafree · · Score: 1

    I actually had to make the same decision myself when I went off to college. The major difference is that computer science is strictly programming, usually in higher-level languages like Java, C, and C++. Computer engineering is a combination of computer science with electrical engineering, so you deal with the hardware as well. If knowing this isn't enough to make up your mind, then consider they type of work you would like to be doing when you graduate. With a degree in computer science, you will most likely end up programming applications, administering databases, or other similar jobs. With a computer engineering degree, the focus is more on the integration of lower-level software and the hardware it runs on. This includes anything from designing circuits, VLSI design (designing chips), microcode for firmware, and device drivers. Personally, I couldn't decide between hardware and software so I chose computer engineering - it really leaves your options open if you decide to pick one or the other later on. Now I manage servers and networks and develop web and database applications, so you can see I still haven't made up my mind! Good luck to you...

  142. CE vs CS by BillGistheDevil · · Score: 1

    Computer engineering deals mostly with hardware and computer science deals mostly with software. If that isn't clear enough for you then maybe you should consider another major.

  143. both are necessary by Turgon33 · · Score: 1
    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?

    being a senior in CS and a COOP with a mostly EE/CE company, the job you get doesn't really hinge as much on what your degree is in as much as who you know and what you can do. i am interested in algorithm analysis and applied discrete math and such, but the EE's at my company couldn't care less about such things!

    at my company, we build embedded networking appliances, which entails designing the hardware and writing the embedded software to drive it. they used to have 5 EE/CE's to about 1 CS person. the EE/CE's would build prototypes and play with low-level bit flipping and they'd have the CS guy write all of the software. nowadays, however, those CS people have gotten better jobs elsewhere and have not been replaced, and we have a lot of EE's writing ugly code for their own devices!

    the divide between CE/CS is especially evident in my situation, because some areas/projects here suffer for lack of good CS people. both are quite obviously needed for my company to turn out a quality product line. it all depends on what you like to do!

  144. It's like this and like that and like this by SpazAttak · · Score: 1

    Computer engineering is like Electrical Engineering with a few Computer science classes mixed in.

  145. Depends on location and interest by Greg+Bodnar · · Score: 1

    I've been asked this question a lot by prospective and new students at the University of Alberta. Over the course of a few years, I've refined the answer down to roughly this: "It's the same thing as the difference between Scientists and Engineers." Science is about discovery while engineering is about application. However, in Canada there is a lot more to it as well. Engineering is a profession and is governed differently than the associated science. In fact, a CompE Engineer in Training does not receive experience towards his/her Professional Engineering status by just coding. Experience comes from the design of systems rather than the implemenation.

    If you are looking for advice on to what to go into, pick up a bunch of calendars from a bunch of schools. Find a program that interests you, and don't be afraid to change your mind along the way. Try not to let yourself get pushed into a program with few or no optional courses. One of the best things I did during my university degree was take a few arts electives.

  146. CS vs CE by mikers · · Score: 1

    After completing a CE and having worked in the industry for about 2 years..

    My CE involved a lot more math than CS. I had a friend go through CS and he had a lot more programming courses, and general science. I had more engineering classes, less general science. I had more math (calculus flavor) than he did. Expect almost every engineering class to include lots of math. CS courses are likely to be more programming.

    My friend been working as a programmer/analyst for the last year and a half. I've had a bit more variety - I've been in IT, worked on the control and automation side of engineering (PLCs, HMI and the like) and now for the last year been doing software development (code monkey).

    It seems like CE opened more doors for me (on both the engineering side of the industry and the software side of the industry). I'm also able to go out and solve problems that involve control systems, software and hardware - I have a little bit of everything. If you like dabling in different things CE is a good choice.

    On the down side, I feel I am not as effective a computer programmer or software engineer compared to a CS. This can be fixed with self-teaching, or practical courses from technical institutions.

    Money? About the same at the start for a CS or CE.

    I've found after 2 years that I enjoy software far more than hardware integration / implementation. Its far more rewarding and satisfying to solve problems in software and write programs that DO something. I'm considering taking some practical courses to pad the experience side in software.

    mike

  147. Empasis by Jason+Cwik · · Score: 1

    At the school I went to (U of MN), there was both CompSci and CompE. But under each were different empasises. My degree was in CompE with an empasis in microprocessor design, yet lo and behold I'm doing software architecture. If you're interested in programming, I'd go into CompSci with an empasis in Software Engineering-- I find that what most programmers lack most is structure design (UML, ERD, etc). Almost anyone can code. Putting structure behind it and making it maintainable is what is important. However, if you are interested in embedded programming (cell phones, PDAs, game consoles, ATMs, etc), you'd want CompE, since you're more likely to have to deal with the native hardware and lower-level tasks such as I/O and interrupt handling. Most importantly, make sure you get an internship. I worked for Intel Customer Support for 6 months and I think I learned more there than in a year of class. I also worked 6 months in an IC design shop and learned that I didn't want to do hardware design! Especially analog :)

  148. Re:Computer Engineers, Bad Latin by tibbetts · · Score: 1

    That sig should be "posteriorem tuum", not "posterioram tuam". Better still would be "pratum tuum", but I digress...

    --
    :wq
  149. CS and CE by diverman · · Score: 1

    It may seem that companies want computer science majors more, but if you take the actual definitions for each major, a company usually desires a computer engineer.

    A computer science major is supposed to have emphasised studies in theory. The general curiculum for a Computer Scientist is supposed to prepare them for continued education and research into the science of computers.

    A computer engineering major is supposed to emphasis practical application of well tested theories and proofs. The general curiculum for a Computer Engineer is supposed to prepare them for the working world, by focusing on applying theory to real-world situations.

    Both majors tend to be pretty much the same. And most universities don't really stick to the definitions I've mentioned above. Typically the two majors are almost the same, where CS has more advanced programming classes, and CE has more engineering courses.

    I think that companies probably say they want computer science majors because that's what the people in HR who write up the requisition knows about. But if you're worried about what a company wants... either degree will do. When a recruiter sees a resume that sees "computer" in the name of the degree, they pretty much qualify it in the same category. The real test is whether or not you can answer the questions that are given to you in an interview, and how well you show an ability to understand the problem provided.

    So, don't worry about it.

    If you want to know which major to take, look at the classes offered and required in each. Decide which one you'll enjoy more. You should enjoy college a little, and not look at it solely as something to get you a job. Although that is a reward of having gone through it, there's a lot more to be got from going through college.

    Cheers,
    -Alex

  150. Anything but MIS/CIS by EllisDees · · Score: 1

    Those people have *no* idea what's going on! :)

    --
    -- Give me ambiguity or give me something else!
  151. Backwards analogy? by Chris-en-topper · · Score: 1

    Computer Scientist:Computer Engineer :: Biologist : Chemist I'm not sure what you meant by this analogy, and I think I understand it backwards from you: CE focuses on constructing one specific, silicon-based architecture for computers, whereas CS focuses on the abstract rules that govern all possible physical architectures. I remember a guy telling me that the CS hardware class I was taking in college was a waste of time because I was learning theories which "change from day to day as the rate of technology advances." Of course, he's got it backwards: the specific implementations are what change from day to day. The theoretical rules that govern those implementations, the stuff I learned in that class, has not changed since the dawn of time.

  152. I changed my major ... by chrysrobyn · · Score: 1

    I changed my major before starting my first day of class. I graduated from Rensselaer Polytechnic Institute in May 1998 with a BS in Computer and Systems Engineering and again in May 1999, but with a Masters of Engineering in the same major. At RPI, Elecrtical Engineering is basically analog electronics. Transistors, resistors, capacitors and inductors. Computer Science is programming-- C, C++, Java, it continues. Computer and Systems Engineering boils down to Electrical Engineering with a digital skew to it and a concentration in Computer Science (primarily transistors, boolean logic and a little C/C++ and assembler). I applied as Computer Science because I didn't know any better. Before school started, I had talked to actual students and knew I wanted to transfer from the School of Science to the School of Engineering, and CSYS I became. Check with the current students at your school-- your TAs or fraternity brothers/sorority sisters and ask for their opinions. Incidentally, I am now happily employed at a large company doing embedded SRAM design.

  153. I was both; here's my take... by curtis · · Score: 1

    While going to school, I had the same question. This is my take in a nutshell: Figure out what it is you really like about computers, let that decide for you.

    I started out as a Computer Engineer but changed to Computer Science after a semester because I found I had the most fun when programming. The electrical engineering portion of computer engineering was boring to me because I found that it was more fun to "tinker" with software immediately and see the effects. I got the same thrill of creating something whether it was software or hardware but I got to do it immediately with software -- I didn't have to wait until I was a junior or senior before I got to create something for real.

    You should just figure out what is fun for you and chose it. There is a huge difference between creating software and creating hardware. Although either major gives you the chance to land the same job after school, it is getting through the long hours of homework and four (five? six?) years of undergrad that is the more challenging...

    One last issue as well -- it depends on some of the other classes as well. If you have no problems taking some boring engineering sciences classes (Thermo, Dynamics, E+M) or any of the prereq. math classes (Differential Equations) then go for computer engineering, it is a tough major in both schools since it combines electrical engineering and computer science. I certainly notice the difference in the two majors when I hire young employees...

  154. Right.... by Fujisawa+Sensei · · Score: 1

    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.

    Prehaps I'm a clueless, but what part of hardware vs software are you not clear on?

    Perhaps if you don't know the difference, you should just pick one and not worry about it. You can allways change your major later, when you have learned what the majors are all about, and the difference between hardware and software.

    --
    If someone is passing you on the right, you are an asshole for driving in the wrong lane.
  155. Go with your gut... by slackr · · Score: 1

    ... in today's IT job market, nobody cares. Take this time to study whatever you really want to learn. Check out the curriculum and see which path looks more interesting, and don't worry about:
    "It seems that many companies are looking for computer scientists, but would they be desperate enough to accept computer engineers?"
    That's a perplexing statement, cuz frankly, they're desperate for anything (even MCSE's!)

    --

    * Please do not read my signature.
  156. I went through the same struggle by PSUdaemon · · Score: 1

    I'm still not exactly sure what Computer Engineering is. It's getting to the point that it's synonymous with Electrical Engineering.

    At my school Computer Science and Computer Engineering are both controlled majors, meaning you need to take certain classes by a certain time and maintain a certain GPA to be accepted into them. A lot of people don't make that cut. They end up in Electrical Engineering. It seems to be very close to Computer Engineering, and there are a lot of classes they can take like C++ for Electrical Engineers.

    So anybody who gets out of this University with any of those 3 degrees basically can all go after the same job. Which seems kind of crazy to me, but that's how they do it here.

    Aside from all that, what everyone else has been saying about Engineering being more hardware, and Science being more theory and programming is about right. Although I'm sure you'll take classes that overlap. I've had several Digital design courses, and worked with VHDL and I am a Computer Science Major.

    So the easiest way to answer this is, do you want to build IC's and expension cards, or do you want to hack on the Linux kernel :) Either way you are set.

  157. Computer Engineering's more flexible by tourvil · · Score: 1

    With Computer Engineering, you will probably wind up taking a lot of the core Comp Sci classes. At my school, Computer Engineering exposes you to the basics of hardware and circuits, as well as software and programming, but offers lots of electives in either software or hardware. I'm a Computer Engineering major who's focusing on software. So I'll probably wind up getting a software job. But I didn't know I wanted to focus on software until I had taken the hardware classes.

    If you are sure you're not interested in hardware, go with Comp Sci. If you think you might be interested in hardware, or a mix of the two, do Computer Engineering.

  158. See about coop by dropdead · · Score: 1

    See if you will get a chance to do field related coop's during the year and summer. Will really help when start thinking about what you will do after school. See what the offer in the way graduate programs. Hardware or software are large fields. A masters will help you pursue the fields that interest you.

    --


    By definition, a government has no conscience. Sometimes it has a policy, but nothing more. - Albert Camus
  159. Not meant as a flame but ... by cfortin · · Score: 1

    Don't do either. Both CS and Ceng are about implimentation, ie you turn other people's ideas into programs. If you're just starting out, go for the EE program, with a minor in CS. That way you get the signal processing and hardware background to make yourself move valuable. Look for real-time or embedded projects. Computer Vision, image segamantation, speech ...

    The processors these days are getting to the point that some pretty cool applications can be moved into the mass market. You'll need the math/science background to be able to design/architect the implimentation of these apps.

    Also, FWIW, fill all your free electives with math courses. Say no to art 101 :).

    Chris

  160. Course titles are totally misleading. by emil · · 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.

    1. Re:Course titles are totally misleading. by dmorin · · Score: 2

      Actually you proved my point. Just looking at the titles of the four courses you mentioned I know that I'd have no interest in any of them. And nothing close to those was in the CS curriculum I had back in my college days. I didn't expect the kid to learn every detail about every class, man, geez. But you can tell alot about whether you prefer CE or CS by whether a class like "Linear Systems and Signals" even sparks your interest.

  161. probably do computer engineering by bioscott · · Score: 1

    Computer science degrees (compared to computer engineering degrees) are great for * entry level jobs * easy (if you can already program and can absorb bits of theoretical esoterica, it's a cakewalk) Computer engineering is good for * being a "professional engineer" (www.nspe.org) (although they are finally allowing different ways to get this title) * being an engineer (learning how to get the bridge built right THE FIRST TIME) I say all this as a comp. sci. guy. If I had to do it over again, I would have done electrical engineering or civil engineering. Remember, a degree is just a label that gives you a few perks for getting hired in more circumstances than currently available. The real question is, what circumstances would you most want to work in?

  162. Or choose neither.. by dialect · · Score: 1

    I don't know what your core interests are, but I chose Aerospace Engineering. The reason I mention this is people get into CompSci and CompEng just because they like computers and playing with them. If that your overriding interest then CompSci/Eng is fine for you. But if you are at all interested in playing with wider technology in general then you may want to look into one of the more traditional engineering disciplines -- making sure throughout your education that you get more than the required computer/electronics skills.

    Although not for everyone, for me, Aerospace was great. It's very cross disciplinary major. I learned structures, electronics, aerodynamics, mechanics, thermodynamics, materials, computer programming, and I'm sure a few more areas that I'm forgetting right now.

    After graduation, I got into aerospace systems simulations with several Aerospace defense companies and then a computer games programming company using its games for defense simulation.

    I've worked everything from software simulations, hardware-in-the-loop simulations all in very computer intensive environments. But I've also gotten to go and see missile launches at flight test ranges, and play with Big-Robot-Arms (tm) with aerospace hardware mounted on them. It's been a lot of fun.

  163. Depends on the School by Kirby · · Score: 1

    Lots of people have already pointed out the main differences. Another thing to be aware of is that what a various degree is, even in just Computer Science, varies a lot from school to school.

    In my school (Oregon State), it was part of the College of Engineering. There wasn't a separate Computer Engineering degree. As a result, we had to take several hardware courses, with more as possible electives. The emphasis was definitely on software, however. There were a lot of computer-types in Electrical Engineering, which was very hardware heavy. There were classes required for both CS and EE in both hardware and software - it actually did work out that the EE teachers assumed a lot of background that the CS students didn't have, and we struggled to get a C - and the CS professors did the same thing right back at the EE students later, with the same results. :-)

    However, in many schools (particularly Liberal Arts schools), Computer Science is in the college of Arts and Sciences, NOT Engineering. You take a lot more math, and a lot more non-science courses, if you end up at one of these. You might not have to do any hardware at these schools.

    And there are definitely different schools of thought for both of these. A big one is: Do they teach you theory and general principles, or do they teach you useful real skills? The former can be noticed by courses in Algorithms, Data Structures, and teachers that don't care what language you submit your assignments in. The latter has courses on System Administration, particular languages, and pays a lot of attention to current technology and trends. I attended a theoretical school - there are advantages to both! It is true that having a solid background in the science of programming makes it much easier to pick up new skills, but they also graduate a lot of smart people who don't know how to actually do anything on their first job.

    Also, I'll reiterate what others have said - be true to yourself. Take a minor in a non-technical field, if you want to. Learn a foreign language - it'll never be this convenient again! Or, if you are the kind of person that likes to completely be immersed in one thing (like programming), do it! Get a part-time job on campus, and come out with some actual experience, which you won't regret.

    Another thing I wish I'd considered when choosing schools - networking is a Real Thing. Most of my college friends ended up in a different geographical area than I did, which is too bad. Nearly every job I've been at has a couple of Universities that have a lot of alumni that have sucked each other in - particularly tech-heavy schools. Yes, the competition will be tougher, but if you can handle it, you will have very valuable people who will vouch for you to get you interviews, and as someone who is involved in hiring decisions, that counts for a lot. Get to know the other people in your major. Don't be the kid who sits in the last row and never sees any of those people outside of lectures. It's worth it.

    --
    -- Kate
  164. I object to that portrayal by Kalani · · Score: 2

    Think of it as the difference between experimental and theoretical physicists.

    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.

    ____________________

    --
    ___
    The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    1. Re:I object to that portrayal by Dancin_Santa · · Score: 1

      I don't think you are wrong in saying that Computer Science is a branch of Mathematics.

      Dancin Santa

    2. Re:I object to that portrayal by Kalani · · Score: 1

      I don't think you are wrong in saying that Computer Science is a branch of Mathematics.

      Then why call it a science? I think that what we're discussing (algorithms, the basic elements of computer software) would be best lumped into a math called "computation."

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    3. Re:I object to that portrayal by Amokscience · · Score: 1

      I don't see how my portrayal is innacurate. Theorectical and experimental physicists regularly disparrage each other (mostly in good fun but occasionally seriously). The gap between CS students turned programmers and CS students become pure computer scientists is similar.

      Also, unlike physics, a solid proof is a *proof*. Pure CS is an extension of logic which is (I believe) an extension of math. Much of CS doesn't require experiments since it is built on proofs.

      CS has forked in the same ways that physics has. It's forked in so many ways that "CS" (like engineering) should be a dozen fields of study. CS is largely uncategorizable for this exact reason.

      --
      Fsck cluebie moderators. I'll say what I want, offtopic or not. And fsck having to qualify every bloody statement just
    4. Re:I object to that portrayal by Kalani · · Score: 1

      Theorectical and experimental physicists regularly disparrage each other (mostly in good fun but occasionally seriously).

      If theories from physics are proven to be false, new theories must be postulated (that's why there's the big hubbub about finding a Grand Unified Theory.) Theoretical physics doesn't exist just so that a bunch of people can sit around smoking pipes and feeling important, it actually has a purpose and is intricately tied to experimental physics. It's almost as if you didn't even read my post before replying.

      As for:

      Also, unlike physics, a solid proof is a *proof*.

      Right, that's a description of mathematics. Pure thought.

      As for CS being "uncategorizable," it should be dubbed "computation" if that is true (as a science falls within a rigidly defined category.)

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    5. Re:I object to that portrayal by Mr.+Slippery · · Score: 2
      In short, my point is that experiment is vital to "sciences."

      "Science" has more than one meaning. From dictionary.com:

      science n 1: any domain of knowledge accumulated by systematic study and organized by general principles; "mathematics is important for science" [syn: scientific knowledge] 2: a particular branch of scientific knowledge; "the science of genetics" [syn: scientific discipline] 3: ability to produce solutions in some problem domain; "the skill of a well-trained boxer"; "the science of pugilism" [syn: skill]

      Source: WordNet ® 1.6, © 1997 Princeton University

      So "science" doesn't necessarily mean the applicatoin of the scientific method of hypothesis and experimentation or observation. In the term "computer science" it's got mostly defintion 3 above.

      If thought-experiments are all that make up "Computer Science" then it would be best classified as a branch of mathematics.
      I think CS can indeed be classified as a branch of mathematics. Of course, CS is typically applied to the fields of software development or "engineering" (which is another loaded word), so CS students usually study these skills as well.

      Tom Swiss | the infamous tms | http://www.infamous.net/

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    6. Re:I object to that portrayal by lil · · Score: 1

      The original name for the CS department at my school was "Mathematical and Computational Sciences."

      Math *is* a science. Theoretical computer science is a branch of theoretical math. At least that's how I've always seen it.

      People (especially new students) get the science confused with the application. I commend the submitter of this article for having the foresight to ask these questions before he gets to college and figures it out on the fly like I did. :)

    7. Re:I object to that portrayal by Kalani · · Score: 1

      At least that's how I've always seen it.

      Except that's not how it's always been seen. In fact, the popular notion going back centuries is to place a clear divide between science and mathematics. This is why you'll find debates about whether "math lends more to science" or "science lends more to math." Science is the pursuit of objective reality and mathematics is a collection of lenses through which we may view objective reality.

      In any case, there's a book coming out by Stephen Wolfram that intends to (I think) link his work in automa/complexity with the real world. If this is valid, it would be a new science but the division between the mathematical origin would remain.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
  165. Science vs Engineering by xfdgy · · Score: 1

    In my experience as a chemical engineer, I find that engineers focus more on applications problems and scientists focus more on theoretical problems. There is a very close interplay between the two. It is said that engineers prefer to look things up (equations, solutions, etc) while scientists would rather derive things from the basics. This application to computer science would make me think that CSs would focus on new algorithms, programming languages, limits and design of new architectures for computers, whereas CEs will use these use current methods to solve some sort of application problem. I believe that in an engineer's work you will most likely be focused on some sort of product whether it is a hardware application or software. Whereas for scientists you may be more focused on software or theoretical work. Most of the CSs I know are doing programming or sysadmin type work. But that is at the BS level. Beyond the BSCS level, I know of people with PhDs from UW that are working on design of new chip technologies designing the architecture, compilers, and software support that make the chip work. I think in general that as a BS in any engineering field you can expect to be at the bottom of the barrel as far as design goes. You will more likely be doing the grunt work than doing the high level design. It is at the PhD level where companies are interested in your talents in designing their products. Not true in every case...just a generalization. Hope this helps.

  166. Check out the web sites by SirWhoopass · · Score: 1

    Most courses have web sites (at most schools). It will often have homework, tests, notes, etc.

  167. Who's Smarter? by Knunov · · Score: 1

    This may be a bit off topic, but it's an irresistable question: Who are the smartest individuals in the computer technology field as a whole?

    I'm one of those mile-wide, foot-deep computer people. Like many, I have no choice but to learn a bit of every discipline to be effective at what I do. I'm a hybrid between a network engineer, administrator and programmer. Again, while I do a bit of everything, I'm only *really* good at a few things.

    It seems to me that the common perception is that programmers are the smartest group in the computer technology field. In my experience with programming, I've learned that much of it is simple logic merged with absolutely grueling repetition. This is not to say there aren't brilliant, very creative programmers, because there are. But from my experience, I would say that programming has more to do with a personality type than it does with raw intelligence.

    A good programmer needs to be methodical and precise, but s/he does not need to be a genius, or even of far above average intelligence. Anyone can learn to speak a language, but not everyone can be poets. I believe the same holds true for programmers. I've written perfectly stable, functional code, and hated every second of writing it. I could be a full-time programmer if I wanted too, but I simply dislike the activity.

    A reason for this perception may be because people deal directly with software. People that play Quake will intimately experience the programming of Carmack. But for Quake to run as well as it does, it also takes chipset programmers, CPU designers, hardware engineers, etc. etc. etc. on down the line. Carmack gets (much deserved) credit for his creations, but no one ever gives a thought to the other people that are instrumental in the delivery of quality software. Programmers are like quarterbacks. They get too much credit for victories, and conversely, too much blame for failures.

    Does anyone else sense the subtle, and sometimes not-so-subtle smugness of the average programer? Perhaps I simply am perceiving things incorrectly.

    --
    Why do users with IDs under 100,000 or over 700,000 usually have the most worthwhile comments?
    1. Re:Who's Smarter? by Talisman · · Score: 1

      I agree. Most programmers that I know think much too highly of themselves.

      --

      "Study your math, kids. Key to the universe." -The Archangel Gabriel
  168. CS is better, I think. by PicassoJones · · Score: 1

    Computer Science is not just programming, as some people are having us believe. Computer Scientists do some amazing things with hardware. I am a CS freshman right now, and I'm taking a class on logic design... gates/flip-flops/etc... at the end of the class, we will have built a real computer capable of doing such exciting tasks as adding and subtracting.

    Anyway, the whole point of Computer Science is to give you an idea of how computers work. Sure, you learn how to program, but the purpose of it is to teach you how computers work. This is from the basic hardware of it, down to complex programming theory.

    Computer engineering is more oriented towards using computers. It takes the approach, "look what all these computer scientists have done for us to make these wonderful machines. Now lets do things with them. Of course, a knowledge of what the computer does is necessary, but I think it is not the focus as it is with CS.

  169. I did both -- and learned I hated hardware by feorlen · · Score: 1

    I couldn't make up my mind, so I decided to go with the double major. I was pushed in that direction somewhat by my university, who considered computer engineering to be engineering and computer science to be ... well... something not engineering.

    I actually enjoyed some of the core engineering courses, because I like physics. But the hardcore EE stuff made my head hurt. Having that background does help. But the most important thing was that I learned that I like software. I stuck out the rest of the engineering program, and it's on my resume, but that was the end of it.

  170. A CompE working as a dot-com whore by Smitty · · Score: 1

    To tell you the truth, I learned more about programming on the job then I ever did in school. However, school does give you an important general understanding of the field, and pads your resume. To get a good programming job I'd say choose the major that has the best reputation at your school, or the one that interests you the most. I'd shy away from the pseudo-CompSci majors offered by some business schools. You'll get the most out of an Engineering, Math, CompSci or other hard science degree.

    In defense of my major, I think CompE gave me a broader practical understanding of the inner workings of a computer than I would've had with a CompSci or Math degree. You play with UARTs, microprocessors, etc., on a chip level and use them to build devices. From a programming perspective, this can be helpful in understanding and debugging some performance problems and in dealing with low-level code such as device drivers.

    Also, I've found that my degree's focus on hardware, really helps me understand the latest hardware specs from NVidia and Intel...

  171. What is computer engineering by simm_s · · Score: 2

    As a electrical/computer engineer and a soon to be CS graduate student, I will try to expain this as best I can.

    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 :>

  172. Re:As a Computer Enginnering Student (WRONG) by jmvidal · · Score: 2
    See here, or refer to my other post.

    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.

  173. The difference lies in the pre-reqs... by SuperKendall · · Score: 2

    Really, almost any degree is what you make of it. I myself was a Computer Science major, and I had a lot of friends who were EE majors. We had a huge degree of overlap, I took a lot of engineering course (like digital logic design and computer architecture) just because I was interested in them, and a lot of my EE friends took things like OS design and algorithms for the same reason.

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  174. CS VS CE VS MIS by ThetaMan · · Score: 1

    It really depends on the school here at the University of Nebraska at Lincoln the CE department deals with the hardware side of the code, with a little brush with software. The CS deals with programing, theory, and the normal rigamarol (ie Spaish, Politics in the third worlds, etc.). And MIS makes you into a Microsoft junky where the "internet programming" is using a WYSIWYG editor to create a page and then ask the lab desk staff how to upload your web page using "some ftp program." But seriously it all depends on what your looking for, if you want to build things be CE if you want to make them do something be a CS and if you want to be a manager be a MIS. Of course thats just one school of MANY.

  175. "Interest in Computers" by maxmutt · · Score: 1

    You're interested in computers. Then the first thing is to investigate that interest. Find out what "computers" means. Find out the breadth of what "computers" is and what is done with them; from designing chips and fabrication facilities to writing applications and developing specs to running systems and user support to teaching and everything in between. Then decide what "computers" means to you.

    Spend your time in college investigating the areas that interest you and getting an education in how to solve problems well.

    Learn "how to learn" rather then just what you are taught then any of the areas you are interested in are open to you. You'll know how to educate yourself in a completely different area.

    If your interested in both areas, at least initally take a general class in both. Then maybe major in both, find a combined major or minor in both and major in something completely different.

  176. Computer Science == dotcom whore? by SyntaxError · · Score: 2
    Ok.. i kinda take offense to this as a third year Computer Science Major. My education has been based on theory, algoriths, and fundamental theorems of computer programming and software design/implementation.

    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..

  177. Whatever you do take LOTS of math. by PhipleTroenix · · Score: 2

    As an employer one of my first questions was: "How much math have you taken?". Anyone who hadn't had 2 semesters of calc would never be considered. The more math, usually the more logical the thinking of the candidate. The smartest person I ever hired had a MS in math. Discrete math and data structures are also important, but they are really math classes. I consider programming primarily applied math.

    --
    When VPNs are outlawed, only outlaws have VPNs.
    1. Re:Whatever you do take LOTS of math. by PureFiction · · Score: 5

      This is a typical manager/employer viewpoint.

      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.

    2. Re:Whatever you do take LOTS of math. by Grond · · Score: 1

      As for your assertion that music grads make the best programmers, I think you have a far too narrow and biased view of the skills and talents required to produce good software.

      IBM et al. sought out both mathematicians and musicians. Well, rather, they noticied that the people who were good at programming were mathematicians and musicians, then began seeking them out. Turing, von Neumann, and others were not primarily musicians (if they were at all). They were mathematicians first and foremost.

    3. Re:Whatever you do take LOTS of math. by frekio · · Score: 1

      I think that a lot of good programming has to do with creativity, you have to be able to approach your task in new ways, and be able to come up with new techniques yourself. This is sort of like the musical process of composing songs, etc., and being able to break out of conventional ways of approaching things.
      Also it is interesting that it seems that a quite large proportion of people who are into computers / are programmers seem to play guitar. That might have some relevance.

  178. Choose neither by bcilfone · · Score: 1
    My personal recommendation would be to find something else you enjoy. If you like music, then major in music and get a minor in computer science. This way, you will be able to better apply your computer knowledge to real world situations.

    The problem with majoring in computer science is that the field changes too quickly. CS classes often revolve around a language or two and then get into a lot of theory that is fairly inapplicable to the real world. Then when you have finished, the only thing you have learned is "computers". If on the other hand you major in something else you enjoy (music, foreign language, business, electrical engineering, etc. ) and use your CS knowledge to help you in that major, you will learn a great deal about how the normal business world uses computers for reason and purpose.

    Rarely do good businesses do programming for programming's sake. There is always a reason and a purpose for doing it, and in the end it saves money as unbelievable as that may seem. If you want to do development without purpose, you may want to go into a research field or work at an e-commerce startup.

    In the end, it comes down to what you want to do. Just remember that the computer is a tool used to accomplish a goal. Would you rather take a class on "construction" or a class on "hammers". If every last detail of the hammer interests you, go with CS, otherwise pick something else.

  179. CS vs CE at Brown University by josecuervo · · Score: 1

    I am currently a CE major at Brown university. The way I can best describe it, at least here, is that I am basically doing the regular electrical engineering major, but also supplementing it with basic, as well as a few higher level cs courses.

    This actually turns out to be quite a bit of coursework, and doesn't leave much time for many other classes. I would definately say it is worth it though, because I have interests in both areas. Also, if your thinking about CE...definately start with it. Its much easier to switch from CE to CS then the other way around, at least at Brown.

    For the first year, its nice doing CE, because I get a taste of both hardcore engineering and hardcore cs. I can basically decide to go either way, depending on which I do better in and which I enjoy more. I would definately disagree with the common misperception that CS is software and CE is hardware...I think that while CS is mostly software, CE deals with both.

    The main difference, however, is that CE is an engineering degree at Brown, and CS is obviously not. The engineering degree has a lot of general requirements which CS does not have. I imagine that is true for quite a few schools. Anyway, I suggest if your thinking about Computer Engineering, you should probably start in that department, get all the gen. ed. requirements out of the way, then decide whether you like the engineering part.

    1. Re:CS vs CE at Brown University by alsoc · · Score: 1

      Id say the same here, I go to Cal Poly Pomona and both of the majors are in a big boom period. If you have a masters or Phd the CS Dept. At Cal Poly will definitely hire you. Drop them a note telling them you want to do part time lecture and see what they say the address is: www.csupomona.edu/~cs. Since we have a shortage of CS classes each quarter more tenure track Phd's and part time master degree lecturers are needed.

  180. Not again... by anubis__ · · Score: 1

    For reading /. every five minutes I find it strange that this ask slashdotter didn't know that this question is asked (and posted) at least twice a month.

    But if you ask me, a college degree isn't worth too much in the computer/tech fields unless you're [1] working for a faceless omnicorp (i.e. Microsoft) or [2] you're going into R&D under a University license/grant. Of course if you don't know anything about computers then college or tech school is probably the way to go; if you know what you're doing then its really an unnecessary step.

    --

    "After three days without programming, life becomes meaningless." - Tao of Programming
  181. Algorithm's and impedance. by nezroy · · Score: 2

    I suppose it really depends on your school, but the primary difference I've seen between CS and CompE is the focus of the math. At my university, where I've switched back and forth between CompE and CS several times, the distinction seems pretty clear.

    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.

  182. Here's what Larry Ellison Says by ramparte · · Score: 1

    http://bbspot.com/News/2000/7/ellison_grad.html

    Good Advice!

    --
    "Oh, Senator, you're so gullible!" - Buckaroo Banzaii
  183. Computer Engineering is cool :) by baptiste · · Score: 1
    I was a Computer Systems Engineer at RPI (Class of 92) It was great. We not only learned how to build the computer, but also how to program it. Yes, you don't get tons of high level language training, but enough.

    I had a lot of fun building microprocessor based systems - you get to do hardware AND software (usually firmware) I'll never forget designing floppy interfaces for a PDP-11 from scratch (the PDP-11 uses a 'unique' bus signalling setup), controlling robotic arms with 68Ks to write words with a pen, hacking togetehr stuff with 68HC11 demo boards from Motorola in our dorm, developing a tiny multi-tasking OS in assembler, working with Xilinx FPGAs, etc.

    Another nice thing is at the time it was a 'new' major and not many folks selected it. IN an engineering class of close to a thousand, there were 42 CSYS majors so you developed a close group of peers and friends. Pretty cool.

    So I have to say college would probably have been more boring FOR ME if I was stuck in front of a terminal for 4 years learning C, etc. But in teh end, the Comp Eng market isn't as broad as that for COmp Sci types. But if you play your cards right and build a good software background in your 'free' time, you have a great marketability as long as the recruiter understands what Comp Eng of Comp Sys means.

    Only drawback - the acronym for our major (Computer Systems Engineering) was CSYS - so everyone called use sissies!

    But I got the last laugh (well at first) - I took my CSYS B.S. and was making 6 figures by the time I was 30 workin gfor a telecom company - then I quit my job to start my own business and now I'm broke :) Live and learn!

    --

  184. Try it, and decide by seaan · · Score: 1
    I ended up with a CS degree, but I took a lot of CE courses. My senior thesis was designing a logic analyzer, and writing an interface/control program for it. The biggest differences between the two degrees seemed to be in the "support" classes (lower division required courses).

    The CS major required math like statistics and number theory. The CE major required generic engineering courses like physics, chemistry, etc. The CE major, like other engineering majors, seemed to have more requirements, and therefore less chance to take off-track courses.

    The upper division courses for CE contained more electrical theory, and more math (Fourier transforms, etc.). The upper division CS courses contained more CS theory and practice; compilers, graphics, AI, Turing Machines, etc. I really enjoyed some of the middle ground used by both majors, such as micro-code design, Shannon-Switching theory, Karnaugh diagrams, etc.

    I think it really comes down to finding areas that you like, and taking courses in them. As someone who is in a hiring position now, I don't see much difference between the majors after a couple of years. The one exception is doing something tricky like real-time embedded systems. I tend to think that certain aspects of these projects benefit from the CE/EE background, which is harder to pick-up on the job. Of course, one my first jobs was working with real-time embedded systems, and there were a few CE courses that I wished I had taken.

  185. Double Major in Math by GrEp · · Score: 1

    Don't worry about it for now. Take both intro CS and CE along with a lot of math. With the math background you will be able to handle which ever you end up choosing.

    --

    bash-2.04$
    bash-2.04$yes "Don't you hate dialup connections?"| write USERNAME
  186. Course catalog: Feh by OlympicSponsor · · Score: 1

    I tried doing this I don't know how many times. The course catalog was useless. The only accurate information was when it was held, everything else--topic, professor, location, applicable major--was variable.

    However, your plan suggests an improvement. Find out the course load for both majors and then find students who've taken those classes and ask them what they actually did.

    Better yet, just take those classes that are overlapped between the majors and decide later.
    --
    Non-meta-modded "Overrated" mods are killing Slashdot

    --
    Non-meta-modded "Overrated" mods are killing Slashdot
    (Hey Ryan! Here's your proof!)
    1. Re:Course catalog: Feh by Cuthalion · · Score: 1

      SOMEWHERE it has to say what courses are required for which major, otherwise nobody would be able to graduate.

      --
      Trees can't go dancing
      So do them a big favor
      Pretend dancing stinks!
    2. Re:Course catalog: Feh by OlympicSponsor · · Score: 1

      "SOMEWHERE it has to say what courses are required for which major, otherwise nobody would be able to graduate."

      That's what I kept telling the registrar. Eventually I DID graduate, but it was a close thing.
      --
      Non-meta-modded "Overrated" mods are killing Slashdot

      --
      Non-meta-modded "Overrated" mods are killing Slashdot
      (Hey Ryan! Here's your proof!)
  187. Go to a Preview by Wheel+Of+Fish · · Score: 1

    Another quick tip:
    Go to spring preview sessions at the colleges you're interested in. Many schools hold these, and they're very helfpul. You can usually meet with some instructors and department heads in your preferred majors and discuss what you're actually going to learn, what the classes are like, etc. I found it very helpful for me.

    -Gabe

  188. Job Titles and what they really mean: by Art_XIV · · Score: 1

    Software Engineer: A person who talks about programming, but seem to never actually do any. A person who knows what the "Booch Method" is. Often hired by non-software companies to create impediments to software creation.

    Programmer: An individual who knows how to make operating systems do stuff with arcase "programming languages". May or may not have a degree. Often "fell into" the profession from another field.

    Web Developer: A person who knows HTML and some Javascript. May or may not know a wee bit of Perl or how to make an applet. Possibly knows VBscript. Almost never knows what an associative array/hash is or what it is good for.

    Developer: A web developer who has been fired several times. Now knows what linked lists are. Can possibly do Java Servelet, COM objects, or use mod_perl or PHP.

    Project Manager: That man/woman who keeps telling you what to work on next. Most likely has experience as a Developer or Programmer.

    Senior Developer/Programmer: As above, but gets to go out to lunch with clients every now and then.

    Systems Administrator/Network Eng.: Person who takes care of the network. May or may not have technical degree. Almost never around when really needed. Adept at explaining why firewalls are a good thing. Will either refuse to allow Linux/BSD systems on the network or will be trying to replace all systems with *NIXes.

    Web Designer: Pains in the *ss. Often don't even know HTML. Really know his/her way around Photoshop/Gimp.

    DBA: Makes "schemas". Often creates stored procedures. Knows what "Third Normal Form" is.

    --
    The only thing that we learn from history is that nobody learns anything from history.
  189. It depends on the profs by color+of+static · · Score: 5

    I've watched a CS and EE department fight over how a computer engineering degree is defined, and what I really got out of it is that it depends on the professors that are in the department.

    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.

  190. To be repetitive... by 2nd+Post! · · Score: 2

    To repeat what everyone else is saying, Math cannot be avoided if you're interested in computers ^^

    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!

  191. Call (or visit) the school, talk to professors... by DarkBanshee · · Score: 3
    The most important thing is to pick the major that appeals to you most personally. Contact people at the school (I realize that an actual visit may be hard, depending on location) and talk to the professors and some students in these departments. Don't rely on the catalog (you probably already know that). Don't rely on Princeton Review (their selection system is so generic as to be nearly useless for such a specific query).

    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...

  192. You guys are cool.... by Chris-en-topper · · Score: 1

    I double-majored in Philosophy and CSc and am getting my MS in CSc in May. Definitely the liberal arts courses have shed light on the technical courses, and vice versa. It's also going to be very good for your upward-mobility in your professional career that you actually have the ability to write a clear paper or memo: many CS/CE people can't.

    1. Re:You guys are cool.... by johndiii · · Score: 1

      In reference to your comment on the ability to write a clear paper or memo, this is very true. If you want to have any kind of upward mobility, this ability is essential. Every developer should have the ability to write a coherent functional specification, but they often do not.

      When hiring developers, the resume is usually a pretty good clue to their verbal skills. Sometimes, though, there is too much intervention by a recruiter.

      --
      Floating face-down in a river of regret...and thoughts of you...
    2. Re:You guys are cool.... by Issac_Hayes · · Score: 1

      I'm doubling in Applied Mathematics and Computer Science. It is trying to kill me.

  193. double E by Louie-the-geek · · Score: 1

    You might want to consider an EE degree over a CS. I have one and it served me well. I'm a Dir for a large telco. Its great if you like hardware. My specialty is networking:ATM, FR,WAN, LAN, VPN, IP-SEC, VoIP,etc. Employers are constantly in great demand for EEs, thats why there are two EEs in the word GEEK. Its a great profession, and you can still do the software programming route.

  194. The Skinny by Majik+Sznak · · Score: 2
    Computing Science deals pretty much exclusively with software. You go into a lot of detail concerning algorithms, computing theory, and other things that are very academically interesting. Usually, Computer Engineering deals with hardware and software. It's like a mix of Electrical Engineering and Computing Science.

    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.

    --
    Karma: Chameleon (Mostly affected by the 1980s)
  195. Computer Engineering vs. Computer Science by jbfung · · Score: 1
    There is a HUGE difference between the two programs - at least, in the Canadian school system there is. A quote I pulled from this thread stated that

    "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. .... 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.

    I warn, that from my experience, this is a very erroneous opnion. First of all, I am currently studying Computer Engineering at the University of Waterloo - and there are many differences. The biggest is the amount of choice you have and how well you can tailor your studies to your desired direction. Because CE is a professional course, there are more stringent rules on the courses you can take. Not only do you have fewer slots where you are even allowed to make a choice, but they really restrict those choices to a few courses. In CS, students are allowed more freedom, and can graduate with an education that is more specifically tailored.

    There are pros and cons to each - the CE degree gives you an engineering background, giving you many options careerwise - but if a job is looking for a very specific skill set, the CS grad might have been able to fit themselves into that niche better.

    If you are unsure as to what you'd like to do, and if you don't mid giving up the choices, I'd chose CE because it will give you a wider knowledge base, and you will be given most of your schedule (which is much easier than trying to find a schedule that fits). If, however, you have a clear view of what kind of career you want, CS might be the better choice for you.

    In terms of curiculum, CE has a wider base of courses - you have to take more physics, chem and technical breadth courses. This does, however, mean CE has fewer interest courses like cryptography and our programming courses are nowhere near as indepth. I know at least one student who switched from CE to CS because CE would not allow him to take the courses in which he was interested.

    These two studies are very different - but this is just the opnion of 1 student. If anyone wants to ask any other CE students their opinion, you can post a message on my class's bulletin board - http://www.ComESutra.ORg/web/YaBB/YaBB.pl

    --
    "Lest you should question my sanity, I should add that I don't value sanity very highly." -- Jim Harrison
  196. Re:As a Computer Enginnering Student (RIGHT) by Pulzar · · Score: 2

    I don't agree with you. Have you seen any CS students taking digital/analog electronics, signals & systems, VLSI design, etc. courses?

    CS students take digital logic design courses, but those alone could hardly be called "hardware courses".

    ----------

    --
    Never underestimate the bandwidth of a 747 filled with CD-ROMs.
  197. An anecdote to help you decide.... by Langley · · Score: 1

    My advice to you, find the school with the best curriculum, one that actually sparks your interest, and a campus that has liberal drinking rules (you'll know why after you try to wrap your mind around IEEE floating point binary numbers the first time)

    Good Luck

    Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?"

    One advisor, an engineer, answered first. "It is a toaster, " he said. The king asked, "How would you design an embedded computer for it?"

    The engineer replied, "Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and quantizes its position to one of 16 shades of darkness, from snow white to coal black. The program would use that darkness level as an index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I'll show you a working prototype."

    The second advisor, a computer scientist, immediately recognized the danger of such short-sighted thinking. He said, "Toasters don't just turn bread into toast, they are also used to warm waffles. What you see before you is really a breakfast food cooker. As the subjects of you kingdom become more sophisticated, they will demand more capabilities. The will need a breakfast cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don't look to the future, we will have to completely redesign the toaster in just a few years.

    "With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork, and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes, and waffles; pork into sausage, links, and bacon; and poultry divided into scrambled eggs, hard-boiled eggs, poached eggs, fried eggs, and various omelet classes.

    "The ham and cheese omelet class is worth special attention because it must inherit characteristics from the pork, dairy, and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create the proper object and send a message to the object that says, 'Cook yourself.' The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs.

    "Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don't want the eggs to get cold while the bacon is frying, so concurrent processing is required, too.

    "We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won't buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the message 'Booting UNIX v. 8.3' appears on the screen. (UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook.

    "Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel 80386 with 8MB of memory, a 30MB hard disk, and a VGA monitor should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!). We should have a working prototype within the next 9 months to a year."

    The king wisely had the computer scientist beheaded, and they all lived happily ever after.

    1. Re:An anecdote to help you decide.... by Zulu · · Score: 1

      EXCELLENT!

  198. Tools! by michael_cain · · Score: 1

    It may not apply to the difference between CS and CE question, but the difference between a decent CS degree and someone who just programs (a topic that many others have raised) is that the CS person has learned enough to build tools, not just use them. You may use someone else's parser-generator, but you know enough to build a simple one if you want to. You may use someone else's thread coordination package, but you understand what semaphors are for in that context. You may use someone else's FIFO class, but you could write a passable one yourself.

    Some people will be able to learn this stuff with just a textbook; many will do better if they have a structured curriculum that puts you through classes in a reasonable order and access to an instructor that can explain concepts in more than one way.

  199. My own experiences by Kallahar · · Score: 1

    I am a senior this year at the Oregon Institute of Technology. I'm getting a B.S. in computer hardware and a. A.A in computer software (yes, software is an art here).

    The difference I see is that the hardware side deals with programmable hardware. You write the code that controls an extremely fast dedicated piece of hardware that is special purpose.

    In software you're dealing with general-purpose computers, operating systems, etc.

    So, if you want to work with OS's then go software, if you want to work with closed, custom chips then go hardware. If you want to deal with capacitors and that sort go electronics engineer.

    Kallahar

  200. Check out Software Engineering instead of CS by devinhedge · · Score: 1
    I've gone 'round and 'round on this and finally come to the conclusion that for developing software and application that Software Engineering is a better approach than Computer Science. This is mostly because a CS major (usually) approaches a problem from a "discovery" point of view. A Software Engineer tends to have a more methodical approach to the problem space. Both are good majors but each one takes a different approach. I prefer the Software Engineering approach as I turn out better code in large, complex projects. I would be curious to see if there has been any studies pitting project complexity and size to the majors of the developers.
    Now, I haven't mentioned Computer Engineering. Why? There is nothing wrong with Copmputer Engineering. There are two schools of thought in Computer Engineering. One school of thought is that you create a generic system (such as the Intel platform) and force the computer science and software engineers to create the compilers for the chipset. The other school of thought is a little old school but has applications today. The school maintains that the computer itself should have the application/program hardcoded into the chipset. This is great for embedded applications like robotic controllers or automotive applications. In this school of thought there is a lot of overlap between the colleges of Eletrical Engineering and Computer Engineering.
    I imagine by now I have you totally wondering which one you will want to go into. Well, in the REAL WORLD it is safe to say you need Electrical Engineering, Computer Engineering, Computer Science, Software Engineering, and Computer Information Systems/Management Information Systems people in order to make a complete system. You also need analysts, configuration managers, system architects, software architects, business architects, system administrators, network engineers, and network administrators because the modern computer system in a business is inter-connected with so many different systems. In order to you to make an educated decision, I suggest an intership between your Freshman and Sophomore years in school. Keep in mind that each position is a part of a complete system, and you have to decide what part you like and focus on that.
    Another way to look at it, is that each position can be described in terms of the of thier relationship to the User and the User Interface. Starting with the User and moving through the system all the way to the actual logic gates on the chips you have the following positions and thier best suited majors:
    • Project Managers and Business Analysts (MIS/CIS)
    • GUI Designers (CIS/CS/Software Engineer)
    • Middle Ware (CS/Software Engineer)
    • Operating Systems (CS/Software Engineers/Computer Engineers)
    • BIOS/Chipsets (CE/EE)
    • chip design

      • This is just what I have witnessed and I imagine there are other takes on it.
        Devin.
  201. My experience is... by simuloid · · Score: 1

    When I went to school at the University of Michigan 15 years ago, the difference was this: computer science was purely software and theory, with upper-level courses being compiler construction, operating systems design, and computation theory. Computer engineering on the other hand emphasized hardware, in particular digital design, small computer design, and interfacing to external devices. As for your main question, make the choice based on what you like. I was already a pretty decent programmer when I applied to college, and I wanted to learn about how computers worked, so I went the engineering route. If you just like programming and don't ever want to build or design computers, then go the pure CS route. BTW, companies in the U.S. are currently hiring people regardless of degree if they have suitable experience/abilities in web programming.

    --

    Unfathomable details are the soul of the law.
  202. Computer Engineering by MrEnigma · · Score: 1

    Currently I am a Computer Engineering major at University of Minnesota - Twin Cities. What computer Engineering is here, is a mixture of Electrical Engineering and Computer Science. The basic coursework (meaning math, physics, gen eds.) are all the same. Computer Engineering's coursework is about 40% Computer Science and about 60% Electrical Engineering. So you still take programming classes and such, but have the "hardware" aspect with it.

    Anyhow, anybody not wanting to sit in a desk all day and program, I would recomend getting a Computer Engineering Degree. Also, if you were thinking of EE at all, but want to do something with computers, go Computer Engineering. You still have a lot of the programming background, but also a lot of design/hardware background.
    -----

    --
    GeekWares - Buy and Download Today!
  203. 3rd option: Information Systems by Anonymous Coward · · Score: 1
    Another option is Information Systems. The program I attended at Drexel University was basically computer science without all the math.

    Most students seem to follow a more business-oriented IS path. Through electives you could pursue a more computer science-y path.

    The IS department had, IMHO, some better AI classes than the computer science department. The CS department AI course was basically just LISP programming, and which I was disappointed by.

    The IS department had an AI survey class which covered A* search, neural nets, and other approaches. The IS department also had a Prolog-based natural language course.

    The IS department also dealt with things like usability, UI, databases, telecom, etc. More application-oriented and more user-oriented, generally.

  204. Re:Don't do either -- Physics by Jammer@CMH · · Score: 1

    I got a Physics MS. Worked for me just fine.

  205. Remember Kindergarden by changos · · Score: 1
    If you liked to build stuff:
    Computer Engeneer
    If you like to brake stuff:
    Computer Science(braking what CE's build.

    And that is the simple answer

  206. pay? by jazzman45 · · Score: 1
    i'll probably get moderated down, but if you can reply back and tell me how the pay is for Computer Engineering vs. Comp. Sci. then please tell me!!

    I'm planning on doing comp. eng. at University of Kansas and a co-major in Japanese. will japanese even help much in computer engineering? will that give me a raise??

    bye,
    -jimbo

  207. My 2 cents by Mik!tAAt · · Score: 1

    I am currently studying at the Department of Information Processing Science(TOL) in the Faculty of Science at University of Oulu for the 1st year, and i switched from the Department of Electrical Engineering(EE) in the Faculty of Technology from the degree program of information engineering. I had exactly the same problem within these two options, and i believe these are quite close of what you are facing. Anyway, I've studied in both of these departments for some time, and here's what i've come up with: The main difference between the above mentioned departments is that EE focuses on what is the theoretical basis for computers and other electronical devices. It also teaches how to code for DSP's for example. there's also some sw engineering courses. TOL, on the other hand, focuses on the high level software engineering(UML etc.) and the processes that are required to handle large projects. We also research hypermedia and it's applications. There's virtually no math, not a single course of physics. Because of the wide area of teaching in EE, there's a lot of math and physics, so the student has sufficient theoretical background information. The bottom line: EE is hardware-centric, ie. 'how can we do it?' and 'how does it work?', and TOL is more user-centric, like 'what can we do to make this actually useful?' and 'what could we do with this new stuff we just got?' and most important 'how can we make a good piece of software?'. Those who graduate from EE are most likely to end up working for the Evil Empire (Nokia R&D's a couple of hundred meters from the uni), but the actual field of work may vary from HW designer to SW engineer coding Windows software. TOL gratuate's field of work may vary from SW Engineer to different kind of Analysts to Project Managers and even Webmasters. I chose TOL, because as a coder i find it useful to be familiar with the whole software process. This is my 2 cents, and i live in Finland. The situation is probably very different in the US, but I hope this helps.

    --
    This is the place where you write something that will make you seem like a complete idiot.
  208. Not so ridiculous by 2nd+Post! · · Score: 2

    It's not the ridiculous.

    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!

    1. Re:Not so ridiculous by Kalani · · Score: 1

      Thank you for your post. I think that I've addressed these issues in this thread.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
  209. Coming from a CE major. by _marshall · · Score: 1
    I've been programming for ~5 years (I started when I was 13) Programming is fun, but learning new languages etc. Hasn't been challenging me in the past year or so. There are many things I can't do i.e program kernel drivers, etc.. but I hope to be doing this at the end of the year.

    Anyway, My dream has been to design some sort of DSP within my life time, so I chose CE over EE for a few reasons:
    • EE is a more rounded off Electrical Major. EE will let you design chips and boards, but not just for computers (think specialized devices, consoles, etc..)
    • CE is more tailored to Computers and embedded devices. CE also covers low-level programming, and hardware implementations of certain software algorithms.
    • CS wasn't a choice for me.. I think I could learn some programming techniques, but in the long run this keeps me on the higher level of things (still a good major, as it covers many theoretical algorithms and software design)

    CE was my choice, because not only do I want to design chips, but I also want to do some low-level coding. It's all a matter of preference
    HTH,
    ~Marshall

    -------------------
  210. majors are basically irrelevant by gilez · · Score: 1

    just a note. I went to college for one year. it was a liberal arts school with no computers except for a few macs for word processing. I dropped out. now I'm a web developer in the bay area doing java, perl, weblogic, etc.

    if yr wondering what companies are looking for, they're looking for work experience. beyond that they won't give a flying fsck. you could get a major in bestiality if you wanted, all that actually matters is that once you do get a job, you do good work and learn useful skills.

    I'd say don't sweat it at all. study whatever you feel like studying. don't waste time wondering what potential employers are looking for, bkz the fact of the matter is that, with the exception of the first job you get, yr education is not really gonna mean anything to anyone. unless you have a PhD in cryptography or something equally interesting and unusual.

    which you'd basically only get by studying what interested you to begin with. :-)

  211. Computer Engineering & Computer Science by hoyhoy · · Score: 1

    I asked myself the same question as I entered college. Should my major be Computer Science, Computer Engineering or Electrical Engineering? I was especially confused because at my particular University (Ohio University), there was a Bachelor of Computer Science in Engineering, and a Bachelor of Computer Science in Art & Science degrees with different college requirements for each. This further complicating the already overwhelming situation. Since I really was interested in hardware and software, I just wanted to be "in the know" about everything so to speak. So, I chose computer engineering because the degree was certified by ABET, and because I could take basically any EE or CS class I wanted too. This approach isn't for everyone though. I ended up with about 256 credit hours (OU is on the quarter system) when I was finished. Over 60 hours more than what was necessary. But, after I was done, the depth of my understanding about hardware and software and how they interact and work was much more developed than someone who *ONLY* studied hardware or someone else who *ONLY* studied software. My advice to an undergraduate is, learn and experience all that you can academically while your getting your Bachelor's Degree. Specifically, about Computer Engineering vs Computer Science my advice would be the following. If you like to design hardware, software, and enjoy science Computer Engineering is a degree that will help greatly enhance those skills as it has done for me. If you enjoy more of the mathematical nature of computing, Computer Science is a great way to develop that. hoyhoy

  212. Engineering is Better, IMHO by LostScorp88 · · Score: 1
    I am in the same situation as you - I will be attending college this fall, and I will be starting off with a computer engineering major. To be a comp. engineering major, I needed to apply to the engineering schools at my colleges of choice - to be a comp. science major, I think it is in the Arts and Sciences schools at most universities.

    I personally found the engineering major much more interesting and valuable. My reason is this - as a comp. engineer, you learn about the low-level operations of a computer. This allows you to understand WHAT is going on, not just how to tell the computer how to do it. As a comp. science major, you learn theory and code, and this is great if you want to be a coder, but remember that languages constantly change. With rare exception, the basic operations vary little. I think it is more useful to be a comp. engineer. If anything, it will improve your hirability. That's hardly an issue for any computer-related major. A comp. engineer also gets a background in engineering, which can be useful in real-life. Good luck at whatever you choose!

  213. Go with Computer Engineering by Gazoomba · · Score: 1

    The course I took was 3 years (vs 2 years in CS) and much harder. It better prepares you for the work force. To be honest Queens University here in Kingston hires Computer Engineering students from our local College instead of Computer Scientists from their own course when it comes to summer software programming work they need. And no its not because their students are all busy in other jobs. Its a fact and im sticking to it :) And to be honest I remember helping someone in second year of CS and i couldnt believe just how little they knew. When I make hiring decisions today I'd choose a Computer Engineerer over a Computer Scientist of the same level any day (I wouldnt touch an Electronic Engineerer mind you).

  214. CS vs CE by Peter+Simpson · · Score: 1

    In my school, CS was one dept, and CE was taught out of the EE dept. It was basically an EE course, without Laplace and DiffEq courses, and logic courses, instead. If you like software, that's good, because there are going to be many more software jobs than hardware development jobs (IMHO). Features nowadays are enabled by the hardware but created in software. And we hire three to five software developers for every hardware developer where I work (networking hardware company). If you like hardware, be prepared to like it on the atomic scale, because you can't make any money building discrete systems. Integration is the key, and design is more and more like software engineering with Verilog and VHDL. But don't forget about those pesky real world issues, like heat and noise :-)

  215. Another option... by _Lint_ · · Score: 1

    Since CompE and CompSci are so closely related,
    course-wise, you might consider going CompE, and
    loading up on CompSci courses for your electives.

  216. try living life by democritus · · Score: 1

    there is more to the world then reloading Slashdot every five minutes. As many others have said, choose what interests you, what makes you happy. But also remember that life exists beyond the confines of the x-tube lab.

  217. Depends a lot on the school by bork_the_destroyer · · Score: 1

    I recently graduated with a CprE degree, and while interviewing one of the interviewers told me that for the same skill set as a bachelors in CprE, they would look for a Masters in ComSci. Of course that was just my school. There a CprE degree was a basically just EE degree with a ComSci minor. So we got our hands in just about everything depending on what electives you took.

  218. Advantage of CE over CS by Pulzar · · Score: 2
    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.

    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.


    ----------

    --
    Never underestimate the bandwidth of a 747 filled with CD-ROMs.
    1. Re:Advantage of CE over CS by Anonymous Coward · · Score: 1
      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.

      What ?!?
      I designed uProcs and chipsets for 5+ years (Intel). ALL I do is programing. Perl, VHDL (or iHDL), C/C++, and what ever goofy proprietary languges got thrown at me.

      Regardless of what your degree (assuming you work in hardware design), you'll start off in validation. Then you get to choose to specialize in Logic desgin (logic gates and VHDL) or Circuits (fast transistors and proprietary languages). As a logic designer I joked that I wrote software that compiled to silicon. If you're on a big team (uProcs) you'll rarely get to do both. If you're on a small team (chipsets), you have to do both because no one else is around to deligate to (or circuits get automated by Synopsys or another tool).

      At Intel and I assume most mega-corps, we will NOT hire a non-engineer to do hardware design. We will hire an engineer to do software design, but only if a qualified CS is not around. Of couse, this degrre of specialization to probably an extension of the big/small team idea.

      Of course, this is just one person's experience with one company. Your mileage may vary.

  219. Start out computer engineering by stravinsky · · Score: 1

    My opinion is that a computer engineering degree is more flexible and valuable than one computer science. It is also "harder" to earn (at the institutions I have attended, anyway). As previous posters have stated, it is indeed more heavy on the math. Do not run from this, though, because if you make it through then you are that much more qualified to work on problems that require the math. In four (maybe five 8-)) years you may find yourself wanted to tackle harder problems in graduate school, and the more math you know the better off you are. Besides, understanding mathematics is a blast and enhances your confidence (and competence) in any professional situation.

    In most cases, it is quite easy and reasonable to switch from a computer engineering to computer science. Going the other way, however, is harder. Why is that? Because you don't have the math background. Actually, this is true with far more than just CE/CS. A student can hop from a physics or engineering major to just about anything else related to science, math, or engineering at the university. It is also good preparation for an advanced techical degree. Computer science is also good preparation for graduate school, but not as good as engineering. Either way, your undergrad experience is full of useful tools for your advanced work. The computer engineer, however, will know a lot more math, and quite a bit more about hardware, in addition to computer programming.

    Simply put, my opinion is that the more rigorous your academic program, the more valuable you are going to be to employers, and more satisfied with your career and intellectual development in the long run. Most people choose the easier path.
    (I should mention here that both ECE and CS are hard, relatively speaking. You can't really lose choosing either one.)

    By the way, I have a BS in computer engineering, a MS in electrical engineering (minor in CS) and all but dissertation in EE (minor in music). I am still working on this last one. I consider myself to be a computer programmer at least as good as those who studied pure computer science. So, studying computer engineering does not preclude becoming a good programmer, or even doing programming full time after graduation.

    John

  220. references by lynette · · Score: 1

    Just to add something more "interesting" to this thread. Does anyone has any references to North America universities rankings based on computer science programs?? Or any comments on any North America university that has a good computer science program??

  221. What I did... by ParisTG · · Score: 1

    was take both. The University I'm at (University of Western Ontario) lets me take Computer Engineering and Computer Science concurrently, and graduate with both degrees in only 5 years. And a nice benefit of going into engineering is that you can then become a fully licensed Professional Engineer (which actually MEANS something up here in Canada). A major difference between the engineering vs. the science program, is that science tends to focus more on the theoretical knowledge, and engineering on the practical applications of the knowledge. Basically, look into exactly what each program offers, and how that would fit into what you want to do.

  222. You've got it somewhat backwards. by 2nd+Post! · · Score: 2

    I think you're mixing up computer science, software engineering, and programming.

    Computer science, to stress the science, is real. It touches complexity and information theory, entropy, transmission and coding theory, algorithmic analysis, and statistics.

    CS is an artificial construct only as much as math is our approximation of the way information is conveyed, or physics an approximation of the way the universe works.

    CS is separated by math by only a thin boundary, at parts.

    Languages, kernels, etc, are software implementations of CS theory and thought. It is a step lower than CS, and on the job experience is not enough to qualify for CS status. I'm not very good at CS, myself, but have some of the training from college.

    Everything you're talking about concerning CS is more related to programming and work. "How many times have you had to learn something for a specific project and never had to use it again." Deals with programming and instances, not with algorithms, complexity, computability, efficiency, or optimization. All of the above is closer to CS, and as such are irreduciably common to all problems.

    Being good at CS doesn't translate to being good at programming. Compare CS to being good at critical analysis and diagnosis, where programming is being good at surgery.

    One is a thought game, the other an implementation one.

    Geek dating!

  223. A CompE speaks out by Anonymous+Cow · · Score: 1
    (Disclaimer: I'm biased. This major was made for me. I chose my major when I was a freshman in high school, and I would've chosen it earlier had it existed in its current form before that. Also, I can only speak for UIUC's (U. of Illinois Urbana-Champaign, or as I like to call it, Under-Construction) program, since I've spent all of my college career there so far in the CompE program, and I'm currently a senior.)
    CompE here is more or less a blend of EE and CS. It's actually not much different than a double major in the two (which I once considered, but realized that I couldn't finish in four years and keep my sanity). Oh, before I forget, ECE = Electrical and Computer Engineering (the department name). Here's a brief rundown of the main points of the three programs here:
    • EE: The majority of the technical classes focus on analog circuits and signals. A lot of people here with EE degrees get into microwave/radio communications and high-power applications, but there's plenty more to be done. You're also required to take a rudimentary digital design course which gives a broad overview of CPU design by the end. You do have two CS required courses, which give you a great CS foundation, but there's a LOT more you could learn, and with just two semesters' worth of CS, you really don't end up with enough practice (the best way to learn how to program is to program a lot). Also, the math requirements aren't quite as stringent as CS or CompE. You can take plenty more CompE-style electives (CPU architecture, digital signal processing, x86 assembly, VLSI design, etc.).
    • CS: The general consensus among the EE and CompE crowds (and even some CS folk) is that it's an easier program. Of course, I'm sure much of this reputation comes from the people in ECE who partway into the program realized that they really just don't like ECE, or they don't want to take the analog and electromagnetics requirements for CompE. You get an excellent background in stuff any good CS program should have (combinatorics, data structures, software engineering, etc.) You can also specialize in many fields (OS design, AI, graphics, etc.) The physical science requirements are very slightly relaxed compared to ECE. Compared to CompE, the low-level programming is incredibly weak (IMHO, an understanding of low-level programming will help you tremendously in high-level programming). Take CS if you want a career in any sort of programming, software engineering, or some sort of algorithm research.
    • CompE: We have all the core technical classes common to EE and CS, plus our own core (CPU architecture, an incredibly practical low-level programming course, and a lab involving designing circuits with TTL, a PLD, and a microcontroller). Our technical electives can come from either CS or EE, so you can specialize or generalize as much as you want. Unfortunately, we have to take a hefty dose of analog signal processing, electromagnetics, and solid-state devices. CompE is perfect for anybody wanting to go into CPU design, embedded systems, or low-level programming of any sort. I'd really reccomend this major for anybody who isn't sure whether CS or EE is better, since you'll have no problem finding a career in either field.

    Really, the best thing you can do is just jump in, take a few classes in any of these that you're interested in, and then make a descision. Even if you end up in a career you don't like, any of these three degrees have a reasonable amount of lateral mobility (especially CompE) between any field in electronics or software.
  224. Lots of overlap, but some key differences by mttlg · · Score: 1
    The details will vary by school, but here's what I found out about the two at one school while I was working on my EE degrees:

    Computer Science (CS) requires no real engineering, but Computer Engineering (CE, although the actual designation was EEC, since CE was Civil) requires a CS courseload just about sufficient for a CS minor. CE is really Electrical Engineering with a concentration in Computers, while CS can have concentrations in many different areas, with or without any hardware or engineering. Changes in major almost always went from EE/CE to CS and not the other way around - it was much easier to get a CS degree than an EE degree, although clueless people still managed to get through with an EE degree (maybe not a CE though).

    Confused yet? There's an easy way to start things off - don't make your final decision yet. Plan to take introductory courses in both CS and EE (or CE if those are separate). By the end of your first year you should have a good idea of where your interests are. If you like playing with code and algorithms, CS is probably your best bet. If you have an interest in logic and processors, as well as basic electronics, stick with CE. If you want a good background that can lead into many different kinds of jobs, go with EE and just take whatever classes interest you (if your school's EE program is flexible enough).

    In the end it really doesn't matter what your degree says, what matters is what you can do. I only had a basic background in programming and digital logic, but Compaq and The Mathworks both had an interest in me (Compaq gave me a big offer, Mathworks was too slow) because I demonstrated that I was capable of doing whatever they wanted me to do. I ended up picking the job that seemed the best for me, which was in the area of communications, which I had a bit more of a background in. Having a Master's degree really helped here - it only took me another year and a half, it didn't cost anything (except for books), and I still got a decent paycheck each month. The advanced degree made me look a lot better to prospective employers because it gave me a lot of good real-world engineering experience (in other words I got to sit in on endless meetings and also work on a successful project). Now if they would just stop trying to give me jobs...

    In short:
    -Just start taking classes, pick the exact major once you know more about your school's programs.
    -Do what you want, not just what you need to do to get the degree.
    -Don't worry about what companies will want, if you have the ability they will be interested.
    -If possible, get your Master's degree right away.

  225. CS and CE under different colleges by mashy · · Score: 1

    At many schools, if you absolutely declare no major, you're put into a very general program and you'll almost likely fall behind.

    Many colleges each have their own set of requirements of classes you have to take. The problem at many schools is that Computer Science and Computer Engineering are in separate colleges. CS is often considered a pure science, where CE is usually in the Engineering Department (and often under the Electrical Engineering major).

    Unless the required classes first semester are the same in CS and CE, you should probably decide which you want before you go.

  226. CS or CE by Zulu · · Score: 1

    Of all the CS students I've known, none of them have had any clue at all. The two CE students I've known, had their sh*t together. I'd personally go and talk to people who have graduated from both programs, see who you think has got more out of their respective program. In the end, it's really up to you - just make sure you're well informed. If an add says that a "BSc CompSci" is required, all they really mean is they want someone who has had some formal trainning.

  227. I guess times have changed... by aschlemm · · Score: 1

    When I was a CS major in the early to mid 80s the CS program was impacted. Because of this I was forced to become a pre-computer science major. I had to take quite of bit of math and and some lower level CS classes: The lower-division classes were pretty much programming languange oriented. The major required us to learn Pascal, and IBM 360 assembly language at a minimum. From there the required upper division classes were much more involved and included:

    1) Data Structures
    2) File Structures
    3)Systems Programming: I wrote an assembler and CPU similator in this class.
    4)Programming Languages: I got exposure to more exotic programming languges: like Lisp, Ada, and SNOBOL
    5) Hardware: This was an intoduction to hardwere and we also did some assembler in the class. We had a choice of Z80 under CP/M or x86 under DOS.
    6)Operating System Priciples

    After the required classes we then had more choices depending on what speciality we choice. I liked compilers and operating systems and so I did System software. I wrote a compiler in Modula-2 that generated code for a Pascal-like language. I also took a Operating System Pragmatics class where we wrote an working OS using a Modula-2 cross compiler that ran on a DEC Vax. The compiler generated 68000 code that we downloaded via a serial connection from the Vax to AT+T 3B1 systems. The OS class was probably the hardest class I ever took as all of my free time was spent in the systems lab the semester I took that class.

  228. Too broad. by Calamere · · Score: 1

    What is taught to CSE and CE students can vary and is so broad that I don't think it matters a whole lot. I have friends takeing CE and I'm in CS and we can both program but he knows a little more about hardware/electronic but I know a little more theory. Nothing you couldn't learn from picking up a book.... Since computers are too new and evolve too fast in the world, unlike cars say, it's hard to say but down a curriculum in a school and say "This is what's best to learn." Have a look at what you like doing more, hardware or software, but know that both a CS and CE will probably get you to about the same place. Where you go after that will have the most effect on your career.

  229. A UK Computer Science Students view by -douggy · · Score: 1
    In the Uk universities (well the good ones :o)) offer either CompSci or Comp eng. My uni offers a 3 year computing course that would probably be comp sci, but if you do the 4 year masters course it is tied to the engineering sides of things.

    Most companies i have visited or spoken to at opendays dont seem to mind much as long as i am a suitable candidate for a job. ie if you want to go into networking Comp eng might be better but if they wanted a programmer i could still do that job having taking the required modules at uni.

  230. A degree is similar to a job title by notyou2 · · Score: 1

    Another take on your decision: bear in mind that your choice of major operates in some respects like a job title... there are people in the world who will read volumes out of the words in your degree, without regard for what's actually behind the degree itself.

    What I'm referring to specifically, is the fact that a CE graduate has the word "engineering" in their degree.

    If one day the entire computer industry collapsed (or alternately, you got completely sick of it), the fact that you have an engineering degree would be a saving grace... many employers (semi-rightfully) regard an engineering degree as a very flexible and useful background.

    As far as software is concerned, there isn't THAT much difference between a CS and a CE major... it's almost as slim as the difference between an Applied Mathematics and an Abstract Mathematics degree. But don't underestimate the added value of that single word: engineering. Both on paper and in practice, it means that you're getting a little extra something with your education in the way of problem solving and practical knowledge. And smart employers realize this.

    As many have pointed out, CS and CE people are quite capable of performing many of the same tasks and jobs (at least as far as software is concerned). Also as many have pointed out, depending on the jobs you take and the experience you get, CE vs CS will have little-to-no meaning a few years after you graduate.

    So unless you're planning to pursue a highly theoretical and academic computer science career, I would personally suggest going for computer engineering instead. If there's anything from the CS curriculum that you'd feel like you were missing, then by all means just take those classes too, for credit or not! Or get a masters.

  231. what do you consider a "Math" course? by _Lint_ · · Score: 1

    Signals and Systems, Digital Signal Processing,
    digital Control Systems, Analog Control Systems,
    Linear Circuit Analysis, and Electrical Science
    are all courses that...
    1) CompSci and Math students rarely take
    2) CompEng students will take
    3) Are basicly math courses, as anyone who has taken them will tell you.

    That said, at least at Clarkson (where I went),
    Both CompSci and CompE students took basicly the
    same math courses (math in the strict sense), but
    it was the courses like Compiler Construction (for CS) and Digital Signal Processing (for CompE)
    that seperated the two.

    CS is more "discrete and combinatorial" math, while CE is is more "nasty page-long calculus problem" math.

    Just my $0.02

    1. Re:what do you consider a "Math" course? by jfinke · · Score: 1

      I would consider a math course, one which the math department teaches and is listed in their catalog.

      Now, I personally believe that everything is mathematics. I think that you would be hard pressed not finding any subject that cannot be explained in mathematical terminology. Math and logic are the bases for our communication. If you want to look at another subject, say Physics. It is just applied mathematics.

  232. I would choose the 3rd option by chersk · · Score: 1

    1. computer engineers deal with bits 2. computer scientists deal with bytes 3. rock and roll starts deal with chicks (or dudes), money, fame, glory and fun. study music and choose 3.

    --
    "just another ugly toad waiting for a kiss from a princess"
  233. why not split the Difference..Computer Tech by dghxc+fhgxd · · Score: 1

    have you considered Computer Technology itself.. it (nin the case of Purdue university anyways) contains a good mix of what you would learn from either major.. an associates in it is marketable... and it can help you get a good idea as to which direction you whish to turn.. if any.

    --
    Hash Bang Slash Bin Slash Bash ..... Hack 'n Slash :p
  234. Little Difference by munition · · Score: 1

    I'm currently a Computer Science major. Although our curriculum is a little old, it has a lot of both the CE and CS.

    Such as, our third class we take is Assembly language. There, besides the language of course, we learn a little bit about architecture from a high level aspect. Then, the following semester, we take Computer Organization. It is a mix between the mathematical theory behind machines and the logical construction of circuits (i.e. we implement gates on paper instead of in real life).

    Right now it is not required, but there is another course called Computer Architecture which goes in even more detail about hardware design.

    Moral of the story is: Don't think that there is an extremely large difference between the degrees. It depends really on the school you go to and the curriculum they offer. Although I'm not physically building any circuits, I'm getting a chance to learn about how to do them (as well as the knowledge behind how they work aka Boolean Algebra).

    Just some food for thought. What ever you do, don't pick the major based on money. Pick the major that you will feel the most satisfied with. And don't go into school thinking you are going to learn everything, because you will not. The best way to learn the maxiumum amount you can in 4-6 years is to research and/or work. Doing this will help you become more acquainted with the technology/ideas (and a lot more knowledgable).


    MunITioN

    --
    MunITioN
    "A mind is a terrible thing to lose"
  235. Do BOTH! There's such heavy overlap anyway. by Anonymous Coward · · Score: 2
    My degree from UCLA is in "Computer Science and Engineering". It was the only CS major back then. Today they split off CS into a separate major and kept CSE. CS is considered so "light" that a "specialization minor" is required. But as CS and CE overlap so much, it makes sense to just do them both together. And if I was doing it again today, I'd stick with CSE.

    Besides, when you study the low level hardware along with coding, you learn to write better code because you understand how it will be executed. You then e.g., understand why word alignment wastes space but speeds up your code, or why disk access is best done in blocks of 512 bytes or 1024 blocks, etc.

    You'll also then be able to build simple peripherals like hooking a thermistor to a dac and then to your parallel port to monitor room termperature, etc.

    No one should leard to code without learning what their hardware will do with that code.

  236. Depends on the Job by DrStrange · · Score: 1

    If you can, figure out roughly what you want to do when you are done with school and find out what you need to get that job. I work on embedded systems and we'll only talk to Computer Engineering students because they have hardware knowledge and that is key in embedded systems. Also remember that as a Computer Engineering student you'll get exposure to formal design practices which you may or may not get in a CompSci program.

  237. It depends on the school. by Molech · · Score: 1

    From what I've seen, what one school calls computer engineering varies dramatically from the others. I go to an ABET accredited engineering school. Our computer engineering program is ABET accredited and handled by our Electrical Engineering deptartment in the College of Engineering. They have to take a crapload of Computer Science classes, but they also have to take almost exactly the same classes as an Electrical Engineer.
    At my school, thats the way I would go since our Comp Sci. department sucks a big one. The ABET accreditation may be overrated, but at least you'll learn something(our EE classes are not for the weak minded. Lots of math too.)

  238. Engineering = $$$$ by SpiralDown42 · · Score: 2

    When it gets that specific your major means nothing. At all. Zip. Zilch. Don't cry just try and cope. Somewhere around 3/4's of your education will be mindless drivel like government, philosophy, calculus, and fencing. In the end you will have taken somewhere around 20 out of a 150 hours for your major that you will use in the job field. Recruiters understand that and this is why your major, whatever it is, will serve as little more than a passport to get threugh the "Must have a college degree in the computer field" checkpoints of the world.
    You will not be pigeonholed because you have a certain type of degree unless that degree is extremely specific.
    For my own part I'm studying CE as opposed to CS for one reason.
    What comes to mind when you say Computer Scientist?
    Lab coats, research, pure science, text books, dork.
    Now what comes to mind when you say Computer Engineer?
    Money.

  239. Stay undeclared! by god-of-wine · · Score: 1

    I would recomend not declaring a major until you really need to. Focus at first on the core courses and if you attend a large school like I do (UGA) then your not going to fall behind at all.

    I took the time to experiment with a wide array of classes like sociology, art, math, accounting etc.. and only after I saw what was available to me did I really have a firm grasp of what I wanted to do...eventually MIS....

    If you focus your energy trying to answer the question "How do I get rich?" then when you do become rich all you'll want to know is "Now what?"

    If you focus your energy trying to have a meaningfull college education, you may or may not get rich, but then again you will have gained something far valuable, "Peace of Mind".

    ps. go DAWGS

  240. EE vs CE by linuxlover · · Score: 1

    Not in US, but I did my bachelors in Melbourne University Australia. I hated EE stuff, b/c of memorize this formulae junk! I was a CE major. our CE is about 30 % hardware & 70% software. The balance exactly I liked! So I do know how a timer circuit works and also know how red-black trees work (well, for the later one, I need to dust up my sedgwick book :-).

    But I found straight EE very boring. May be it is me. I am so into programming / admin stuff, I loved my CE. Also made some great geek friends in the CS dept

  241. No difference by jordanda · · Score: 1

    In my program (University of Washington) the only difference in requirements is that CE students have to take chemistry and CS students have to take Foriegn Language. CE students have to take all the hardware courses while CS can take them but only as electives. Our advisors have told us that career-wise there is no difference in what jobs out graduates get. I hate chem so I'm CS.

  242. Faux nerds get sussed out by this question (OT) by Chris-en-topper · · Score: 1

    In some ways this question kinda shows you who truly personifies the conventional understanding of the hacker ethic. The people who are saying "Follow the money" don't get it. The people who are saying "Follow the education that will make you elite" don't get it. The people who are saying "Study what interests you" get it.

  243. good description of the difference by brarrr · · Score: 1

    This is quoted from the following site:

    http://www.MacKiDo.com/General/prog_vs_engineer.ht ml

    This is more of a description of which type (programmer or engineer) is good for types of tasks but could easily be used to compare CSC vs CPE (at my school)


    Some people call themselves "Programmers" and others call themselves "Software Engineers". "Engineer" seems to have more prestige in our society, so more people try to call themselves Engineers (even if they aren't). Of course anybody can call themselves whatever they want -- so what people call themselves makes little difference; however, there is a distinct difference between the two.

    There are needs for both (engineers and programmers) -- and different tasks require more of one or the other. Most tasks require only a few engineers and quite a few programmers. The problem is that many managers don't understand the difference, or hire the wrong ones for a job.

    Programming is not hard -- it is tedious. You need to be able to break complex things down, into a long series of simple steps. That is it. How you approach that problem will define whether you are a programmer or an engineer. So the biggest difference between the two is philosophical -- and like most philosophical differences, it can lead to tension. Arrogant types (on either side) can get into these little ego-driven superiority complexes that drive the other side nuts, and some pretend that the "others" are idiots. They aren't idiots -- they just have different goals, different motivations, and different philosophies.

    --
    to email me: take my /. handle and append .net preceded by charter.
  244. Computer Technology by mgenti · · Score: 1

    I am student a Purdue University and we have a major called Computer Technology (CPT). Computer technology focuses on things differently than computer science (CS) or computer engineering (CE). With CPT you have the option of focusing on telecommunication and networking or information systems.

    Our CPT program gives you a very wide range of computer skills to begin with. Such as computer programming, oracle and sql, web design, basic digital logic, and a few other computer related topics. Once you have taken those classes you receive your associated degree in CPT and then you start focusing on the networking or IS for your BS.

    I have found it to be a very good program for people who want to focus on things such as networking, which is what I plan on studying. You can't get as much in depth training in CS or CE on networking as you can at or CPT program.

    Just thought I would share yet another option for you to look at!!!

    --
    ---- Don't worry about signing me up... I'm already on all the spam lists.
    1. Re:Computer Technology by Zalini · · Score: 1

      I have to agree with you about the Computer Technology department at Purdue. I am a recent graduate of CPT - Telecommunications and Networking (May '00).

      I feel that it did a good job of preparing me for the 'real-world', as much as a college curriculum can. There is of course no substitute for internships.

      I have repeatedly received compliments from my employer and fellow employees about my knowledge level coming out of school. That isn't completely due to CPT, because I did work hard out of class, but I do give them some credit.

      From what I have seen, the Telecommunications and Networking program is one of the best in the nation for network admins, and my Solaris class has proven invaluable!

      So to sum it all up, if you don't want to be a programmer, and you don't want to design chips, you may want to take a look at Computer Technology (and more schools are starting to offer similar courses, but Purdue was one of the first).

      --
      Quit being a wussie!

  245. Engineering vs. Science by magic · · Score: 2
    Most schools have "Electrical Engineering" -- meaning hardward and analog electronics, and "Computer Science" -- meaning software.

    What they don't actually distinguish between is Engineering and Science, which are subdisciplines of anything: electrical work, computer work, physics, nuclear work, etc.

    Engineers use known facts to build new systems. A lot of the work of an engineer is figuring out the most efficient way of doing x, solving the system issues, trying to make it affordable, robust, etc. Sometimes it is an issue of trying to make it bigger or smaller than ever before.

    Scientists research new "facts." They know techniques for exploring new areas of mathematics and can whip up prototypes, but generally are idea generators, not idea refiners.

    Most people with CS and EE degrees write software. Being a programmer is being an engineer (arguably, a software engineer). Most companies don't actually want to hire "computer scientists." Universities and research centers want scientists. Most companies want programmers.

    Too many people come out of school with a CS degree and are lousy programmers. A PhD in CS may be a brilliant person, but likely as not they can't write good enough code to land a basic programming job on that alone. Likewise, a lot of people assume that because they can program they have the skills to develop complex new algorithms. A small set of people have both skill sets. They usually end up at companies developing far range concepts.

    So, regardless of what your degree says, make sure the experience you gain in college actually leads towards the career you want. If you want to program, don't take the theoretical math classes recommended by your computer science curriculum-- you need to learn systems engineering, algorithms, and lots of languages. Some business classes wouldn't hurt, either. If you want to do research, you need to primarily learn a lot of math, not 20 languages, debugging techniques, and details of the development process.

    -m

  246. I agree by robman · · Score: 1

    Computer Science was formerly called Computing Science. It really has little to do with computers. The reason computers come into the picture is because they make computing practical.
    Computer Engineering, OTOH, like all engineering is concerned with the application of a discipline. Thus, it will involve more of the ers than the ings.

    --
    "Perl 6 will give you the big knob." -Larry Wall
  247. Depends on the college.. by atubbs · · Score: 2

    While I tend to generally agree with what has been said thus far, I think it's important to consider the individual universities, as each tends to have a differing approach. For example, at the University of Illinois, our Computer Science curriculum is part of the Engineering college, and as such is subject to many of the core engineering requirements. Additionally, we are required to take some lower-level ECE and hardware courses in order to gain more of an "engineer's" perspective.

    Now, we also have Computer Science and Mathematics majors, which take many of the CS courses from the department, but as a supplement instead have to take courses in the arts and sciences, as well as a great deal more mathematics.

    So we also have electrical engineers, who typically would deal with things a level abstracted from a computer geek's interests, yet many of them are designing processors, or even the next layer of software that interfaces with operating systems ... which is a niche that you'd think a Computer Engineer might find themselves in. Yet the Computer Engineering program seems to be a mash of everything together, maintaining the focus of Electrical Engineering, while combining a more thorough low-level understanding of computer systems.

    Of course, there are other options, such as Information Systems in the business curriculum, which deals more with applications and their place within an organization. My guess is that you would find something like this far too trivial (which isn't to say that IS/MIS is trivial, rather it's just not going to whet your interests in computers to the fullest extent).

    While Computer Engineering seems to pose the biggest compromise, a compromise might not be what you're looking for. If you really want to gain an understanding of computers that will allow you to understand the programming process (not necessarily learn how to program) at all levels, I would encourage Computer Science. If you are interested instead in creating the hardware and low-level interfaces to that hardware, Computer Engineering is your best bet. If you want to guarantee you maintain the computer influence, I would stay away from hardcore Electrical Engineering.

    Yet again, this has all already been said. What I alluded to more in the beginning is that you need to look at the specific universities you are considering, and see what each program is like. Don't hesitate to ask the department for some current students to contact at those universities, in order to get their perspective. Don't hesitate to visit the departments (if possible), talk with the dean, and visit some classes, in order to get a better perspective on what exactly a specific program is like; I tend to think that you might want Computer Science at some schools, and Computer engineering at others.

    Once you've made an educated decision based on these things, don't hesitate to change your major if you find out you made a choice that didn't work for you; the beauty of the Universities is that they'll be happy to keep teaching you as long as you keep paying; good luck!

  248. @ U of M by _B_JOMAMANUP_S_ · · Score: 2

    I'm a student at the University of Michigan and I ran into the same problem as you. At U of M, the courses are basically the same except that there is more hardware stuff in Computer Engineering than there is in Computer Science. I chose to go the path of Computer Engineering because an engineering degree from U of M can go a long way, I'm told. It is basically up to you and depends on the college that you go to. Computer tech is an industry that is still in it's initial stages. The way the degrees are offered and the cirriculums that are required differ from college to college. For example, at U of M if I decide to get a Computer Engineering major, it will say Computer Science on it, but I will still have the "graduated from U of M College of Engineering" degree, but the majors for both Computer Science and Computer Engineering are about the same. I, personally, want to code for a living. Some might encourage me to get a CompSci degree, but I would rather have the CE degree. Due to the fact that I will have to understand the hardware of the computer better, I think that it will make me a better programmer. The fact that the engineering school doesn't require me to take english or foreign language classes also drew me as well. I would rather take the technical writing classes that we have to take, than to have to take some boring english or foreign language class. The choice in this matter depends mostly on what you want. Here are a couple of suggestions though. Find out what the differences are between the required classes for the CompSci degree and the CE degree at the college that you want to go to. Second, figure out what the basic requirements for the school (LSA or Engineering) that you want to go into are. These things vary from university to university so if you still don't know where you want to go, try and get this info from all of the universities that you are cosidering. jomamanup, signing off

    --
    jomamanup, signing off
    1. Re:@ U of M by _B_JOMAMANUP_S_ · · Score: 1

      Sorry. I forgot the line breaks, my bad.

      --
      jomamanup, signing off
  249. It really depends... by Aurik · · Score: 1

    On the university. When I went through the University of Illinois (Urbana) back in '90-'94, Computer Engineering was a hybrid of EE and CS that focused on hardware design and development, where their CS program introduced you to all of the major branches of CS (ie, hardware, hardware/software interface, software, algorithms, AI, etc), and gave you the flexibility as to which branch you wanted to specialize in. Although to tell the truth with the way the job market is, both of them will be extremely marketable... it really depends on what you wanna do with it.

  250. EE CSE, and CS at RPI. (an example) by Lebo · · Score: 1

    I am a Computer Engineering Graduate from RPI (Rensselaer Polytechnic Institute), presently working in the electronics industry, and I can explain the diffrence between the three related majors (EE, CSE and CS) as they are taught at RPI. I have no idea if this is consistant across other top-teir engineering schools or not. Electrical Engineering (EE) focuses on analog design and control systems. It deals with the "fundemental" aspects of electronics, along with ampllifier design and often radio comunication. There is a large math requirement attached to this dicipline, primarily Claculus and Differential Equations. Computer and Systems Engineering (CSE) has exactly the same course requirements as EE for the first two years, with the possible addition of some software courses. This major then goes on to examine the digital side of the electronics world. Computers, digital controls, and assembaly programing, along with some design classes are included. The amount of math is the same as with EE, but there is more of a focus on discrete math and probibility. Both of the Engineering diciplines have only a few free electives alailible to them, and also have to take the basic engineering courseload. (Thermodynamics, physics, chemistry, MATH, intro to design, etc.) In addition, all majors have humanities and social science requirements to give the students some depth. (At RPI these courses tended to be fun and interesting without being too hard or time consumeing. That is not to say however that I did not feel that i learned a lot in them.) Computer Science (CS) is part of the School of Science as opposed to the school on Engineering, as such CS majors do not have to take the basic engineering courseload, and instead can select from assorted classes in the school of science. This Major looks at computers from a more theoretical level. The focus is on the development of elegent algorithums (I appoligize for my spelling) and yes, on programing. However, as has been said here before, the specific language is not realy the point, the major goal of learning how to write code is to explore the various concepts you are learning about. CS majors are required to take less "Hard Math" then the engineers, however many use their free electives to take extra classes to get a minor or even double major in Math. Full disclosure: I am a '99 B.S. graduate of RPI with a major in CSE. My knowledge of the other majors comes from several friends in each.

  251. Computer Science Engineering by the+MaD+HuNGaRIaN · · Score: 1

    I graduated from Northern Arizona University, a small but excellent school in Flagstaff, AZ, with a degree in Computer Science Engineering. It is both combined with an equal emphasis on HW and SW. Excellent program. Great teachers, small size, not too expensive. And, the degree landed me a job at Motorola right out of school. Look for something like that, then you will be covered.

  252. Algorithms by akypoon · · Score: 1

    Go take a look at some of the writings in Donald Knuth's book Selected Papers on Computer Science to get a feel of what computer science is about. Knuth's target audience is the general public and it may very well fit your needs.

    If you like designing algorithms, by all means, go to computer science.

  253. Science Vs. Engineering (Computer) by johndiii · · Score: 1

    I can speak to several aspects of this discussion. My first degree was a BA in History, with an emphasis on East Asia. It was a very interesting course of study, but I wound up selling life insurance. To be fair, I was planning on law school, but decided against it in the course of my senior year. Nevertheless, getting a job can be a tough sell with just a liberal arts degree.

    I went back to school. This time in engineering. The degree was a BSEE, with a major in Computer Engineering. In my experience, employers like engineering degrees because there is a cohesive discipline. There is a problem-solving orientation that is not always present in a Computer Science curriculum. Since I already had most of the distribution requirements from my first degree, I was able to pull in quite a few pure-software courses. With this degree, I got a job in a large technology company, in the defense systems group. I did mostly software engineering, but also a little hardware and some things at the HW/SW interface.

    My third degree was a master's in Computer Science, paid for the company that hired me with the BSEE. This was the most fun so far, and is the most applicable to what I really wanted to do. The best thing about grad school is that you don't have to take courses outside your field.

    I started on a doctorate, but I was never able to take the time that would have been required to prepare for and take the general exam and do a dissertation.

    In general, I think that the approach that I ended up taking was probably about as good as you can do in terms of preparation for a software career. Not that it was intentional at the time. I was particularly fortunate in that I could go back to school for a second bachelor's degree, and that I was able to adapt the engineering curriculum (which focused more on hardware) to me interests.

    The bottom line is that either route can get you where you want to go. It depends on how you take advantage of the opportunities that are available.

    --
    Floating face-down in a river of regret...and thoughts of you...
    1. Re:Science Vs. Engineering (Computer) by ethanms · · Score: 1

      The best thing to have in this world is a supportive family... I'm attempt to work on something similar to what you have. I'm working on my bachelors in computer engineering, and I plan to continue on to my masters. I work 20hrs per week, but the pay isn't nearly enough to cover the cost of school and living. I know that there is no way I'd be able to pull of the 18-21 credit work loads that I'm doing now (5-6 classes) if I didn't have my family, and to a close degree, my parents providing the moral and financial support. As long as I'm really working and learning they're willing to go as far as I am.

    2. Re:Science Vs. Engineering (Computer) by johndiii · · Score: 1

      Same for me. Family support was crucial. I pulled 18 or 19 credits for four semesters and two summer sessions. It was a very busy two years.

      --
      Floating face-down in a river of regret...and thoughts of you...
  254. Well here's what I'm doing... by jdwilso2 · · Score: 1

    I don't think anyone will get to read this cause their are already waaaay too many replies in here. But what the hell.

    I want to design the next generation graphics card chipsets and processors. I'd like to work for either 3DLabs or Matrox when it comes down to it. Unless I just decide to go with AMD and hit the processor route.

    But anyway, you can be a Computer Scientist and totally ignore all the hardware and just work in high level languages and stick with the easy crap, or you can be a computer engineer and *really* understand how everything works down to the electricity moving through the chip itself.

    The rub is that you cannot be a computer engineer and ignore computer science. You have to know how programs operate in order to design memory and processing subsystems to give the fastest and most reliable results possible. So far, in my experience, Computer Engineering is like majoring in Computer Science and Electrical Engineering, the latter with a concentration in Digital Systems.

    When I got to school, I had a bit of a desire to grab majors in all three subjects (CS, CE, and EE), but now I know that the one that focuses in the areas I want is Computer Engineering, and nothing is left out that I desire to know in the other two areas of my greatest interest.

    Well, that's my take on it all, and I hope maybe one person got to read it and got some good info out of it!

    JDW

  255. I've done both by aarondsouza · · Score: 2
    I did my Bachelors in Computer Engineering and I'm currently doing my Ph.D. in Computer Science. Personally I think that Computer Engineers make better Computer Scientists. As a CE student you'll probably be exposed to a bit more math than CS students, which surprisingly is *really* important to almost any application later in life.

    Computer Engineers can become Computer Scientists, not the other way around.

    --
    "In mathematics, it's not enough to read the words -- you have to hear the music"
  256. bling bling, Waterloo baby.! by Anonymous Coward · · Score: 1

    i'll give it to you straight up little man
    up here in Canada at the Univ of Waterloo
    this is how it works.
    comp.eng's get pussy. bottom line.
    cs, well, they got their dungeons and dragons'...
    hmm.

    12" floppies.. bring it.

    1. Re:bling bling, Waterloo baby.! by Anonymous Coward · · Score: 1

      I agree... I get so much pussy it falls out of my pocket. peace out 12" floppies

  257. 1/2 EE, 1/2 CS by Wansu · · Score: 2

    At NCSU, you'll get half the undergrad curriculum in EE courses and the other half in CSC courses if you major in ECE. In essence, that's what I am.

    I graduated as an EE 20 years ago and worked as an analog circuit designer and a magnetic compnent designer for 14 years. The last several years of that stint in electronics, I became a self taught programmer. Then I went to work for a CAD vendor and started taking CSC courses. I took the core undergrad CSC curriculum and did well. Now I write debuggers. Careers sometimes have a mind of their own. Do what interests you most. The "hot" areas are always a moving target.

    --
    Wansu, th' chinese sailor
  258. Re:But Computer Scientists GET PAID more by TitanBane · · Score: 1

    But that's no reason at all, you have no control of what the transistors are doing below. Any semi-high level language you use is optimized on the compiler level so that no matter what you write, it will work as efficiently as possible. This isn't the old days where cool little tricks actually worked in C.

  259. Apply for Computer Engineering and then switch... by bjtuna · · Score: 1

    I applied for Computer Engineering because it was a growing department that was looking for more students. CS, on the other hand, had like hundreds and hundreds more students already enrolled. I think that apply for ECE was one of the reasons I actually got accepted at my school. After deciding I didn't want to keep at it, I switched to CS after two semesters. Hell, I coulda switched to English for all they care. Once you're in, you're in. ECE will get you in.

  260. Definitely Engineering by peter+hoffman · · Score: 1

    My assumption here, based on your question, is that you do not particularly feel drawn towards one degree or the other.

    As an engineer, I strongly advocate an engineering degree (of any sort but especially "fundamental" engineering like chemical, civil, mechanical, or electrical) over a CS degree.

    The reason is this: an engineer is a general problem solver and a potential candidate for a wide range of positions.


    OpenSourcerers
  261. Undergrad CS is programming--it's a joke by Brannon · · Score: 1
    If you want to learn how computers work, from the electrons all the way up to the compilers and operating systems, you are, in general, much better off doing computer engineering. You'll get the same or better mathematical and theoretical understanding as you would in CS, but you'll also learn how to design and build things and make them work, and you'll have a much better understanding of all the technology. What you'll sacrifice is maybe learning Java or C++, which you can learn on your own if you ever feel the need. I work for a processor design group--and when we are hiring, we look for Computer engineers first, electrical engineers second, and computer scientists a very distant third. What's the biggest complaint I hear about CS majors? They can't do anything except program!

    Now all that changes somewhat once you are talking about advanced degrees--because there CS is actually more than just Java programming. Still, you are better off doing an engineering undergrad degree, and then you can decide what to do for your Master's or Phd. If you are more theoretical/mathematical, you might want to pursue CS at that point--otherwise, I would still suggest sticking with Engineering.

    1. Re:Undergrad CS is programming--it's a joke by jbrians · · Score: 1

      Wow, maybe CS at your school is a joke. Around here, CS gets computer architecture so you understand how computing hardware and software interact. What you don't get is electrical engineering. What you get as compensation is greater freedom to study what you're interested in, and more depth in advanced fields like AI, Graphics, Networks, etc...
      -Brian

      --
      "Faith strikes me as intellectual laziness." -Robert A. Heinlen
    2. Re:Undergrad CS is programming--it's a joke by Kumkwat · · Score: 1

      I work for a processor design group--and when we are hiring, we look for Computer engineers first, electrical engineers second, and computer scientists a very distant third. What's the biggest complaint I hear about CS majors? They can't do anything except program!
      Makes sense considering you are a "processor design group"...Switch the tables and think who would be your first priority if you were a "software design group", maybe writing e-commerce n-tier stuff and then the last thing u'd need is someone who knew bits/bytes like the palm's of their hands.

  262. Computer Engineering as a Bridge by Alvin_Maker · · Score: 1

    I was in both programs at my school. I don't know exactly what the "industry perspective" is on the subject, but I can tell you what my school's POV was on that perspective. They felt that the industry saw computer engineers as a bridge between the computer science and electrical engineering folks. There was a feeling that these two groups were not communicating well in projects and that someone was needed to keep the two in step who understood both sides. I don't know if this is still the case or if it was ever the case, but one thing that was mentioned earlier is definitely true. Five years after you graduate, you'll have defined where you're career is going reguardless of your degree. You just need to make sure you can get your foot in the door. "All this machinery Making modern music Can still be open-hearted"

  263. CE vs CS in the industry by Zallekin · · Score: 2
    So far, I've seen most of the good points I had to bring up already presented here, though I haven't read every single post. However, something that I haven't noticed is mention of the difference right now in the job market available to CE grads vs. CS grads.

    The market for IT jobs when you have one of the three degrees I've seen mentioned here (CS/CE/EE) is very fluid as to what you want to do. And, however many years from now you graduate, the market will have totally changed from the way it is now. The way it is now (in general and IMO) is that CE jobs are a bit more stable (as they're a bit more hardware oriented) than CS degrees; and, having a degree is very important as jobs you can get with no degree aren't very stable at all.

    I recently graduated with a CE degree, and had over a year's experience in ASIC design/verification. This is the "digital logic" type of stuff that many other people have mentioned here. I had companies eating out of my hand the way Java people did when it was all the craze. The thing is, though, ASIC people are mainly employed by companies who create large-scale servers and processors (Intel, Compaq, IBM). These companies "in general" (big grain of salt here) do not lay off people in the groups that create these custom and semi-custom chips since these form the core of many large computer company's product line. There are also small companies that do this work (if you prefer the small company model), but mainly they're startups trying to get bought out by a larger company from what I've seen.

    The whole point here is that you get more freedom and have the possibility of finding more job security from what I've seen in an area such as the one I've found. But, it's a relatively small niche when you look at the amount of IT work in general that there is to do. To take this point to a more general level, I will close by saying the following:
    Doing what you want to do in life is the most important thing (even if a person wouldn't believe me, that is why I chose this job). If this falls into the IT world for you, my recommendation is to choose something that challenges the crap out of you, and takes you a bit to learn to like, as it will likely be more important to a company and more secure in the long run. Watch the market as much as you can while in college, and realize where what you like doing fits best into that. Everyone wants to program games, even the business majors. Look for goals that take things a step further, like "I want to design graphics cards."

    IMHO, the point in career is the same with all things IT. Be one step ahead of the other guy, as he's trying to be one step ahead of you. Learn to predict the future, figure out where the person you want to be fits into that, and tailor your choices towards that world, rather than the one around you.

  264. I doesn't matter by Raster+Burn · · Score: 1

    What matters is if you get the job you want after college. Either major is ok if it gets you the job you want. After that, it matters very little! I hope I helped!

  265. Go with Computer Engineering.. by Ogerman · · Score: 1

    Here's my quickie opinion as a Comp.Eng. major..

    You have three choices for a computer degree: CS, CmpE, EE. It's a tough choice even though they all overlap. I believe that CmpE is the best choice because it gives you a solid background in hardware, software, and higher math--and to be a good engineer, you should understand all aspects of your tools. I can't tell you how much it frustrates me when some of my CS friends have no clue about basic electronics or low-level computer hardware. On the other hand, I know EE majors who have no clue what happens on the software side and are only comfortable with a VHDL analyzer or breadboard.

    There is something about knowing EVERY aspect of computing that gives you the feeling that you are truly master of your machines. Having a more diverse knowledge base lets you better see how hardware and software and algorithms work together in the big picture. This leads to increased creativity and insight in problem solving as well as a more satisfying and interesting career.

    In closing, one additional thing worth mentioning is that Comp.E and EE majors both give you a solid ground in classical engineering knowledge. (Physics, Differential equations and their application, systems and signals theory, etc.) This knowledge is applicable in all engineering disciplines--once you learn it, you can pick up a book on say.. acoustics.. and actually understand it. A Computer Science degree will most likely not give you this.

    Good luck with whatever you choose!

  266. the diff by holzp · · Score: 1

    computer scientists sepend a long time trying to deveop theories and ways to make it work better. computer engineers have to make it just work, usually by 9am tomorrow.

  267. Compare curriculums by Zordok · · Score: 1

    Something that may help you decide would be to compare the curriculums of those two programs at a couple schools. I am a 3rd year CE student at Milwaukee School of Engineering. In addition to CE, MSOE offers a software engineering degree (CS on steroids). You can look at the courses you would be taking for CE and SE on their respective department web pages. The biggest difference in programs comes in junior and senior year. This is when the SE's start spending 20 hours a day in the programming lab, coz they have 3 labs to do :) Another thing to consider is that its OK to change your mind, since these two programs are similar, you can transfer between tham pretty easily. IMO, it is easier to transfer from CE to CS/SE than vice-versa, so you should start out in CE :)

  268. Re:Liberalism is evil by PD · · Score: 1

    Damn! That's funny. But George, don't you have a country to run?

  269. computer engineering vs computer science... by ethanms · · Score: 1

    I'm a senior in computer engineering... I have many friends in computer science...

    Computer engineering is, like the book says, more hardware then software. As a computer engineer, you design hardware that will specifically be designed for use in or with a computer (as opposed to an electrical engineer who might design things that are less computer related, like a power supply, motor controllers, etc). You'll do things like work with audio codecs, video cards, new types of CPUs, peripherals like webcams, mice, etc...

    computer science is programming/software... you learn how-to make all that hardware work. the theory behind operating systems (it's not as easy as it looks), what makes a program run more efficiently.

    If you like working with electronics and computer hardware AND you don't mind programming and software development then choose computer engineering... you will be qualified to do almost anything in the computer/electronics field. People go on to become programmers (nearly 90% of the development team at the software company I used to work at started out with Electrical Engineering degrees). you can also go on to work with networks, etc, etc...

    get into computer science if you want to focus on writing programs, operating systems and other applications. you won't deal with the physical hardware, tho you may have to deal with interfacing with it (such as writing programs to directly work with the hardware rather then going thru an OS first... or maybe you'll be writing the OS that those programs are going thru!).

    I would NOT suggest skipping a degree and getting "real world" experience. This seems attractive because there are many small/start-up companies that are willing to pay bright high school grads $20+/hr to work on software projects... this is generally a dead end unless you are truly exceptional (and no matter how much you think you are, you better believe there's always someone out there who's better then you). Once this job ends (or you get sick of it), you'll be on the street with nothing but your experience and a high school diploma. That piece of paper that says Bachelors of Science commands a much higher salary for the vast majority of people out there. It also opens many doors. Some larger companies might not even consider you if you don't have a formal college education, or 15 years of industry experience. 2-3 years at a start-up coding the installer for their application will likely not cut it at the next job. you also want to think long and hard about a company that offers to put you thru school part-time while you work full-time. Are you going to be able to handle 40+hrs of work AND school? How many years will it take? do you really want to spend 8-9 years just getting a bachelors degree?

  270. Depends on the university... by SirYakksALot · · Score: 1
    At Arizona State University, CE is a superset of CS. I took all of the normal CS classes, a bunch of higher-level CS classes, several introductory and intermediate EE classes, and of course the engineering core classes.

    CS teaches you how to get a program done. ASU's CE teaches you the why, the history, alternative designs and how they failed, hardware, software, everything.

    For most programming jobs CS is fine. For device drivers and custom hardware (common in embedded systems), you want to know more or you might be in over your head. For cutting-edge R&D you NEED the deeper understanding.

  271. Okay, I'll bite. I'm an Engineer. by Brannon · · Score: 1

    I'm an Engineer. Send me an example of what you consider "hard" math. I'll give you a hint--if it has any integrals or derivatives, then it's not worth my time.

  272. Depends on the college by acordes · · Score: 1

    The differences between CS and CprE depend on the college. I attend Iowa State and major in Computer Engineering. Here, I would say that Computer Engineering is closer to Computer Science than Electrical Engineering. We have a little more emphasis on the underlying hardware than CS, but the vast majority of my classes are software project based. Hell, even my hardware classes (such as my processor architecture class) ended up being very software based because our semester project implemented a processor using Verilog. You also need to look at the Computer Science department and find what their focus is. Iowa State's CS department is more theory based, and a lot of students that come in here don't realize that. They expect it to be closer to Software Engineering, and think they will learn how to write huge programs in Visual C++. It doesn't happen. A lot end up switching majors when they start hitting the discrete math courses. So, the short answer is, check out each of the colleges and find out what the focus of each major is. And don't worry too much about not liking your initial choice. These days it's rare to find an engineering student (or CS for that matter) that gets out of college in 4 years.

  273. Double Major by sanspoof · · Score: 1

    Ususally a university will not require you to declare a major until your second year. Use your first year to ask a lot of questions and take courses that are common to both majors. If you don't mind adding an additional year to your education, consider a double major in CS/CE. Others may think this a waste of energy but there are so many common courses that a double major isn't that difficult.

  274. How it works at Stanford... by Meddel · · Score: 2

    I'm a junior in Computer Science at Stanford, and we've essentially got five majors that span everything from NP-complete to building logic gates.

    First, Computer Science. It starts out with programming in C, then moves to Java, and a healthy dose of theory. Computer Science is where a lot of people learn to be programmers, as they pick up enough of the theory to be able to really design an application. There are also classes in hardware, but only the extent of "how do I program for this."

    Next comes Symbolic Systems. This major is for people who want to learn a little bit about programming, and then a lot about the ethics and philosophy of machines in general. It's a little abstract for me, and tends to be looked at as CS for non CS folks, but that's not necessarily fair.

    Computer Systems Engineering is the cross between hardware and software. You'll learn to program a little bit like the CS folks, but without a lot of the theory. You also take a bunch of circuits classes from the Electrical Engineering department. It's a pretty cool major for people who want to go on to systems design.

    Science, Technology and Society is sort of a technical major for managers. It deals a little bit with engineering, but not mch past C programming. Certainly not much in the way of theory. It does, however, have the advantage of a bunch of classes on business, entrepreneurship, and so on, but you can take those from any major here.

    Electrical Engineering is for the hardcore hardware people. Everything from signal processing to chip design. EE is one of the biggest majors at Stanford, and it's prettty involved. They are also likely to learn a little bit of C, but the focus is definitely on the hardware.

    So, where do you fit? If you love computers, my guess is CS or CSE. CS allows you to pick up all the programming you could want, and here at least, teaches you some hardware as well. CSE is neat in that you learn a lot about hardware, but you also miss out on some of the theory (which can be a plus or a minus!).

    --
    You just come along with me and have a good time. The Galaxy's a fun place. You'll need to have this fish in your ear.
  275. Go to CS. by booser108 · · Score: 1

    I am a junior in Computer Engineering at WVU. Computer Engineering is computer science plus electrical engineering. Unless your really good at electricity and feel like taking two years of calculus and advanced physics, become a Computer scientist. If your in it for the money, go to computer engineering. Don't forget to bring a big stick to kick the **** out of the ****ing ***hole professors that you'll meet.

    --
    You stupid bastard, you don't have no arms left. It's just a flesh wound.
  276. CS vs. CE? by techwriter2002 · · Score: 1
    Suggestions:

    Go to your local college campus -- if they have introductory classes in the subject, read the textbooks and see if your interested

    Do some informational interviewing -- talk to people who have the type of job you'd like and find out what kind of degree(s) they have

    Figure out what you like to do -- do you want to sit in a cubicle for 10-12 hours a day, or do you want a life?
    Just a thought.....

    --
    "You're the one with the earthshaking reputation. I'm just a flunky. I'm along for comic relief."
  277. On the other hand by hawk · · Score: 2

    >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.)

    Caveat: this is more than 15 years old; you were (at best) in diapers :)

    When I was an undergrad (Physics, Math, & Philosophy), things weren't as settled. The engineering degree was still called "Computer Science" (it changed to "Computer Engineering" a couple of years later to keep accreditation boards happy), and there was a CS degree through the math department, as wells. One of the articles had an article outside his door with an on-the-record comment from an IBM recruiter/manager. He said that when hiring a programmer, he *preferred* a math major to a cs major, because, "I want someone who can think."

    THe point being that with a solid grounding in mathematics, it's easy to teach someone to program. If you come from a "cookie-cutter" engineering or CS program, you know solutions to a few specific problems, and can't solve anything useful.

    I am *not* claiming that all CS programs have this problem--but I've met folks with MSCS's from respected universities suffering from it. "I know Fortran IV, not 77." "I don't know how to do that kind of sort" (with a bubble sort in front of him, he couldn't figure it out and apply it to a different variable.[1] I had to build some cards and show him by hand[2]

    hawk

    [1] Yes, I know that a buble sort is inefficient in most cases. (a) the code in front of him was one of the cases where it made sense, and (b) the bubble sort in the code pre-dated my involvement.

    [2] If it took this to show him a bubble-sort, do you think there was *any* chance of showing him any other kind? :)

  278. Computer Engineering by ni488 · · Score: 1

    I just graduated with a degree in Electrical and Computer Engineering this past spring. Yet, I am writing software.

    As far as which degree you get sort of depends on what you want to do. My degree has steered me more in the direction of writing device drivers, although a CS person would be very well qualified to do that also. I personally don't think that I'm as qualified to write a full blown app, although I do write utilities for our driver.

    I'm glad that I went with ECE over CS, because it exposed me to a lot more than just Data Structures, algorithms and Operating systems(all classes that I took anyway). I learned about DSP, Digital and Analog Electronics, communications, control systems, power electronics, etc. IMHO Computer Engineering should allow you to do anything that a CS major can do, but will allow you the flexibility to really do what you want.

    There is really a lot of software that needs to be written that requires knowledge of a field beyond CS. I didn't really think about how cool algorithms were until I started doing DSP stuff. That's when it's really nice to know about the hardware, discrete math and all of that other crazy stuff that ECEs do. Well, that's my take on it anyway.

    Have a great college career no matter what you choose!

  279. Reading Slashdot by sanspoof · · Score: 1

    I would also like to say that reading Slashdot that often is probably not good for your social life. You may want to get out more often. :)

  280. Stay open... be flexible.. Don't pick a major(yet) by krismon · · Score: 1
    One of the biggest mistakes of my life(and a huge waste of time) was declaring a major at the start of my college career(if you can call it that, went long enough). What you love to do now, might not be what you'll love later.. keep you mind open to everything that college will offer you.

    Don't declare a major until you have to, take all the required freshman classes (english, etc.) first and then go around, meet people, talk to them about their majors, take some intro classes here and there, and you'll find your niche.. I wasted a lot of time, I went in an architecture major, moved to MIS, then CS, then ended up a German major with a minor in sociology. Because it's what I had the most fun doing at the time. I've found myself in grad school now getting a MSCS. Although the years I spent in undergrad switching from major to major were lots of fun, it got expensive after a while and I stopped having fun at the end.

    Be absolutely sure before you pick your major, college is supposed to be for learning and opening your mind to other things, but it's also there for fun. If you have any desire to go to grad school, that's when you should specialize. Most companies won't really care if you are CS or CEng, as long as you are what they need, either way, you'll be around computers(which you currently want to be), unless of course there is something specific you want to get into, embedded systems, application programming, Operating system design, missle guidance systems. But at 17/18, I didn't know what I wanted for dinner, much less what I wanted to do with the rest of my life.

    In college, you'll learn a lot about what you are, what you will become and about others. I think that the life experience of college was what I took to be most important coming out of it(besides meeting my wife there).

  281. Well.. by mindstrm · · Score: 2

    Really, proper computing science courses are not about an OS or a language specifically.. they are about algorithms. Languages should be picked due to their ability to implement algorithms; some languages are better than others.

    I don't think a computer science course should *ever* teach 'shell scripting' or 'perl'.

    Those are things that someone with an understanding of computing can learn on their own.

    Computing science is about the science of computing. Shell scripts and such are *adminsitration tasks*, and you need no degree to do them.

  282. IMHO.... by VT_Beavis · · Score: 1

    ....go for CpE. In four years as a CpE at Virginia Tech I learned most everything you could want to know about computers. From gate level logic design to microprocessor design, and basic coding through OS design.

    Plus I got alot of engineering ethics and economics I would have otherwise avoided. Plus the limited exposure to the EE world was nice. Basic electronics was a good experience and I didn't have to go through the hellish field theory classes.

    In the long and short of it....if you don't want to end up as a code monkey or a sys admin you should go for something other than CS.

    I ended up as an OS designer for the telecom industry.

    B

  283. I think C.Sc is the better one by DominiqueChanet · · Score: 1

    Well, I can only comment on the Belgian situation, but I suppose it's almost the same as the american... Unless you are *REALLY* interested in hardware stuff (the "dirty work") you shouldn't pick Computer Engineering.
    I'm caught up in CE because people told me "Well, it's actually the same as C.Sc, only you get to be an engineer and you will get a bigger paycheck". Needless to say, they were wrong! If you're in to programming and more abstract stuff like Information Theory, choose C.Sc. On the other hand, if you like to think for hours about whether or not some Bipolar Transistor is saturated or not, go ahead and pick CE


    Buffer overflow

  284. From a recent graduate who did both by punker · · Score: 2

    I recently graduated with bachelors degrees in both computer engineering and computer science. My school is ranked in the top 25 for both of these programs, and here are some observations for people looking at going into one of these programs.
    First, you can probably do both. If you are inclined towards doing OS work, or mathematically intensive programming like graphics, then your computer science electives are probably valid as courses in computer engineering.
    A second thing to look at is your school's courses for computer engineers vs computer scientists vs electrical engineers. If you look at the courses for the two engineering programs, and see alot of similarities in the sophomore and junior years (within the major curriculum), you might want to look at another school. For the computer science side of it, you will want to look at how many required courses are on things such as object theory or other things that are not related to hardware.
    Around my sophomore year, I found out what really interested me. I basically chose courses that focused on microprocessor and ASIC design, compiler design, and operating systems. You need to figure out what you enjoy doing. If you really like working on UI's, databases, or other things that operate at a high logic level, then computer science is probably where you want to be. If you really like making things go fast or logical design, then computer engineering is for you. As I said before, your particular interests may overlap, but I think you'll get more out of school if you figure out what you enjoy and focus on it rather than just following what the course catalog says.

    A few other observations:
    -You will run into quite a few people who (in my opinion) don't belong in either program. You will meet CS students who can't code and CPE students who never bother learning about hardware. It is important that you learn to ignore them, because they are future management types and you need to get an early start at dealing with them.

    -Look at the third level circuits course in computer engineering. If it is the same as the electrical engineers, look at another school. Computer and electrical engineers are focusing on completely different aspects of circuits at this point, and your college should recognize this.

    -If you do both majors, you'll go through more weed out courses. These are classes to get rid of the people who don't belong in your major. Your first two circuits and programming courses will probably be weed outs. If you have any talent, you'll get through both fine.

    -Hardware engineers typically make about $10K more a year than programmers after a few years out. However, CPE's and CS that do the same job, generally get paid the same, so deciding if you want to work in hardware or software is important.

    -Don't get trapped doing something you hate. If you hate doing OO crap, then CS probably isn't for you. If you despise working on compilers and hardware, CPE isn't for you. You probably have to do whatever you choose for a long time after you get out of college, so make sure you like it.

    -Have fun. This is far more important than anything else in school. If you don't have fun in college, you'll never have fun again, and that would really suck.

  285. If you want to build software... by BEHiker57W · · Score: 2

    If you want to hack or build software primarily (and hardware is interesting but secondary) then you should eschew the formal CS/CE classes and major entirely.

    Study something that will broaden your mind and teach you new ways to think (yes, you can learn new ways still for decades -- your education is only beginning, if you keep your mind open). I would suggest Maths, Organic Chemistry, Philosophy, Economics, or History. I'd like to suggest literature but I'm afraid that has become just a political subject at many schools and you need to check carefully.

    And don't just fill the major in those subjects -- they're not as challenging as CS/CE or Physics and many people much less smart than you need to graduate in them so the requirements are easy. Demand the hardest courses, the broadest and deepest work, connections with allied fields, the most difficult teachers, and do a senior research project of some scope. It's more work to be a top star, but otherwise you're just stagnating in the easy subjects, so do it.

    An ECE/CS education is worthwhile especially for hardware people but software you mostly teach yourself even when you major in it. And you can afford a nice linux box and some digital circuit toys and analysis tools for less than the tuition for one semester at a state school, so you don't need the school's equipment (but you can probably get it just by asking).

    And if you do want a hardware course or three, take it. Ask nicely the teacher, know the background from reading, and the dean will allow you in.

    But I suppose you MUST take 4 semesters of calculus (1,2, multivar, and diffeyQ), 2 of physics (calc based), and linear passive circuits (usually the first EE circuits course) just to be liberally educated in the sciences, no matter what. Unless you already did that stuff in high school. After that, you can teach yourself software; read books and read others' code and program, program, program, program!

    And learn to think.

    -Brian

  286. Sci v. Eng by Jainith · · Score: 1

    I personally wanted to do computer engineering, hawever have been accepted to compsci. As I understand it the diffrence is that engineers work more with Networks, and how hard ware integrates with software. Its the comp sci guys who build the software that the engineers need to make work.

    Anyway since theres over 500 comments I doubt anyones going to read this, but if you do. Reply to prove me wrong....

    Jainith

  287. astronomy and telescopes by cpeterso · · Score: 2

    Computer science is to computers as astronomy is to telescopes.

  288. The breakdown at UCLA by TheContact · · Score: 1

    From what I've seen, it really depends on the school. I'm currently a computer science and engineering major at UCLA. It's actually a modification of the normal computer science route here. Essentially, the computer science and computer science and engineering tracks have the same course work for the first 2 years. It's only in the third and fourth year that there's some splitting. In computer science and engineering, no minor is required. Those normal minor courses are replaced by electrical engineering courses. I believe that just about any of the courses that are required in the computer science major (such as artificial intelligence) can be taken as a computer science elective. The other option here is a B.S. in Electrical Engineering with a computer engineering option. In this case, rather than take computer science electives, you have to take more electrical engineering courses, and a bit more math and mech and aerospace engineering. As far as I can see here (and I maybe wrong), EE deals with sending information around via hardware, CSE deals with putting that hardware together and merging it with software, and CS deals with mainly the software. I'm doing CSE mainly so that I have a better understanding of how the whole system works, not just the software aspect (though I am more interested in software than hardware). I find that CSE can allow you to later work more on hardware stuff or more on software stuff, whereas plain CS restricts you to software and EE restricts you to mainly hardware (assuming you stick with your undergrad and don't do your grad work in something else). As far as a break down of what you learn CS Major 70% CS 15% EE 5% Minor 10% General Education CSE Major 65% CS 25% EE 10% General Education EE w/ CE option 75% EE 10% CS 5% Tech electives 10$ General Education
    Editor - GadgetSquad.com

    --

    Yume ni ikiteiru.
  289. why I like engineering: physical insight by CBravo · · Score: 1

    I chose electrical engineering but in a way that was close to computer engineering. I think that knowing what the software runs on makes it easier to adapt to new techniques. Knowing what makes a computer tick (no, not the clock alone) is important (power, operations, parallelism, etc).

    --
    nosig today
  290. Hardware vs. Software (mostly) by Mike+Miller · · Score: 1
    As a person who actually has a Masters of Computer Engineering, maybe I'm qualified to answer this question ;-)

    Personally I believe that you can model the relationship of CS, CpE and EE on a spectrum with CS and one end, EE on the other and CpE in the middle. While this is simplistic, it points out that we all are in the same universe, and the three fields are all related. Some CS majors (like compiler writers) are a lot closer to CpE than others (like game theory people). Some EE's are closer CpE/CS (like VLSI circuit designers) than others (like high-voltage motors people).

    Computer engineers design computers, and I'm not just talking about the box, we do the chips as well. Generally we are working above the actual gate level representation of chips (only a little analog, and only in some spots, the EE people get to play with analog) usually at the RTL level (think of it as a really low-level parallel language). In reality this means doing a lot of programming, simulation, debugging, and analysis. Most days I spend the bulk of my time either writing code or debugging failing tests. The types of code we write are very different than other 'programmers' in that we tend to write either at a really high level (perl and python) or at a really low level (assembly or RTL).

    In general, CpEs have a clear picture of the low level details of a computer and what it takes to get work done. The code isn't real pretty, the user interfaces are usually non-robust, but generally it's fast and gets the job done. The final hardware products are high quality because the company is legally liable for the quality (ever read a software NDA? The company isn't liable for anything the software does or doesn't do).

    CS on the other hand (I have minor in CS) is focused on writing software for the sake of writing software, or possibly a final application for users. CS people generally can build larger, more user-friendly applications more quickly than CpEs, and have better knowledge of data structures and non-procedural languages.

    If you have to choose, I'd encourage you to go CpE. It's trivial to switch from CpE to CS or even EE because you get the foundations of CS, CpE and EE to be a CpE (for example, at orst.edu the BS CpE degree automatically includes a minor in CS). Switching the other direction isn't so easy, as a good CS friend of mine will tell you after taking the CpE microcontrolers course (he now writes compilers for a hardware company).

  291. CS, CoE and EE by Razzy · · Score: 1

    At my uni (Washington U), many CS majors pursue a second major in computer engineering in order to have a better understanding of the actual internals of the machines they program. This is sort of a cop-out because a CoE is basically an electrical engineer who takes only those EE courses which apply to digital systems and basic cs courses in algorithms and software design. If you really want to be hard-core, double up CS EE. That way you have all the software design background you need (yes, you can pick up languages on the way but higher-level theory might be a bit tricky to pick up on the fly) and a full understanding of the system upon which you program.

  292. CE is the Application of CS by Leto23 · · Score: 1

    This is actually pretty simple. A science studies something with the intent of understanding it. Computer Scientists study algorithms and computer programs in order to better understand them. The computer engineer takes what the computer scientist has learned, and applies it to a real world problem. Some may claim that Computer Engineering is focused more on hardware or more on software, but the reality is, it just depends on the individual department and the faculty in that department. I have an undergraduate degree in Electrical Engineering and a Masters in Computer Engineering. My work is mostly in software. Not because my major specifically prepared me for it, but because I personally chose it. Do you what you love.

  293. Re:As a Electrical Enginnering Student by mike_g · · Score: 2
    I think of the involuntary EE's as CS's without all the math. Granted some people are in EE cause they want to be, and not cause they couldn't handle CS.

    That is funny, because at my school we view it exactly the opposite. Most of the involuntary CS's were EE's who couldn't handle all of the math. I don't know of a single person who has switched from CS to EE. All I ever see are the EE's going to CompE or to CS.

    Now I'm not saying that CS is easy, but it is definitely less math oriented than EE or even CompE. I've taken CS classes and about the only math that was used was inductive proofs and simple efficiency of algorithms. While in EE we routinely use higher math such as Laplace and Fourier Transforms for frequency analysis.

    At my school it only takes two extra math clasees beyond what the EE dept requires in order to complete a math minor. I would hardly consider that to be a CS without all the math.

    But as advise to the student, I would say what most other people have said. If you want to be a programmer or are-not-very-good-at/don't-like math go for the CS degree. If you like math and would like to learn more about the hardware side as well as learning to program go for the CompE.

  294. You could look into a dual Major by threep · · Score: 2

    I am majoring in electrical engineering and biomedical engineering at a pretty competitive, primarily engineering school. I have a few friends that are doing both Computer Science and Computer Engineering. The required classes for the two majors overlap a bit, and the Computer Science degree is pretty flexible so that you can fit in all the engineering classes. If you can handle it, this seems like it offers the best of both worlds. After four years, you leave with a diploma that says Computer Science and Computer Engineering. Then, you are free to make up your decision after school and concentrate on whatever you like better. Just my opinion. I won't lie and say that it is easy.

    --
    ~dan
  295. number of female students by alprazolam · · Score: 1

    while not entirely irrelevant, there are things more important than major. for instance if i had it all to do over again i would have gone to florida state. i don't know if they have much of an ee dept. but i know there are a ton of women there. for the love of god before choosing a school LOOK AT THE FEMALE:MALE RATIO. don't take one worse than 1:1 for the whole school, and try to get one with a good ratio in the engineering school. i know mine was something like 1 female per 30 males. thats the one thing i really feel that i underestimated going in.

  296. Re:Computer Engineers, Bad Latin by modecx · · Score: 1

    No blubber head!
    Pie Iesu domine, dona eis requiem.!

    The Black Knight always triumphs! Have at you! Come on, then. Oh. Oh, I see. Running away, eh? You yellow bastards! Come back here and take what's coming to you. I'll bite your legs off!

    --
    Constitutional rights may be respected, repealed, or modified; but they must never be ignored.
  297. Another point by jarettm · · Score: 1

    .. which I haven't seen made yet, is this:

    If you decide take the computer engineering route, you'll take a lot of computer science classes. I don't know that this is true for all schools, but it is at the University of Manitoba, and a few other Canadian schools.

    If you take comp-eng, you'll end up with a decent knowledge of programming (here: almost all first and second-level programming courses). If you take compsci, you won't have to take a lot/any comp-eng courses.

    Best of luck in whatever you choose. Usually, you can do your first year and take courses which allow you to continue down either path.

    Cheers,
    Jarett
    www.escape.ca/~hush

  298. U of Illinois, CS vs. ECE by JayDiggity · · Score: 1
    How the #5 Engineering University (U of Illinois, Champaign-Urbana) in the country sees the two programs:

    Computer Science really is software. You take classes in Java, C++/Data Structures, Compilers, CS Theory (Math on Crack), Networking, and other bunches of fun things.

    Computer Engineering is within the Electrical & Computer Engineering Department - U of I feels these degrees are close enough to combine them into one department, though you only major in either Electrical of Computer. You take classes in Analog & Digital Signal Processing, "Solid State Electronic Devices", and lots of ECE Theory (Electricity and Magnetism on Crack).

    Both of these majors are within Engineering, meaning lots of math, physics, and chemistry. The best advice is to get a course guide/Programs of Study guide and see what each major takes and go from there. Also, remember.... many departments offer a minor, so you can major in one and minor in another - a lot of the classes will overlap.

    - Jason Wong
    Sophomore in Computer Science
    Go Illini! (or something...)

  299. CS vs CE by soleus · · Score: 1

    Some quick background - my Bachelors and Master's are in Electrical/Electronic Engineering, and I'm currently studying towards a PhD in Biomedical Engineering.

    Perhaps the most sound (and the most difficult) strategy is to know yourself. Understand what set of criteria is important to you in a career (job type, job satisfaction, renumeration, status, security) and match this against what your perceptions of Computer Engineering / Computer Science are.

    In some important respects, the two disciplines share (obviously) a similar backdrop (think of surgeons vs internists in medicine perhaps - with engineers mapping to the surgeons, and scientists mapping to the internists). Some basic training will overlap, but the specialised learning, and more importantly the the mind-set, you'll leave each with can differ tremendously.

    I think it's simplistic and limiting to class computer science as "software" and computer engineering as "hardware". Indeed, you can study computer "science" and finish up hardly being able to string two statements together in C. Likewise, you can study computer "engineering" and hardly be able to solder a resistor to a "breadboard" (sort of descriptive of me :-)). Ironically, you'll probably be able to string together C code, though.

    You should perhaps consider that computer engineering is traditionally a specialisation of electronic engineering (and here I use electrical/electronic engineering interchageably).

    Electronic Engineering is concerned with the processing of energy/information. Whether this energy is electron based, optic-based, is largely irrelevant. What is important is how can you use/manipulate this to solve problems.

    Electronic Engineering, historically, grew primarily from physics and applied mathematics - and you don't often need to scratch the discipline too deeply to find that lineage still flows strong. Indeed, at least where I studied, EE at times seemed more mathematics than anything else. Practically every course had a mathematical undertone: signal processing was all about probablity and information theory, control systems was about linear differential mathematics, electronics lost itself in the physics of transistors, optics was mostly algebra, and then of course there were the more "pure" maths courses. Hell, now that I think about it electromagnetism and its love of Maxwell's equations matched anything that I've seen physicists grapple with when talking about relativity.

    In terms of "practical" hands-on mucking about with circuits and the such, we had very little. One formal course of electronic design in my third year - and otherwise mostly in the assorted lab courses here and there. I should add that where I studied, the course offered a wide range of electives - had I the inclination I certainly could have jumped into hardware with both feet (and elbows, and the odd eyeball). Even courses on high speed circuitry and microwave antennas were all done on computer in simulations and the like.

    Note, that I consider this a Good Thing. University study is not about trade certification. The moment you wed a degree to a particular technology you suddenly assign your knowledge a life-span that extends only as long as the technology is in vogue.

    I cannot speak much about Computer Science. Its lineage stems strongly from studies of logic and philosophy. Despite what other slashdotters have posted, in my experience and the CS students I knew, it didn't hold a candle to the mathematics we as EE students had to suffer. And of course CS considers itself a *pure* science as opposed to engineering (which simply stated considers itself an *applied* science).

    Scientists are more concerned with *why* things work, engineers with *how* things work - this makes scientists good at analysis and processing, and engineers good at synthesis and creativity.

    Note that being highly creative is not necessarily a good trait in a scientist, while you can hardly be a good engineer without being creative. Remember, creativity is *not* the same thing as intelligence - a creative individual often implies intelligence as well. The converse does not always hold.

    I remember that the EE students would often (perhaps unfairly) scorn the CS students. We (as EEs) would often be given problems that had to obviously be solved on computer, yet had no formal computer programming courses (this I considered a Bad Thing). We simply were expected to be able to program, or teach ourselves enough to get the task done. The CS students often had several formal classes in programming, yet little concern or understanding of practical considerations. A running joke was that an EE's program would be a jumbled mess of garbage that worked like lightning, a CS's source code would be 2/3 comments and the rest wouldn't work anyway. Several EEs that I knew programmed circles around anything that moved. Several also shouldn't have been allowed near a keyboard if the fate of the planet depended on it.

    To this day, a lot of "pure" CS people that I know have little understanding about the actual implications of their coding styles. Elegance for the sake of elegance is a hindrance when down at the machine level you end up clogging the system down because you have no concept of how your code actually ends up shunting electrons around.

    I don't know if this answers your question. EE/CE is IMHO more difficult than CS. Of course, you also have a much broader base of study doing EE/CE, and will deal with more than "just software". More than anything, I'd say that EE/CE taught me "how to think". How to approach and solve problems in a practical real world manner. I wasn't (and still am not) the kind of guy who'd be happy with a soldering iron, breadboad, and nest of components scattered about, up to my eyeballs in "hardware". If this is what you think Engineering entails, you have a misconception.

    If you're up to the challenge, take the engineering track!

  300. My experience ( CSci vs. CEng Tech vs Soft Eng) by lnical · · Score: 1
    I started out in Computer Science at Univeristy of Waterloo. Lots of math (It was under the faculty of mathematics) and little programming in the beginning)

    Then to McMaster University for Computer Science under the Faculty of Science. Still lots of math more science (duh!) and only a little CS

    On to Mohawk College for Computer Electronics Engineering Technology Co-op. Very structured program heavy on the electronics, light on math, so-so on programming. Graduated (w/Honours even!)

    Present: Lakehead Univeristy for Software Engineering. Transfer program into third year from College. Heavier math than College. Still some electronics and some CS courses (About 35%/65% split)

    Which is better? I have no idea. Software Engineering will allow me to become a P. Eng. however Software engineering is still in a state of flux. No two schools seem to agree on what SE is. In my experience, engineering had a heavier course load and less flexibility than a CS program.

    Best of luck. Lnical

  301. Perspective of a Computer Engineering Major by jumpfroggy · · Score: 1
    I can't help but comment on this one, simply because I've had the same questions and now I've found some of them answered.

    I am currently a junior in the computer engineering major at my university, and I had been thinking for a while whether or not I want to switch to computer science. I've loved programming since I was 12, and it's what I really like doing. Hardware seems neat, but it's not really where I have my passion. I came into college after hearing the same vague things you've heard and decided to do the CE route. For the first two years I've taken engineering courses, which means a lot of physics, math, and a lot of electrical engineering courses. At the beginning of this year, I was about ready to switch to CompSci only because it's been two and a half years, and I still haven't taken any computer programming classes (skipped all the lower level ones), and it's been nothing but hard work in Electrical Engineering courses. CE / EE / Any engineering majors are very intensive. There's a lot of physics (3 classes), a lot of math (up to calculus III and beyond) and a lot of hardware design courses. But finally, in the second semester of my junior year, I finally feel comfortable in my major.

    Right now I'm designing a small embedded CPU in hardware, learning about fundamental OS theory and design, fundamentals of programming languages, and next semester compilers and real OS's. Great stuff... but it took 2 and a half years of insane amounts of work to get here. I know I could've dropped out and taken the easy route of CompSci sophmore year, and it would have been so much easier. But I stuck it out, and I'm glad. CompSci deals with a lot of algorithms and math, but any Engineering has a few less algorithms and a whole lot more of everything else.

    For me, it came down to the challenge. My easy way out was CompSci, where I could've taken the courses that I liked and learned what I wanted to, but everything would have come very easily to me. But I chose CompEngineering, where almost all the courses where very challenging and tested me not only in aptitude for learning, but also in dedication and motivation. And now in my second half of my junior year, with the 20 other people that stayed in the program, I'm finally happy with my major.

    That's the college perspective, from one CE. But as far as job experience for me, it's been a piece of cake to walk into any job and know I can do it... not only the programming, but a whole lot more because of my education. I've been working as a web applications (database integration) programmer, will be working soon as a standard MFC / C++ programmer in the summer, and hope to get into some think tank / theoretical research in computers at some point. Having a hardware background and having designed (and built, not just studied) a computer from resistor to CPU to OS to Compiler, will be for me a huge advantage. At least, I hope so. Check back with me in 8 years, I'll know by then.

    And good luck in college.

    James

  302. Comp Engr = Elec Engr + Comp Sci by Baby+Duck · · Score: 1

    At a lot of universities, computer engineering is not much more than electrical engineer plus some computer science thrown in. The "pure" computer engineering classes will be some 4th year electives. Not matter how much a purist might jump up and down and scream "That's not computer science! That definition is waaayy to simplistic!" this is simply not the way most universities treat it. And that's the kind of education you should expect. I'm sure there are some individual universities with some expert staff members who really make computer engineering seem like a whole world of its own, but this is the exception.

    --

    "Love heals scars love left." -- Henry Rollins

  303. Same as it ever was. by Laurion · · Score: 1

    I've always seen the difference 'twixt the two to be the same as any scientist vs. engineer classification. The Scientist is the one who plays with theories, runs experiments, tries to figure out why it works, etc. The Engineer is the one who tries to figure out how it works, and how it can be usefully applied. In the Computer Realm (as a Bachelor of _Arts_ recipient in Computer Science), I've always seen Computer Science as that branch which deals with theories such as compiler optimization, artificial intelligence, database organization, interface design ,etc; where as Computer Engineering had more to do with implementations of things, i.e. code organization, fragment reuse, hardware interfacing, data manipulation, and so on and so on. From what I've seen, generally speaking, both branches fall under the generic moniker of "Computer Science Degree" so it behooves you to go after that which makes you happy (good rule of thumb in any situation). Given the fact that most colleges don't require you to declare a major until about halfway through, start by taking those basic classes which are common to both, and dabble in a few electives on wither side of the fence. You'll be in a better position to decide which way you want to go, and feel less like you stuck yourself in a bad situation. And don't forget to spread tings out so you can taste the rich banquet of classes that College Life offers. You may decide that you were only interested in computers for the money, but that history (or philosophy, et al) is your true passion and calling. Not to say you can't have a computer vocation as well, but do what makes you happy, you'll feel better in the long run.

    --
    "Is this not a rare fellow, my lord? He's as good at any thing, and yet a fool." -from "As You Like It", Act 5,
  304. Kin! by Creepy · · Score: 1
    I lasted a little over 2 years as a CmpE before switching to music for two quarters, then to CS where I got my degree, so I've been there. I was doing rather poorly at CmpE - which I call "Glorified EE." The first 2 years my classes followed the same path as EE and were some of the dullest classes I ever took. I started to get interested in my 3rd year, but by then I needed to retake a couple of classes I'd either dropped or failed (got a D in to be exact) and really never wanted to see them again. That caused a quick degree change to Music while I analyzed my options (and bounded to a 4.0 while there) and finally to CS (actually I was a CS/Music double major for about a year before dropping music for instant financial gratification). Personally I liked CS better, but I think that's because I got to ditch the early boring classes that I covered while in CmpE. They did make me take some worthless classes to get my degree - I had to take Scheme, normally a first year class, in my Senior year. The sad part was that I already had finished the classes that it was a pre-req for while in CmpE and continued on. I did manage to skip the intro class by cramming hard to learn the language and just took the second class (easiest A I ever had).

    My opinion of the two are:
    If you want to build and design computer chips, circuitboards, motherboards, controllers, and the like CmpE is the right route - it is essentially Electrical Engineering with some componentized classes that they don't get. What I mean there is while EE's usually focus on building components, CmpE's focus on building things with the components (ie, putting together a computer). There is a LOT of overlap - my classes followed the same track as EE in 80% of the classes (all non-electives, to be exact).
    CSci and CmpE overlap in one major area - writing of microcode (the actions on a chip that make up an assembly instruction). I know both CSci people and CmpE people who do this for a living.
    CSci focuses primarily on high level coding, with a couple of delves into assembly code and other low level languages. The purpose is to get people writing readable structured code that is maintainable and teaching students to work as a team to develop code (at least in the last year). I was a graphics and UI specialist, so I like my code pretty high level, which also explains why I didn't do so well in CmpE.

  305. CS vs. CE by yulek · · Score: 1

    Computer Science = some academician writing really awful java code
    Computer Engineering = some CTO lying through his teeth about architecture

    chose

    --

    --
    in this age of communication i'm just not getting through
  306. Re:As a Computer Enginnering Student (WRONG) by Stradivarius · · Score: 2

    Let me share what I've seen at my school with ECE vs. CS majors, and their experiences with hardware/architecture.

    I expect that which major - ECE vs CS - you choose will depend largely upon how the individual school structures their programs. At Carnegie Mellon, where I am currently a senior, those interested in hardware and architecture design would do best to major in ECE, as that is where much more emphasis/coursework is to be had in those areas.

    Keep in mind that if you try hard enough, you can probably get away with being a CS major and taking the hardware courses through the ECE Dept, it's just harder due to prerequisites. Similarly, you can be an ECE major and take the stereotypically CS courses. Which says something about the flexibility about both programs here (both programs are among the best in the nation) but I don't know how flexible other schools may be with that. YMMV.

    The reason, it seems to me, that there is debate about which is better for a given interest is because there is significant overlap between the two fields. People in both areas have to know the basics of hardware and software, just because each has to interact with the other. Which aspect you want to specialize in will probably determine your choice of major. I chose to major in ECE because I didn't know which path I wanted to take; it's looking now more like software, so I'm taking a bunch of CS classes, but I find my hardware background to be very valuable in my software work as well. I don't think I'd have been as well prepared if I had started in CS and tried to migrate towards hardware.

    So my advice to someone choosing a major:

    1. Check how your school of choice structures their program. Maybe even try to contact faculty at the school, and ask them questions. This more than anything will help you figure out which would best match your interests.

    2. If that doesn't give enough info to make your choice, go into CE. It will give you a broad foundation from which you can easily migrate to CS if you later find that's what you want.

  307. Comp Sci VS Software Eng. VS Elect. Eng by SmileeTiger · · Score: 1

    dont think the difference between Electrical Engineering, Computer Engineering and ?normal? Computer Science is that confusing. As one poster said:

    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.

    This is pretty close to the truth unless you get into the Computer Science options.

    At my school ( Lakehead University ) we have the following options in Computer Science : Science Option: This program has a lot of classes in programming
    Business Option: CS classes mixed with business classes. This makes you into more of an "IT" person.
    Hardware Option: Lost of hardware classes with lots of programming class mixed in. (This option kinda blurs the line between Computer Engineering and Comp. Sci. )

    Oh and to top it all off we now have a software engineering option under the engineering faculty !

    This even further confuses students because now they don't know if they want to be a Computer Engineer, Software Engineer or a Computer Scientist.

    This decision for me wasn't much of a problem because Lakehead decided to remove most of the Computer Science classes out of the Software Engineering faculty and replace them with Electrical Engineering classes. Since I wanted to be a programmer/sys. admin I simply transfered to Comp. Sci from the 'Software' Engineering faculity. This IMVHO makes the Software Engineers here less Software Engineers and more Electrical Engineers that have done a little bit more programming than the normal EE. This seems to be similar to what many Canadian universities have done so soon we are going to see a bunch of so called Software Engineers in the marketplace who don't know much about software development at all.

    Does anyone else have any comments on the difference between Software Engineers, Computer Engineers and Comp. Science students?

  308. The question is too broad by The+Swedish+Chef · · Score: 2

    The answer to your question is not as clear-cut as you would like. The answer really depends on the universities that you are considering, as I'm sure each one has a slightly different definition of "Computer Engineering". To make matters worse, companies suffer the same lack of uniformity in defining these titles.

    Generically speaking, you have five (or more, depending on how you break things down) different types of technical folks involved with computer development (both hardware & software):

    1) Electrical Engineers (EE): deal with things like designing processors, peripheral equipment (video cards, sound cards, hard drives, etc.) & physical networking medium. You can think of these folks as designing the actual physical boxes that sit on your desk. (There are also scads of other engineering disciplines involved in designing the actual boxes: Chemical, Materials, Mechanical/Heat-Transfer, but you aren't interested in those, right? :-)

    2) Computer Scientists (CS): covers a wide range of job responsibilities. Computer Scientists can do just about anything related to software. That said, most people I know who call themselves Computer Scientists prefer to work on low-level software that is algorithm intensive. Typical examples include operating system kernels, networking protocols (network through session or presentation layers on the OSI model), system libraries, programming language development, compiler design, numerically intensive applications, just to name a few.

    3) Computer Engineers (CE): typically act as the glue between the hardcore hardware geeks (Electrical Engineers) and hardcore software geeks (Computer Scientists). Your typical Computer Engineer integrates hardware and software, and as such has to be conversant in both (to a point). Computer Engineers might design hardware (say, a disk controller), or software (a RAID driver) or both. Some computer engineers also get involved in higher-level hardware design (like designing a system architecture, with the low-level software needed to support it). A lot of Computer Engineers get involved with embedded applications (automobile computers, robotics, networking cards, etc.).

    4) Software Engineers (SE): this is a VERY broad brush to paint people with. I know Software Engineers (by title) who write operating system code, and I know some who write no code, but are more involved with large software system architectures & project management. In the academic sense, Software Engineers typically operate at the highest level: designing large software systems, implementing quality control schemes & doing very little (if any) coding. In my (limited) industry experience, Software Engineers are typically applications programmers who dabble in the activities that define an "academic" Software Engineer.

    5) Information Technology (IT): this is newer, and even less defined than Software Engineering. IT people do a range of activities: maintaining corporate networks, system administration, web design, database administration, help desk staffing, software testing/verification, programming, etc. This is really a catchall for things that don't fit in other categories.

    Electrical Engineering and Computer Science are relatively straightforward, in that most schools have these departments by name. Computer Engineering usually falls under the auspices of one of these two. In my experience Computer Engineering is more often mated with EE in schools with stronger engineering programs, while the reverse is true of schools that have stronger science programs.

    Software Engineering is not, in my experience, available as a named major to undergraduates, though it is increasingly popular as a graduate major. Typically, Software Engineering-type courses will be offered by a Computer Science department, but not always (this was not the case at RPI, where I went to school). If your ultimate goal is to become a Software Engineer (as described above), your best bet is to major in Computer Science and take a long, hard look at courses offered by the EE/CE department.

    IT is a fledgling major at schools that do offer it (which I don't think is too many). At RPI it was (is?) largely a joke: basically CS for those who can't hack CS. This might not be true anymore at RPI, or at other schools (but I doubt it).

    My advice is to delay declaring a major as long as possible. Most universities won't make you do it until you are a junior. By then you should have experienced enough to make up your mind.

    Good luck!.

    1. Re:The question is too broad by ovlaski · · Score: 1

      Attending RPI now, and having several friends who are majoring under IT, I would have to say it really isn't that great. It's good in the sense that you get a broad variety of classes, but they have no free electives and they end up taking classes that are redundant and stupid to begin with. What kind of major has a class devoted to proving the major actually exists (IT, myth or reality)?

      Anyway, RPI is cool, but it's not the place for a liberal arts/CS degree.

    2. Re:The question is too broad by The+Swedish+Chef · · Score: 1

      but it's not the place for a liberal arts/CS degree

      I beg to differ that RPI is not the place to get a CS degree. There are certainly schools with better CS departments, but RPI's CS department is respectable.

  309. What I did.... by Lurker9 · · Score: 1

    Think a bit outside the box... My major is Liberal Studies.. My "foreign" languages were Cobol, Pascal, "C" (hey, this was a long time ago....) I built my major by combining Liberal Studies and CS.... I have worked in Aerospace, as a Software Engineer, a SysAdmin, and a Computer Security "Expert" Now I work at University, as a Technology Administrator, for the Liberal Arts College/School - SysAdmin, chief cook and bootle washer over all things Techy.... "The Degree" for what it was worth - gave me people skills, writing skills, and other social skills that were more "key" than a straight "CS" , "CE", or "CIS" type degree would have. Not your Average "TechHead" but just a bit more....

  310. Learn theory by charvolant · · Score: 2
    If you do go for computer science, make sure that the course covers the theory of CS and doesn't just teach you "how to program".

    I majored in physics. I later went back and did CS as a graduate student. The amount of useful theoretical stuff I learned about grammars, complexity theory, semaphores, analysis of algorithms, language design and so on during that time has stood the test of time and informed everything I've ever done from then on. The theory books still remain on my shelves after thousands of System X49.J33 Unleashed! books have been consigned to the dustbin of history.

    The point of going to university is to get an education, not do an apprenticeship.

  311. CS vs CSE vs CE by realspkr · · Score: 2

    There have been programs using Software Engineering at the core of the program for years; RIT is WRONG about being the first. Being a Software Engineer (_not_ a programmer) I have found that most companies have little use for Software Engineering. Most of my time is spent writing code, not engineering it. What they are really looking for are programmers that can crank out working source at a high rate -- regardless of quality. This is EXACTLY the shortsighted mentality that delivers the usual mediocre code year after year. I digress... If you're looking to get the degree, decide which you're most interested in, programming, engineering of software, or hardware, and from there you can target CS, CSE or CE respectively.

    --
    Just because you write code, doesn't mean your an engineer. Unless you also drive a train...
  312. Re:Okay, I'll bite. I'm an Engineer. by cheese_wallet · · Score: 1

    Math is hard?

  313. don't do computer anything!!! by small_dick · · Score: 2

    I am realizing I made a terrible mistake going into "computer science".

    First off, it's considered a "weak science" -- that is, much easier than physics, chemistry, mech/elec engineering to get a degree.

    Just read anything in the trade journals regarding Sun, MS, Microsoft. "no coding required" is the watchword of the day.

    I was at a tech fair several months ago -- I saw some vidcap systems on display. After playing with the software for awhile, I mentioned to the sales person that the gui felt "like something from the eighties" and had a lot of grammar errors in the english.

    He proudly stated that they had moved all programming to India and "saved a bundle" of money.

    Now, do you really want anything to do with programming when India and Chinese outsourcing is on the rise? If you specialize in something like moving shops overseas, you'll do well in the coming years, but the corporations, public opinion and US government view "programmers" as *way overpaid* and "losers" (personality wise).

    Do yourself a favor -- do as much hardcore math, physics and chemistry as possible and try to stay away from programming.

    Most of the corporate jobsites are heavily padded to make it look like there is a massive shortage of programmers. My brother worked for a company that had hundreds of programming openings on their website -- yet never hired anyone. It's a scam to pressure the government into opening more visa opportunities and easing outsourcing regulations.

    In fact, you may want to consider getting out of the sciences altogether. Much of engineering and programming is going to move overeas in the next couple decades.

    Don't just take my word for it...research what's really happening in the sciences. Unless you're really a gifted engineer, you may not like what's coming up.



    --


    Treatment, not tyranny. End the drug war and free our American POWs.
    See my user info for links.
  314. Why not BOTH? by madbuck · · Score: 1

    Many schools have alot of overlap anyway, see if it's possible to do both. Like someone else said, hold out on declaring a major right away, and see what you think (by talking to others in the program). Different programs at different schools can be quite a bit different. You sound like you really like computers, so why try to limit yourself? See how easy it would be to do a double major in CE and CS. You will have to plan your courses a little more carefully so they are the ones that overlap (e.g., an extra electrodynamics class may count for CE but not for CS), but in general it will increase your graduation time by AT MOST one semester, and often you will still graduate in the same timeframe with proper planning. At UW-Madison, the difference is as little as 2 classes with proper planning. Someone below had an accurate description - Computer Engineering seems to be the medium between EE and CS. It is inaccurate to say CE is "hardware" and CS is software - it is more accurate to say EE is hardware and CS is software, and CE is some of both. I wouldn't say any of the 3 are "harder" or more important, but I can tell you that you can get a job across different areas if you have exposure to both HW and SW. If you are more interested in SW, take more CSci classes as electives. I advocate trying to do both because most programs have alot of flexibility and required BS classes - if you try a double-major for example, you may only have to take a couple more classes, and most of your electives will be computer classes instead of wasting your time. *To those liberal arts people - I can pick up any book I want about history and read it any day of the week. Sure, I can read about HW and SW, but I don't have access to the fancy expensive equipment. That's the only way I can fully justify the cost of college.* Many of the responses are people who haven't finished their programs yet. As a recent graduate and participant in many interviews and job offers, I can tell you that if you have studied both hardware and software (regardless of your official major - e.g, you could be a CS major with some extra EE or CE classes), you WILL get offers from both sides, and they are very comparable in pay. But if you can get CE and CS, you will have all your bases covered. Plus, being able to interview with twice as many companies means twice as many free trips!

  315. MODERATORS! by PD · · Score: 2

    My article which you have thoughtfully labelled a troll was NOT.

    Is every dissenting opinion a troll? If you think that, then why not just censor the internet for every idea that you disagree with?

    The article that I posted which started this thread should either be left alone, or marked +1 insightful.

    You can moderate this article either +1 insightful, -1 flamebait, or -1 offtopic, take your pick.

    1. Re:MODERATORS! by PD · · Score: 2

      Thank you for your support. Ladies and Gentlemen, I present Exhibit A: /. moderator.

      I rest my case, no further explanation is necessary.

  316. CS or EE, not CompE by erice · · Score: 1

    There is no consistantly applied definition of what Computer Engineering is. In some schools it is a minor variation on CS, in other schools it is a minor variation on EE. And there are plenty of schools in between.

    Confused? Well, so are employeers. They don't know what Computer Engineering is supposed to be either. That's bad. Confused employers are less likely to hire you.

    So, don't confuse them. If you want to do hardware, go with EE. If you want software, go with CS. If you're not sure, get the EE, it's the more flexible of the two. (EE's can and do write software. Few CS's build chips)

    I'm a CE grad. I do hardware. Long ago, I gave up trying to explain what Computer Engineering means. I just tell them I'm a EE.

  317. Ah, onto page three and "Score 1" hell... by fleck_99_99 · · Score: 1

    Anyway, I'm a soon-to-be graduate of a Computer Engineering program, and I think your question is an important one. However, there doesn't seem to be one solid definition of Computer Engineering vs Computer Science, so I'm going to have to go on what I've seen.

    At the school I go to, engineering students do more math than computer science students, hands-down. Calculus, Statistics, Differential Equations, and Linear Algebra are requirements; CS majors only need Calc and DiffEq's OR Linear Algebra OR Stats... While CompEng majors have to take the hardest classes of CS (Discrete Structures, Operating Systems, Software Engineering, etc) plus programming courses, plus all of our Electrical Engineering core classes except for field and wave theory...

    It all depends on what you want to DO after school. I work mostly in math and numerical analysis. I know CE majors who are webmonkeys and CE majors who are ASIC designers... At least with our program, there's a lot of leeway. And I've worked jobs from microelectronics to contract software development, so (my bias here) I think engineering prepares you more broadly for a large array of jobs. Still, if you love to program, a CS major is (in many ways) easier, and gives much more programming practice...

    --
    seven two six five
    seven four six one seven
    two six four two e
  318. This is a demonstration of how ambiguity kills by Kalani · · Score: 1

    3: ability to produce solutions in some problem domain; "the skill of a well-trained boxer"; "the science of pugilism" [syn: skill]

    In the term "computer science" it's got mostly defintion 3 above.


    The "ability to produce solutions in some problem domain" is horribly vague. This is an example of popular culture affecting language. Babe Ruth wasn't a "brilliant scientist," regardless of the fact that he was great at solving the problems of baseball, because his "experiments" were not reproducable and he didn't set down any theory that could be disproven. The first definition nails it ... the body of knowledge acquired through systematic (reproducible) study.

    The third definition describes "skill." This is generally relegated to the airy notion of "indescribable aptitude."

    In short, to be skilled is not necessarily to be scientific.

    PS: You wind up saying that CS should be classified as a branch of mathematics but, as can be seen by reading the first definition of "science" in your post, this means that CS isn't a science.

    ____________________

    --
    ___
    The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    1. Re:This is a demonstration of how ambiguity kills by Mr.+Slippery · · Score: 2
      The "ability to produce solutions in some problem domain" is horribly vague. This is an example of popular culture affecting language.

      Sorry, no. The usage has nothing to do with pop culture. It's well established in terms and phrases like "library science", "arts and useful sciences", "medical sciences", "literary sciences", "Motion Picture Arts and Sciences", and "science of war" are pop culture. Is Lucent's "Mathematical Sciences Research Center" (where, to tie in another thread, Claude Shannon did his thing) a misnomer?

      Like it or not - and I can tell that you don't - any body of systemized knowledge can be called a "science". Yes, today that usage usually refers to a specific method of inquiry - the "scientific method - but not always.

      Tom Swiss | the infamous tms | http://www.infamous.net/

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    2. Re:This is a demonstration of how ambiguity kills by Kalani · · Score: 1

      Is Lucent's "Mathematical Sciences Research Center" (where, to tie in another thread, Claude Shannon did his thing) a misnomer?

      Well yes. Because it's part of Lucent, should that make it any more accurate? Pop culture (at one point) bred phrases like "library science." As for motion picture sciences, "chemistry" and "physics" aren't exactly motion picture sciences but if they mean "those studies that show why cameras and other related contraptions work" then it's accurate enough.

      Like it or not - and I can tell that you don't - any body of systemized knowledge can be called a "science."

      Anything can be called a science, that doesn't mean that we're talking about the same thing. Physics is not akin to "library science."

      Yes, today that usage usually refers to a specific method of inquiry - the "scientific method - but not always.

      When it does not it is of questionable integrity at best. In any case, it's called the "scientific method" because it is the method of science. It's not called the "Mr.Slippery method" or the "Kalani method" for just that reason. If you want to start your own discipline founded on some kind of meta-physical beliefs then have at it. Just don't call it science.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
  319. Differences... by SlamboS · · Score: 1

    The University of Michigan has a page devoted to this very topic. It may be just for that school, but it will probably be informative. It is

    http://www.eecs.umich.edu/cse/diff2.html

    /whois John Galt

    --
    Today is the closing of a parenthesis opened before this sig, before this story, before this existence that is me (as if
  320. Canuck universities. by Sir+Joltalot · · Score: 1

    Here in Canada, the general impression I get is that Comp. Eng. degrees are much more applied, and yeah, do involve hardware more. Some people like that more, some do not. I find "applied" math courses detestable, but that's just me :)

    Many people make the argument that a more theoretical background is more robust, if you've got a neuron or two to rub together. If you can figure out how to use all the theoretical stuff you're taught, you can use it anywhere. Whereas if you just learn how to do one thing, you have to be able to extrapolate the theory to apply it elsewhere. It depends how you think, I suppose. Can you extrapolate the theory behind things? Is that easier from simply being taught the theory for you? I think those are the most important questions when deciding between Comp. Sci. and Comp. Eng.

    NEway, back to *Canadian* universities. Here the Engineering programs are renowned for trying to royally screw students in their first year, in a sort of "weeding out" process. The Comp. Sci. programs do it too, but to a lesser extent. If that doesn't sound appealing to you, you might wanna move more toward Comp. Sci. There's nothing stopping you from doing a graduate degree in Comp. Eng. after, either.

    Maybe this is all redundant.. if it is, sorry!

    --
    "Caffeine is not an option. Caffeine is a way of life."
  321. Computer Science vs Computer Engineering by Twiles · · Score: 1

    The answer is not clear cut and depends on the school. At some Universities Computer Science is under the school of Computer Science and Computer Engineering is under the School of Engineering. In many cases the core courses are the same but the pheripheral courses are not. A good comparison is a Degree in Physics and a Degree in Engineering Physics. In Engineering Physics, engineering (technical) courses were substituted for German and some of the humanities. My roommate at Cal Berkley switched for Physics to Engineering Physics when he discovered he could not pass the foreign language (German). In Computer Engineering you will probably get at least an additional 8 units of core Differential Equations plus Properties of Materials, Mechanics, and more Chemistry. If the school is very large (like Cal Berkeley) there will be multiple majors within each degree and their electives will be substantially different. For instance, subjects like communication theory (routers, gateways, switches) are more likely to be under Computer Science than Computer Engineering. Unfortunately there is no national standard so the school's course of study must be considered. For instance both UTD (University of Texas, Dallas) and UNT (University of North Texas) give a drgree in Computer Science with almost no common subject material. Good Luck.

  322. What interests you more? by rebelcool · · Score: 1
    When you use a computer, are you more interested in writing the software for it, or how the hardware itself works? As in designing the cards and electrical architecture.

    If you're good at math and physics, CE might be for you, because theres quite a bit more in that than CS (though CS still requires some math, perhaps physics depending on your university)

    --

    -

  323. Information Technology? by crashnbur · · Score: 1
    (I tried to reply to this earlier today, and the server went down as I clicked on it. Funny how that works...)

    As a college freshman and an Information Technology major (that's my plan, anyway), this topic and the ensuing conversation is a great help to me. I have long been interested in Computer Science and Computer Engineering, but I've never really known the specifics of the two. (I've never really bothered to look.)

    Majoring in Information Technology, I get a more basic computer education that applies to the business world, but I'm not sure if that's all I want. Besides, I know all the basics. I've been looking for a major (or two or three) to add to Information Technology... Business Management is a good one for anyone to have, for that prepares you for and all but plants you in the business world. I've considered education, journalism, and philosophy and psychology, but the lattest two are the only that really interest me.

    What's a college freshman to do? I'm just sticking to my classes, watching the technology world to make sure I'm not setting myself up for a field that won't exist, and, for the most part, just enjoying myself.

    We should all just enjoy ourselves.

  324. Not Quite by nihilvt · · Score: 1

    I think its been brushed upon but not really stated, but CPE is much more closely related to EE than it is to CS. The fact is, engineers take more math and many more physical sciences than CS people. CPE is very closely related to EE in the fact that CPE is EE but much more focused on the design of transistors and hardware. Of course CPE people must learn software, but it is nowhere near as in depth as CS. CPE and CS people get hired for the same type of jobs, however the focus of the degrees in my opinion is much much different than portrayed here. CPE is engineering. CS is not. The difference between engineering and non engineering degrees is HUGE.

  325. Re:CS vs. CpE by Das+Kamikaze · · Score: 1

    (Subject changed to reflect varying schools' abbreviations)

    So here's one way to decide: What did you play with as a kid (or right now, for that matter)?

    Choose one:
    [ ] "I learned BASIC, asm, and C." Congratulations. You are a CS major.
    [ ] "I tore apart radios and used Radio Shack 'x projects in one' kits." Congratulations. You are a CpE (or possibly just plain EE) major.

    It might just be that easy.

  326. Hardware? Not if you go to a 4 year college! by acoustix · · Score: 1

    I can guarantee you that you will hardy ever, EVER touch the inside of a computer at a 4 year school. If hardware is what you want then go to a community college first for a year or 2 and then go to a 4 year school for programming and logic and stuff. There's a lot of 2 year schools that offer Cisco training and certification as well as microsoft cert and stuff.

    --
    "A plan fiendishly clever in its intricacies"- Homer Simpson
    1. Re:Hardware? Not if you go to a 4 year college! by realspkr · · Score: 1

      Actually, this is not true. One of my courses included working in a SemiFab making a 'chip' on silicon. Topics of hardware architecture were also covered using Labs with real hardware. Any ENGINEERING degree is going to require a substantial amount of hardware work -- usually 3 or 4 courses over anything a CS program will require. Look for ABET accreditation, there are VERY few. UCLA was mentioned, Northern Arizona University has it, and a few more.
      Admittedly, MOST programs just aren't as good.
      Shameless plug: http://www.cse.nau.edu/Departments/CSE/

      --
      Just because you write code, doesn't mean your an engineer. Unless you also drive a train...
  327. Do Both by almeida · · Score: 1

    Double major. Sure, you'll get stuck with tons of work, but you'll also have twice the experience as anyone else. Or consider a course load that mixes the two, like embedded comptuer systems. What you'll find in college is that a lot of people sign up to major in computer science and end up dropping it because they just can't do it or they don't want to spend the time to try to do it. Computer science isn't bad, but electrical engineering or computer engineering involves a lot of work. I'm double majoring for a few reasons. One is to just prove that I can do it. The other is that I could probably teach myself everything they would ever teach me about computer science here. So, I figured I didn't know anything about EE/CE but I was interested. I figure if I can't handle EE, I can fall back to CS without having to play catch up with courses. PLus, I'll have twice the job opportunities in theory. And maybe I could end up working for a company similiar to Transmeta, somewhere that blends CS and EE/CE.

  328. Let's Look at the words themselves... by williamwallace14 · · Score: 1

    All this talk of hardware vs software is to a degree true, but you are overlooking the underlying themes of the majors.

    Computer Scientists are just that, scientists. They deal with the theory behind programs and the programming method. Sure, a computer engineer can do this too, but for the most part, CS majors deal with the theory of computing.

    Engineers take theoretical ideas and concepts, and integrate them into real world situations. If you want to build a new OS, you'll talk to a computer engineer, but in the end (most likely) a computer scientist will do the programming.

    Being a computer engineer (at purdue) and knowing many CS majors, I have seen what classes and such are offered. I myself am going the course of software engineering, which means I have to be (for the most part) extremely proficient in programming, yet the core classes still deal with high level math, circuit analysis, and logic design.

    So, if you want to sit and code all day, then by all means, take up CS. However, if you want to be able to do more than just program (though still program if you see it fit to) the CompE is the way to go.

    -Wallace

    --
    "I am Jack's complete lack of suprise." -Fight Club
  329. Desparate?? by Outatime · · Score: 1

    "Desparate enough to hire a computer engineer instead" ? Say what? I hate to break it to you but the only thing that would keep a company from hiring cmpE over cmpSci is that they'll have to pay the cmpE person more. CmpEngrs are worth more in the market today, and will be for a while, I'm sure. In my experience, the computer engineering program at most schools is more rigorous. You'll get most of the stuff that comp sci gets, plus a solid foundation in EE as well. Downside? It'll probably be more difficult. It might even require more credits to graduate. So what. At least you wouldn't end up as a software weenie in the end.

  330. CS!=programmer by msn · · Score: 1

    I can't believe so many people have this misconception. Computer science is not programming. Software engineering is programming. It's the same as physics and mechanical engineering: one side deals w/ theory, the other side deals with application. Unfortunately, colleges and universities have not (as a whole) caught on to this little fact, and try to lump the two together. That's when you get professors who are technically brilliant, but horrible programmers; their style rubs off on their students, and everything goes to hell. If you want to be a programmer, don't take CS as your major. Go for engineering or physics or applied math; majors that deal with computations that need to be as fast and accurate as possible.

    --
    Yes, my initials are MSN. And I used to live off of Altavista Rd.
  331. Re:On the other hand (slightly off-topic) by BlueFrog · · Score: 1
    >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.)

    Caveat: this is more than 15 years old; you were (at best) in diapers :)

    Yeah, true. I did speak too soon. I think the Mathmatics & Music depts. (I'm a music convert myself) would be the notable exceptions to this. Mostly I was trying to warn against 'trade school' computer classes, usually masquerading as CS-Business hybrid programs.
    One of the articles had an article outside his door with an on-the-record comment from an IBM recruiter/manager. He said that when hiring a programmer, he *preferred* a math major to a cs major, because, "I want someone who can think."

    Definitely true. When I started taking upper-level mathmatics, I got several comments from professors to the effect of, "Oh, well, we'll be writing actual proofs, not just automating the process." One of the things that I really loved about Indiana University's CS program was the explicit aim to teach the students to think. One instructor burned "if all you have is a hammer, everything looks like a nail" into our minds for a semester, which killed any 'favorite language syndrome' in me forever. There were still a lot of 'cookie cutter' programmers in my classes, but I'm convinced that this was despite the instructors'/Professors' best efforts.

    I guess the point here (and I should have said this in my earlier post) is that everything I've said has been from my own experience at one school. Things may be considerably different elsewhere.

    cheers,

    -chris

  332. colleges/universities by NiceSocks · · Score: 1

    I'm kind of in the same boat as you. I have no idea if I should go for CS or CE or even option number 3; screw it. Also I'm pretty sure that none of the colleges around here have CS or CE and you have to go to a university for that. But after reading all these posts I've concluded 2 things:

    1) alot are biased
    2) the whole choice depends on your school

    Since the prof can decide what you're going to do and going to learn, and since alot of the less tech savy schools think CS == Visual Basic, go with what seems the best according to the advisors/councelors/proffesors, they know what you're going to learn at your college, everyone else is just guessing.

  333. Guideance counselors by Ben+Pflaum · · Score: 1

    And of course this informations is comming from a man whose desk is connected to his chair.

  334. Not like it matter by loosenut · · Score: 1

    I got a B.S in Electrical Engineering: microprocessor design back in 1997 from UW. I never used anything I learned, but the fact that I had a degree at all got me a partnership position at a technical drafting consulting company within three years.

    In fact, of the group of friends that I hung out with back in college, only one of four of us (I didn't have very many friends) is doing anything remotely related to their microprocessor design EE degree. What you study isn't as important as the fact that you hold a piece of paper that says you are capable of jumping the hurdles that college throws your way (unless it's a business degree; that just means you drank a lot of beer in college).

  335. MCS by loki125 · · Score: 1

    Don't do either. Do like I did and get a specialised degree at a school with a 100% placement rate. Right now I'm attending UW Whitewater in Wisconsin, getting my degree in Management Computer Systems (MCS). I just so happen to be getting that degree with a business emphasis, but you could go the more scientific route (more math) as well. Whitewater has been named the top 4-year computing program 6 times by the Association for Information Technology Professionals (AITP), and just redid their curriculum. Forget the other two unless you want to be stuck in a cubicle or working under a computer guy with more seniority. This degree will give you the computer and business skills to not only be the best for the job, but a good leader.

  336. Re:Apply for Computer Engineering and then switch. by DCheesi · · Score: 1

    Obviously, this will depend on the school; the levels of supply and demand for each major will depend on the reputation of both the school and the department in question.

    Actually, it's not uncommon for new engineering majors to be the *hardest* to get into. Often when a hot new field of study opens up, the initial student demand exceeds the supply of qualified instructors and/or other resources. The response I've seen from some schools is to make the new major a de-facto "honors" major; ie. only those with high GPAs the first few semesters are allowed in.

    Of course, if the school has had CPE for a while, or if they are really accepting people into the program from day one, then your strategy may work. Be aware, however, that not all schools make it so easy to transfer from one program to another, especially between technical and non-technical major. By the time you've figured out that you want to switch majors, too many of your credit hours may be in non-transferrable courses.

  337. Education != True Understanding by FallLine · · Score: 2

    What separates the men from the boys is experience. I don't care what you say, but merely passing, or even graduating with honors, from any program does not somehow magically confer you the powers of deep understanding. Nor is it true that just because a person is self-taught, that the person cannot have a deep understanding of the subject matter. There simply is no replacement for hard work with the relevant material. I'll readily conceed that taking a particular program can _help_, but it's neither necessary nor is it a guarantee of understanding.

    Empirically speaking, I've known people with top grades from the best programs in the country who can't hack their way out of paper bag (or perform other technical tasks). I've also known people that are largely self-taught, but are more capable and committed. There are also numerous counter-examples. Rather than enumerating each and every one, let me just say that you're overgeneralizing. I think your problem is that you confuse the entry level VB-type programmer for all self-taught programmers. This is simply a mistake. That programmer simply has never been exposed to anything more advanced than a couple simple subjects in limited scope. But if the programmer has covered more advanced subjects and written effective code for it, he WILL know his stuff.

    If I, as an employer, had my choice between hiring a self-educated programmer with 10 years experience developing operating systems and compilers or a wet behind the ears programmer from any school in the country, everything else bring equal, I'd take the experienced one in a minute. What's more, I suggest to you that virtually any technology that is new and innovative is LARGELY focused around self-education (this is particularly true in engineering). In fact, one of the things that you should have learned in school (but didn't necessarily recieve) is not just about how computers work, but how to teach yourself, how to learn, how to think, discipline, etc.

  338. Specific Examples ...... by benspionage · · Score: 2
    Being in the 5th year of a Comp Eng. / Comp Sc. degree (Uni of Newcastle, Australia), I thought it might help to give some subjects Ive done from each side of my degree to get a feel for the differences.

    Comp Eng:

    • ELEC220 - Sensors and Actuators
    • ELEC340 - Signal Processing
    • ELEC371 - Microprocessor Systems
    • ELEC470 - Advanced Computer Systems
    • ELEC471 - Real Time Systems
    • ELEC480 - Computer Engineering Project

    Comp Sc:

    • SENG205 - Introduction to Web Programming
    • COMP223 - Introduction to Algorithmics
    • SENG211 - Software Analysis and Verification (Java)
    • COMP325 - Database Systems
    • SENG328 - Computer Networks

    The first number in the above subject codes gives the year they are undertaken. As you can see it largely backs up what other posters have been saying regarding Comp Eng. having a larger hardware/electronics/system design emphasis with Comp Sci. emphasising algorithm/programming/internet skills.

    However, youll notice I have bolded the last Comp. Eng. point because, IMHO, an important difference b.w. the degrees that has not been emphasised is that Computer Engineers do a final year practical project. This project is 9 months work and is a BIG chunk of your final mark. It is the principal reason a Comp Eng. degree goes for 4 years (vs 3 years for Comp Sc.).

    With Comp Sc. there is no final year project. An honours year after you graduate (provided you have the marks) will let you do a project similar to that of a final year Comp Eng. but this means the degree will also go for 4 years.

    Computer Engineers get honours based on their final mark. For example at my University a final mark of 77 or greater gives you first class honours. This may seem easy to get but no more than the top 5% of the course attain this mark.

    My final point is that I believe the Comp Eng. part of the course has been much harder than the Comp Sc. part. The maths is far more involved and the amount of theory including circuit knowledge is harder to grasp.

    But this is just my opinion relating to my particuar University and although my mates at Uni have said similar things, Im sure it does not apply for everybody.

  339. Take what you're interested in by desktopcoke · · Score: 1

    First I wanted to address this elitism I'm sensing from some CE people in here. I've been working in the computer industry for 10 yrs now and graduated as a CS major. Currently I'm doing embedded systems development writing low level diagnostic code for our devices. I work very closely with the hardware and you know what the transition from high level programming to low level hardware interfacing was NOT difficult at all. In fact all of the guys (with the exception of one guy who is an EE) who are doing the embedded work are CS majors. Of course I had to put in my time and read the manuals, download the specs, constantly refer to the blue book for the particular processor we're using etc. but it was not some fsckin genius level stuff that only a CE person could understand. It only took patience, work and interest, with interest being the key to it all. So to answer the main question, take what you're interested in right at this moment because as you go through life you're interests will change and if you're reasonably intelligent (like most geeks are) and patient and open to learning new things thing you can move in which ever direction those interests take you.

  340. ECE/CS double major by Sxerks · · Score: 1

    If you have the time and interest go for it all. I original wanted to do just EE, but then found out that the college I wanted to go to only had ECE. So thats what I took. Near the end I found out that adding a CS major only required like 4 extra CS classes. So if you really want want it all its not that hard. U of Minnesota, Duluth.

  341. (EE (CPE) CS) by DCheesi · · Score: 1

    For CPE vs. CS, I doubt it would be much of a problem to switch majors once you've started. I suspect CPE-to-CS might be slightly easier than the reverse, but this is highly dependent on the individual school/program.

    Personally, I would try CPE if you're torn between software and hardware; if you know you want to do software, going straight into CS might be a good choice. Also, companies making PC apps or web-apps are more likely to hire CS; those making embedded, networking, or other hardware-intensive products (eg. peripherals with driver software) may favor CPEs, even for purely software positions.

  342. CE and CS are all part of one big family by Mister+Kurtz · · Score: 1
    One thing people don't tend to understand is that all "computer" majors are all part of the same cirriculum, really. It's really a broad spectrum.

    On one extreme end, the high level end, is IS/business majors. They deal with computers in a very "interface" sort of way - they learn how to administer them, set them up, and manage them in general.

    Moving down the spectrum is the Computer Science major, my personal preference. They don't deal as much interfacing with machines and programs, but deal more with writing the software that the user will see. This probably covers the biggest amount of area - some deal with the application level, while some go down to the kernel level. CS majors usually have to know about both to understand what's going, but they don't generally learn all the details of the low level hardware. Likewise, they don't bother learning how to set up an Access database - too high level.

    At the lowest level are Electrical Engineering majors. From the beginning, they learn how the hardware works, with both analog and digital circuits, transistors, flip-flops, memory, etc. Nothing is really too much detail at this level - you should be able to do ASIC design of hardware by the end. Programming is not a very big part of the study here - one or two courses at most, versus a majority of courses in CS.

    CE is an attempt to bridge between CS and EE. They basically take parts of both, without throwing away what's important in either (hopefully).

    Hope that helps.

  343. Quick summary by Anonymous+Squonk · · Score: 1

    CS emphasizes the theoretical side of computing (programming concepts, logic, etc.) CE emphasizes the technical side of computing (how to get all of those electrons to display a Doom game on your laptop without melting the case). CE majors can generally cross over to CS type work (as I did) without much difficulty, but the same can't be said for CS->CE.

    Therefore, if you are still on the fence and aren't afraid of a lot of higher math and science classes, go for the CE major to keep the vast majority of doors open. But if calculus and physics give you convulsions, save yourself a lot of pain and take the CS route.

  344. 4-year IT degrees by palmer · · Score: 1

    I'm a student at Southwest Tennessee Community College(<a href="http://www.stcc.cc.tn.us">STCC</a>) (2-year technical), concentrating in UNIX and C/C++, so that I can have some skillz. I'm planning on attending one of the regional universities, such as <a href="http://www.utk.edu">UT Knoxville</a>, and getting a 4-year degree in either programming, sysadmin, or supercomputing.
    <br> Any suggestions?

  345. Engineering is a discipline by snStarter · · Score: 1

    It's important to remember that an engineering education has a certain breadth to it - and a philosophy of study. So do the sciences.

    I'm an engineer and I value the training in group problem solving, the cross-discipline looks at civil and mechanical engineering as well as the courses in engineering law. I learned a lot about problem solving in a way that seems different from the computer science curriculums.

    The advice to ask questions of students is sound.

  346. Re:Computer Science Majors are Engineering Dropout by Darth+Gambit · · Score: 1

    Learn to spell jackass! Computer Engineering majors don't right good code, they write code. Computer Scientists write good code because they aren't stupid like you, the person who can't even right code.

  347. Re:On the other hand (slightly off-topic) by hawk · · Score: 2
    >One instructor burned
    >"if all you have is a hammer, everything looks like a nail" into our
    >minds for a semester, which killed any 'favorite language syndrome' in
    >me forever.

    However, if that one language is Fortran . . . :)


    >There were still a lot of 'cookie cutter' programmers in
    >my classes, but I'm convinced that this was despite the
    >instructors'/Professors' best efforts.


    Yep, there's limits :) In the math class, the CS folks served as curve fodder. We also got a bunch of EE's in our EM THeory l class (after they had a disaster instructor in their electromagnetic theory class). This instructor handed out tests sorted by grade. With 9 of us (Physics) and 18 of them (engineering), we usually got 8 of the first 9 tests.


    Before the tests, they would ask us, "how do you remember all these fromulas."


    We'd stare blankly back. "You're kidding, aren't you? There's 200 in that chapter. Know this one and this one and integrate".


    At which point a blank look would be returned . . .

  348. CE not the same at all school by gillgates · · Score: 1

    I have been reading what people are saying about both majors. I am a CE at the University of Pittsburgh and we take just as many classes at the CS people do in programming. Our engineering school doesn't require all those stupid humanities... So we can take cool classes. 14 Hardware classes and 13 Programming classes.

    1. Re:CE not the same at all school by daveman_1 · · Score: 1

      That sounds like a very interesting approach.(I've already taken the humanity stuff anyhow...) But I've never heard of a University that didn't require some of the unnecesary bs. So here's my question: How far is that from Uniontown? ;o)

      --
      Russian Russian Russian RussianDollSig DollSig DollSig DollSig
    2. Re:CE not the same at all school by gillgates · · Score: 1

      uniontown? no clue... we take about 5 total humanities... but that is a lot less then CS.. no history and stuff like that...

  349. Re:Hello McFly! "Vendor cert" programs != college. by Dan93 · · Score: 1

    There are probably some out there who are helpless, but there are also some out there who will RTFM, and teach theirself netware if their job's important to them.
    ====

  350. What I'm doing: by robotica · · Score: 1

    I'm a first student at Cal Poly State University.. I've always been interested in electronics (I built robots and an electric car in high school). At the same time, I've always wanted to learn how to program. So, I'm majoring in electrical engineering, and I"m minoring in computer science. This way, I get all the hardware stuff, but at the same time, I'm learning Java and algorithms and everything. Have fun!

    --
    My sig's longer than yours.
  351. Re:But Computer Scientists GET PAID more by tjb · · Score: 1

    Bullshit. I write code for a microprocessor with some quasi-DSP functionality. It is software pipelined, filled with all sorts of wierd dependencies, has 1K code space and 1K data space (2K/2K in the newest spin), and has to perform in a precise (to the cycle) realtime manner. There isn't a C-compiler ever made that could turn out assembly code as well-tuned as what is required for this beast to work. This isn't a PC where 90% of theoretical efficiency is good enough (though I doubt any compiler gets that close). Everything is hand coded assembly, and I most certainly do have enormous control over the unit. A lot (dare I say, most) of DSP code is written in much the same manner. A compiled language is rarely good enough for small embedded systems and DSPs with tight realtime requirements that you want to use above and beyond what the chip designers ever thought possible. There are still plenty of jobs around where every bit and every cycle count. -tjb

  352. 13 years ago.... by pjrc · · Score: 2
    When I started at Oregon State University in 1988, the "Computer Engineering" degree was relatively new, at least at OSU. I had been interested in programming and electronics for many years, and at an orientation I originally mentioned "computer science". I did quite a bit of hardware hacking in my last year of high school, mostly connecting stuff to my homebuilt Apple2 (hey, it was a mainstream system back then). I was a bit bored with only programming and hardware seemed much more creative, so I changed to "Computer Engineering". I later switched to Electrical Engineering, mostly because the CS department at OSU had a three-year run of TAs they hired who couldn't speak english (accent so heavy it was like listening to the teacher in Peanuts!)

    At least in 1988 to 1992, the difference between computer engineering and electrical engineering was a small handful of classes. CpE required about 6 classes in algorithms and other programming related topics, which replaced EE classes about machines/motors, transmission lines (all the wierd stuff that happens when you don't terminate a cable, like forgetting that 50 ohm resistor on 10BaseT), and a couple more more advanced math classes. Other than switching this small handful of classes, there really weren't any differences between CpE and traditional EE. In the final year of EE, there is some choice about what classes to take, such as control/feedback, communication theory (math), analog electronics, high power systems/circuits, computer/digital architecture, and microcontroller-based design. If you went the CpE route, you'd take the courses in these last two groups.

  353. PHB by sasquatch21 · · Score: 1

    Since the differences between hardware and software are so foriegn, I recomend a pursuing management.

  354. Can't Exist Without The Other by magic+weaver · · Score: 1

    This was probably posted somewhere in the countless other post, but to get things straight.

    Comp. Eng. can't exist without Comp. Sc. and vice versa. When I was doing Comp. Eng I discovered we couldn't do many things without the aid of Comp. Sc. material and most of my friends who did Comp. Sc. agreed that they couldn't do things without the aid of Comp. Eng. material. However most people would agree that you would cover more in Comp. Eng. in comparison to Comp. Sc. as you would be coverting the best of both worlds (electronic and software) however in Comp. Sc. you would cover very little on electronics and focus entirely on software.

    In the real world graduates from Comp. Eng. have an easier time getting jobs in either an engineering company or a software company. However Comp. Sc. graduates have the options somewhat limited. However it is only fair to mention that you don't have to severly rack your brains when studying Comp. Sc. since you won't be dealing with complex mathematical theorems and calulating compression algos with nothing more than your calculator.

    Well I've stated my case and only you can decide on what you truly want. My opinion? Do Comp. Eng. you won't regret it.
    -----

  355. First year as well... by To0n · · Score: 1

    Not a frown. More like a typicle sneer or goofy smile

    P.S. There's a town here? ALl I know is what's on the way from University to about Culver.

    Albertsons, Campus Plaza, and the F**KING PARKING!

    --
    blah
  356. Information Technology is NOT a BS major!!!! by hellfire · · Score: 1

    Of course I'm probably giving into a Troll, but it needs to be said.

    See, in high school, most people think that Information Science/Technology is where CS majors go when they can't cut it. Unfortunately thats a myth spread by those who are narrow minded.

    IST (as we called it in my college) is really a natural growth of of computers. There is more to computers than just hardware and software. Thats what most people break it down into. In truth there is a third component people keep forgetting... the HUMAN.

    IST is about information. Information is what humans need. IST majors concentrate on getting information from the computer, to the human being wanting the information.

    The problem is with many CS curriculums these days is that they concentrate on theory and mathematics and coding, but they rarely deal with the practicality of creating an interface, designing a database which strong relational integrity, and dealing with humans to figure out what they need.

    IST majors deal with this directly. Technically, IST is not as intensive as CS or engineering, but there are other kinds of knowledge other than coding a good recurrive algorythm in C or cracking a code or fixing a bug.

    Now these things can be learned by anyone, and usually are learned after college if you don't learn them before. However, its a huge advantage to anyone who comes out of college with that information. Without that information, biases about what makes a good interface or system for the masses usually ends up screwing up your work because no one wants to use it.

    Gee... isn't that one of the main problems with Linux now? There isn't an interface easy enough for everyone to use yet so no one wants to use it, BECAUSE YOU CAN'T GET INFORMATION FROM IT IF YOU DON'T KNOW HOW TO USE IT!

    Okay, I'm off my high horse :)

    --

    "All great wisdom is contained in .signature files"

  357. Re:But Computer Scientists GET PAID more by TitanBane · · Score: 1

    Since when has "semi-high level language" been used to describe what you do? Embedded systems and DSP code are no where near high-level.

  358. Scroll down and read about IST by hellfire · · Score: 1

    Its a bit low but I wanted everyone to consider Information Science and Technology. This is all about CS vs CE, but IST is a very viable option and is all too often considered a "BS major" as someone on this list put it.

    IST is a very very important field of study, and we need more IST majors or IST thinking people working on Linux. If we do I think we can really give linux a push.

    For more read my post about 36 lines down.

    --

    "All great wisdom is contained in .signature files"

  359. CS vs. EE by LinuxParanoid · · Score: 1
    Exactly what is included in the courses and the degree varies from school to school. There is no academia-wide consensus that I know of with really well-defined boundaries.

    My advice would be the following: You don't need to decide your major now when you haven't even graduated high school; wait till you get to campus and see and talk to fellow students about the specific courses involved. Pick the major that has the courses you find most stimulating (or has the fewest courses you find annoying/irrelevant).

    Now in general, CS guys will never be hired for hardware/EE jobs, while the reverse will happen. This implies that an EE degree might be better (more flexible), but if you're going to work in software at the end of the day, you might as well get the extra software and algorithm experience from the CS degree. As a counter-example, I once interviewed someone with an E.E. for an internet startup I was working at and after looking at the mostly hardware courses he listed on his resume I found myself wondering how much coding experience he really had (we didn't hire him). So an E.E. degree without much software can be a minus.

    Personally, I started out as and E.E. and switched to C.S. after taking and hating the first of four analog electronics courses (RLC circuits anyone?) I would have needed to get the E.E. degree. No regrets.

    --LP

  360. old news? by Servo · · Score: 1

    is it just me or is this same question being repeatedly posted??

    --
    A slip of the foot you may soon recover, but a slip of the tongue you may never get over. -Benjamin Franklin
  361. Re:But Computer Scientists GET PAID more by tjb · · Score: 1

    My fault.

    I thought you were implying that everything nowadays was written in at least "semi-high level language". Its an implication that bothers me, as quite often I here things like "Nobody programs in assembly anymore" or "A compiler can always beat a human, if you say otherwise you're full of shit".

    So depressing, its like myself and other firmware developers are treated like we don't even exist anymore.

    -tjb

  362. Slight Inaccuracy... by skippinator · · Score: 1

    For the most part, that post holds true. However, claiming "If you aren't good at Math, get a CSc degree" is a mistake. I am a CS major at UCSB, and a quick check at the course catalog shows that CS requires two more quarters of math (vector calculus and probability/statistics) than the CE major. If you aren't good at math, though, you'll have a hard time getting either degree...

  363. You've misinterpreted what I've said ... by Kalani · · Score: 1

    or I haven't been clear enough, I'll rectify this now in any case.

    I wasn't talking about the difference between science and philosophy, but on how to recognize what is science and what isn't

    I know, I brought the difference up because it was implied in your post that you didn't recognize the difference.

    (which is, as far as I know, the main issue in the philosophy of science).

    Further evidence ...

    In your original post, you stated that people generally regard science as a source of infalliable information, however Newton's own theories have been proven to be not correct.

    I didn't say that all scientists spew out infallible information. The important point here is that scientific "theories" (or even scientific "facts") can be disproven.

    For example:

    "The universe is governed by 'God,' who lives in a place called heaven (which we won't find until we die) and cannot be contacted by mortal man." -- this is an empty assertion (it can't be disproven.)

    "For every action there is an equal and opposite reaction." -- this assertion can be disproven.

    In one of your other posts, you mentioned something about truth not being important, but rather the pursuit of truth (is important).

    You took that out of context. The quote was from a play called "Arcadia." The message was that we're defined by our actions, not our discoveries. You've completely misinterpreted what I said.

    in the real world, you simply cannot rely on people's unbiased pursuit of the truth.

    Oh geez ... well at least we finally agree. The scientific method is the standard by which findings are made. If a scientific experiment is done incorrectly, the results are misinterpreted, or the results cannot be duplicated ... the data is discarded. It's almost like error correction in a modem, it filters out the noise.

    In todays economy, where science is for the most part big business, research grants and empolyment opportunities are just two factors that have the potential to skewer the pursuit of truth.

    Your mistake here is that you redefine science. If a "scientific experiment" is put forward that makes the case that "cigarette smoking is harmless" then, if it can be disproven, that assertion is thrown out. If a claim is made that cigarette smoking is harmless because God told me but he'll never tell anyone else then obviously the claim can't be proven and it gets thrown out. If the claim uses manufactored data and can't be duplicated by another research team, it gets thrown out.

    So would you consider things like Creation Science science? If not, then I don't see how you can stand by this statement.

    If you're actually serious when you say this, you must not have read anything I wrote. Just because it has "Science" in its name does NOT make it a science. "Creation Science" makes assertions that are not provable. Therefore it is not a scientific endeavor (just like a lot of things in the world that have "science" appended or prepended to their names.)

    I can't really think of too many scenarios where what a computer scientist does is scientific at all.

    I agree, that's why I brought this up. I really would like an example of a scientific experiment performed by a "Computer Scientist." I also agree with your statement about "CS" being a branch of mathematics. It would certainly be more accurate to call a CS-major a computician (kind of funny, but more accurate.)

    Thank you.

    ____________________

    --
    ___
    The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    1. Re:You've misinterpreted what I've said ... by durtro · · Score: 1
      For example:

      "The universe is governed by 'God,' who lives in a place called heaven (which we won't find until we die) and cannot be contacted by mortal man." -- this is an empty assertion (it can't be disproven.)

      "For every action there is an equal and opposite reaction." -- this assertion can be disproven.

      What exactly counts as disproving this statement?

      If you say that it is experimentation, then I challenge you to show me an experiment with results that can be used to clearly refute this law. I can easily say that the results that refute this statement are due to experimental error; and if I don't want to do that then I can always say that the problem was in the definition of the terms equal and oposite.

      This sort of thing is done quite often in natural science. Scientists are happy to postualate the existence of unobservables to hold on to their theories. This is also not necesarily a bad thing, sometimes the problem really is an experimental error, and terms usually aren't wll defined until they are tested by apparently contradicting evidence.

      Where to draw the line between a good scientific reluctance to give up useful theories, and a nonscientific faith in past results is not apparent.

    2. Re:You've misinterpreted what I've said ... by Kalani · · Score: 1

      What exactly counts as disproving this statement?

      Two rocks collide in the cold vacuum of space and instantly freeze (no rebound, no transfer of kinetic energy, etc...)

      One example refutes an inductive principle.

      I can easily say that the results that refute this statement are due to experimental error

      Of course you can say that but it doesn't make it true. Neither you nor any other human being constitutes the sole deciding factor in the measurement of objective reality. You'll have to show the error in a deductively valid argument (unless it's not deductively valid, in which case it is not admissible immediately.) If all parts of the argument can be proven to be true, it is valid whether or not you protest.

      and if I don't want to do that then I can always say that the problem was in the definition of the terms equal and oposite.

      That would be fine if your new definitions made the theory work. It's not about who wins, it's about what's right.

      and terms usually aren't wll [sic] defined until they are tested by apparently contradicting evidence.

      Do you mean that the terms are too vague? This statement doesn't really make much sense.

      Where to draw the line between a good scientific reluctance to give up useful theories, and a nonscientific faith in past results is not apparent

      Yes it is but it's at the individual level. If you claim that you have found a refutation for one of Newton's laws, and you outline the experiment, I can attempt to reproduce the experiment. If I reproduce it correctly and observe something different than what you claimed, I would discard your claim. If I reproduce it correctly and observe the same thing, I move toward revising current theory. The *act* of Science can be considered the largest distributed computation of all time.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    3. Re:You've misinterpreted what I've said ... by durtro · · Score: 1

      Two rocks collide in the cold vacuum of space and instantly freeze (no rebound, no transfer of kinetic energy, etc...)

      I would say that the 'vacuum' wasn't really a vacuum. (currently) Unobservable objects carried away the energy of the two rocks when they met.

      If I interpreted it this way, I would then of course have to start a new research project to find these unobservables and make them fit into my current theories. Unless I am omniscient I can't be sure that these unobservables don't exist, and unless I have a better theory (something that explains more than what was previously explained) I won't give up this law.

      Where to draw the line between a good scientific reluctance to give up useful theories, and a nonscientific faith in past results is not apparent

      Yes it is but it's at the individual level. If you claim that you have found a refutation for one of Newton's laws, and you outline the experiment, I can attempt to reproduce the experiment. If I reproduce it correctly and observe something different than what you claimed, I would discard your claim. If I reproduce it correctly and observe the same thing, I move toward revising current theory. The *act* of Science can be considered the largest distributed computation of all time.

      The problem is there is no algorithm to determine what the right interpretation of an experiment is. You can clearly draw the line between the scientific and the unscientific at the individual level but whether or not your methodology for doing so is sound is an open question.

    4. Re:You've misinterpreted what I've said ... by Kalani · · Score: 1

      I would say that the 'vacuum' wasn't really a vacuum. (currently) Unobservable objects carried away the energy of the two rocks when they met.

      Then you've come up with a hypothesis that can be disproven. That's a scientific response anyway.

      The problem is there is no algorithm to determine what the right interpretation of an experiment is. You can clearly draw the line between the scientific and the unscientific at the individual level

      What I said was that you reproduce the experiments and observe the results. Observations constitute objective measurement and rules of mathematics determine whether or not the experiments were conducted correctly. I did *not* say that "scientific" and "unscientific" at the individual level are airy things that can be redefined and tossed around like a bedsheet.

      ____________________

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
  364. this is a computer SCIENCE & math pupil talking... by Little+Billy+Gates · · Score: 1

    and while for the next 2 years I will be taking nothing but MATH and CS classes, at least 2 of those classes will involve computer architecture/logic/design (somethig that CE and EE students also take). I'm in my first of two now... and I gotta admit, I'm glad I'm sticking to the software side =)... okay, no Bill Gates jokes here... but, yeah, as a computer science & math major I'm doing a lot of theory in math, then some theory in CS classes, but in both CS and MATH there is always something to program to make your life easier... oh and to pass the course. anywho, good luck. While I'm sure each major is as challenging as the other, the rewards are well worth the work you put into it.

  365. I'm a Computer Engineering Student by Barastol · · Score: 1

    Being a Computer Engineering Student in Newfoundland, Canada. I felt I had to through my 2 bits worth into this discussion. In my Opinion, a CEng degree has these benifits over CS: 1. Digital Hardware design, we learn alot of hardware design, computer architecture design, etc. This is something I don't see in CS courses. 2. Practical Programming. I find myself learning actuall programming techniques and not just theory, and abstract concepts. I have to do my share of theory as well, but practicality is eminent. 3. Professional Degree. Any engineering degree carries with it the quality of being a professional degree. This means we are a self governed body with a code of ethics that dictate our behavior in the workplace. I think this lends respect and credence to our work that lacks in a non-professional programme. 4. I get to work with companies such as Nortel, Lucent, Cisco, etc. helping to bring the internet revoulution forward. 5. As an engineering student I have the opportunity to broaden my horizines, by having to take courses in mechanical engineering, design classes, etc. I'm not saying that I believe CS degrees are lesser that what I'm doing, but for what I want to do with my career, this was the only choice. Perhaps the abstract theoretical work of a CS major is more appealing to some, but I prefer to get my hands dirty into code, and to have an intimate knowledge of the deep inner workings of the digital hardware. Take what you will from my opinion, but remember it is only that, my opinion, your entitled to your own. Jon

    --
    -- Obligatory Blog descramble to e-mail.
  366. University of Michigan's stance by cacheMan · · Score: 1
    Here is what U of M has to say about the differences between their CE and CS programs.

    CEvsCS

    And if you're going to U of M, and you can handle a foreign language, I suggest CS.

  367. Physics by norwoodites · · Score: 1

    Just major in Theoratical Physics, all the advances in Computer Science can from physicsts. The Internet, the web, email, newsgroups, mailing lists, and all the cool stuff in computer science. They need the fast computers and they are the ones who use them first.

    Thanks,
    Andrew Pinski

  368. A *Real* Computer Scientist by Popocatepetl · · Score: 1

    This post goes beyond "I program, therefore I am a computer scientist." Please bear with me. You do not need a university if you're motivated and you know what to study. Concrete Mathematics, The Art of Computer Programming, and Introduction to Algorithms make a good list to help you *begin* your studies. Other texts are available, just talk to people who are in the kinds of programs you admire to find out what they use. Read the course requirements for respectable CE/CS courses and pursue the materials that will help you learn the same concepts. You can more strongly specialize or broaden your studies by using pieces of several different courses as your guide. Finally, challenge yourself to create something new & broadly useful. It better be nifty! Be honest with yourself! You do not need someone else to grade your work if you are a real computer scientist. You do need someone else to grade your work if you are a real fiend for money.

  369. CIS != CS by elegant7x · · Score: 2

    CIS, as far as I know stands for "Computer Information Systems" wheeas CS is computer sciance. There's a pretty big diffrence.

    Rate me on Picture-rate.com

    --

    "and dear god does this website suck now." -- CmdrTaco
  370. Learn math too! by Rotten168 · · Score: 1

    Learn math. Calculus, logic, permutations... that sort of thing.

    I've read elsewhere in this story about the "my favorite language" syndrome.

    Learn how to think first, all the other stuff is just details really. I've always laughed at how people think they're so smart because they know Unix or C but couldn't integrate function to save their life. I felt like saying to them that UNIX/C is downright easy compared to calc/logic (which I'm sure is easy compared to higher math that I haven't taken yet).

    Another important thing is that through the process of learning math you just may discover some things about yourself that you didn't know. I discovered that not only could I do math like calculus, but I actually enjoyed it. That surpised the hell out of me.

    Just give yourself a chance.

  371. Ask Slashdot: Computer Science vs. Sex? by CrayDrygu · · Score: 3

    Ask Slashdot: Computer Science vs. Sex?

    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: 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."

    --

    --

    --
    "I personal[ly] think Unix is "superior" because on LSD it tastes like Blue." -- jbarnett

  372. CS vs. Computer Engineering by greenGoo · · Score: 1
    I am a student in Computer Science & Biomedical Engineering at the University of Iowa, and from my experience I'd have to agree that the engineering is harder!!!

    Computer Engineering is more structured than computer science. They approach the subject more methodically. You tend to get a more technical outlook on things. (i.e. in networking the engineers look more at numbers such as bandwidth and delay times, where the computer scientists may look more at how the overall TCP/IP structure works). Many of the upper level classes here in Computer Engineering & Computer Science overlap.

    Computer Science in general is more "free and artsy" as a friend of mine said the other day. I think computer science people also get more low level experience, although they have plenty of application developing experience also.

    Ideas of focus for computer engineers:Software design & designing hardware
    Ideas for Computer scientists: programming/software design, graphics, designing & improving algorithms
    of course those are just a few...

    Have fun whatever you choose!!!!

  373. NOT TOO MUCH DIFFERENT by me.nick() · · Score: 1

    I go to USC and my major is 'Computer Engineering and Computer Science'. They also offer a Computer Science degree. I take all the courses the computer science degree offers except a class on compiler theory. I also get a lot more EE classes. So as I see it, CE is still concerned with programming & theory, but with the addition of a lot more hardware.

  374. My 3 cents (only a little off topic :-)) by Symbiosis · · Score: 1

    Okay, well, first off, lemme say thanks for posting this question. I'm in the same predicament myself, and I thought about Askin' Slashdot, but I had just assumed it wouldn't get posted. :-)

    Secondly, a quick question. Are you really gonna read all these posts? I mean, you asked the question and all, but, at last check there was 820+ posts... How do you decide when enough's enough?

    For my last cent, I'll try a feeble attempt at actually contributing to the thread. I know about half a million people have all ready said this, but, the course you choose is gonna depend largely on the school you go to. Each school will design the focus of their majors a little differently. For example, at MIT there isn't a "Computer Engineering" degree, instead they have "Computer Science and Electrical Engineering" major (62 for those who care ;-)). So, if you know where you're gonna go all ready, take a close look at the course catalog and see what looks best to you.

    I'm done. :-)

    --

    -------------------------------------------
    I like nonsense, it wakes up the brain cells.
    -- Dr. Seuss
  375. My take on CS vs. CE by fatwonkkid · · Score: 1

    I went to RPI as an Electrical Engineer. I decided to switch to CE because I was less interested in hardware, more interested in software, and didn't want to take Advanced Calculus at 8 am.

    I know many CS people. A lot of CS, to me, is learning a great deal of theory, design and documentation, and languages. Honestly, once you know how to program, a language is a language...its just syntax and such. Although esoteric knowledge of a language comes with practice.

    As a CS you can do plenty of things from being a SysAdmin, a Web Bitch, an applications developer, or embedded systems.

    As an Engineer, you have to go through all the tortures of Differetial Equations, Thermodynamics, Circuits as well as Data Structures and Algorithms, and other programming classes. In my opinion, a CE can do just a good a job programming as a CS, it all depends on the person.

    But quite honestly, what percentage of CS know how to use a 'scope or a logic analyzer? How many CS have done either theoretical or practical work with electric circuits or transistors?

    That kind of experience and/or classwork is ideal for embedded systems. Companies pay premium for Engineers that have a honed skill in certain microprocessors or previous background in industries. Embedded systems, I would think, are in much higher usage than web pages or Windows programs. (I bet you couldn't go one day without using embedded systems, unless you are a monk in the Himalays...).

    I write firmware and I think a CE degree made me better off for embedded systems.

    So it really depends what you want to do and if you want to avoid some hardcore engineering classes.

  376. Tuition better spent on beer by jim_b · · Score: 1
    I recommend spending the next 6 years alternating between being very drunk and very stoned, skip college all together and spend the money on beer, drugs and women of questionable character. After sobering up and taking inventory of your new tattoos and STD's get a job working on a help desk, work your yourself near to death to advance and learn new technologies until you too are a burnt out but highly paid technology professional.

    It worked for me

    Good luck!

    --

    - and small change got rained on with his own 38

  377. Computer Engineer Vs. Computer Science by TheStruuus · · Score: 1

    First the differences: Computer scientists take programming classes, lots and lots of programming classes, C,Java,perl,...yadda yadda.. Computer engineering students (that's me!) take about 5 programming classes and a butt load of EE and embedded system classes. I am a sophomore of computer engineering at Worcester Poly tech, to get a degree in computer engineering you need (give or take). 7 calculus classes, a few basic EE classes (resitors, phasors, capacitance...) but then you get to take the fun EE side stuff. Embedded systems, you will learn assembly (AND LIKE IT) probably for the x86 and a few more versions (microprocessors and such). For CS classes you need a few, basic C++, data structures, operating systems, computer architecture, and probably some algorithm classes. Some other fun classes on the EE side of the degree could be VLSI, VHDL, and cryptology. Some of the things we do as ECE (electrical and computer engineering) program a pre-made board with a small microprocessor that controls a keypad, LCD, and Leds. We also have a more advanced lab where you design and program an ISA oscilloscope for the pc, pretty cool stuff if you like the electronics in computers. When you graduate you actually get an EE degree specializing in computer engineering. You are also roughly 4 classes short of a CS minor when you get your BS in ECE. As for a CS degree you will probably learn assembly as a "good things to know" skill but will probably tuck it away with all the other useless crap that you pick up. As a CS major you will be doing most of your programming in (don't flame me, this is just form my understanding) C, C++, and/or java. You will rarely worry about hardware level operations and therefore you are not required to take ANY EE classes. I hope that this has answered your questions some, sorry if I bored you to sleep. **cough** and we make more money**cough**

  378. any engineering degree is four years of math by smartfart · · Score: 1
    I have to agree with the statement. With electricity, you have volts, ohms and current, and these are analogous to the physical characteristics of a river.

    You describe a circuit in terms of mathematical formulas --- you take each circuit and compose a long equation that describes the circuit, then you solve it. I am talking differential equations, multidimensional calculus, you name it.

    If you are trying to design speaker cabinets, for example, you have to figure out what frequency response you want, translate this into a mathematical statement, then optimize these equations with respect to the size, shape, and composition of the cabinets, the electrical characteristics of the speakers, the recommended geometry of the room you want to put them in, etc. etc. etc..

    In other words: math, math, and more math. The only difference between electrical engineering and math is that instead of using the variables x, y and z, you use v, r and i.

    Computer engineering is just an extension of EE, slanted towards the engineering of computers (instead of power generation and distribution, or digital signal processing, or whatever other specific area of study a particular school offers). You have to learn basic computer stuff such as assembler, etc. but any area of specialization requires taking classes outside the department.

  379. CS vs CE vs The World by Commie · · Score: 1
    My two cents,

    Plenty of people have made this point, and I'll agree, whatever degree you get is largely irrelevant, period. When comparing degrees like CS vs CE - almost totally irrelevant. Do whatever interests you, period. I've heard many techie graduates (a few years after they've graduated) say they wished they had taken more liberal arts courses. If you're getting into the computer field, barring some stroke of luck that makes you independently wealthy, you are going to be doing plenty of bit flipping, but the opportunity to wax philisophical over 19th century french literature will almost certainly be diminished.

    For me, college was far more than classwork. It was a new time, with new people, doing new things. Classwork comprised only a small part of the pie.

    Finally, all I can figure with all this hoopla that seems to spring forth on /. when any sort of "college education as relates to computers" story surfaces is - ego problems. It's amusing.

    College can be a great place to get a basis in computer science or engineering. It is by no means the only way, and it NO WAY it is at all sufficient for any sort of challenging problem in computer science. Period. If you're working on non-brain dead projects, you will constantly have to be learning - and I'm not talking about getting better at C++ or learning Cobol-2025 when it becomes the next big thing. Algorithms, logic, math, and all those "Computer Sciency" things.

    Which brings me to my main point - it doesn't matter what degree you get from whatever school that covered such 'n so subjects - you've only covered a *fraction* of whats out there, theory and all. People who seem to think a degree auto-dubs you a "Computer Scientist" are amusing. The MOST important thing any formal education can give you is a greater ability to teach yourself, because that's what you're going to be doing most of your life.

  380. Engineers are smarter by SiliconKim · · Score: 1

    As an undergrad in my Computer Engineering program, I was in a computer science course that was required for my major. Our professor (a CS professor) told us that a recruiter asked if he knew of any great CS students who were graduating soon. Our professor said, "How about CpE students?" The recruiter then said, "The only difference between computer scientists and computer engineers is that computer engineers are better."

  381. About those theorems by smartfart · · Score: 1

    Isn't Thevenin the evil twin of Norton?

  382. Both by bettlebrox · · Score: 1
    I'm a CS major who has been interning with a major US financial company and I feel that many people I've met both at work and school don't have a sucifficent knowledge of both hardware and programming/software. To be a good programmer you need to know good software practices, to be a great programmer you also need to know what the f**k is going on under the covers.

    Example: Members of my 'team' were evaluating a program that performed like crap on a Sun 450, a nice little 4-way box with 2 or 4gig's of ram. After weeks of testing, a Sun rep as called it and suggested binding some of the processes to it own processor (so less context switching would occur). When I heard this I laughed! I knew that, but the 'experts' who represented the product didn't...... and it then perform much better. So the moral; if you don't know what the hardware can do, you can't stress it or use it and your code to it's maximum potential. (Maybe it was a crappy app to begin with ;)

    --

    I have a very small mind and must live with it.
    -- E. Dijkstra

  383. Re:Train engineers by Big+Bad+Benny · · Score: 1

    Could you provide a link to www.goatse.cx if you're going to mention goatsex so someone new could find out what it's all about?

  384. HARDWAREOSITY by url-lm · · Score: 1

    Don't waste four years on a CS degree. A double Major in CE and MATHEMATICS will pay off. Do a lot of research with the university staff and join the ACM or IEEE societies on campus. You'll be one of the crowd. A few years after graduation, you'll be doing grad research or accepting a tech lead promotion. Your life will be great but you'll have no free time to spend the 4% raise you get each year. Oh, there's no overtime but you get an suitable bonus.
    I guess that skipping college and starting your own business is out of the question since you posted that question on the board.

  385. having been both a ce and a cs major... by kenman · · Score: 1

    i'm in my third year at the university of texas. i came in as an computer engineer and studied it for 2 full years. i was well into the upper division classes (thanks to multiple ap tests). i then decided to change majors to computer science, and haven't been happier since.

    why change when i was so far into the ce curriculum? simply put, i wasn't happy there. i could care less about the inner workings of a transistor or about the electromagnetics of an antennea. instead, i'm now taking classes such as abstract data types, computer organization, and analysis of programs (the fun theoretical stuff) and i'm loving it.

    bottom line is, don't do what the comanies are looking for and what others are telling you. fact of the matter is, you keep your grades up and you'll be hired regardless of your choice. do what you want to do. if you want to concentrate on programming (coding) and the science of programming (algorithms and theories), go with computer science. if instead, you'd rather build circuits, manipulate digital logic designs, or develop faster memory (for instance), then go with computer engineer.

    by the way, don't be afraid to change if you find you're not happy with your initial choice. life's too short to put up with something you don't like. i changed, and it was the smartest decision for me i've made since college.

    good luck.

  386. UM by Bren · · Score: 1
    I like the University of Michigan's distinction between CS and CE majors. You can find a faq explaining the difference here

    I would imagine, however, that not all schools are the same. The differences between CS and CE are most likely potentially drastic between two schools. You should look at descriptions of the courses, etc. from the schools you are interested in to see which major you think is best suited for you.

    1. Re:UM by fuzzydstud · · Score: 1

      true, true. I graduated from UM last year with a BS in computer engineering and this is very much how it is at UM. The core classes for either CS or CE are very similar the distinction really lies outside the core classes. Computer Science is a Literature, Science and the Arts degree and so there more humanities and social science type classes that are required, whereas engineering typically has more scientific, mathematic classes that are required. At least at UM I wouldn't say that CS is for software people and CE is for hardware people. I am now a Software Engineer despite being CE and always concentrated more on the software side of things. Likewise I had friends that graduated with CS degrees and took more hardware classes than I. The good advice is to look at the schools you are interested and check out the classes. Ask questions to the undergraduate admissions offices and they can help out too. And typically you don't have to go in knowing what major you want either. You have some time to decide. I went in undecided and didn't transfer into the engineering school until sophomore year. As Bren mentioned though not all schools are the same, this is just my experience.

  387. Re:As a Computer Enginnering Student (NO, WRONG) by BDW · · Score: 2

    I have two degrees in CS, and am currently persuing a third. I do VLSI design, often down to the level of drawing the polygons as they will be fabricated on the chip.

    The curriculum for CS/CE/ECE varies widely from department to department. Often the program is what you make of it. When I was an undergraduate I decided I liked hardware, but didn't like the EE curriculum at my school, so I chose to do hardware as a CS major. YMMV.

  388. Is Computer Engineering from an Engineering Dept.? by Jarvo · · Score: 1

    Part of your choice of degree should be the department that it is based at. An engineering department means that you can get accredited as an engineer.

    I hate to say it, but engineers get more respect in society than scientists and tend to get better, higher paying jobs.

    (Hey, this is from my experience only :) )

  389. It should really be CS vs. SE by Pavlev · · Score: 1

    Computer Engineering cannot be compared to CS. They are to different entities. What CS should be compared to is Software Engineering. SE is applied CS, much like chemical eng. is applied chemistry. "Science is the study of what is, Engineering is the creation of what never was" (Theodor von Karman (1881-1963)) The problem is people in the Engineering field dismissed software development as a byproduct so CE hardware design. So the "SE" that is refered to today has its roots with the CS community and not the Engineering one. The other problem is that it is a misuse of the word engineering. SE has been used to describe all types of software development, which is incorrect! With the world's increasing dependence on software which is embedded everywhere around us, we need SE's with an engineering education focussed on software, unlike CE which focuses on hardware. For example, how safe do you feel about the embedded systems in your car or your pacemaker or in nanotech.... it goes on forever. I cannot wait until the day when a Software Co. issues a guarantee with its product and not a disclaimer. It can do this because it had SE's design it with strict mathematical specifications to ensure soundness and completness. This is done in all other Eng. disciplines, why not software? Well enough ranting for now... Thoughts?

  390. CS vs CpE by mesterha · · Score: 1

    I can give you my perspective. Eight years ago I graduated with a BS in Computer Engineering. Now I'm working on my PhD in Computer Science.

    A lot could depend on where you go. Don't assume that because a school has a strong Computer Engineering Department, that they will have a strong Computer Science Department.

    A lot also depends on what you want to do. If you think you may be interested in eventual graduate education avoid Computer Engineering. In my experience Computer Engineering is more focused with giving you skills for the market then allowing you to really understand the material. You will spend a lot of time memorizing EE equations, and not enough time understanding the math behind the equations. Still, from the perspective of boolean logic, the computer hardware material will make sense, but it isn't really that deep. In the end, you will just end up doing low level programming with lots of tedious debugging. (Of course, the stuff is often hands on and can be fun...) For someone interested in graduate work, I would recommend Math with a minor or double major in CS.

    If you want to stop after a BS, I would recommend CS. For the most part the material is self-contained. You still need math to really understand the material, but it is possible to learn that math while getting an undergrad degree. Also the material is very practical. You will learn more about programming than a Computer Engineer and odds are that your programming skills will matter most in the job market. (Almost all my friends, no matter what their major, ended up doing programming after they left school.) While a CS degree often avoids teaching the details of modern tools, a broad CS degree at a good school will allow you to use those tools with minimal effort.

    In summary, a Computer Engineering degree doesn't have a very substantial foundation to teach you. Instead they spend a lot of time having you memorize formulas for the EE side, since the foundation is too difficult, or try to give you practical experience in things such as microprocessor design since there is no serious foundation. Computer Science does have a reasonable foundation that they try to teach you. The only complaint is that it often seems they spend all four years giving this foundation. I don't think this is a problem. If you really understand the material, you should be able to go out and apply it in the world and get real experience. (Of course, I shouldn't talk; I'm still in school.)

    --

    Chris Mesterharm
  391. Become a Software Engineer by ogreRulez · · Score: 1

    I go to MSOE (http://www.msoe.edu/) and am a Software Engineering student. I have observed that Computer Engineering is pretty much for engineering stuff related to computers. The software engineering program teaches students to engineer software, not just write it. As an SE, you learn architecture, algorithms, teamwork skills, how to program, programming phases, and WHY all of this is important. Lowly, CS people simply learn how to write software to other people's liking, not to come up with the ideas and engineer the software to fulfill the problem statement. If you truly want to be marketable, become a software engineer (SE). Goto MSOE. Make $50k/year starting. And, hey if money is all important to you, go into a business field. It's the CEO, CFO, COO, etc that make the big bucks. If you want to enjoy engineering software to solve problems and make some money, become an SE. If you like hardware and software and wish to engineer both, become a CE. If you want to be bossed around and potentially make a lot of money like John Carmack, become a CS person. It's all up to you.

  392. Go for "hard core" EE if you can by ScottBob · · Score: 1
    90% of what you learn in college will be obsolete in 5 years and you won't recognise the field in 10 years.

    I couldn't agree more. I originally applied for college in 1986 to learn computer science, but never went, instead I joined the Army (for monetary reasons). I'm glad I did, because if I would have graduated with a CS degree in 1990, I would have had to keep up with the 90's computer revolution by taking short course after short course, acquiring those Microsoft "trophy" certificates along the way, and would now be jumping from one sinking dot-bombed ship to another. What a way to earn a living.

    But I saw how rapidly the computer scene was changing, and when I enrolled in college full time in 1997, I decided to knuckle down on the math and try out for straight EE, because nowadays, the EE curriculum is so computer oriented that to say you are an electrical engineer means you also know a good deal about computers. But having an EE degree also means you know a bit about industrial controls (interface a new computer system to the same old assembly line every couple years), and know a bit about power engineering (deregulation won't change how you your electricity is delivered one bit, even if you say "Screw deregulation, I'll buy a generator", EE's ultimately designed the generator).

  393. degree pecking orders by gascsd · · Score: 1

    Here's how I've always seen it...

    EEE - strange people...smart as hell, but strange in that 'no shower for 3 days' type of way (been there, done that, btw)
    CSE - not as book smart as EEE, but smart enough to know to not do EEE
    CS - wants to be CSE, wants the 'coolness' associated w/CSE, can't cut it at math, or doesn't like the math
    CIS - business people...thanks for the COBOL!
    BIS - like the BetaMax...they still make these?

    Personally, I'm a CSE and CIS double major, as highly conflicting as that is, I've gotta cover both fronts. =)

  394. Ethics too by Molz · · Score: 1

    I am a CSE at ASU (arizona state) and we have to take cources in engineering ethics too. We learn ways to make our design decisions etical and how to solve problems effectivly.

    Also so far in my classes I have had quite a bit more hardware than my CS friends. We have done digital design at the gate level, and we are now doing electical networks. My CS friends have only had to do the digital design, and I have been told that is to be their last required hardware class.

    -----

    --
    Can I Play With Madness?
    1. Re:Ethics too by Jucius+Maximus · · Score: 1
      We have to take ethics as well. It's one of the required courses.

      Also, there are ethical constraints on all our engineering design courses.

      O'Toole's Commentary on Murphy's Law:

  395. My Own Experience by At000miC · · Score: 1

    I too am in a similar position and have debated the question of science vs. engineering for sometime now. After talking with friends who are currently undertaking post-secondary education, I came to the conclusion of majoring in computer science. This decision stemmed from my own person preference to have a more specified field of study, rather than that of the duality of computer engineering (both hardware and software aspects). In any event I encourage all who are in a similar situation to make an informed decision and research heavily into your prospective college or university and the programs the offer.

  396. Try Both! by Pulsar · · Score: 1

    Seriously consider doing both...I'm a junior in the Computer Science and Engineering program at the University of Texas at Arlington (http://www-cse.uta.edu) and I love it. Not only am I getting a firm grounding in both CS and CE, they're also using the combination to teach such things as software engineering, engineering management and to give you a broad background in engineering. UTA CSE graduates are currently dominating the incredible technology environment that is growing in the Dallas/Fort Worth metroplex here in Texas.

    My primary criteria was to find a school accredited both in the computer sciences (look for a 'CSAB' accredidation) and computer engineering (This one is from ABET) and a school that jus focused on CSE - I didn't want a program that was just a CS program that they tacked a few courses onto, I wanted a program that was designed from the ground up as a CSE program, not just a double major. And it's really been worth it - not only do I have a deep knowledge of programming, but I can peer deeper and actually comprehend what's going on at the chip-level and not only diagnosis problems easier because of it, but write highly optimized code.

    Check it out, the website has a bunch of info, as well as the UTA website...look at http://www-ais2.uta.edu/cat/compsci.shtml for the actual pages of the undergrad catalog that detail the CSE program, it's requirements and it's goals. If you have any questions, email me!

  397. Not software, science by RallyDriver · · Score: 1

    Computer Science is not (directly) about software, it's about the theory of computation. Software is a practical application of computer science.

    "Computer science is no more about computers than astronomy is about telescopes" --Dijkstra

  398. The two mix together.... by zerofoo · · Score: 1

    Computer Engineering: Take electrical engineering, remove the analog stuff (i.e. power supplies, generation, transmission and some RF) and add discrete math, some programming languages and algorithms classes, shake well. Computer Science: Take lots of discrete math, data-structures, compiler theory, actual programming languages (duh), operating systems and add some logic and design, but not usually implemented in hardware, shake well. At least this is the way it is a my school. -ted

  399. Computer Eng vs Sci by MacGod · · Score: 1

    There are several differences between Comp Sci and Comp Eng. I am currently a Comp Eng student. Basically, computer science deal almost exclusively with the software side of a computer. Writing programs, algorythms, web site management (to some degree) etc. Primarily writing software. A lot of math as well. Computer engineers work on a broader scope. They apply computer technology to a problem. Though computer engineers usually program as well, typically not as well or extensively as comp sci students. However, we also learn about robotics, systems integration, and using the computer as part of a whole. Whereas a comp sci student will write a program, a computer engineer will integrate a computer into an airplane control system, or will write the interface for a computer-controlled robotic arm. We work more with hardware, and creating a solutiong for a specific problem. ERTW

    --
    "Reality is merely an illusion, albeit a very persistent one " -Albert Einstein
  400. this person is a moron... by magz+the+enlightened · · Score: 1

    You gotta be out of your damn mind. I attend a Liberal Arts school...I'm a Biology major with a Computer Science concentration, and frankly, I'm offended. I don't care where the worst programmers or the best programmers you work with came from. I have the background to program, to splice DNA, to write for a magazine or to rule the world. Have a cup of coffee and piss off...

    1. Re:this person is a moron... by Mazzella! · · Score: 1

      You gotta be out of your damn mind. I attend a Liberal Arts school...I'm a Biology major with a Computer Science concentration, and frankly, I'm offended. I don't care where the worst programmers or the best programmers you work with came from. I have the background to program, to splice DNA, to write for a magazine or to rule the world. Have a cup of coffee and piss off... Uh huh. Yah right... Troll.

      --
      1.3L, 3 moving parts, 280 HP, no Turbos, wanna Race? RotaryNe
  401. Studying by ooze · · Score: 1
    That are the main advantages of studying, in decreasing importance( arrogantness warning):
    1. you learn where you may take a closer look at
    2. you are forced to do things you won't do on your own and learn from it
    3. it is very likely to find people who can do certain tasks better that you and you can learn from them
    4. you meet a lot of people with similar interests and you can learn from them
    5. exams are to say you that you are not doing completely stupid things
    6. you get a degree, and there are many people out there that value them very high
    So, to study is the best way to aid your personal learnig process. You can learn all on your own, and in the end you have to learn all on your own, but an academic environment helps a lot. And e.g. medicine is almost impossible to learn without academic background.
    --
    Just because I can imagine doing a hippopotamus, doesn't mean I'd like to do it.
  402. Moron by Cliffton+Watermore · · Score: 1
    Hell, has American education deteriorated so much that degreed people use words such as "arrogantness" and terms such as "value them very high"? Moron, in South Africa you will not even earn your high school qualification without being literate.
    --
    "A few atoms won't even light a match" - Dr Jones, 1933
    1. Re:Moron by ooze · · Score: 1

      Yep, I knew it's a strange word, wasn't sure if, it exists, but didn't look it up for language raping. Now I looked and proved it isn't in the wordbook.
      But it's understandable. Next time I use arrogancy. Thank you for pointing it out. BTW, I'm not native English speaking, but I speak Russian, French and some Mandarin and native German, as you may see from my strange style.

      --
      Just because I can imagine doing a hippopotamus, doesn't mean I'd like to do it.
  403. Go Math by lilmouse · · Score: 1
    I have had 2 computer science courses: Intro to C and intro to Unix - a total of 4 credits. I am also a Math major. And I also got a really nice job programming.

    In my experience on the job, those programmers who had studied the most advanced math (i.e., math majors or double majors math/CS) were most able to do the important programming - choosing how to set up a program, how one part will interface with another, etc. If you are interested in doing those "senior programmer" type things, get lots of math. Once you have the critical thinking skills and the understanding of formal systems that classes like Algrebra and Analysis give you, you realize that the process of actual "coding" is the least important part of programming, and involves merely writing down your ideas in a way the compiler understands. The real work is understanding the problem.

    BTW, I gave up programming to go back to grad school - still not sure if I should kick myself over that one ;)

    -- When all else fails, read the friggen' binary!

  404. Software Engineering - I totally agree by AcidDan · · Score: 1

    I did my Bachelor of Engineering in Software Engineering last year. In australia we did things kinda different to they way the US seems to do things.

    While all the Comp Sci. and IT ppl were getting out after 3 years - we were doing an extra year of more advanced topics. Seriously, most of those that graduated the year earlier didn't even come close in formalised construction and Engineering software that worked. It seemed by default that we also built better code because we actually THOUGHT about what we were doing rather than just hacking up a piece of crud.

    The degree I did is also recognised by The Institute of Engineers of Australia (which means I'm recognised in the US aswell - at least that'a what they tell us) as engineers (It really ticks me off when people call themselves engineers when they really aren't).

    As far as I'm concerned, a Software Engineering degree is the only way to go - not only do you get a far better concetptual grounding, but as a result, you WILL stand out from the crowd as someone who knows what they are doing and WILL get the job done properly.

    have a look here:Griffith University - and make the right choice.

  405. The difference between CS and CE by joemiah · · Score: 1

    Aww shucks. Having studied Computer Systems Engineering, this topic is one that irks me no end. Very few people outside of these fields are able to distringuish between the two, and it especially pisses me off when someone tells me so-and-so also studied computer science and is earning $X. (computing jobs pay more in general, as there is a greater scope for engineering jobs.. more on this later)

    Okay, before I start my rant, a few disclaimers:
    1. I'm Australian, and don't know how systems work in other countries.
    2. I'm an engineer, and naturally believe engineering to be "better", despite lower average pay and poor community respect. Take all comparisons with a spoon of salt.
    3. Beer makes my English funny sound. ;)

    Engineering is a profession; it is roughly defined as "the application of a proven process or standard to the undertaking of work". Engineers are focused on maintaining quality and safety throughout a project, more often than not because the scale of work that they undertake is often quite large or critical in nature. eg. civil engineers building bridges; industrial engineers and their manufacturing plants...

    More often than not, the engineer will need to assess a number of different factors. These factors may include economic constraints, environmental impacts, legislation, work safety, time etc etc. These skills are the reason why many engineers move into management roles of some form during their career.

    The roles of electrical and electronics engineers began to change somewhat during the takeoff of computing and automation. Increasingly, these engineers would be required to coordinate the development of systems which would be controlled by complex computer systems etc... it was from this shift that the role of the computer engineer developed.

    The types of projects that computer engineers are schooled to undertake are often large scale; incorporate other fields (such as mechanical engineering) and often involve a wide variety of systems. The best way to explain this is with examples:

    Eg1: Aircraft autopilot systems
    Eg2: Glass furnaces, with associated RTUs and SCADA system
    Eg3: Manufacturing plants

    I think the theme is large-scale... The problem with engineering, is that it is poorly understood and recognised within society. Often, jobs may be advertised as engineering roles, without actually requiring the skillset of an engineer. (wtf is a sales engineer... they should be called "technical salespeople"... wtf is an MCSE ??) In Australia, there has been a quiet push to remedy this problem through legislation (though I doubt it would ever happen) The idea is that employers advertising "engineering" positions only employ "real" engineers listed on a national register (www.ieaust.org.au)

    Another problem for computer engineers, is the fact that they possess a number of the skills required to undertake a number of computing professions. Subjects such as operating systems, communications networks, software engineering, code cutting etc etc are taught alongside the math, physics, materials, project engineering, statistics, legal issues (etc etc) subjects...

    Anyway, to cut a long rant short (i wanna eat dinner), computer engineering and computer science ARE very different; my summary is:

    If you LURV computers and would like to work in one of the many computing roles, go COMPUTER SCIENCE. Besides, there are more girls in comp. sci. than engineering.

    If you would like a broader scope, touching on electronics, electromagnetics, lotsa theorems, Standards! and don't mind LESS pay and crappy recognition, then engineering is cool. (We're more free to move to other fields, too... for example to computing, or to telecommunications etc etc)

    donny

  406. CS and Computer Eng by windle+poons · · Score: 1

    Hi,
    I'm studying Computer Systems Engineering (in the UK) which I assume is similar to Computer Engineering in the US. My course is a combination of the computer science and electrical engineering degree courses. This means that I have covered
    C, Java, Lisp, Digital Systems, Linear Systems(analogue electronics), Computer Architechture, Multimedia, Pure and Applied Maths,Statistics, Calculus, Matricices, Discrete Maths(Trees/Groups/Number Theory).

    Above all of these courses is the experience I have gained from taking a year out to work as a programmer. I have found that the most useful thing I learnt from Uni was how to program and solve problems. Rather than knowing any specific language very well I was taught lots of languages in shortish stints. Currently I have dabbled with C/C++, Java, Haskell, Z, Perl, Lisp, Fril(like Prolog), Assembler, Machine Code and Html(not a programing language I know) and although I don't claim to be very good at any of them I have found picking up new languages quite easy.
    Almost as important as understanding how to pick up a new language is following a disciplined programming style. It is important to stick to the "Golden Rules" of programming ie. Commenting, layout, grouping code into logical sections, striving to make the code human readable even without comments.

    On the hardware side I have been taught with Electrical Eng students the basics of digital system design techniques, electronics, digital components(transistors etc). So I have a good idea of the hardware I will be writing software for.

    So, what you have to consider is what you are prepared to do for 8hrs a day, every day for the rest of your life. If you want to bash out application software go for CS. If you want to write low level code (down to firmware) go for Computer Systems to get knowledge of hardware. If you want to design + build hardware go for Electrical Engineering.

    If I wanted to I could even pick up a soldering Iron an become a hardware guy, but for the moment I prefer software. I like having the choice between hardware and software as I have found great similarities between the design methodologies of both disciplines.

    Hope this helps you descide.
    Cheers

    --
    --- All opinions expressed above are my own, noone else can be held accountable for them. My ignorance is my own fault
  407. Apology. by Cliffton+Watermore · · Score: 1
    I am sorry. I thought you were an American. (not that all Americans are morons, but a lot of them are)
    --
    "A few atoms won't even light a match" - Dr Jones, 1933
  408. BSc/BEng in England by shic · · Score: 1

    Here in England, when I did my undergrad, these two strands were Computer Science (resulting in a BSc) or Computer Systems Engineering (resulting in a BSc or BEng at the candidates discretion). I was a CS student, but used my "optional courses" to take CSE courses in signal processing. The tricky aspect to CS was that coursework was less well defined, and the courses contained more algebraic-maths. Conversely, CSE was more "practical" and lectures had more of a "how to make things work" feel to them. I wholeheartedly agree with previous posts suggesting that you should start courses to "suck it and see" but my word of warning would be that neither CS nor CSE are primarily concerned with training programmers, or even "software engineers" and in my experience most practical knowledge is self-learned by graduates from all disciplines. It does help, however, to have a sound background in how computer systems work, as it helps you avoid some pitfalls less obvious to the empirically self-taught.

  409. What companies want by Chief+Crazy+Chicken · · Score: 1

    Fast development time with minimal business time investment. They don't care how good it is. They don't care how long it lasts. In fact, they're more than likely going to declare your software as a capital asset and depreciate it over five years, and carry forward the opinion that software -- somehow -- just dies after five years.

    What should *you* do? IMO, you should get as solid a grounding as you can in as many core things as possible. Math, physics, liberal arts. Problem solving is likely the best possible skill you could have (read Polya, chant it like a mantra when you're stressed :> ) The liberal arts will help ground your understanding of all sorts of other things. Developing software for people in a business is primarily a people task -- finding out what they want is the biggest adventure in this whole field. Particularly when they have no idea how to put into precise language what they need. The 16 hours of anthropology I took in college have been a wonder to me in trying to determine what my company's requirements are lately. "An Ethnography of the Don'tKnowMyProcesses Tribe".

    All of these other studies will also help to provide a fall-back. Never shut yourself out of options.

  410. According to my professor... by RobinH · · Score: 1

    This may be a bit simplified, or a bit tongue in cheek, but I took computer engineering in university, and one of my professors tried to explain the difference between CS and CE as:

    A computer scientist assumes that when you write a value onto a bus, that all the bits reach the other end of the bus at the same time. A computer engineer knows about bus skew - that due to the varying capacitance of individual wires on the bus, that some signals arrive sooner than others.

    I admit that this is an overly simplified view, but it does illustrate that there are two levels of knowledge. As an engineer, I didn't study the algorithms and data structures as much as a CS major would, even though we did take courses on real time OS's, compilers, and algorithms/data structures, but we had to study *more* of the physics (and even chemistry) side of things. One of our courses was all about the electrical properties of silicon, for example.

    Another good differentiation is this - a computer engineer would design a new CPU, whereas a computer scientist would write an optimized compiler for it.

    --
    "I have never let my schooling interfere with my education." - Mark Twain
  411. C.S. vs C.E. by Oing! · · Score: 1

    I majored in C.E. then switched to C.S. I'm short
    one thesis for an M.S. in C.S. My experience has
    been that C.S. students hate subjects such as
    computer architecture and assembly language
    programming. I happen to like those subjects...
    go figure! What you really ought to ask yourself
    is how close to the hardware you like to work. I
    enjoy programming right down to the bare metal.
    Most C.S. types do not, AFAIK. Unless you really
    want to build machines right out of school, I'd
    suggest getting a C.S. degree (especially from a
    fine school such as CMU) and concentrating on
    computer architecture as much as possible. If, on
    the other hand, you like designing chips or ciruit
    boards, forget C.S. and go the C.E. route. Either
    way, you can make a pile of money if you display
    any talent. I will point out that there are a
    lot more companies hiring software geeks than
    hardware geeks.

    Oing!

  412. Advice from computer engineering student. by Prisoner+655321 · · Score: 1

    I am currently enrolled at Rose Hulman Institute of Technology. I have switched between computer engineering and computer science several times already, so I know this question well. The important thing is that you do what you want. All these people telling you to get such and such a degree and go back for master's, or to avoid the sciences and engineering as a whole due to outsourcing. That's plain b.s. It's important that you choose a profession that you enjoy. Granted job security and salary are important, but if you truly love what you do, and possess some skill at it, then surely you will move up the ladder and those facets of your career will come true. Their is a saying at our school that you will most likely only be an actual engineer or scientist for 5 years after graduation, then you begin running things. As a freshman, I clearly don't know the validity of that, but I have heard good things from alumni.

  413. Neither by Blackheart2 · · Score: 1
    I'm a Ph.D. student in computer science; I majored in computer science at Cornell. Your question has generated so much traffic that I'll probably get lost in the shuffle, but since I feel strongly about this I will speak up anyway.

    On one hand, I think that, as long as you pick a major which is generally related to what you will want to pursue as a career, you'll be alright, provided you take enough classes in peripheral subjects. For example, if you major in CS but take a few more advanced classes in computer architecture than normal, you will still make a respectable computer engineer, and vice versa. So your choice of major is not so critical for general job skills.

    On the other hand, I do think that the choice of major strongly influences the way in which you approach problems, and how big your `box' is. By `box' here, I mean the same `box' as in the phrase `thinking outside the box.' Typically you find that people in more theoretical departments, like physics and math and literature and philosophy, develop very robust and flexible ways of problem-solving, whereas those in more applied fields, like engineering and architecture, develop more specialized skills.

    The flipside is that theory is only useful when it is applied, and to apply theory you need to develop a skill in formal reasoning, which means some kind of mathematics. From this point of view, then, physics is the ideal major.

    But it all depends on what you want to do. If you want to build new things, you will need to develop those formal reasoning skills, and a goodly amount of patience. If you want to build things which are useful but not really new, you may be satisfied with an engineering degree. If you want to build things which are elegant but not immediately useful, mathematics or philosophy are good choices. If you don't want to build things, then you are probably better off in a non-technical field.

    Personally, I think you should play it safe until you know what you want. Take a mix of courses which introduces you to a wide range of subjects. Don't bias yourself towards theoretical or applied classes until you know what you want. (For example, I regret not taking more advanced theoretical classes in college.) If you are required to declare a major, then make your best guess: you can always switch later. (I did.)

    Good luck!

    BH

    --

    BH
    Fools! They laughed at me at the Sorbonne...!

  414. Re:Don Knuth rules! by testpoint · · Score: 1

    Want to save $100K on a CS degree and still be a great programmer? Buy Don Knuth's books, then learn and practice everything he teaches.

  415. What do you want to do with your life? by Anne_Nonymous · · Score: 1

    You'll be working five to seven days a week, eight to sixteen hours a day, for the next twenty to fifty years of your life. Figure out what sort of lifestyle you want to have, and then find some work that you really love to do, that will accomodate it. Don't choose a major for your future employer; choose it for yourself.

    There's a lot of pressure in this respect when you're 19, and you don't have to make all the correct choices the first time around, but its good to be aware that these are the issues you need to sort out over the next several years.

  416. Software Engineering Alternative by porsche911 · · Score: 1

    There is a third option: Software Engineering. These degree programs tend to concentrate on programming in the large where Comp Sci spends time writing small programs and Comp Eng building breadboards of systems and writing low-level code. Well worth looking into.

  417. The useless dicotomy by hoodja · · Score: 1

    Being a neophyte to the industry (I am finishing my third year as a CS major right now), but having had some 'real world' experience, I am inclined to say that acadamia has it all wrong. The dual between Computer Engineering and Computer Science shouldn't even exist. To deal with technology, one must be an engineer -- how else are you goning to make it go at 5 am when the product ships at 8 am? On the same note, we must be scientific as well. We need to know the mathematical and scientific tools which make our jobs easier. I found a happy medium by majoring in applied computer science within the engineering college of my university. This way, my core is engineering based (they don't offer computer engineering). You may look into a double major or something like that if you're up for the work. TAKE AS MUCH DISCRETE MATH AS YOU POSSIBLY CAN. This advice has proven invaluable in my three years of college life.

  418. Re:Sysadminning is far different from CS by BigusDickus · · Score: 1

    Actually, since the original spelling is in Cyrillic, any phonetic equivalent in the Western alphabet is technically correct.

  419. Thanks for the info by tokengeekgrrl · · Score: 1
    Many thanks to both alienmole and anonymous for their insight. I'm going to give it some more thought but my gut instinct tells me I should study math.

    - tokengeekgrrl

  420. Math! (or: wait to declare your major) by imevil · · Score: 1

    Well, both Computer Science and Computer Engineering require a lot of math, so I'll suggest you to take all your math courses the first semester (if that doesn't disgust you too much), so that you may discover that what you really like is math (I am a math majour, trying to spam), and talk to CS/CE majors in your school, get to know the faculty, or even discover that math can have CS applications.

    That's what I did: since I had no computer as a kid and I had fun with math tricks I chose math and now I am majoring in math and I'll specialize in CS application (I hope signal processing).

  421. You can't spell geek without "EE"! by lsifreak · · Score: 1

    The two fields are so closely related, you'll see people in either column take each other's classes. Here at Drexel Univ, I've had to take a 5 class sequence in CS as part of my EE/CE requirements. Hey, CS is just an offshoot of EE/CE.

    But from my experience in the job field, I've observed that it's easier to teach a hardware guy software than the otherway around. But then again, analog guys are the same way with digital . . . Hmm . . .

    Well, my final biased opinion, before I go back to my design project, is that software people can't do anything without the hardware, but hardware guys will go on with assembly code and logic gates:-)

    Good luck

  422. Therefore CE is doomed also! by Chris-en-topper · · Score: 1
    The holy grail of computer science is to make a program that will write every other program. Someday, they will reach that goal, making all computer scientists obsolete.

    The holy grail of CE is to make a hardware system with enough computational ability to design all other hardware platforms, making all computer engineers obsolete.

    Software is always limited by hardware.Hardware is limited by the laws of physics. Which would you rather be bound by?

    Hardware is always limited by the laws of physics. CS is limited by the laws of logic. Which would you rather be bound by?

    Additionally, need I remind you that the problem of laying out all those jillions of gates, pathways and sinks is only accomplisheable because software people have developed efficient algorithms for doing so? Circuit design algorithms are the primary tool that CE uses for designing new architectures, and these algorithms come from CS.

    It's a mutual relationship, sorry buddy.

  423. It's all about the hardware... by Ragin'Cajun · · Score: 1
    Computer engineering is like electrical engineering with a specialization in computers. Often, the first two years will be common to both programs, and there are sill some courses they take together after that. Generally, you have a choice to specialize in software, hardware (chip design), or communcations (networks and signal processing).

    In terms of pure programming, I'd say that CE and CS get about the same amount of training. CS's get more theory (e.g. theory of algorithms, theory of computation) than CE's do. They also get more ELECTIVES, if that's important to you.

    If you're planning to do regular Windows programming, it probably won't matter much which you pick. But if you want to do anything related to Operating Systems, Networking, Compiler Design, etc., then CE is definately the way to go. CS's don't learn much about registers, busses, assembly language, or signal processing, all of which is extremely important if you want to do anything low-level.

    There's also the issue of what degree you get when you graduate. If you are an Engineer, you are a "Professional", which means that a few years after you graduate, you can apply to get your P.Eng, which puts you into the ranks of the doctors and the lawyers (i.e. you can sign passports, among other things). As a CS, you're just an arts/math major.

    That's my perspective, as a computer engineer at the University of Toronto. Things might be different in the US (e.g. at Princeton, CS is part of the engineering department).

    --
    --It's all fun and games, 'till someone loses an eye. Then it's one-eyed fun!--
  424. "in theory" (ahem) by Stu+Charlton · · Score: 1

    That's the whole point of a university degree. Learning 'real life' things is what you do on the job, but many time faster and better than someone without a formal education.

    Yes. In Theory (ahem). The reality is that most coming out of a computer science degree learned-to-pass -- they didn't learn-to-learn. So they wind up performing rather poorly.

    Now there ARE people who "learn to learn" while at school, but these people usually wind up staying in academia. If they don't, they're a great asset to the industry.

    But I just see way too much elitism from CS grads who think they're king shit on turd island, yet don't understand how to design a system for time to market, maintainability, usability and performance, and think it is "beneath them" that their team leader is someone without a CS degree.

    --
    -Stu
  425. One Big Difference by ikanakattara · · Score: 1

    Computer engineering programs are usually run out of the Electrical Engineering Department. Some schools have their own Computer Engineering Department (which is in the School of Engineering.)

    Computer Science programs are usually run out of the College of Liberal Arts and Sciences at many universities. Other LAS programs include Biology, Chemistry, Physics, etc. Some schools separate the "sciences" from the "humanities" (i.e. they have a "school of science") but still have heavier liberal arts requirements for those outside the schools of engineering.

    Many LAS schools require a "core curriculum" in the liberal arts, along with the courses required for your major. This liberal arts core usually includes history, philosophy, and two years of a modern foreign language.

    Most engineering schools do not require liberal arts courses beyond a very rudimentary core of freshman English and a few others, and the vast majority don't require foreign languages.

  426. Major in something else! by mrobin604 · · Score: 1

    As someone with a BS in computer science, I somewhat regret not majoring in another engineering discipline. The computer science stuff that I actually use I could have picked up on the fly: a CS curriculum does not teach you how to program. What a CS degree gets you is a lot of theoretical understanding about software construction which is not terribly useful in a lot of programming jobs.

    The thing that was useful I could have gotten from any engineering degree program: problem analysis and reduction. But had I been something other than a CS I would have gotten a more solid grounding in math, something I am hurting for now.

    You can pick up all the CS stuff you need on the job. Choose a degree that teaches you about other things than programming. Actually computer engineering would have been great had my school offered it.

    -marsh

  427. Software? Hah. by crashnbur · · Score: 1
    I see Information Technology as a major that prepares one for the business world by concentrating on computers, but not as a means of becoming a software developer. If that were my goal, I would major in Computer Science. I am more interested in being one of the higher-ups in a company, such as a network administrator or a variety of other things. This is also why I like the idea of getting a second major in Business Management. Business plus technology... talk about two things that won't go away. Now if I can only incorporate politics into that, I will have education on all the things that will never die!

    (Okay, not everything.)

  428. answer? "the real CS" by ballzhey · · Score: 1

    The answer is "the real CS"(cognitive sciences). CS(again cognitive science) is multidisciplined and you'll encounter neuroscience, the other CS, EE, PSY, plus whatever they(labcoats) figure out to be on the same path as to complete THE GOAL. THE GOAL(i'm not shouting): automata. CogSci majors get to specialize in any of the above mentioned fields. But the goal(2nd one) is not to be specialized. You'll figure this out soon enough.

    --
    You know the Microsoft destroys the night, Linux devides the day...
  429. no limit by Demultiplexor · · Score: 1

    Just make sure that if you do choose CS or CE, that you don't limit yourself to taking classes because they are on the other side of the fence. I'm talking about those classes that typically only CS or CE would take, the ones that don't technically overlap. Take the classes that you are interested in and don't worry if it takes you a little longer to graduate becuase the broader knowledge you have, the more likely you can be of benefit to a company in a computing-related field.

  430. Go EE with CS minor by pblunt · · Score: 1

    I'm an EE and CS double major. I have one more quarter until I graduate, and I have heard this debate over and over. EE with a CS minor is the best combination of the three, CS, CE, and EE. With EE, you will learn the skill of learning because it is the most theoretical and you will spend hours doing homework. Once you can learn, you will be able to do any of the other fields. When you get a job, it will not be what you learned in class, but what they will expect you to be able to pick up. Having the EE and CS minor, you will be qualified to at least get in the door. Then it will be the people that are the quickest and the one who are able to learn that will move up.

  431. Difference at the U of Waterloo by GuyZero · · Score: 1

    I might as well chime in too...

    I did Comp Eng at the U of Waterloo

    The major difference is who runs the programs. Comp Eng is in the Engineering Faculty, so it has to have its curriculum approved by whatever the body is that approves Engineering curricula - the PEO or whomever. In Comp Eng your entire class takes nearly all the same classes until 4th year so there's a very different social atmosphere than CS. Other than that however, it's not that big a difference. I took comp eng and couldn't do a VHDL design to save my life. One of my ex-classmates now designs chips for a living. 3 work at Microsoft. One is a consultant. I'm a product manager at a software tools company. Your education, as many others have pointed out, has minimal bearing on what kind of job you end up doing professionally. Also note that I took one 4th year CS class (Graphics) and some of my classmates took up to 3 of them...

    I personally liked the engineering background stuff like physics and the small amount of management science we were taught, but some people might like the bigger math focus and more theoretical CS aspects of a Comp Sci degree. Comp Sci is much more loosely structured, you take whatever classes you want after first year and there's less of a coherent sense of having a "class".

    So, in summary, it's not so much the course content that's different, but how the courses are structured and who's in charge of things. I liked Comp Eng. Of course, I have two Chemical Engineers in the family, so I might be biased.

  432. Math and engineering by olman · · Score: 1

    There's one funny thing about CEng and math.

    You never ever need the math again after you graduate unless you want to.

    About only jobs in digital hardware I can think of that actually NEED higher math are DSP-style filter design and some telecom jobs that deal with transmission pathways.

    So when you get the degree you find out that all the blood and tears (yeah, PDEs will make a grown man cry) was just for the degree.

    What you really NEEDED was those Mickey-Mousey logic design courses, low-level programming courses .. The kind of things you did with your left hand while trying to get blood out of a rock with the right to get the math assigments done.

    I was an exchange student in Canada for a year and graduated in Finland and I can say:
    Our math is a lot easier! Neener!

    At least unless you specialize in EE ..

  433. You are Software Engineer?? by Noffie · · Score: 1

    My first question is: where did you goto school for Software Engineering?? I am in Wisconsin, and a few of our Universities just started offering a Software Engineering Major.

    My second question is: Are you a software engineer?? What do you like/dislike about being one. I am seriously thinking of being a Software Engineer, and am interested in everything computers.

    --
    Noffie
  434. A Question by hydroPhayze · · Score: 1

    I was just wondering what career should I choose for fixing computers like those guys that work at Best Buy? Thanks for your help.

  435. 1000th Post by moscow · · Score: 1

    Honstly!

    --
    Who would believe in penguins,unless he had seen them? Conor O Brien - Across Three Oceans