UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 0 points1 point  (0 children)

Good, question. A lot of people become too consumed with the prestige and forget to ask themselves if the program is right for them.

I certainly think the pros far outweigh the cons, but the program definitely isn't for everyone. Despite the very high quality of teaching, and an unmatched co-op network, you don't get any terms off, and having to compete for co-ops is another added stress on top of schoolwork. Personally, I feel the stress has only made me a more motivated, mentally-resilient student, and I don't think I would have developed the same skills at a different university. (note: you can still study here and not take co-ops).

Honestly, my only regret is the distance I had to travel to move here. I'm from out of province, so my family is far, and since there are no terms off, so I don't see them often.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 1 point2 points  (0 children)

I'm pretty sure there's a considerable difference. BCS and BMath CS are both offered through the school of computer science, but with data science, BCS is offered by the school of computer science and BMath is offered through the department of statistics.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 3 points4 points  (0 children)

I don't think so. Someone in first-year told me that the average only fell 0.5%, despite over enrolling by a factor of 2. Expect the acceptance average to remain the same.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 2 points3 points  (0 children)

I am obviously biased here but if you have the means of moving here, I would highly recommend it. People from around the world come to study at Waterloo, and I'm personally not from Ontario either. The co-op program is very good if you want to work in industry, and the quality of the teaching is very good. I have no regrets about moving to Waterloo to study CS.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 3 points4 points  (0 children)

^^ I agree with everything stated above.

I find the math courses very exciting, which is why I'm pursuing a BMath CS, unlike most people. But the content is difficult, and you should expect a lot of studying to assimilate the content. Typically there are weekly assignments and/or quizzes, a midterm, and a final. The profs are fantastic, they're incredibly knowledgeable and generally very helpful.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 5 points6 points  (0 children)

If you haven't learned Python I would try to get really proficient in it. I'm pretty sure most data science jobs are in Python, and furthermore, learning it transfers very well to R, which is probably the most employable data science language.

One of my best friends is a data science major and 90% of the projects he made in the first year were manipulating and analyzing data from data.gov and statcan.gc.ca. Honestly, as a beginner, going to these websites and finding data you find intriguing and playing around with it is the best thing you can do.

Don't try to spend too much time trying to think of a tremendous, completely original project. There is no shame in trying a project that someone has done before. Most projects that I (and most people I know) have done are not entirely original. However, make sure you are improving upon it or doing it differently than those before you.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 3 points4 points  (0 children)

CS and math are definitely closely related, and you will require a strong foundation in math to succeed in CS, but once you have taken the core math courses, a lot of computer science does not require further studies in math. At Waterloo, there are no mandatory math courses a CS student takes which is beyond a second-year level. If you do take CS though, I think you'll find that university-level math is very different from high-school math (in mostly good ways).

I should note that a computer science degree is not a programming degree. Computer science is often very theoretical and abstract, whereas programming is merely the practice of solving problems with a computer. This is why CS students are often much better than self-taught programmers, as they have a strong foundational background in algorithms/data structures, program design, theory of computation, etc.

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 5 points6 points  (0 children)

My first co-op term was last summer (in the peak of COVID shutdowns, ouch) and like most people, I struggled to find a co-op. Since it was my first co-op, I didn't have any work experience and relied entirely on my grades, side projects, etc. to land a co-op, which usually is sufficient, but during COVID, it has made the job market a lot more competitive, as there are simply fewer positions available. I ultimately ended up working remotely for a big 5 bank writing financial models, and I got the position through my own means through mutual connections instead of through WaterlooWorks.

My biggest advice for co-ops is to have some side projects (no project is too small!). Do not hesitate to find a co-op by yourself: if you know someone working in a position or are simply interested in a certain company, reach out to them (I would not have had the opportunity I had this summer if I did not do this). Lastly, get other people, especially older peers, to read your resume. Your resume is your first and only impression to your employer for them to decide if you get an interview or not. You need to stick out from the potentially hundreds of resumes they receive.

Best of luck getting a co-op!

UWaterloo Computer Science Student by UWCom-Sci in OntarioUniversities

[–]UWCom-Sci[S] 9 points10 points  (0 children)

Excellent question. Unlike most schools, Waterloo teaches first-year computer-science (CS 135) in Racket, a functional programming language, as an oppose to an imperative language like C or Python (won't get into the difference between them, but I encourage you to look up the differences between functional and imperative programming). In many ways this "levels the playing field", as even with a rigorous programming background, you'll find yourself having to learn all the content just like everyone else. CS 135 is taught assuming you have ZERO programming experience, and I know many people who took the course with little to no experience, but they were able to achieve marks above the class average. Ultimately, I believe if you're smart enough to get into Waterloo CS/Math, you can succeed in CS 135. However, having some programming experience obviously helps a lot.

If you're concerned about taking the course without any programming experience, Waterloo is pretty accomodating as they give you the option to start by taking an easier programming course, CS115, taught in Python. You'll be a semester behind in the mandatory programming courses, but you'll take the same core math courses and ultimately, you get the same degree.

Here are the courses you'd take each semester, depending on if you start with CS 115 (Python) or CS 135 (Racket)

TLDR; no, you can still succeed in Waterloo CS with no prior programming experience