We are expected to Grind.

Sprints

Since Waterloo S4 has 4 months of study followed by 4 months of co-op, you learn to work in 4 month sprints before you get a brief break, followed by a context switch which, while still mentally stimulating, lets you grind in a different way since you aren’t working on the same types of problems. As beneficial as this program is, I think it teaches you to maximize Velocity over careful planning and working in moderation.

People say that Waterloo has a toxic, competitive, anti-social atmosphere (okay that’s what I read on Reddit before I went here) but I in general don’t find that to be true.

Like all places and experiences, it is what you make it to be (Sorting Hat Theory). If you’re looking to be social and get drunk everyday you can certainly find that in Waterloo (believe me, I have), if you’re looking to lock in and Grind, you can find a community to do that as well. Like most things, what is optimal here is Moderation

A comment on studying engineering

”Engineering is the art of regurgitating practice problems until you’ve memorized the pattern”.

And a professor address to this comment:

  • Yeah, that’s kind of true in practice. Let’s talk about it. This is not the intellectual culture in CS (this distinction is much bigger than UW, but does exist here). In CS/Math culture, students would be expected to think on an exam. To see something new and figure it out. To study on their own without being given lots of solutions. There are, I think, several reasons for this.
  • In some areas of engineering, it is not possible to come to answers just by reasoning from first principles: empirical knowledge of past practice must also be employed. Engineers build things that work in the real world, in cases where the theory is not fully known (e.g., fluid dynamics), and where we have imperfect information. We do this by accumulating experience of what has worked in the past in similar circumstances. In the context of compilers, knowing how a program transformation will actually affect program performance is very empirical: cache lines, register allocation, etc, etc. Math/CS doesn’t deal with the real world. They can always reason from first principles for their problems, because they can only solve problems that can be handled in this way. Engineers can handle a wider range of problems (like, sometimes we reason from first principles too).
  • Engineering students have a very high workload, so they have less time (or feel like they have less time) to think deeply about things. Crummy reality. But in part because of this engineering students put a lot of pressure on profs to supply solutions, which sometimes gives profs the feeling that the students want to be spoon fed and won’t think for themselves. I have that thought a lot less than some other profs, but it is a thing on this side of the desk. - An Unknown ECE351 Professor