As Someone Who Failed CPSC 110, Here’s My Advice
This post is the icing on top of my 3-part series on failing CPSC 110 at UBC.
If you want to read my other 2 posts, here they are, perhaps you could find some useful information from my experience:
Requoting what I wrote here, I’m going to reiterate that CPSC 110 is often branded as a course that those without any programming experience could manage.
Do not believe it.
I may be wrong and totally biased, but whatever the case…
As a student, it is TO YOUR BENEFIT to treat CPSC 110 with skepticism so that you tread on it carefully.
Here is a list of 7 advice that I have as someone who failed the course.
1. Find the course materials before enrolling
At the time I took the course, edX is the course delivery method for CPSC 110, where course content, video tutorials, and practice questions are hosted. Googling “CPSC 110 edX” should present you with some course materials from previous years you can get your hands on.
Scour through them and try learning the course before you decide to enroll in it. The earlier you try it out, the earlier you can gauge how comfortable you are in dealing with DrRacket, the programming language used in CPSC 110.
2. Look into past exams early
Past exams are legally available online, courtesy of UBC CSSS (UBC Computer Science Society).
Here is the link to UBC Computer Science Exams Database.
3. Avoid taking CPSC 110 in your very first term
CPSC 110 is a content-heavy and practice-heavy course. Perhaps don’t take it in your very first term as there are a lot of (unexpected) adjustments you may have to go through as you enter a new learning environment, or in a new city even, for some of you.
4. Consider taking CPSC 103 + CPSC 107 instead
If you feel really uneasy about taking CPSC 110, alternatively, you might want to take CPSC 103 + CPSC 107 instead, as the combination of these two courses are considered equivalent to CPSC 110.
CPSC 103 teaches Python, and CPSC 107 teaches you DrRacket. Failure rates in these two courses are much lower in comparison to those in CPSC 110.
5. Prepare excessively
In the post I wrote here, I gave a breakdown of the course components in CPSC 110, and I also wrote some notes on what I should have done better.
Having to learn and relearn course materials in CPSC 110 and to get comfortable with it so that it eventually clicks—this all takes time and it’s likely too late if you are still fumbling around past the mid-point of the course. The takeaway is, prepare yourself excessively before taking the course.
6. Keep up with new learning materials every week
When I took the course, I was too lenient on myself when it comes to putting off pieces of concept I didn’t quite grasp with the expectation that I would catch up to them later.
But because there’s always something new in the course every week, delaying my understanding of certain concepts led to a snowballing of concepts I had a hard time getting because they’re all interdependent.
Try to ensure that you understand all new concepts taught each week by the end of every week, which leads to the next point…
7. Go to office hours
If there is anything you don’t quite understand in the learning materials of the week, schedule yourself to attend an office hour within that same week or the week after at the latest. Office hours are offered multiple times weekly by various instructors and teaching assistants, and it’s an excellent opportunity to address any gap of knowledge you have throughout the course.
Over and Out
These are pretty much all I could think of for now. I have to say though, this list of advice are mostly geared towards students with no programming experience with DrRacket or any other programming languages.
I’m also aware that a lot of students do very well in the course, where they net an easy >90%. But then again, many don’t and fail. Whichever category of students you turn out to be later, I hope this post helps.
- If you have taken or are currently taking CPSC 110, what is your experience like?
- What advice would you give to someone who is about to take the course?