Introduction to Computer Programming
CS 105 + CS 106

Learn coding fundamentals by creating interactive pictures, games, visualizations, and more.

Find Out More




are these courses for?

These courses are designed for students in arts, social sciences, and sciences.

No previous computer programming experience or university-level mathematics courses are assumed or required.

The visual style of lecture examples and assignments are especially well-suited to visual thinkers and creative individuals.


take these courses?

Learning to code has many benefits!

You’ll learn to think “algorithmically,” meaning you’ll be more methodical when solving real world problems.

Understanding code will increase your digital literacy, making you more effective and marketable for almost any career.

You’ll be able to write short programs to process all kinds of data, create simple information visualizations, and prototype interactive designs.

You’ll learn universal concepts that provide a pathway to learning even more about computers and coding.


are these courses like?

These are predominantly hands-on courses with almost weekly labs and assignments. The only way to learn to code is by coding! There's also a midterm and final exam.

CS 105 introduces basic coding concepts (like variables, program state, events, conditionals, iteration, arrays, and objects).

CS 106 applies these concepts to input/output, user interfaces, physics and animation, procedural content generation, object-oriented programming, and data processing.



Hear from past students.

  • Emily

    "I learned how to think in a more logical and structured way, and it gave me an appreciation for the digital world we live in, where nothing would work without code."

  • Seul

    "I was able to make games and art works while I was learning. Learning to program helped me with my own projects such as trying out new app designs."

  • Seyitan

    "I’ve become so familiar with coding in Processing that I've used it to quickly create UI prototypes and some computer generated art of my own that would have taken forever in Adobe After Effects."

  • Calvin

    "The assignments were interesting and well thought out, challenging us to apply newly learned concepts. There's a certain confidence in solving tough problems that you really can't find anywhere else, which made this course extremely enjoyable."

  • Lauren

    "We’re not only taught to write code but to do it creatively and visually. It's new and challenging but you feel supported the entire time because the professor and TAs are very involved."

  • Emily

    "I've always been interested in bridging the gap between design and technology and feel that this course did a great job of providing me with a strong understanding of core computer science concepts while tying the content back to design applications."

  • Stephanie

    "CS105/106 has taught me not only how to code, but to have fun with it. Going into it, I thought it would've been my least favourite course, but it ended up being my favourite. I got to code and design at the same time."

  • You
    Could Be



Get answers to common questions.

What computer language will I use?

Both courses use Processing, a popular, open-source programming environment designed from the ground up for creating interactive media.

Why learn Processing?

Processing is an extended version of Java, one of the most popular programming languages in the world. It's conceptually similar to other popular languages like Python, JavaScript, PHP, Python, and C++.

Can I use my own computer?

Yes, Processing is available for Microsoft Windows, Apple OSX, and Linux. It's free to download and simple to install. It does not require the "latest and greatest" computer.

Is there a lot of math?

Not a lot, but some. You should be comfortable with basic concepts like negative numbers, decimals, inequalities (e.g. greater-than and less-than), coordinates, and elementary algebra (e.g. if 3 × x = 6, what is x?).

Are these courses really hard?

We're not going to lie and say they're easy: learning a new skill requires effort. We do our best to make the content approachable and interesting. The courses are very well supported with lots of lab time staffed by several TAs, extra office hours from instructors and TAs, study materials, Piazza, etc.

What if I want to learn more about Computer Science after?

You can take other computer science courses like CS 100 - Introduction to Computing through Applications and CS 200 - Concepts for Advanced Computer Usage.

What if I want to major or minor in Computer Science?

These courses are not intended as a way into a Computer Science major or minor (students in the Faculty of Mathematics aren't even permitted to enrol). For highly motivated students who do extremely well, there may be a way into Computer Science programs. Talk to a CS advisor.

More details?