yconic - UW Computer Science vs. UW Computer Engineering
Hide Menu

My Feed Money for School Student Help Brands Winners Support Center



Explore yconic
Explore Student Life Topics
Scotiabank
STUDENT CHAMPION
yconic proudly recognizes Student Champion Partners who are providing our community with superior support for their student journeys. Learn More
Student Help Brands

UW Computer Science vs. UW Computer Engineering

A photo of maattp maattp
OK guys, I need some help choosing between computer science and computer engineering at University of Waterloo. I applied for both, and have already been accepted into Computer Science :) . Now I'm debating on which one I should take if I also get accepted into Computer Engineering.

I took Gr. 11 Computer Science last year, and I found it to be extremely interesting. I loved the problem solving aspects of it, as well as the applied mathematics. I think that it would be really cool to work on new programs for companies like Microsoft, or even get into mobile app development. This, coupled with the fact that I've already been accepted, makes me want to take CS.

The thing is, for the longest time I've wanted to be an engineer. I'm interested in computer hardware as well as software, so CE appeals to me as well. I know that CE is a lot harder to get into than CS, which makes me think that CS is somehow inferior. I'm really on the fence here. In your opinion, is CS a step down from CE? Which program will get me a better job? What would you guys recommend?
Was this helpful? Yes 0
10 replies
 
A photo of iRamie iRamie
go into computer engineering, and tell them you want to give up your CS seat to me when I apply :D
Was this helpful? Yes 0

 
A photo of ninetyfour ninetyfour
You already got accepted into CS, what? They're sending out acceptances already?
Was this helpful? Yes 0

 
A photo of maattp maattp

@ninetyfour wrote
You already got accepted into CS, what? They're sending out acceptances already?



Yes I received it a week ago. I didn't even have a chance to send in my AIF form either. I had a 95% grade 11 average so I guess that got me in.
Was this helpful? Yes 0

 
A photo of greygoose greygoose

@maattp wrote
OK guys, I need some help choosing between computer science and computer engineering at University of Waterloo. I applied for both, and have already been accepted into Computer Science :) . Now I'm debating on which one I should take if I also get accepted into Computer Engineering.



Congrats on your early acceptance! Make sure you keep your marks up or they can withdraw your offer.


@maattp wrote
I took Gr. 11 Computer Science last year, and I found it to be extremely interesting. I loved the problem solving aspects of it, as well as the applied mathematics. I think that it would be really cool to work on new programs for companies like Microsoft, or even get into mobile app development. This, coupled with the fact that I've already been accepted, makes me want to take CS.



Computer science in high school is nothing like what you're going to be doing in university. However, if you're interested in problem solving, and you're interested in the mathematics, it may be just the field for you.

I will say, the things you've mentioned definitely aren't the most exciting development tasks (though some things for mobile development are cool because you have resource constraints), but at least you seem to have a good initial idea.

I usually point people interested to the following pages, just for a quick read...

Binary search
Big-O notation
Binary trees
Linked lists

And since you've been accepted to UW, here's a link to the CS 135 course notes. You'll find your first semester of CS really new, I'm sure, because high school doesn't typically cover functional languages like Scheme.

A lot of people complain about Scheme's syntax. This always makes me laugh. The syntax is really easy! Anyone can do it! But then those people that would have been ahead because they already knew the convoluted syntax of Java/C++/C etc. can't be anymore because now that the issue of syntax has been leveled to an even playing field---they can't think well enough to succeed in the course :P The subject matter in the second half of the course is not easy, though the introduction is gentle.


@maattp wrote
The thing is, for the longest time I've wanted to be an engineer. I'm interested in computer hardware as well as software, so CE appeals to me as well. I know that CE is a lot harder to get into than CS, which makes me think that CS is somehow inferior. I'm really on the fence here. In your opinion, is CS a step down from CE? Which program will get me a better job? What would you guys recommend?



Maybe CE is harder to get into than CS. Certainly, that doesn't make it superior. I'm going to irritate the engineers by saying that you can't double major in pure math with an engineering degree---so now who's superior :P I will note that when you apply for computer engineering, you're actually in a joint computer engineering/electrical engineering program that only specializes in the middle of second year.

Neither is going to get you a "better job." Your ability determines how good of a job you'll find, and that's governed by how hard you're willing to work.

Computer engineering is just *different* than computer science. To illustrate the difference, computer engineers *make* computers, whereas computer scientists use computers as tools. Computer science as a field existed before modern computers, whereas computer engineering didn't. You could frame it as hardware vs. software, but even that's not subtle enough. Read here for information on computer engineering. Note that you're seeing nothing purely mathematical in nature, nothing about algorithms, etc. There's a short blurb here for CS.

