Which introductory computer science or artificial intelligence course should I take?
The Computer Science department offers four options for your first Computer Science or Artificial Intelligence 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 in best-practice software development methods that you can use to write high-quality programs in any programming language. The approach in 110 is to learn by doing – in lecture, lab and in homework you will be writing programs. 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) or CPSC 103 (Introduction to Systematic Program Design). CPSC 100 and CPSC 103 are both appropriate for students of all programs at UBC. 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?
How have computers impacted the world around you, and how do they do it? CPSC 100 (Computational Thinking) covers related topics, including the way that computers have changed animated movies, what businesses can do with your personal information such as your phone number, how the Internet works, and whether artificial intelligence will destroy the earth.
CPSC 100 is NOT a programming course, though there will be a small amount of programming in a visual language so that you can understand a bit of what makes computers tick.
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 110.
AI 100 (Introduction to Artificial Intelligence): How AI systems actually work and what it means to live in a world shaped by these systems
Why are chatbots so good at helping you plan a trip? How does your phone recognize your face? How can a computer program beat the world's best Go player — a game humans thought machines could never master? How can AI diagnose cancer from a medical image as accurately as a specialist?
AI 100 starts with how AI systems actually work — the mechanics of machine learning, pattern recognition, and language generation. Then, the second half of the course pivots to address what it means to live in a world shaped by these systems: why AI can be biased or unfair, who owns data and who gets to decide how it's used, and the things to consider when AI makes consequential decisions about hiring, healthcare, or criminal justice.
Throughout the course, students build their own AI-powered apps using the CodingWorkspace — a browser-based platform for agentic coding that lets you create real tools that solve real problems, no prior experience required.
AI 100 is open to all UBC students with no prerequisites. It is designed to be valuable for anyone curious about AI, regardless of major. Computer Science majors and honours students in second year and beyond cannot get credit for AI 100.
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.
Students who complete CPSC 103 and then decide to pursue further study in Computer Science can take CPSC 107 (or CPSC 110) to complete the learning goals necessary to continue with further computing courses. Students who know in advance that they wish to pursue further study in Computer Science should register directly for CPSC 110 rather than CPSC 103 / 107.