liveBook · Manning

Creative Programming Problem Solving Test

As explained in The Creative Programmer

The Creative Programming Problem Solving Test is a questionnaire-based assessment of programmers' or students' creative problem-solving tendencies.

How does a programming project shape the way you solve problems creatively? The Creative Programming Problem Solving Test (CPPST) is a questionnaire that turns creative programming habits into a contextual profile rather than a single score. Its results can appear as a spider diagram, preserving differences between areas of creative problem solving. section 1.4.2

Use the CPPST as a reflective snapshot:

  • Answer with a particular project in mind; curiosity or technical knowledge may vary when the project itself changes. section 1.4.2
  • Read the profile as insight into your current creative process, not as a definitive judgment of ability. section 1.4.2
  • Return to the questions later and look for practical change, rather than comparing numbers with other people or projects. section 1.4.2 section 9.2.2

One programmer, two projects

A programmer might report low curiosity while feeling bored by one project, then report high technical knowledge while tackling another demanding project. The changing profile does not necessarily signal a changed person; it shows how creative problem solving is tied to circumstances. section 1.4.2

Table 1.1 The full set of 56 questions from the Creative Programming Problem Solving Test rubric (view table figure)

1. Technical knowledge

1

2

3

4

5

I have gained a lot of knowledge during the project.

 

 

 

 

 

I learned and applied new practical programming techniques.

 

 

 

 

 

I have gained insight into the problem domain.

 

 

 

 

 

The technical aspect of programming appealed to me.

 

 

 

 

 

I thought about my learning process and how to improve it.

 

 

 

 

 

I felt comfortable with this project because many aspects were unknown.

 

 

 

 

 

I tried to relate the new knowledge to something I know.

 

 

 

 

 

Thanks to the project I also gained knowledge of other things outside of coding.

 

 

 

 

 

2. Communication

1

2

3

4

5

I regularly asked for feedback from my fellow colleagues.

 

 

 

 

 

I visualized the problem on a whiteboard or on paper.

 

 

 

 

 

I regularly asked feedback from my clients and/or end users.

 

 

 

 

 

I helped my teammates with their own tasks.

 

 

 

 

 

My own tasks were completed on time so that teammates did not run into deadline troubles.

 

 

 

 

 

I supported the ideas and efforts of my teammates.

 

 

 

 

 

I was so proud of our result that I showed it to everyone.

 

 

 

 

 

I thoroughly thought through suggestions made by others.

 

 

 

 

 

3. Constraints

1

2

3

4

5

I regularly thought about the correctness of my solution.

 

 

 

 

 

I did not perform less well due to time pressure.

 

 

 

 

 

I tried to make my code as elegant as possible.

 

 

 

 

 

I tried to identify the constraints of the assignment.

 

 

 

 

 

I had the program tested by friends and/or family (if possible).

 

 

 

 

 

I could make good decisions even though there was a lot of creative freedom.

 

 

 

 

 

Coding on short notice accelerated my learning process.

 

 

 

 

 

I regularly tested the program myself and paid attention to its ease of use.

 

 

 

 

 

4. Critical thinking

1

2

3

4

5

In discussions about problems, I often suggested alternatives.

 

 

 

 

 

I regularly carefully weighed up the various options we had.

 

 

 

 

 

I dared to completely rewrite my code when it didn’t go well.

 

 

 

 

 

I used multiple sources to find out information myself.

 

 

 

 

 

I think it was important to ask teammates how they implemented something.

 

 

 

 

 

I always check the credibility of the source when I look something up.

 

 

 

 

 

It was important that I 100% understood why something works the way it did.

 

 

 

 

 

Looking at other projects made me reflect on my own.

 

 

 

 

 

5. Curiosity

1

2

3

4

5

During the project, I got very much out of my comfort zone.

 

 

 

 

 

Many parts of the project piqued my curiosity.

 

 

 

 

 

I enjoyed getting involved in many aspects of the project.

 

 

 

 

 

I enjoyed really immersing myself in some aspects.

 

 

 

 

 

I was stimulated by the complexity of the project.

 

 

 

 

 

I felt the urge to implement extras.

 

 

 

 

 

I had a lot of fun while developing the project.

 

 

 

 

 

I didn’t have to commit and push myself to finish the project.

 

 

 

 

 

6. Creative state of mind

1

2

3

4

5

I remained focused for a long time on one part of the project.

 

 

 

 

 

I used productivity tools to focus more on the essence of the problem.

 

 

 

 

 

I found the experience to be very rewarding.

 

 

 

 

 

Time seemed to fly while working.

 

 

 

 

 

I found that I knew enough to meet the high demands of the project.

 

 

 

 

 

Programming went almost automatically.

 

 

 

 

 

I knew exactly what I wanted to achieve.

 

 

 

 

 

I was not concerned with what outsiders thought of my code.

 

 

 

 

 

7. Creative techniques

1

2

3

4

5

I used many different methods to solve a single problem.

 

 

 

 

 

I employed knowledge from another domain to solve something.

 

 

 

 

 

I combined different ideas to tackle a problem.

 

 

 

 

 

I deliberately took occasional breaks to let things sink in.

 

 

 

 

 

I brainstormed with others to come up with new ideas.

 

 

 

 

 

I took a step back now and then to see things as a whole.

 

 

 

 

 

In case of problems I let myself be inspired by other projects.

 

 

 

 

 

I never felt completely stuck.

 

 

 

 

 

Browse the complete 56-question rubric, including prompts about technical knowledge, communication, learning, feedback, and relationships between new and familiar knowledge. section 1.4.2

The CPPST also invites a broader question about development. Different student groups showed different patterns, including less frequent feedback-seeking among last-year students. Its seven creativity domains can be regrouped into ability, mindset, and interaction, while reminding us that assessment results depend on how questions are interpreted. section 9.2.2

How The Creative Programmer covers it

How deep it goes
Defines a 56-question, seven-domain profile with spider visualization, but stops short of reducing creativity to one number.
Examples
Uses project-dependent curiosity and technical knowledge, spider diagrams, student feedback patterns, and a 56-question rubric.
What you can do after
Evaluate your current creative process and revisit it over time without treating scores as definitive comparisons.
How it connects
Connects creative problem solving with technical knowledge, communication, feedback, ability, mindset, and interaction.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of The Creative Programmer. The section links point to the parts of the book it draws on.