Which introductory computer science course should I take?

The Computer Science department offers four options for your first Computer Science course at UBC.  None of these courses have any programming prerequisite, so they are all appropriate for beginners. These four courses all have different goals, require different amounts of work, and have different levels of difficulty.

CPSC 110 (Computation, Programs and Programming)

CPSC 110 is the shortest route to CPSC 210 and the rest of the Computer Science major and mini-streams. If you plan to complete a Computer Science major or honours degree (including combined majors, combined honours, double majors, dual majors, and minors) or need CPSC 110 to fulfill a degree requirement, then you should take CPSC 110. But, even students who are not planning to focus on Computer Science may still find that CPSC 110 best matches their needs and interests.

The goal of CPSC 110 is to give you a solid foundation into writing quality programs in any programming language. We aim to prepare you for a career of quickly picking up new languages and being able to program effectively. To do that, CPSC 110 uses a teaching language that behaves like the core of nearly every other language you are likely to use.

CPSC 110 is a 4-credit course, with 3 hours of lectures, 3 hours of labs, and 6-8 hours of other work per week.

If you do not plan to do a Computer Science degree and you do not need CPSC 110 to fulfill a degree requirement, then you may wish to consider taking CPSC 100 (Computational Thinking), CPSC 103 (Introduction to Systematic Program Design), or CPSC 301 (Computing in the Life Sciences). CPSC 100 and CPSC 103 are both appropriate for students of all programs at UBC. CPSC 301 is designed for Life Science students. You should choose the course that best fits your interests.

CPSC 100 (Computational Thinking): How have computers impacted the world around you, and how do they do it?

In CPSC 100 (Computational Thinking), you will learn how to ask questions in a way that a computational agent can process and answer them. We will cover many topics, including the way that computers have changed animated movies, what businesses can do with your personal information such as your phone number, and whether artificial intelligence will destroy the earth.

CPSC 100 is NOT a programming course, although there will be a small amount of programing using a visual language so that you can understand some of what makes computers tick. If you want to learn to program, we suggest that you take CPSC 103 or 110. However if you want a course that will change the way you think, give Computational Thinking a try.

CPSC 100 is targeted for first-year students, but is open to all UBC students. You cannot get credit for CPSC 100 if you have credit for CPSC 101 or 110. This course is open for limited enrolment in September, 2016 and we plan to grow its enrolment capacity in subsequent terms. CPSC 100 is a 3-credit course, with 3 hours of lectures, 1 hour of labs, and 6-8 hours of other work per week.

CPSC 103 (Introduction to Systematic Program Design)

This course is for any UBC student who wants to learn how to program in an introductory setting. You will learn sound programming skills that will allow you to solve problems in a discipline of your choice. You will learn the Python programming language, but your main focus in this course will be on learning to design small, well-structured, readable programs rather than focusing on learning a particular programming language. You may take this course after taking CPSC 100, but you may not take CPSC 100 after taking CPSC 103.

CPSC 103 is a 3-credit course, with 1.5 hours of lectures, 1 hour of tutorials, and 10 hours of other work per week. This class is taught in a blended format; you will attend your lecture and tutorial at UBC, and the rest of the work can be done at a time and place that you choose.

Students who complete CPSC 103 and wish to take further courses in Computer Science that require CPSC 110 as a prerequisite can take CPSC 110 for credit after completing CPSC 103. The Computer Science department may develop a follow-up course that would allow students who have completed CPSC 103 to take further CPSC courses such as CPSC 210 or CPSC 121.

CPSC 301 (Computing in the Life Sciences)

This class is for students who have third-year standing or higher and who wish to have a single-course introduction to programming skills in the Python programming language.  Applications and examples will be drawn from the life sciences.  Students completing CPSC 301 will be able to write short programs to access, manipulate, summarize and visualize simple data, such as text, image and common biological sequence formats.  CPSC 301 is a 3-credit course, with 3 hours of lectures, 2 hours of labs, and 3-5 hours of other work each week.

You cannot get credit for CPSC 301 if you have previous university or college level computer programming credit beyond CPSC 100 (or our old CPSC 101) or equivalent.  CPSC 301 is not suitable as a prerequisite for other Computer Science courses. Consequently, students interested in pursuing additional Computer Science study at UBC should take CPSC 110.  At present, we plan to offer CPSC 301 in January 2018, but there may not be any further offerings after that time.

a place of mind, The University of British Columbia


ICICS/CS Building 201-2366 Main Mall
Vancouver, B.C. V6T 1Z4 Canada
Tel: 604-822-3061 | Fax: 604-822-5485
General: help@cs.ubc.ca
Undergrad program: undergrad-info@cs.ubc.ca
Graduate program: grad-info@cs.ubc.ca

Emergency Procedures | Accessibility | Contact UBC | © Copyright The University of British Columbia