I recently completed my first term (1A) in Computer Engineering at the University of Waterloo and I thought it would be fun to write about my experience.
These were partly inspired by posts made by other students.
Xierumeng, Jordyn Mindorff, and many others have wrote similar posts on their first year in university and so, to hopefully continue this tradition for future students, I've written this post to hopefully give you a better idea of what to expect.

Courses
I don't believe Computer Engineering is a difficult major content-wise. It's definitely a step up from high school concepts, but even though the content is still somewhat challenging, everything is comprehendable.
What I think makes ECE challenging compared to other majors is simply the amount of work you will need to put in to maintain even an 80% in the program.
In ECE's 1A term there are a total of 7 graded courses, 2 are worth 0.25 credits as opposed to the regular 0.5.
These all have their own combination of labs (sometimes), assignments, and occasionally written assessments/projects.
Even more unfortunate for stream 4's is the first co-op search, starting immediately after orientation, where many students must then look for an internship while competing against the hundreds of other upper years.
Here's a quick look at the general weekly schedule:

Academics
University is hard. It's important to keep in mind that you will likely not be getting 100's in courses unless you're already extremely knowledgeable in the content. That's not to say that you can't do well, but expect your grades to drop significantly.
ECE 105 Classical Mechanics - Dr. Kostadinka Bizheva
This was in my opinion the hardest course in 1A. Though the midterm average was higher than our ECE150 midterm (Fundamentals of Programming), mechanics was still a close second.
In this course you go more in depth about the motion of objects, forces, and vectors. The difficulty in this course arises from the extremely exaggarated problems in this course. These problems are not at all representative of what you'll see in real life, however you'll be expected to still generally solve them in a reasonable amount of time.
I think I struggled heavily with this course for 2 reasons, for one, you won't have many resources. You will never have solutions. Though there is a textbook, it's quite long, and there are few questions (think 3-5) that match the difficulty you can expect to see on quizzes/exams.
Note the textbooks have value answers for every other question and no solutions. In hindsight AI is probably a good tool to since it can probably solve the problems now...
You could try asking the teaching assistants as well, but for the most part they were also unable to fully solve and answer questions.
Another unfortunate thing about the course is that you are required to buy a code for Mastering Physics (A platform that you will use to complete your homework for grades).
It's a simple website with questions on it and automatic grading of your final numerical/symbolic answer. In any case, this will be one of the harder courses of the term, so don't worry if you're not doing as well as you'd hope.
Recently, Dr. Bizheva has passed away, may she rest in peace.
MATH 115 Linear Algebra - Prof. Eddie Dupont
I really enjoyed this course for a multitude of reasons, for one, it was ran extremely well. The teaching team was my favorite. You will have access to a lot of resources, including an amazing set of course notes, Python snippets demonstrating how we can actually apply what we learn, along with genuinely helpful tutorial sessions.
The content itself is also very digestable and I think most students tend to enjoy the new kind of content that you may not have seen before.
To Prof. Eddie Dupont, if you ever do read this, thanks for being a great prof.

MATH 117 Calculus 1 - Dr. Lilia Krivodonova
This was a pretty standard Calculus Course, AP Calc AB helped a bit but not overly so. There were lots of resources and you could always ask the professor/TA's for help.
To me it felt like I was just repeating MCV4U and ensuring all my fundamentals were completly solid.
Dr. Krivodonova was ok in my opinion though I know many did not share the same sentiments, this would likely be due to the fact she was sometimes hard to understand and a bit messy in her explanations.

