Girl studying at Nest

Mini-Streams

Mini-streams are designed for students who are not majoring in Computer Science, but desire a more sophisticated understanding of computer science and how to apply it in your chosen field.

A Computer Science Mini-Stream is a self-contained sequence of three or four courses that will allow you to focus on a particular aspect of computer science

The streams are designed to give you practical, interesting and fun exposure to important areas of computer science (CS). The mini-streams are self-contained, so you won’t need to take any other CS courses. In some cases no other courses in Science are required. At least one of the courses in each mini-stream is third year or above, so you will be getting to advanced material in that specialty.  The CS mini-streams are flexible and there is no formal registration process. All you need to do is register for the courses you want to take.

Mini-streams do not replace the CS Major. If your goal is a career in computer science, you will want to choose among the various CS major, combined major, and minor options.

The current mini-streams were selected for students with a variety of interests. Other streams are also  being developed, and the existing course pre-requisite structure supports some flexibility to design a stream of your own choosing. For more information, please contact undergrad-info@cs.ubc.ca.

Mini-Streams Descriptions

Human and Social Centered Computing
Ever been frustrated by a computer application, a website, or even an electronic vending machine?  Have you ever wondered just what makes it so hard to make computers usable, and wished you could take a crack at it?  What about the ethics of computation?  What happens when some people and parts of the world have much better internet access than others, why can't you use your favorite online music streaming site in Canada, what do companies really do with your loyalty card information, and where is social networking taking us?

In this mini-stream, learn more about the human part of computing and what humans can do to take control of it.

Core courses:

Further course options:

Scientific Computing
Computational simulation and data analysis are critical in virtually every domain of science and engineering. Since these techniques deal with continuous quantities, we must be careful when we perform complex manipulations of their representation inside a digital device like a computer.  If you would like to learn more about how to implement scientific simulations and data analysis efficiently, accurately, and reliably; then scientific computing is the stream for you.

Core courses:

Further course options:

Software Development
Would you like to learn how to design and build software? Learn how to design both small and large software systems? Software that can help you finish a project or a mobile app that you can share with friends? Do you want to know how to organize software projects so that people can work effectively? Manage a group of developers working on a company’s product? How to design software so that you can be confident it will work properly? Ensure that the software you produce will be easy to extend in the future? If you would like to learn more about systematically creating good software then the software development stream is for you.

Core courses:

Further course options:

  • CPSC 311 Programming Languages: there are many different kinds of programming languages, each of which makes it easier to get certain kinds of work done. This course will help you understand the different kinds of languages and know which one to use for what kind of work.
  • CPSC 319 Software Project: student teams of 6 to 8 people work together to develop a large software system in response to the needs of a real customer.
  • CPSC 410 Advanced Software Engineering: architecture and verification of large integrated software systems.