Programming, problem solving, and algorithms

CPSC 203, 2025 W1

September 4, 2025

Introductions

Teaching Staff

  • Prof: Cinda Heeren πŸ“§ cheeren@cs.ubc.ca ⏰ Mon 2–4pm Β· 🏒 ICCS 233 Β· Zoom

  • TA: Minh Anh Nguyen πŸ“§ ⏰ TBD Β· 🏒 TBD

  • TA: Joel Gunawan πŸ“§ ⏰ TBD Β· 🏒 TBD

You!

  • Turn to your neighbor and introduce yourself πŸ‘‹
  • Together, come up with one binary question
    that you think will divide the class about in half

Examples:

  • Coke or Pepsi?
  • Spaghetti or Sushi?
  • Morning person or Night owl?

The Flashlight Game πŸ”¦

Rules:

  • Everyone starts in play
  • Each turn, a student poses a valid yes/no question
    • YES = turn on your phone flashlight
    • NO = keep it dark
  • YES people are now on vacation 🌴
    (light stays off from now on β€” relax and enjoy!)

A question is valid if it puts at least 5 and no more than half of the current group on vacation.

End of Game:

  • We stop when 10 or fewer people remain in play
  • Everyone else is happily on vacation 🌴

Debrief πŸ’‘

Punchline questions:

  1. We know we will need at least ______ questions.

  2. We know we will need no more than ______ questions.

  3. Why did we stop at 10 instead of 1?

  4. Why did we do this?

Where to start?

Canvas: https://canvas.ubc.ca/courses/170624

Course Website: https://ubc-cs.github.io/cpsc203

PrairieLearn: https://us.prairielearn.com/pl/course_instance/193300

About This Course

This course will teach you a bunch of different things!

  • Tools: Terminal, Markdown, Git, marimo, PrairieLearn
  • Computer science: Python (!!!), efficiency, web scraping, graphs
  • Data science: pandas, data frames, visualizations
  • Algorithms: many algorithms!
  • Art and creativity: lots of examples!

Term Schedule

Week Sunday T R Lab Examlet POTW Practice
1 8/31/2025   πŸŽ‰
2 9/7/2025 πŸŽ‰ πŸŽ‰ 🏎️ πŸ‹οΈ
3 9/14/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🀩 🏎️ πŸ‹οΈ
4 9/21/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🏎️ πŸ‹οΈ
5 9/28/2025   πŸŽ‰ πŸͺ„ 🀩 🏎️ πŸ‹οΈ
6 10/5/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🏎️ πŸ‹οΈ
7 10/12/2025    
8 10/19/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🀩 🏎️ πŸ‹οΈ
9 10/26/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🏎️ πŸ‹οΈ
10 11/2/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🀩 🏎️ πŸ‹οΈ
11 11/9/2025    
12 11/16/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🏎️ πŸ‹οΈ
13 11/23/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ 🀩 🏎️ πŸ‹οΈ
14 11/30/2025 πŸŽ‰ πŸŽ‰ πŸͺ„ πŸ‹οΈ

Evaluation

Item Weight Due date(s)
Problems of the Week 10% (10 x 1%) Fridays at 6 PM
Labs 5% (10 x 0.5%) Fridays at 6 PM
Programming Projects 9% (3 x 3%) Three in the term
Examlets. 50% (5 x 10%) ~ Bi-weekly
Final Exam 26% TBD

Communications

Name Time Location & Zoom
Cinda Mon 2–4pm 🏒 ICCS 233 Β· Zoom
Minh Anh TBD 🏒 TBD
Joel TBD 🏒 TBD
TBD TBD 🏒 TBD

Semester overview

Handcraft Billboard Hot 100 The Overstory and Pointillism Artificial Music Composition Road Trip Planning Spiderman’s Social Network

Design

Objects

Iteration

Web Scraping

Data Frames

MatPlotLib

Voronoi Diagrams

Efficiency

Markov Chains

Random Numbers

Graphs

Traveling Salesperson

Intractable Problems

Natural Language

This course consists of a sequence of six explorations, assembled to provide a tour through data structure applications and algorithmic design. Built around topics from arts, sciences, and technology, the explorations are thought provoking and engaging. You will emerge from the course with increased proficiency in Python programming, and with a broad spectrum of tools for algorithmic problem solving.

Tangrams

The different geometric shapes of a tangram form a square.

The different geometric shapes of a tangram form a house

Your turn: tangrams

  1. Define a small working group of size up to 4.

  2. One of you share: https://mathigon.org/tangram

  3. Solve as many as you’d like, together

  4. Speculate together on why you’re doing this!!