Programming, problem solving, and algorithms

CPSC 203, 2025 W1

September 16, 2025

Announcements

Practice problems

\(1 + 3 + 5 + \ldots + 1337\) = ____________


How many terms? ::: notes always always start this conversation from k=1, not zero. :::

Sums continued

English description:

The sum of the first \(k\) odd integers is ________

What about \(11 + 13 + \ldots + 23\)?



And \(2 + 4 + 6 + \ldots + 1338\)?

Python Demo: Lists

Exploratory code lives at https://us.prairielearn.com/pl/course_instance/193300/assessment/2587679

Don’t worry if you haven’t set up your own machine. The infrastructure on PL is adequate for most things we’ll do.

Back to handcraft

A quilt in different colours—green and pink—and patterns—paisley and flowers.

A white doily with a spiral pattern on a wooden surface.

A pen made from pinecone.

A vibrant woven textile with intricate geometric patterns in various colours the main being red, displayed against a mossy wooden background.

A violin made from intricately quilled green paper with a bow.

A bicycle covered in crocheted yarn in various colours.

Where are we?

A teal knitted dishcloth with a basketweave pattern and two red knitting needles resting on it.

A 2D grid with one square extended, showing it as a smaller grid pattern that repeats across the larger grid.

Program design

A chevron knitting pattern with zigzag lines.

A knitting pattern with diagonal stripes.

A knitting pattern with diagonal stripes.

A handcraft is a collection of __________. Every __________ has a __________, and a collection of __________. Every __________ is a collection of __________. Every __________ is either “knit” or “purl,” and is drawn as a __________.

Classes in Python

Mechanism for creating user-defined types.

Used to identify attributes with an object. Associates functionality with the relevant objects.

Example:

@dataclass
class color:
  """
  color: simply gathers color components
  """
  red: int = 120
  green: int = 120
  blue: int = 120

Design Strategies

  1. Decompose a problem into classes

  2. List the data associated with each class

  3. Write the “driver” code that illustrates the functionality you expect from each class.

  4. Implement the functions you expect.

  5. Run the driver code to test your functionality.

Which classes?

A teal knitted dishcloth with a basketweave pattern and two red knitting needles resting on it.

A 2D grid with one square extended, showing it as a smaller grid pattern that repeats across the larger grid.