Engineers build physical things. Computer scientists might choose to build intangible things, or they might just choose to do research. You might think of the former as someone designing chips or researching how to build new, better computer parts, and the latter as an algorithm developer for high-frequency trading or researching faster, better ways to compute and store information. It's up to you to figure out which one you like better!

Last, just speaking once more to the admission requirements, I will say that the bar in general is somewhat lower in CS. Requirements are pretty standard in engineering because everyone takes the same courses. In CS, you have the option to challenge yourself, or the option to do the bare minimum. Obviously, if you do the latter, your degree won't be worth nearly as much. But this does not mean that people will discount your degree if you put in the work. Your degree is what you put into it, and that will be obvious to employers upon graduation. So don't worry about those kinds of details.
Was this helpful? Yes 0

 
A photo of MYDARKHEALTHSCIFANTASY MYDARKHEALTHSCIFANTASY
If you like programming in highschool, go to Computer Engineering. No ifs, ands or buts about this last point. CS is the biggest scam for people who like programming in highschool. Kids in highschool go and do their course in highschool, maybe it's called Introduction to Computer Science, or whatever, the point is is that it has the word computer science in it.

Computer science in university is NOTHING like highschool computer science. Computer science in HS shouldn't even be called Computer Science. It's Programming. They're not the same things.

Here's the break down of what's different.

CE in 1st year do ACTUAL, OBJECT ORIENTED programming, the kind which you're probably used to in highschool. (I assume you do Java like most people).

CS in 1st year is just math. I'm not going to bullshit, you take pretty much the exact same courses as a first year math student. You use a language called scheme, which isn't object oriented, and thus, you will probably hate it. If you like math, you like solving math problems with math and computers go to CS. It's what you'll be doing. Taking real life math problems, putting them into computer language for the computer to do the brunt work.

CE 1st year programming is object oriented programming, and the assignments will probably be like what you're used to in HS. Build me a Bank Account with Bank Account Objects. Etc.
Was this helpful? Yes 0

 
A photo of greygoose greygoose
And that's why the SOFTWARE ENGINEERS whose whole degree involves programming start in C and don't touch anything object-oriented until the end of their first year?

OOP is a buzzword. It's useful specifically as a paradigm in very narrow circumstances. That is, it's way overused and overhyped. 

I just finished the second year CS OOP course. I got lucky and got an amazing prof (this course normally sucks), and while I enjoyed it and learned a ton, I can safely say that I hate OOP and I don't want to touch it again. And luckily for me, I won't have to!

UW CS has it right---you can't possibly properly understand or appreciate OOP without having some proper experience in different paradigms, and thus they cover functional and imperative styles first. That's why neither of the specialist majors (CS/SE) take OOP until later. CE doesn't specialize in programming at all, so they briefly see some OOP without having the capacity to appreciate it. Any time that I've used the really powerful OOP features (polymorphism, inheritance), I could think of an easier way to do it in a functional language. 

Oh yeah, and of course, it's well-known that Microsoft gifted the university a large chunk of money to have these first term ECE courses taught in C#, so if you like the taste of MS koolaid... :P Programming should *not* be a main focus if one's interested in CE. 
Was this helpful? Yes 0

 
A photo of immaculatedx immaculatedx
TLDR for previous posts...

but why not Software Engineering, its like a good combination of CS and CE with more of a focus on CS tho.
Was this helpful? Yes 0

 
A photo of greygoose greygoose

@immaculatedx wrote
TLDR for previous posts...

but why not Software Engineering, its like a good combination of CS and CE with more of a focus on CS tho.



You should listen to this guy, his attention span is so vast he can't sit down for 5 minutes to read three posts to better advise you. :) Seriously man, why even post?
Was this helpful? Yes 0

 
A photo of immaculatedx immaculatedx

@greygoose wrote

@immaculatedx wrote
TLDR for previous posts...

but why not Software Engineering, its like a good combination of CS and CE with more of a focus on CS tho.



You should listen to this guy, his attention span is so vast he can't sit down for 5 minutes to read three posts to better advise you. :) Seriously man, why even post?



Cause this post is really contributing as well.
Was this helpful? Yes 0

 
A photo of aimango aimango
cs students do scheme, c, then c++.
software eng students do c, c++.
after 1st year, a lot of courses give you a choice of c/c++, java, or scheme to program in for the assignments.
cs241 = assembly language = MIPS, which is low level stuff.
comp eng kids do C# and some other stuff, i don't think they ever learn java. ece222 = their assembly = Coldfire, which is annoying to program in. SE kids take this course too. We get double the assembly lang. fun.
Note that E/CE has the highest work load out of all 3, if you're really interested in hardware i say go for CE over SE, since SE gives a very small breadth of hardware (thank god :P) so you never know til you try. if you end up hating it you can easily transfer out and into CS.
Was this helpful? Yes 0