Community resourceWorkspace

1CP2-CT-6.WS5 Extended decomposed Turtle design

Part 5 of 6 · 1CP2-CT-6 · Turtle practical lessons

The extended practical lesson, where students plan a design of their own and then build it.

Students will:

  • plan a drawing before writing any code
  • decompose the plan into subprograms with parameters
  • build and test the design one part at a time
  • refine the drawing after seeing the result
  • keep the finished program readable and commented

A Workspace lesson: students write and run their own Python in the editor. About 90 minutes.

Series: 1CP2-CT-6 · Turtle practical lessons, part 5 of 6.

Shared by Coding PathwayVerified teacher

  • 1 coding activity
  • About 90 minutes
  • CC BY-SA 4.0
  • Shared 17 Aug 2026

Preview

The whole resource, exactly as a class sees it. Answers and marking are held back.

Extended decomposed Turtle design

Design brief

Create a community event poster image using Turtle graphics. The image must communicate one theme clearly through repeated shapes, colour and composition. Possible themes include a reading festival, nature day, space exhibition or sports celebration.

This is an extended build. Your main task is to turn a visual idea into manageable components, then test and combine them systematically.

Required outcome

Your design must include:

  • a background or border;
  • one main emblem built from more than one shape;
  • at least three repeated decorative objects;
  • at least one circle or arc;
  • at least two filled closed shapes;
  • deliberate foreground and background layers.

Step 1: decompose before coding

Complete the planning block in the starter code. Identify:

  1. the background component;
  2. the main emblem and its smaller parts;
  3. one repeated decoration;
  4. the order in which components must be drawn;
  5. the parameters needed to vary position, size or colour.

Turn those components into procedure names. For example:

draw_border(width, height, colour)
draw_star(x, y, size, colour)
draw_planet(x, y, radius, colour)
draw_badge(x, y, size)

Choose names that match your own theme.

Step 2: establish predictable movement

Implement move_to(x, y, heading) using only Pearson-supported methods:

  • penup();
  • setposition(x, y);
  • setheading(heading);
  • pendown().

Use this helper at the start of positioned components.

Step 3: build and test components

Implement one procedure at a time.

For each component:

  1. run it alone at a clear position;
  2. compare the result with your plan;
  3. test a second size, position or colour where parameters allow;
  4. record one correction in the testing log comments.

Do not wait until the whole poster exists before testing.

Step 4: use iteration purposefully

Use a for loop for repeated sides or repeated decoration. The loop should express a real pattern, not repeat unrelated commands merely to satisfy a criterion.

Examples include:

  • sides of a regular polygon;
  • rays around an emblem;
  • repeated flags or stars at calculated positions.

Step 5: compose and refine

Call procedures in layer order. Run the integrated design and inspect:

  • overlap and visibility;
  • balance of positions and sizes;
  • accidental joining lines;
  • consistent outline and fill colours;
  • whether repeated objects remain recognisable.

Make at least one recorded refinement after this integrated test.

Core success criteria

  • The plan decomposes the design into at least four meaningful components.
  • At least four purposeful procedures are defined and called.
  • At least one procedure has position and size parameters.
  • At least one procedure is reused three or more times with different arguments.
  • A for loop creates a genuine repeated pattern.
  • Supported Turtle pen, fill, movement, positioning and circle methods are used correctly.
  • Drawing order produces intentional layers.
  • The testing log records a component correction and an integration refinement.

Debugging prompts

  • Test the smallest failing procedure alone.
  • Temporarily call one procedure at (0, 0) with a simple size.
  • Reset its starting heading with setheading.
  • Check that every begin_fill is paired with end_fill around a closed boundary.
  • Check whether later filled shapes are covering earlier detail.
  • Trace parameter values through the calculations used for lengths and radii.

Optional extension

Create a second colour scheme by storing colour strings in variables near the top of the program. Changing those variables should restyle the poster without editing every procedure.

Evidence to hand in

Submit the finished code and canvas. Your teacher should also see the decomposition plan and testing log comments. Be ready to demonstrate one procedure independently and explain why its parameters make it reusable.

Starter code
import turtle

screen = turtle.Screen()
screen.setup(1000, 700)

artist = turtle.Turtle()
artist.speed("fastest")

# DECOMPOSITION PLAN
# Theme:
# 1. Background component:
# 2. Main emblem and parts:
# 3. Repeated decoration:
# 4. Layer order:
# 5. Useful parameters:


def move_to(x, y, heading):
    # Implement predictable repositioning here.
    pass


# Define at least four meaningful drawing procedures below.


# COMPONENT TESTING LOG
# Component tested:
# Test arguments:
# Problem found:
# Correction made:


# MAIN PROGRAM
# Call the procedures in intentional layer order.


# INTEGRATION REFINEMENT
# What changed after testing the full design:
# Why the change improved the outcome:


turtle.done()