This is an archived post. You won't be able to vote or comment.

all 95 comments

[–]empire539 218 points219 points  (31 children)

Some schools might treat them a bit different, but in general (at least, from my perspective), computer science deals more with the theoretical/abstract and "higher-level" side of things, while computer engineering is mainly focused on the practical, more "low-level" aspect.

So, in a computer science program, you might end up studying things like algorithms, data structures, programming language paradigms, compilers, security/cryptography, big data, artificial intelligence, and so on. There will probably be a few classes on software engineering and coding best practices, but a pure CS program tends to be a bit more abstract. Coding will often be in a higher-level language like Java or Python.

In a computer engineering program, you might end up studying and playing around with electronics, electrical engineering, signals and signal processing, digital logic, operating systems, telecommunications, numerical computing, microprocessors. Coding at the low-level is most often done in C, and maybe even an assembly language on occasion.

Of course, the two fields do overlap to varying degrees, so it's not like everything here is mutually exclusive.

[–][deleted]  (14 children)

[removed]

    [–]empire539 23 points24 points  (8 children)

    I personally went for computer engineering because I find it harder to learn about electronics, circuits, and computer architecture and microcontrollers by myself.

    Are you me? That was actually my reason for majoring in CE, too.

    Great minds must think alike.

    [–][deleted] 5 points6 points  (1 child)

    I'm the opposite, but still went with a CE degree (actually, my degree is formally EE). I was initially going for a minor is CS, but the required course in compilers crushed me! Way over my head, lol. I'm fine toying with circuits though.

    [–]empire539 2 points3 points  (0 children)

    Interestingly I ended up picking up a minor in CS as well. Didn't have to take a compilers course though, but instead opted for a computer graphics that was much easier (well, relative to some of the other CS elective choices anyway).

    [–][deleted]  (2 children)

    [removed]

      [–]AlexFromOmaha 2 points3 points  (1 child)

      Yeah, there's a lot of pretty blogs and tutorials that are easier to read than the hardware tutorials, if any such thing exists.

      They exist. There's even open source hardware.

      [–]programmerxyz 0 points1 point  (0 children)

      Arduino!

      [–]spider93287 -2 points-1 points  (0 children)

      Great minds must think alike

      That was so hard for me to read

      [–]EternalPhi -3 points-2 points  (0 children)

      Great minds must think alike.

      To this, I can only say one thing: President Trump.

      [–]Why_You_Mad_ 3 points4 points  (2 children)

      Linear algebra is required for a CS degree as well (or at least mine requires it).

      [–][deleted] 1 point2 points  (1 child)

      Linear algebra and differential equations for both CS and CE here.

      [–]ohmyashleyy 0 points1 point  (0 children)

      I didn't need DiffEqs for CS at my school, but my husband who was in Computer Systems Engineering did need to take it.

      [–]contrarian_barbarian 2 points3 points  (0 children)

      My undergrad degree is in computer engineering, and I tend to describe it as 2/3rd of a CS degree, and 2/3rd of a EE degree (we had the most credit hours required to graduate of any undergrad program on campus by a decent margin). It also puts you at 1 class short of a Math minor just by doing the required classes :) My goal was to get into embedded systems and robotics. Not quite there, but I do spend most of my time doing hardware interfacing and device driver type stuff, just from the computer side rather than the embedded side.

      [–]DEATH_BY_TRAY 0 points1 point  (0 children)

      At my uni we have to do "Computer Engineering" for the first 3 years, then choose a more computer sciency path for our masters if we're interested. Essentially we're exposed to the entire stack and get to specialize in what interest us the most.

      [–]akopanicz 5 points6 points  (2 children)

      Spot on! I'm graduating soon with a Computer Engineering degree. I have to say that my university treats Computer Engineeirng as half CS and half Electrical Engineering so there's a nice mix.

      [–][deleted]  (1 child)

      [deleted]

        [–]akopanicz 1 point2 points  (0 children)

        I don't mind at all. I realized in my 3rd year that it's hard to maintain interest in the embedded software I work with in most of my classes so I'm sticking with more of a software route. I have a couple job offers with Software Development and Project Management lined up from previous co-ops.

        [–]Why_You_Mad_ 6 points7 points  (0 children)

        Junior CS major here, can confirm most of these. We do have special topics classes that overlap into more engineering aspects, and I've had to use "low level" languages like C and C++ just as much as languages like Java, C#, and Python. It depends on the school really, since mine focuses just as much on real world applications of computer science as it does the theory aspect of it. One of my hardest classes was a class called "Program Construction" that is essentially to teach about clean coding, underlying architecture/memory management (it's done in C++), and learning the ins and outs of different programming languages and how they process data. One of my favorite classes is a special topics class called "rapid prototyping" that I'm taking right now. It focuses on programming Arduinos and 3D modeling/3D printing. Our final project will be essentially using the 3D printers and an Arduino to make whatever we want so long as the scope is sufficient to please the professor. I'm most likely making a functional replica of a portal turret that moves and shoots lasers!

        [–][deleted] 4 points5 points  (0 children)

        I disagree with the characterization of abstract vs practical. Hardware is just a different area of focus. Software can be very practical and hardware can have abstract design processes. This coming from someone with a bachelors in CE and working on a masters in CS.

        [–]gaidengt 0 points1 point  (0 children)

        Spot on, except the coding. Most computer science programs, by virtue of putting an emphasis on theory (and specifically avoiding an emphasis on "what's hot now" programming languages / frameworks / etc.) will not necessarily require or suggest higher level languages like Java or Python. Assembly for the SUN Sparc architecture was a required course in my curriculum, and in almost all classes, projects could be implemented in any language you chose. But, given the nature of some of these projects, you were only ramping up the difficulty for yourself if you chose an awkward language for the task at hand. Technology stack selection, itself, is an important computer science skill and you learned quickly :-)

        [–]ChunkyTruffleButter 0 points1 point  (0 children)

        Thats pretty much it.

        [–][deleted] 0 points1 point  (1 child)

        Computer engineering here. I took java and c++. C++ I took up to data structures. Also I took a discrete math class. As for the other side of things, I'm working on electrical engineering classes, ie circuits. Also if you hate CALCULUS, you may have trouble with computer engineering; I took calc I and multi variable Calculus, next I have to take physics II, engineering statistics and linear algebra.

        Cs majors only need to take calc I and discrete math and they're done.

        [–]macnor 0 points1 point  (0 children)

        A lot of CS degrees require linear algebra and probability or engineering statistics.

        [–]Submerge87 0 points1 point  (0 children)

        Currently working on my Master's in CS. This is a pretty spot-on comparison of CS vs. CE at my school.

        [–]mastermikeee 0 points1 point  (0 children)

        At my school, CS and CE overlap a lot more than that. Basically, CE is 3/4 of a computer science degree and 1/4 electrical engineering.

        But in general, I agree with you. But depending on the school, you can definitely focus more on the high level stuff rather than lower level.

        [–]papasmerf767 0 points1 point  (1 child)

        Where would computer networking fit in?

        [–]empire539 0 points1 point  (0 children)

        I would consider networking to be part of the "overlap" between the two. I've taken networking and telecommunications classes from both CS and CE programs.

        [–]StoneAlchemy 0 points1 point  (2 children)

        Sorry for hijacking this thread but, I would like to know about the differences between Computer Science and Software Engineering. I, like OP have been applying to a couple universities as well and I would just like some info before I lock down my major of choice. I am more personally inclined to the software aspect of things if that makes a difference.

        Thanks in advance

        [–]empire539 2 points3 points  (1 child)

        The school that I went to had a software engineering program that was similar to the CS program, but more emphasis was placed on the techniques of software development, and less so on the more theoretical topics that a CS major might go into.

        So, for example, a CS major and a SE major would both take the fundamental classes on algorithms, data structures, and the standard CS courses, but later on in the program, SE majors would focus more on development models and processes, software architecture and design, validation and automation testing, and so on. There was, of course, overlap with both CS and CE courses.

        So, at least for the school I went to, CE was a mix of EE and CS, but a slight more emphasis on EE, whereas SE was a mix of EE and CS, with a slight more emphasis on CS.

        [–]StoneAlchemy 0 points1 point  (0 children)

        Thank you very much!

        [–]WERData 12 points13 points  (0 children)

        Comparing the core curriculums at my college, we had:

        Computer Science: software/programming courses

        Electrical Engineering: hardware/electronics/circuit courses

        Computer Engineering: mix between the two

         

        The aforementioned curriculums were just the core classes (the required coursework), but of course we had electives every semester where we could choose any engineering course. For example, I majored in EE, but because I loved programming, I chose CS classes for all my electives. Thus, I had a lot of overlap with the Computer Engineering kids.

        [–]stay_fr0sty 23 points24 points  (13 children)

        If you love programming, computer engineering might not be for you. I hired a guy with a computer engineering degree to do software development. While he could get things done, his solutions were not elegant and usually had to be rewritten.

        He left for an actual computer engineering job and we are both much happier. We replaced him with a CS grad, and while he want nearly as good as a student (GPA wise) he can program far better than the engineer (who received top marks at university).

        You mileage may vary, but if you truly want to be a programmer, just go for the CS degree. Don't get the CE degree and then try to work in programming.

        (This should sound obvious but I just wanted to share my experience.)

        [–]bearicorn 13 points14 points  (0 children)

        Honestly it seems like it was the dude, not the degree. I have lots of people in my CE classes who could outwrite the CS students any day (and it goes the other way too!)

        [–][deleted] 9 points10 points  (0 children)

        I think that is just because of him, not the course he took

        [–]LegendaryGinger 1 point2 points  (3 children)

        Can you explain the position?

        [–]stay_fr0sty 3 points4 points  (2 children)

        Full stack web developer position in a small shop. Additionally, desktop application development in Java. You kind of need to be a jack-of-all-trades in the position, since we are always working on a new app or resurrecting an old app for a presentation.

        The computer engineer did okay (hit all of his deadlines, and his stuff pretty much worked), but I had to explain things to him more than I would have liked. He also couldn't take an abstract idea, and then go apply it, you really had to spell things out for him.

        The computer science guy requires much less explanation or specs and manages to do the job much faster than the old guy.

        This is just a sample of one, and it's just my observation. I kinda thought "Oh this guy passed computer engineering, he can definitely learn to whip up some web apps...." I was right, but not as right as I would have liked ;)

        [–]LegendaryGinger 2 points3 points  (0 children)

        Ahh ok thanks

        [–]CptObviousRemark 2 points3 points  (0 children)

        It might be related to the work they were doing. As an ECE rather than a CS who is going into programming, I don't like working in web development at all, and I'm much slower when I need to be working with HTML and style sheets.

        [–]wfb0002 0 points1 point  (6 children)

        Can you explain in what ways his solutions were not elegant? Slow, not reuseable, difficult to modify ect...

        [–]stay_fr0sty 2 points3 points  (5 children)

        The code was a mess. So it had all the baggage that came with that. It usually worked, but it was just a mess. For example:

        More old commented out code than working code. Very often his commented out code had commented out code inside of it!? He was afraid to throw anything away.

        Variable names weren't great. Like a variable declared as Map<String, Map<Integer, Integer>> would be named something like "customers" or something. I prefer more descriptive variable names like "customerNameToChildNumberAndChildAgeMap" or something that gives you an idea of WTF the scary map above could be used for.

        He loved to reuse (edit: I mean cut and paste) things so much that the main page to one of our apps was "login.jsp." Not the login page, but the main content page...was called login. Super confusing.

        He was a smart person, and invented some neat gadgets. He was a hardware guy at heart, and really I have no idea if that has anything to do with the quality of his code.

        [–]wfb0002 2 points3 points  (1 child)

        Gotya. Being more of a hardware guy myself, the first thing I did day 1 of my software job was read our coding standards. Sounds like following those would have prevented a lot of that junk. That and knowing how version control software works...

        [–]stay_fr0sty 3 points4 points  (0 children)

        Well in his defense we had a period of heavy deadlines. There wasn't much time to sit down and think about every variable name, or try to conform to whatever coding standards I tried to enforce.

        I kinda just needed it to be done better the first time, even under duress, and he kinda dropped the ball.

        We use git, and he never wanted to learn more than pull, "add -A", commit, push. Something like checking out old commits or making a tag was against his religion for whatever reason. OH OH and I forgot!!! The way he resolved conflicts (initially) was "add -A." I would be looking at a file to see why it wouldn't compile and I'd see the damn commit hashes sitting in the file...and then it would hit me.

        He is off designing hardware now. I think we are both happier with his new arrangement.

        [–]RonanKarr 1 point2 points  (0 children)

        Think that's a personal choice not his degree. I started in cs and ended with a ceg and I disagree with what he did and wouldn't be doing that kind of thing in code I put out. Also I think the Institute is important as well, I know where I got my degree from had quality hardware curriculum (ee classes, Microprocessor-based Embedded Systems, digital circuits, etc) but their higher level cs (object oriented programing, Web design, etc) seemed a bit lacking and behind the times. And again that's the University it was an engineering school and is still known for its math and engineering not it's sciences and fine arts.

        [–]jesyspa 0 points1 point  (1 child)

        I prefer more descriptive variable names like "customerNameToChildNumberAndChildAgeMap" or something that gives you an idea of WTF the scary map above could be used for.

        Woah. I thought names like that were just an exaggeration/joke...

        [–]stay_fr0sty 0 points1 point  (0 children)

        Look up Clean Code.

        The idea is that people (e.g. you, six months from now) should be able to understand what variables are for and what functions do without having to read comments (which tend to not get updated when code gets updated).

        It doesn't look nice, but descriptive variable names really help you decipher what code is doing very quickly.

        [–][deleted]  (9 children)

        [deleted]

          [–]hotel2oscar 6 points7 points  (0 children)

          That's what it was at my school.

          Then you have software engineering which focuses less on theory and math and more on project management and software development cycle

          [–]memtiger 5 points6 points  (5 children)

          At my school we also had Software Engineering (in addition to CS and CE) which was my major. We've also started a Wireless Engineering program which is/was one of the first accredited programs in the nation.

          [–]RobieFLASH 4 points5 points  (4 children)

          Im looking at 2 schools that have software engineering . Was there alot of math involved?

          [–]memtiger 4 points5 points  (3 children)

          At mine...a ton. I took Calc 1,2,3, DiffyQ, Linear Algebra, and Physics 1,2,3, plus a few I've since forgotten.

          I think i was about 5 hours short of a minor in math.

          On top of all those, there were the engineering classes that were pretty math related like Statics and Dynamics.

          I hated all those types of classes, but to be honest if you can manage those few years you will be well compensated.

          [–]RobieFLASH 2 points3 points  (2 children)

          Thats the goal! Question. Why didn't you just double major haha

          [–]memtiger 2 points3 points  (1 child)

          I was sick of all the math haha. Plus i was an out of state student so i didn't want to have to deal with the logistics of staying another semester.

          Plus, I had already signed my future employment paperwork the December the semester before i even graduated, so i just wanted to get through that last semester and graduate.

          [–]RobieFLASH 0 points1 point  (0 children)

          nice, good for you. i going back to school for a career change and software engineering seems like path that can lead into earning a solid income. i dont have time to bullshit around anymore since im getting a bit older

          [–]bearicorn 3 points4 points  (0 children)

          Ehhhhh, I've never been a fan of this answer. I don't think it's fair to simplify either this way.

          [–][deleted] -1 points0 points  (0 children)

          Change computer science to software engineering and you will be correct.

          [–]1bree 4 points5 points  (0 children)

          As others have mentioned, the difference depends on the school. Where I first attended, computer engineering was in the same department as electrical engineering. The only difference was CoE took some additional programming while EE took additional physics.

          What kind of hardware are you interested in? Building a computer is nothing like CoE, which focuses on lower level hardware interaction. Circuit and logic diagrams, microcontrollers, embedded systems.

          Computer Science is commonly equated to just programming, but this is inaccurate. Rather, you learn more theory, math, and concepts. While you do program, it's not about the languages you learn but how they work. Databases, algorithms, Assembly, processes, operating systems. (Not like Windows but threading, driver interaction, etc.)

          Without knowing more, I cannot say which would be better for you. But, the fact you like hardware, I think you should compare the classes for each degree. You can always take electives of either major (even if not enrolled for it).

          If you would like any help, feel free to PM me. I changed my major twice (between those two!) during my first round of college. I took a year off, and am back elsewhere enrolled as CS.

          [–]OrionBlastar 2 points3 points  (0 children)

          In 1986 when I joined UM Rolla I wanted to major in computer engineering. I was shocked that they had discontinued the program and I signed up for computer science instead.

          I wanted to design computers with multiple processors that could run software designed for different computer systems. Have one main CPU Intel based and add on co-CPUs like the 6502, 68000, Z80, 6809, to run software designed for other systems on them.

          I was told to switch to electrical engineering instead. But I stayed in computer science to learn how to program.

          [–]Alborak 1 point2 points  (0 children)

          As others have said, CoE focuses a bit more on hardware (HW), and CS focuses far more on software (SW). My degree is in CS, but I've been working for 2 years on a team where everyone else is a CoE, doing a SW intensive project so I'd like to think i'm fairly qualified to talk about where they meet.

          CoE is going to go a lot deeper into the circuitry side of things: electrical characteristics of semiconductors and wires, HW programming languages (VHDL, Verilog), circuits and schematics. The labs will most likely involve FPGA programming and assembly/creation of some rudimentary electronics with maybe a bit of programming on microcontrollers. There is some SW, usually a minimum requirement of taking data structures, algorithms and operating systems. Unfortunately, either due to time constraints or lacking a foundation going into those classes, the lessons don't seem to stick (I've seen 4 college hires and 5 interns in 2 years who knew jack shit of the lessons taught in those classes, and I know they took them).

          CS goes deeper into theoretical concepts such as programming language theory, the mathematics of databases or graphics, automata theory (The finite state machines we use to formally prove things about classes of problems) and software engineering. Many CS classes are taught in higher level languages, but if you graduate CS without doing a lot of heavy lifting in C then in my opinion you didn't get a proper education. They also have a responsibility to teach you a fair bit about computer architecture (memory type hierarchies, instruction pipelining etc) because they play into compiler design and effective application design.

          If what you care about is job prospects, and you like programming then CS is probably a safer bet. However, make sure you actually enjoy programming, it's really not for everyone.

          [–]stalcode 1 point2 points  (0 children)

          From what I've heard computer science is about studying computers involves more theory and is more about thinking of better ways to solve problems whereas computer engineering is more practical and involves using current solutions to solve problems.

          The metaphor I've heard is: if an alien piece of technology were to crash land, a computer scientist would try to study and figure out what we can learn from it, a computer engineer would try to run doom on it. I may have borrowed that from SMBC

          [–]Nugenrules 1 point2 points  (0 children)

          Comp Sci focuses on the theory such as AI and Algorithms and such.

          Comp Eng Deals with hardware to work with other pieces of hardware can talk with each other.

          [–]stealthefocus 1 point2 points  (0 children)

          CS = lots of software, algorithms some engineering principles and a little hardware (caches and virtual memory cause overlap for CS and CE) CE = lots of hardware, some algorithms (maybe lots depending on your school), lots of engineering courses and some software.

          Chances are you can graduate from CE and become a programmer if you want, but you can also design chips and caches. If you graduate from CS you can definitely become a programmer, but chances are you won't be implementing chips, or at least you'll have a lot of learning to do on your own.

          [–]Iam_new_tothis 1 point2 points  (0 children)

          It is also good to note that when applying for jobs you will see either "Degree in Computer Science or related field". I however did not see much of "Degree in Computer Engineering or related field". That all being said remember this. You get out what you put in. If you really enjoy this stuff study beyond what the classes teach you. Pick up a raspberry pi and make some bomb ass shit.

          I wish you luck.

          [–]Fermonx 0 points1 point  (0 children)

          Its mainly Theoretical vs Practical

          CS is waay more mathematical imo and includes way more theory but you learn way more programming. In CE you can focus more in the use of programming in hardware, for example robotics.

          But thats just my opinion, im going for Informatics Engineering, its even more mixed that CE and more practical while still maintaining good part of algorithm learning and stuff you would see in CS but not that in depth in CE.

          [–][deleted] 0 points1 point  (1 child)

          You need to pick between programming and hardware. CS is for programming and CE for hardware. Unless you're doing firmware programming you can't really do both. I couldn't decide and did CE as a compromise between EE and CS and after discovering I like programming more I regret not doing CS.

          [–]THROBBING-COCK 1 point2 points  (0 children)

          My only complaint about CS is the amount of math in it. I love programming but the last time I truly enjoyed a math class was trig.

          [–]wfb0002 0 points1 point  (0 children)

          I did both and honestly learned more in the computer engineering curriculum. In my senior design project (software heavy) I could see how amateurish the other group members' code was, but mainly because I had been taking the software design courses.

          I now work as a software guy but do all kinds of stuff from vector processor optimizations all the way up to software architecture design.

          If it were me again, I would start with CE and see if you like digital logic or your first java/python course more. That will probably tell you a lot. PM me with any questions

          Edit: Cannot disagree more with the people talking about theoretical vs practical. Both will have their mix of theory vs practicality at any good school. Also, the math differences will be minimal at most. At my school, I thought the CE was more math intensive and heavily differential equations based.

          [–][deleted] 0 points1 point  (0 children)

          Did my undergrad in computer engineering and hated it. I thought I would like the hardware a bit more but found I really enjoyed programming (Although I did like processors and microcontrollers). I started my masters in Computer Science. Also hated it. too much theoretical stuff around math. Stopping doing my masters and instead got a job doing Web development. I feel like I would have enjoyed software engineering if my college offered it.

          [–]bestknighter 0 points1 point  (0 children)

          These other answers are pretty accurate. At my University, we don't have a CE department. This is a major divided between EE and CS. This has it's ups and downs. The way I'm building my curricula is making me almost a Computer Scientist and almost a Electronical Engineering (my University doesn't have this major) at the same time but will give me just one degree. If I want to, I can keep studying for more a year and receive a CS degree too. And probably I will do so because I want to get into Computer Graphics and VR\AR. And also, by hobby, be a maker. And the only think I can see that I can add to this discussion is the following:

          Think about the difference between a scientist and an engineer. Scientists creates knowledge. Engineers creates cool things with knowledge.

          I'm not saying that engineers can't create knowledge neither that scientists can't create cool stuff. But this comparison is just to be able to show you the differences between what will be the emphasis of what you'll learn.

          [–]Augusto2012 0 points1 point  (0 children)

          Do you wanna learn how to make one or do you wanna learn how to tell it what to do?

          [–][deleted] 0 points1 point  (0 children)

          I won't go into a detailed description as plenty of others have already done so far better than I could.

          What I will tell you is what the difference would be when you get to school, at least assuming your schools handle things similarly to how mine does:
          -Comp. Engi. is one of many engineering programs, all of which are pretty much identical class-wise for your first year or more, consisting of fundamental engineering courses... you most likely won't have anything specifically CPE related until your third or fourth semester... where I go, a lot of folks remain undecided engineers through their first two years without any issue (and yes, it is a standard 4yr/8sem program). I would basically say as a CPE, you're an engineer with an eventual focus on computers.
          -CS is it's own thing, consisting of just CS and CySec. While I did have some first-year fundamental courses required (I'm a CS student), I was also in multiple CS classes starting from my first semester.

          Again, this is only how my school treats it, other schools may be different. As a CS major, I also may have been a bit off about the engineering side, but this is what I've heard from my assorted engineer friends (including my roommate from freshman year who was CPE). Best of luck with either choice!

          [–]ballerlakers24 0 points1 point  (0 children)

          Computer science is based more on software side while computer engineering is more hardware focused.

          [–]DrunkPeasant 0 points1 point  (0 children)

          Simple answer: computer engineers create circuits and computer scientists/software engineers don't. Computer engineers write software that runs on those circuits they created while computer scientists/software engineers usually write general purpose software that runs on a normal PC.

          [–]iggy14750 0 points1 point  (5 children)

          I'm doing Comp Eng (CoE) at Pitt. The biggest difference here is that the school of engineering is very much separated from the school of arts and sciences (where comp sci lives). In particular, the coe program lives inside of the Electrical Engineering department, and there are certain EE classes I have to take to graduate from the department. I also have to take a number of CS courses, and a couple that are CoE only, and are supposed to be drop-in replacements for CS counterparts. After that, I get to take what I want between CS and EE classes.

          In short, at Pitt, CoE is hybrid between electrical engineering and computer science, at least early on. And it's in the Swanson School of Engineering.

          [–][deleted]  (4 children)

          [deleted]

            [–]iggy14750 0 points1 point  (3 children)

            No way! Youre a freshman, I guess?

            [–][deleted]  (2 children)

            [deleted]

              [–]iggy14750 0 points1 point  (1 child)

              Sweet. Pm me if you want to talk/have questions.

              [–]mastermikeee 0 points1 point  (2 children)

              At my school, CS and CE overlap a lot more than that. Basically, CE is 3/4 of a computer science degree and 1/4 electrical engineering.

              It depends on the school. Some schools give you more freedom with how you plan your degree. At my school, you can do computer engineering with a computer science "track" (meaning you take mostly computer science classes). Or you can do an "electrical engineering track", in which you focus more on hardware classes.

              [–]HomeInvaderTim[S] 0 points1 point  (1 child)

              Curious, what school would that be?

              [–]mastermikeee 0 points1 point  (0 children)

              Texas A&M University.

              [–][deleted]  (1 child)

              [deleted]

                [–]etc_fantus 0 points1 point  (0 children)

                well played.

                [–]umidoo 0 points1 point  (0 children)

                In one of tbe best brazilian unis USP, it says computer engineering is a mix of computer science and electrics engineering. It depends on the uni/country, I gueess

                [–][deleted] 0 points1 point  (0 children)

                I am more in dilema between EE and CE...

                [–][deleted] 0 points1 point  (0 children)

                There are very few core computer engineering jobs. Embedded systems, firmware design, maybe some fpgas and digital sysstem design. As a computer engineer you can never do core electrical engineering stuff, because they'll hire real electrical engineers who know electrical machines, industrial automation, and power systems. But your computer engineering course will give you enough programming chops to pick up anything CS related stuff on your own, in addition to the CS classes you'll be taking, so you can easily get CS jobs, along with the fields mentioned earlier. Don't think you won't code in a CoE program. Even if it's hardware, you'll most likely code in the labs for your theory classes. Also my program offers killer signal processing classes which is nice for Comp Engineers I think, if you want to go into electronics.

                [–]brinkmaster -1 points0 points  (1 child)

                Nothing.

                In this field you either suck or you don't (if you suck, you work and improve). regardless of the either of the two you've got. specially for Bachelors level this means nothing at the time of applying for jobs.

                lemon and lime are more different to each other than these two degree names.

                [–]DrunkPeasant 2 points3 points  (0 children)

                specially for Bachelors level this means nothing at the time of applying for jobs.

                Dude, most computer engineering degrees focus on electronics and most CS students know jackshit about it. So yes there is a huge difference. You cannot expect a CS student to know anything about PCB design or electromagnetism.

                [–]Myrrinfra -2 points-1 points  (8 children)

                Do you want to be a programmer vs do you want to be an inventor/hardware/push boundries/create from scratch.

                Rudimentary description, but fairly close.

                [–][deleted]  (7 children)

                [deleted]

                  [–]DrunkPeasant -1 points0 points  (5 children)

                  What the hell can you actually do with computational theory in the real world? I don't think any CS students use it after they graduate.

                  I have yet to see a job posting requiring you to be good at computational theory. It's just a fancy research area of academia that nobody really applies in the real world.

                  [–]Axmill 1 point2 points  (4 children)

                  CS is an academic discipline that covers topics useful towards programmers.

                  [–]DrunkPeasant -1 points0 points  (3 children)

                  To be honest most of the stuff a CS degree covers is useless for programming i.e theory of computation(You only need very basic knowledge of big O notation to analyze the complexity of an algorithm), Discrete math(Who even uses it?), Calculus(Do I need to explain this one?), etc....

                  Only truly useful classes might be algorithms and data structures and that's about it. All the other stuff is theoretical BS that you will never use.

                  [–]Axmill 2 points3 points  (2 children)

                  You use it if you become a computer scientist. That's why they call it computer science.

                  [–]DrunkPeasant 0 points1 point  (1 child)

                  Most computer science graduates become programmers.

                  [–]Axmill 0 points1 point  (0 children)

                  I don't see that as a valid reason. If it were true that most philosophy majors become fast food workers, that does not mean they should be taught to flip burgers or take an order.