Vincent's Blog

Moved to

Review: CPSC 110+121+210

20 responses to “Review: CPSC 110+121+210

  1. Frank June 12, 2013 at 9:52 am

    Hi Vincent. This is a great blog, and thank you for spending time to give guidance to other fellow students! I am a potential 2nd BSc degree student in CS (not the BCS). Because I started planning late, I am thinking if I can take CPSC 110+121+210 these 3 courses all in the same term (term 1 in the upcoming September. I already completed all other lower-level requirements.) There was a CPSC 110 course in the summer, but it already ended. Luckily I still have 2.5 months before the start of the term, so I am wondering if I can learn the 110 materials on my own. At least I will not be completely lost in the beginning of 121/210. Do you have any suggestions on what I should study for 110 and what is the best way to do that? Oh, I did not have any prior programming experience. Thanks!

    • vincentlycheng June 13, 2013 at 2:38 am

      As far as I understand, since 110 is a prerequisite for both 121 and 210, I doubt that you could take all 3 courses in a single term, but it’d be best to check with your advisor first to see if that’s possible. I understand that the linear chain of prerequisite courses in 1st and 2nd year CPSC can be frustrating, but regardless I wouldn’t recommend trying to pile up on them excessively (keep in mind that a number of CPSC courses have time-consuming assignments/projects). You may want to consider spreading out the required 1st/2nd year CPSC courses over 3 terms, e.g. 110 in term 1, 121+210 in term 2, and 213+221 in term 3 (in summer, or first term the following academic year); this way, you won’t have to attempt 3 CPSC courses all in just one term, and still progress to upper-level courses fairly quickly.

      As for studying for 110, all the course materials (lecture notes, assignments, labs), including those from previous terms, are available from the course website on Google sites ( The course textbook is also available freely online from its authors. If you have access to a computer where you can install DrRacket, I see no reason why you couldn’t learn the material by yourself over the summer, although I’d definitely miss Piazza.

    • Elle June 23, 2013 at 9:03 am

      Hi Frank! There is currently an online, free version of the UBC’s CPSC 110 course being offered at Coursera. It goes through the first 8 weeks of material of CPSC 110, complete with videos, quizzes, homework, projects, and an online discussion board. Week 4 has just started, but it doesn’t matter what mark you get on the online course, since UBC does not have access to your Coursera mark. Check it out at :

      • Frank June 23, 2013 at 10:54 pm

        Hi Elle, thanks a lot for the information! I have never used Coursera before, but it looks great. I will definitely use the resources to learn some of the CPSC 110. Thank you!

      • vincentlycheng June 24, 2013 at 4:00 am

        Thanks Elle! I was also unaware that UBC actually offered CPSC 110 through Coursera (even though I took a course or two there). I’ll mention that in my blog post above. 🙂

  2. Frank June 13, 2013 at 8:44 am

    Hi Vincent. Thanks so much for your reply! I will keep your recommendations in mind, and will also speak with my advisor. Appreciate your help, and best of luck with your co-op!

  3. vincentlycheng June 13, 2013 at 7:46 pm

    No problem, I’m glad to be able to help out fellow students. Good luck!

  4. Frank July 19, 2013 at 5:13 pm

    Hi Vincent! Thank you for the advice when I commented last time. You mentioned that it is important to pick partner wisely for the project of CPSC 210 (and I assume this is true for many other CPSC courses too). Do you have any advice on how to find a good partner, and how to make sure the collaboration goes smoothly? I think the course designers want to incorporate the collaborative components into projects because the skills to collaborate and communicate are also very important in the real world. But is it a bit unfair that two people receive a same grade, in the case that one student works hard but the partner does not? Also, I have read that every student should be fully responsible for the entire code, even for the parts that are done by the partner. So if there is any concerns of plagiarism, both students will be punished, given the reasoning that as long as you keep an eye on the code, even the part done by the partner, you should be able to discern the signs of plagiarism. I do not know too much about CS projects, but is this usually the case, ie, you know the quality/source of the code even if it is done by the partner? Thank you!

    • vincentlycheng July 21, 2013 at 1:52 am

      Hello Frank! It may be tough to find somebody who you know you can collaborate well with, especially when you don’t know anyone else in your lecture/lab outside of class. 210 lets you decide who to partner up with, so I simply worked with a friend of mine who I met outside of UBC, and who was in the same lab slot as I was. However, if you’re partnered with someone you’ve never met before, I’d suggest treating it as an opportunity to make a new friend. I don’t have any specific advice on how to make sure your collaboration goes well (also, I freely admit that human interaction skills are not my forte), and that your partner pulls his/her weight on the project; that’s something you’re going to have to discuss with your partner, and if it doesn’t work out, with your prof. As for the “unfair”-ness of it all, well…you’re going to collaborate with other students on different projects and in different courses, and with your co-workers in your co-op internship and future jobs once you graduate. Some will be a pleasure to work with, and some…not so much, and learning how to work with someone whose guts you end up hating is as valuable a skill as any other you’ll learn while collaborating with others. 😉 (I hope I don’t come across as too harsh here.)

      As for your plagiarism concern, that is easily dealt with due to the fact that you’ll be using a VCS (= version control system, specifically one called subversion – in cpsc 210), which lets you track who did what with your codebase. So if some plagiarized piece of code somehow makes it into your project, it’s relatively easy to see who added that piece of code.

      • Bo Frank Gong July 21, 2013 at 2:39 pm

        Hi Vincent. Thanks again for the comments on my question! Your explanations definitely make sense. Thank you!

  5. Cal Thom August 15, 2013 at 7:46 am

    Hi Vincent,

    Very helpful and informative blog post. I am transferring to ubc this year as a second year comp sci student. I took two first year computer science courses at my local college that transferred over as CPSC 111 for 4 credits and 2 second year computer science credits. I am registered in CPSC 121 and 210 for this September (they let me even though I don’t officially have the CPSC 110 prerequisite) but I’m wondering if its going to be a problem for me that I didn’t take the UBC CPSC 110? I’m looking at the syllabus for 110 and I’m not very familiar with a lot of it although I did well in the classes I took. We learned java using PuTTy in those classes along with polymorphism and object-oriented programming.

    • vincentlycheng August 15, 2013 at 11:05 am

      It sounds like you may already be familiar with the material covered in CPSC 210, then. I wouldn’t worry much if you didn’t take 110; you may not ever come across Racket again, and I’d assume that you’re already familiar with the concept of systematically designing functions and data structures.

  6. Justin October 10, 2013 at 7:46 pm

    You’ve answered this question indirectly in the above comments, but do you believe that CPSC 110 is necessary for CPSC 121? I don’t have any software-related or coding knowledge. 110 is only a co-req for 121, and I was planning on taking both at the same time. Are 110 and 121 unrelated? Or will I be at a severe disadvantage without the knowledge gained in 110?

    • vincentlycheng October 16, 2013 at 2:41 am

      Hi Justin! No, you wouldn’t be put at a disadvantage if you were to take 121 at the same time as 110. They cover two completely different domains (essentially, 110 covers software design while 121 focuses mostly on discrete math).

  7. Jay Chi October 28, 2013 at 2:57 am

    do you tutor cpsc 110?
    please email me at if you do!

  8. Yousef February 13, 2014 at 5:53 am

    Hey Vincent. Firstly, thanks a lot for your review on those courses. It has helped many people as I can see from the comments and surely has helped me get a better grasp for what I am getting into.
    Got a burning question though. I am initially in physics major but wanted to combine it with cpsc. I took 110 first year and did decent in it. Since I only decided this recently, I was wondering if taking 210 and 121 both in the 2nd summer term (jul 02 – aug 08) will be a lot too handle? or should I just stick too only 121.
    I also can spend some time off while I am off uni getting good with the basics of java. You reckon even with that, it will be too much too handle in just one summer term.
    Thanks In advance. 🙂

    • Yousef February 13, 2014 at 5:54 am

      some time while **, the extra “off” was a typo. my bad

      • vincentlycheng February 14, 2014 at 12:48 am

        I’d say that cpsc 121+210 during a single summer term should be manageable; the workload should be comparable with taking any 2 typical lower-level science courses during a summer term (probably a bit more due to assignments and labs – both are 4-credit courses, after all). However, I’ve never taken any cpsc courses during the summer myself (except for 189), and I’m not sure how the 210 labs+project are typically handled in a summer term, i.e. if they’re scaled back and/or replaced with something less time-consuming (for what it’s worth, the 210 project ate up more of my time than any other project/assignment I had to complete amongst my 1st year courses).

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: