CPSC 110 Info
Welcome to CPSC 110! Computation, programs and programming play a vital role in the work of scientists, engineers, artists and other professionals: they allow us to organize, store, analyze and visualize information; create animations, music, and online communities; control devices in our environment; develop computational models and simulations; and much much more.
The major goal of this course is to introduce students to a systematic method for solving hard design problems. Going forward in your career you will of course learn additional techniques, but the design method covered in CPSC 110 will serve you well whenever you face a difficult design problem—whether it is program design or a problem from another field entirely. In the words of a previous student:
Studying computer science inspired me to think about problems differently and take a more systematic approach to them. Program design is applicable not only to computer science, but numerous areas of life. It is essential in the development of problem solving skills.
The course is designed to be interesting, accessible and useful for all UBC students—intended CS majors and non-majors alike. No prior programming experience is assumed, and very little math and science background is required. The course will also prepare you to learn more Computer Science skills and concepts in the future, either through formal courses or on your own.
Instructions for Students
CPSC 110 builds upon the edX Systematic Program Design courses, and provides additional material for UBC students. Please note that 110 uses its own separate version of the edX course - please see the setup page for how to enroll in that version.
If you are a UBC student registered in CPSC 110
- Thoroughly review the syllabus. Note that some details are specific to the current term, however, term-specific details are updated a few weeks before a new term begins.
- Follow all of the steps on the setup page.
- Email firstname.lastname@example.org if you have a question about the course that is not answered by this page or the syllabus. Questions that are answered by this page or the syllabus will not receive a response.
If you are a UBC student and have deferred standing (SD) in CPSC 110 or CPSC 107
Check the date of the next CPSC 110 challenge exam below. As specified on the Standing Deferred and Supplemental exams page, deferred exams for CPSC 110 and CPSC 107 must be written with the next challenge exam or the next term's final exam, whichever comes first.
Important notes about deferred exams:
- Check your @student.ubc.ca email regularly for communication about deferred exams from the course team.
- Stay caught up with the course material in preparation for your deferred exam using practice problems, past exams, and other resources on the CPSC 110 Links page. You will still have access to edX Edge and SPD handin after the course ends.
- Do not contact the course team if you anticipate being absent or are absent from your deferred exam. You must contact your faculty's academic advising office to discuss your options, which may include extending your deferred standing or withdrawing from the course.
- SD students are not required to pay the challenge exam fee to write their deferred exam and should not fill out the challenge exam registration survey.
If you are a UBC student and would like to take the next CPSC 110 Challenge Exam
The next opportunity to write the challenge exam is with the 2023W2 final exam in April 2024. We will update the exam date and time once the 2023W2 final exam schedule has been released. The exam is computer-based (students must bring their own computer) and will take place in person. We will provide further details (e.g., the location) after the registration deadline below to students who register for the exam.
You must complete all of the following steps before 11:59 PM on Friday, March 29 to register for the challenge exam:
- Thoroughly review the CS Department's CPSC 110 Challenge Exam page.
- Register in CPSC 110 (or one of the waitlists) so that you will have the option to take CPSC 110 if you do not successfully challenge the course. For example, register for the January offering of the course if you plan to write the challenge exam in December.
- Pay the non-refundable fee through the CS Department's payment portal.
- Complete the CPSC 110 Challenge Exam Registration Survey. You will receive an email summarizing your responses and confirming your registration at the email address you provide in the survey.
- Follow all of the steps on the setup page. Note that you will not be able to access SPD handin/autograder feedback until after you pay the exam fee and complete the registration survey.
- Prepare for the exam using practice problems, past exams, and other resources on the CPSC 110 Links page.
- Thoroughly review the exam instructions outlined on the CPSC 110 Exam Instructions page. Note that some details on this page will be specific to the current term's midterms, however, instructions for the midterms, final exam, and challenge exam are the same. The only difference is that the midterms are 2 hours while the final exam and challenge exam are 2.5 hours.
Important notes about the challenge exam:
- Students are permitted to defer their registration for the challenge exam one time. After deferring their registration for the challenge exam once, a student must reapply for the exam and pay the exam fee again if they wish to take the exam at a later date.
- The course team is unable to provide specific advice to students on whether to challenge the course or not. We can share that both students who have prior programming experience and students who have no prior programming experience can be successful in challenging the course. Students who are successful in challenging the course generally begin preparing 2-4 months before the exam and spend 12-32 hours per week working through the course material, depending on how early they begin.
If you are not a UBC student, but are interested in learning the course material
Visit edX to find much of the CPSC 110 content.
- The lecture section I want to take is full / I am on the wait list for CPSC 110. What should I do?
- Please see the Wait List Policy. Course instructors and staff in the Computer Science Department do not have the ability to register students in courses that are full or restricted. Please do not contact instructors, Course Coordinators, or CS Advising to ask about your wait list position or bypassing the wait list.
- I'm registered in a lecture section, but all the lab sections that fit my course schedule are full. What should I do?
- Please monitor the SSC website closely to see if space opens up in a lab section that fits your course schedule. Spots will open up as many students change their course schedule leading up to and during the first few weeks of the term. Students who are unable to register in a lab section that fits their course schedule can attend any lab section that fits their course schedule until they are able to register in a lab section or until the add/drop deadline, whichever comes sooner. If all of the lab sections that fit your course schedule are still full 2 business days before the add/drop deadline, please email email@example.com with at least 3 lab sections that fit your course schedule, in order of preference. The department will ensure that you end up in a lab section that fits your course schedule before the add/drop deadline, however we cannot guarantee that it will be your most preferred lab section.
- I'm registered in a lecture and lab section, but I want to switch into a different lecture or lab section that is full. What should I do?
- Course instructors and staff in the Computer Science Department do not have the ability to register students in sections that are full or restricted. You can monitor the SSC website closely to see if space opens up in your preferred section before the add/drop deadline, however, you must attend the lecture and lab section that you are registered in, even if they are not your preferred lecture or lab section. If you are able to switch into your preferred lab section before the add/drop deadline, please tell one of the TAs that you recently switched lab sections when you attend your first lab in the new section.
- I'm registered in the course but there has been a delay in my Visa processing and I will not arrive in Vancouver until after the term starts. What should I do?
- What we've learned from students who have been in this situation in the past, is that unfortunately they have a very difficult time and often end up withdrawing from or failing the course. CPSC 110 is a course in which it is extremely difficult to catch up. Each lecture builds on all of the previous lectures, so understanding lecture 3 isn't possible unless students have mastered lectures 1 and 2. CPSC 110 is also a four credit course; including the hours spent attending lecture and lab, the course requires students to work 14+ hours per week from the very first day of the term. Students who experience Visa delays that prevent them from attending classes from the first day experience many challenges that impact their learning. A few of the biggest include:
- Their Visas often end up being further delayed, sometimes past the first or even second midterm, which are required to be written in person.
- The time difference between their home country and Vancouver prevents them from attending synchronous (live) online course activities while they are waiting to travel to Vancouver.
- Travelling around their home country for the Visa process takes a significant amount of time away from working on the course.
- Preparing for moving to a new country and travelling from their home country to Vancouver takes a significant amount of time away from working on the course.
- Getting settled in to living in a new country (e.g., securing housing, setting up a bank account, setting up a phone plan, etc.) takes a significant amount of time away from working on the course.
- We strongly encourage students who are in this situation to take the course during the next term, when they will be able to fully participate from the first day. Our data shows that students who participate from the first day are significantly more likely to pass and do well in the course. If you are in this situation, please email firstname.lastname@example.org and we can assist you in registering in the course for the next term. If you are in this situation and you are absolutely certain that you will be able to put in the numerous hours that CPSC 110 and your other courses will take, please email email@example.com and we will provide further instructions on participating in the course.
- Can I use any computer for the course?
- You can use any computer that can run the DrRacket software we use in the course. Windows, Mac, and Linux machines work fine, iPads and other similar devices do not.
- Are lecture recordings provided?
- Yes, lecture recordings are provided. We firmly remind you that lecture recordings are a supplement, not an alternative to live lectures. Research shows that the live exercises our lectures are based on improve learning. You should only use the recordings for review or to catch up on the occasional missed lecture.
- Why is one of my grades "EX" in Canvas?
- Exemptions are recorded as "EX" in Canvas — this is our way of indicating that we need to omit that grade when calculating final grades at the end of the term. As a result, total grade calculations for assignment groups in Canvas are not necessarily accurate.
- Are total grade calculations for assignment groups in Canvas accurate?
- No, please only refer to individual items (e.g. Lab 1: Intro) on Canvas as total grade calculations for assignment groups (e.g. Labs) may be inaccurate if you've received any exemptions.
- I have a different question about CPSC 110. Who should I ask?
- Please read the entire syllabus before asking any questions. It will save you time in the long-run, and it will save the course team valuable time that we can use to better support students in learning the course material. Questions that are answered in the syllabus or by resources linked in the syllabus are not guaranteed a response. (Tip: use Ctrl/Cmd+F on the syllabus page to quickly find a topic.) If your question is about the course material, please post on Piazza or ask a TA or instructor during lecture, lab, or office hours. Please direct administrative questions and questions regarding academic concession to firstname.lastname@example.org.