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 110 will serve you well whenever you face a difficult design problemwhether it is program design or a problem from another field entirely. Previous students have said:

    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—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.

Where to go

UBC CPSC 110 builds upon the edX Systematic Program Design courses, and provides additional material for UBC students. But note that 110 uses its own separate copy of the edX course - read below for how to enrol in that copy.

If you are a UBC student and will be taking CPSC 110

If you are a UBC student and have questions about the course 

  • Please carefully read our FAQ below 
  • If your question is unanswered, please send email to cpsc110-admin AT cs DOT ubc DOT ca

If you are a UBC student and will be taking the challenge exam in early January 2017

You can access the course materials needed through https://edge.edx.org/courses/course-v1:UBC+CPSC110-101+2016W2/

Please note that you will need to submit your application before noon on Thursday, January 5th. The exam will be the evening of January 9th, and more details will be provided to those who register.

If you are NOT a UBC student but are interested in learning the course material
    You can find much of the content through edX.


The lecture section I want to take is full / I am on the wait list for CPSC 110. What should I do?

There isn’t anything that an instructor can do to get you into a lecture section that is full. But each term, a number of students sign up for CPSC 110 hoping to learn how to use existing programs like Excel, Word, Power Point, etc. When they discover that this is not the focus of 110, they drop and some space opens up in the course for students from the wait list.

So if you would like to get in the course, you must:

  1. Register on the wait list
  2. Go to lecture
  3. Complete the pre-lecture work
  4. Complete and submit problem sets
  5. Not go to lab
  6. Take the late-entry quizzes
Note that although students on the wait list are not allowed to attend labs, you can complete them and see a TA during DLC hours for feedback — this will not give you the lab marks, but you will be excused from these labs once you are moved into the class.

Movement from the wait list into the course is dependent on both your wait list order and your ability to demonstrate that you have been doing work in the course from the first day of term via passing the late-entry quizzes. Each week for the first couple weeks of term, course staff will host a short 15 minute quiz, similar to the pre-lecture questions on edX. Students who pass the quiz and are near the top of the wait list will then be moved into the course (dependent on the number of spaces available in each lecture section). If you are still on the wait list by the next quiz date, then you are expected take that quiz as well.

Here are the scheduled quiz dates (note that this is subject to change):

  • Tuesday, January 10th, 2017
    • 3 sittings (only need to attend one):
      • 5pm - 5:15pm
      • 5:20pm - 5:35pm
      • 5:40pm - 5:55pm
    • location: SWNG 121
  • Monday, January 16th, 2017
    • 3 sittings (only need to attend one):
      • 5pm - 5:15pm
      • 5:20pm - 5:35pm
      • 5:40pm - 5:55pm
    • location: SWNG 121

I'm registered in a lecture section, but all the lab sections that fit my course schedule are full. What should I do?

  • Closely monitor the SSC website to see if space opens up in the lab section you want.
  • Up to the add/drop deadline, attend a lab section that fits your course schedule. Identify yourself to the TA as a student who is hoping to get into that lab.
  • If you still don't have a lab section by the second lab, email cpsc110-admin AT cs DOT ubc DOT ca and describe your situation.
  • Since you are registered in a lecture section, we will ensure that you end up in a lab section that fits your course schedule. This may not be your preferred lab section, however.

I'm registered in a lecture section and a lab section, but I want to switch into a different lab section that is full. Can you get me into the lab section?

There isn't anything an instructor can do to get you into your preferred lab section if it is full. You should closely monitor the SSC between the beginning of term and the add/drop deadline to see if space opens up in your preferred lab section. You must attend the lab section that you are registered for even if it's not your preferred lab section. If you are able to switch your lab section on the SSC, when you first attend your new lab you should identify yourself to the TA as a student who just joined that lab section.