Program Learning Outcomes

Program Learning Outcomes are statements that describe significant and essential learning that all students in a program have had a good opportunity to achieve (i.e., part of something mandatory). These are outcomes they have had significant opportunities to achieve through the core. They don’t encompass all learning that students do in a program.  

Here are the UBC Computer Science Program's Learning Outcomes:

  • Decompose a real-world problem into sub-problems that can be iteratively refined and solved individually, or in teams.
  • Develop a software system to solve a real-world problem.
  • Design, evaluate, validate, and justify a solution that adheres to given or derived requirements by: adapting from useful algorithms, data structures, and code from existing solutions; considering trade-offs in quality attributes (e.g., , time, space, security); and applying best practices.
  • Construct a formal argument and formulate logically-sound proofs, both to show correctness and prove the space and time complexity of an approach.
  • Independently acquire knowledge of unfamiliar technologies, languages, frameworks, and architectures.
  • Implement a program using modern team-based development practices.
  • Identify the different layers of abstraction in a system and the interactions within the layers with respect to how data and execution are represented in that system.

Learning Outcomes for individual streams and courses