<p>Okay. I just came back on CC after diving in the deep water for 6-7 months.
Sorry.</p>
<p>I am now a CS major after two years of CpE. I will explain why I made this switch:</p>
<p>Computer engineering and computer science have many overlaps but they are quite distinct if you think about it more. CS tends to be more theortical and focusing on software development rather than digital hardware design. Now in the industry it is still pretty blurry as to what task can a CS do and what task a CS will not be able to do. </p>
<p>** CS doesn’t know hardware design**
That’s true if and only if you can’t recall from your computer system and your organization & architecture classes. You actually do know something about hardware design. You do know how to build a simple CPU on an FPGA if you have done that in your organization class. You do know how computer is organized. Does that require knowledge of Computer Engineering? No. CpE is helpful when you deal with more complex design. But if you work hard enough and you are very smart, you can pick it up fairly easy. My TA has a minor in CS. After college he works for a security design firm and when he comes to his master he designed a chip for the Defense department. That’s a sick project, dude. I can’te tell what he did but the chip does some sick things.</p>
<p>I don’t think people design a chip on paper from scratch these days. You do the design on computers and you have mega built-in tools that allow you to create more complex functionalities. That chip he designed is very advanced and require more knowledge than what an undergraduate CpE can do. Thanks to his experience from work, of course. </p>
<p>I was falling behind with some of my EE courses, and I do not see myself capable of coming up with a better mulitplication circuit. It takes decades for the pinoneers to come up with a faster mulitplicator. Like many of my PhD friends said, you need to be really really smart to see how things can be done differently. Now of course not everyone is gifted by nature, and not everyone can get that top jobs. But if you are afraid and you feel like your main focus is more on software development, it might be a good idea to rethink.</p>
<p>Computer science is not as easy as computer engineering. It can be just as hard as a computer engineering major. The hardest theortical stuff thus far that is putting me behind is algorithm. It is tough. Lots of things to remember and understand. It takes a lot of brainpower to build a smart algoirthm too. </p>
<p>A doubl major, or even a dual-degree, or a minor is pretty much a waste of time. Pick one that you are more comfortable with. A lot of times we want to be big, but the truth is we don’t have the time of our lives to think big unless we can do something exceptionally well. Do one thing first and then see if you want to do another thing. </p>
<p>So what is really pushing me to made the switch? I like CS better.</p>
<p>Some CpE students do pure math research, and some CS do eletronic design at my school. So it is not rare to find a couple people doing something outside their primary domain. </p>
<p>I am planning on taking a year longer to graduate, giving me more time to complete my CS degree, more time to understand how to write better software and think better. </p>
<p>If you are freshman, take Computer Engineering first. Maybe a year or two later you will understand what you want to do for the next couple years (I said couple years… not forever). By the time you are in ur second semester of sophmore year, you probably have a good idea of what you enjoy to do.</p>
<p>I still stand by my opinon I made in the last two years: CpE (most of the programs) do give you a very good in-depth understanding of computer system, hardware design, and computer science.</p>