Programming, problem solving, and algorithms

CPSC 203, 2025 W1

September 18, 2025

Announcements

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

Using a Data Class

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

Declaring an object of type color():


Accessing the data of an object of type color():

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 2D grid with one square extended, showing it as a smaller grid pattern that repeats across the larger grid.

Handcraft:

Block:

Row:

Stitch:

Image:

Let’s Write

https://us.prairielearn.com/pl/course_instance/193300/assessment/2588207