ECE 150 Fundamentals of Programming - Dr. Werner Dietl
In this course you will learn the basics of C++, along with a variety of basic algorithms and a few data structures.
A lot of students did consider this course to be one of the more difficult ones, as our midterm was similar to that of ECE105 (Classical Mechanics). Both averaged around a 60, but I believe from a pure content standpoint, ECE150 is much easier. If you have any programming experience this course is a breeze and you won't be doing much studying for it.
Taking a step back I think the low grades are partly due to overconfidence in a lot of students. The content seems easy and it is, but being able to apply it trips a lot of people up and probably led to this.
As for Dr. Dietl I thought he was fine as a lecturer however, he isn't as engaging as he could be and so a lot of students would end up skipping or just not paying attention in his lectures.
COMMST 192 Communication in the Engineering Profession - Dr. Steven Ryder
This course is taught by a wide variety of professors, each who have their own style of teaching. They basically have all the control they want over the assignments and weightings so expect your experience to vary.
This course was interesting, but unfortunately I think it was a waste of time. Though a lot of the conversations and practice in public speaking here was invaluable, I think that this could've easily been achieved in half the time.
This was in no way the fault of the professor, as I did enjoy talking a lot about some of the topics brought up in class. However, in the end, this time could've been spent on more important topics within ECE.
ECE 198 Project Studio - David Lau
In project studio you will be required to buy a kit with an STM32F401re Nucleo board, along with a variety of other components that you will need/use to complete whatever your project is. Here you'll build a project that is inline with a theme that is chosen prior to the start of the course. I believe our theme was Health and Wellness.
I had high expectations for this course coming into 1A, from a short description I read online it genuinely seemed like a fun course where I could apply a lot of what I would learn and have learned from before.
However, this was met with a lot of disappointment.
- You will be forced into a small scope in both what you may create as well as what you may create it with. Specifically, you'll be forced to make use of an STM32F401re Nucleo board along with a certain theme and no external libraries (though many groups did).
- I didn't have too many complaints about this however considering a good majority of students have limited experience with hardware already, this is a pretty daunting first project.
- This course does not provide any help as to how to actually program and use the STM32, the main resource provided and referred to was a 1,100 page manual.
- This course is extremely subjective, as you get further into the content and what everything actually says, everything is purely based on the TA's opinion. There will likely be many typos, as well notes in learn content saying that they need to be removed in the future (they were supposed to be removed for our term).
- The TA's also seemed to vary heavily especially in terms of grading, expectations, and just overall helpfulness. There were many incidents in this course including a shouting match on the final demo day between a TA and students.
- I think my primary issue with this course is also that the majority of your mark is based on pure writing and not actual ECE content. It will be around 99% reading and writing, and maybe 1% programming/hardware. This only depends on if you do end up deciding to finish the project (many didn't). I think this course was a waste of time and definitely could've been done better.
David Lau was average? To be honest he was kind of quiet, he did seem at the very least knowledgeable, but he didn't speak too much.
Our group created a wireless messaging system that uses IR for communication.

ECE 190 Engineering Profession & Practice - Dan Davidson
This course is basically ethics in engineering and some simple engineering related topics. It's not at all difficult but it will definitely take up some time. Your final exam will just be around 60-100 multiple choice questions (I don't remember exactly how many).
Dan Davidson was a good lecturer, he was engaging, however I didn't really enjoy the course as a lot of it is just common sense.
Co-op
As Waterloo's main selling point, I had an interesting experinece with the co-op process. My stats for the co-op application process were:
- 250~ Applications on Waterloo Works over 3 cycles
- 20~ External Applications
- 3 interviews
In any case, I only ended up doing one interview in which I got an offer and so I cancelled the two others.
My official position was a Software Engineering Intern at a startup based in San Francisco, California, called Fuego.io.
Coming back after my first co-op, I really enjoyed it, it was super fun to be able to work on real projects and make use of the skills you've learned over the years.
Specifically working with Rafi and Rubab was amazing and would definitely recommend Fuego in all aspects.
Really recommend doing internships!
General Advice
I had 0 interviews until the third cycle where I made some major revisions, this is what I thought helped the most.
- Keep your resume short and sweet. A lot of students coming into their first year of University will often have little content/experience to put on their resume. Though I did have a bit, I made it my mission in the first two cycles to put as much down as I possibly could, filling every inch of my resume with text. However, I think this backfired as I ended up not getting a single interview for those two cycles. After sitting down and talking with a few upper years, I decided to instead focus on a specific set of skills and projects that I had, and to just keep everything as short and as simple as possible. This seemed to work since on the next 80~ applications I sent out, I got 3 interviews, in which I got the offer for the position I had.
- Apply to as many jobs as you can. You should be aiming to do as many applications as humanly possible, don't worry too much about the specifics and if you would want to work there, if you do end up getting an interview and you don't want to work there, you can always just decline the interview. I think generally you should be applying to 100 positions per cycle, just do around 10-20 every night for a bit and you'll be fine.
- Don't worry about others I think a lot of students also tend to get caught up in the fact that a lot of other people get interviews and rankings and worry that they're not up to par. There is indeed a bit of a toxic culture but you really shouldn't worry about the others, a big part of co-op is discovering what you want to do. So regardless of where you end up, as long as you enjoy the time you spend on your 4 month "break", make the most of it. The honest truth is that around half of your cohort will not get jobs until the winter break, so again, don't worry about it too much whatever happens, if you don't land a job take the time to reset and strengthen your resume. You got this!
Our co-op stats:
