So, here's the 3rd entry in my "Advice for new UBC students" series (I know, I'm not all that creative :P ) - today, I'll talk about everything an incoming UBC computer science student should know. This is written primarily for students in the Faculty of Science; students who are studying comp sci, but are pursuing a BA / BCOM instead of a BSc, will have to deal with different requirements as determined by their faculty.
One of the unique things about CPSC at UBC is that it is the only specialization you can declare immediately upon entering Science as a 1st year student; all other specializations in the Faculty of Science cannot be declared until 2nd year (a few specializations, as well as a number of Honours options, are even deferred to 3rd year). When you first apply to UBC Science, you're given the option to immediately declare CPSC as your major, and this led to one of the first questions I had about UBC's CPSC program: what difference does it make if you apply now, or you wait until the summer before year 2, and go through the specialization declaration process along with everyone else in Science? Well, it turns out that there's really no difference; as a CPSC student, you do get an additional weekly e-mail on upcoming CPSC events (conferences, talks, volunteering opportunities, etc.), but other than that, it doesn't matter if you wait until 2nd year before declaring CPSC as your major. You're also free to switch majors later on, so don't hesitate about choosing CPSC from the get-go; if you know you want to study and do a degree in computer science, then go ahead and pick CPSC! :)
As an aside, everything mentioned in the weekly CPSC newsletter is posted online as well, via the UBC CS website. Definitely bookmark it and pay attention to those e-mails! Personally, I've found them to be much more useful and relevant to my interests than those Distillation e-mails. I've had the opportunity to attend a number of interesting talks hosted at UBC, where I've gotten to meet folks representing some well-known tech companies (e.g. Google, Microsoft, Facebook, Electronic Arts, Pixar, NVidia, etc., as well as a host of not-so-well-known companies), and I wouldn't have heard about these talks otherwise!
Anyways, as a 1st year Science student interested in pursuing a CPSC degree, there are a number of things you need to keep in mind when planning your 1st year course schedule; I'll list them briefly below, before moving on to a review of the CPSC courses I took last year. Again, please keep in mind that a lot of the following points below are irrelevant to those who are not in Science, unfortunately.
1) CPSC students are eligible to apply for Science Co-op (for a CPSC-related position, of course) as early as term 2 in your 1st year. Applications for CPSC co-op usually close in early March, but check the above website for details as it may change from year to year. To be eligible to apply for co-op, you must have already completed CPSC 110 and be currently taking CPSC 121 + 210 (and successfully complete them before being accepted into co-op). It is also recommended, but not required, to complete CPSC 213 + 221 before going out on your first work term (there's going to be a delay between being accepted into co-op, i.e. sometime in April/May if you applied in March, and going out on your very first work term, i.e. the following January, since there are a number of workshops you have to attend, and of course you actually have to go looking for a job yourself...no, you're not going to be served a job on a silver platter).
You can, of course, apply later for admittance into co-op. Do note that Science co-op requires you to complete at least 4 work terms (\~16 months of work), although that requirement is waived for BCS students (those who are studying CPSC as a second degree), and your last term at UBC can't be a work term, so don't apply too late or else you won't get accepted. Co-op schedules for CPSC are available online, although you can customize them according to your needs as long as you consult your co-op coordinator beforehand.
2) All standard lower level Science requirements still need to be completed. This includes the Communications requirement (6 credits of first-year English), the Physical Sciences requirement (6-8 credits of first-year CHEM/PHYS, excluding CHEM 111 / PHYS 100), Biology requirement (BIOL 111 for those who don't have credit for high school bio, and any 3 credits of BIOL/EOSC/ASTR/GEOB for those who do), and Laboratory sciences requirement (should be fulfilled alongside your Physical Sciences requirement). The one thing you don't have to worry about is the Computational Sciences requirement, as you'll have way more than enough MATH/CPSC/STAT credits to fulfull it. ;)
My recommendation to all first-year Science students intending to major in CPSC is to complete CPSC 110+121+210 in 1st year, and then spread your remaining slots amongst courses to fulfill your lower level Science requirements. Yes, that means you'll have very limited room for electives (in fact, I had no electives at all in my first year), but consider the following:
Communications has to be completed within your first 60 credits, and can't be deferred.
Only 3 credits max of your lower-level Science requirements can be deferred to 3rd year.
Course progression in CPSC is extremely linear in 1st + 2nd year (you're effectively bottlenecked by the prerequisite course chain), and CPSC courses only start to branch out in 3rd year (when you really have the freedom to pick and choose which CPSC courses interest you the most). Get started on your 1st and 2nd year CPSC courses ASAP.
You need CPSC 110+121+210 to get into co-op, and the more CPSC knowledge you have under your belt before entering your first work term, the better. That's assuming you intend on doing co-op, which I (and pretty much everyone I've met so far) highly recommend.
To help you understand, this is what my first year course schedule looked like (you can find more about what I think of first-year general sciences requirements in an earlier blog post):
Term 1: ENGL 112, MATH 104, BIOL 111, CHEM 121, CPSC 110
Term 2: ENGL 110, MATH 105, PHYS 101, CPSC 121, CPSC 210
Incidentally, since I passed all my courses (yay! :D ), that means I've fulfilled every single one of my lower level requirements, and I no longer have to do any BIOL/CHEM/PHYS courses anymore. In fact, from 2nd year onwards, the only courses that matter to me are CPSC, MATH, and STAT courses; everything else is effectively an "elective".
The UBC Academic Calendar also provides suggested course progression routes, which are definitely worth a read if you intend to do a degree in CPSC.
If you want more wiggle room (e.g. take only 4 courses in term 1 to have more leisure time to settle in), or really want to take an elective, you can consider deferring one of your ENGL courses (for Communications) to 2nd year, and one (or both) of your Physical/Lab sciences requirements (CHEM/PHYS) to 2nd year as well. You need MATH (including a number of 2nd year MATH/STAT courses, which are going to be prereqs for some of your CPSC courses later on), so you should definitely take a full year of 1st year calculus in 1st year (don't defer it), and I wouldn't defer the Biology requirement because you can just take an easy elective (EOSC 114/116/118, often considered to be GPA boosters) and just get it over with.
Now, onwards to CPSC course reviews for 110, 121, and 210...