> For the complete documentation index, see [llms.txt](https://upskilling.stacs.scot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://upskilling.stacs.scot/conference26/session-b-workshops/problem-framing-in-the-computing-classroom.md).

# Problem–Framing in the Computing Classroom

Opportunities for Creativity, Critical Thinking and Social Justice

As teachers, we often tell students to read the full question. But what do we actually mean? Do we mean understanding the process the program has to represent, or the world the task seems to describe?

In industry, a specification is the product of framing a real problem: someone decides what the software needs to do, what counts and what can be left out. School programming tasks can look similar, but they’re often designed for a different purpose: to develop and assess coding knowledge and skills. Knowledge and skills matter, but this does mean students rarely meet the problem-framing process behind a real specification.

We teach computational thinking methods such as decomposition and abstraction, but knowing something isn’t the same as knowing when to use it. Methods become purposeful when the problem calls for them. Computational thinking is meant to include formulating problems, yet students mostly apply it to problems someone else has already framed. How often do they meet **messy problems**, where they first have to work out what the problem is and which methods it needs? Working out the problem opens up rich opportunities to explore lived experience, bias and ethics, not as separate topics but as part of understanding the problem. It’s also where students and teachers voice their interpretations, engage with different viewpoints, reflect critically and find room to be creative.

This hands-on session draws on PhD research into understanding programming problem solving practice and what it might mean for school computing education. Together we’ll look at types of activities that might be useful in the classroom, from putting the world back into a familiar programming task to framing a problem from scratch.&#x20;

Along the way, we’ll consider questions students could ask before reaching for any method, such as:

* *What’s actually going on here?*
* *Whose problem is it and what might they need?*
* *How do I see this and how might someone else see it differently?*
* *Who decides what counts and who might be excluded?*
* *Is technology even the right answer?*

{% hint style="info" icon="school" %}
**Nicola Looker**

Doctoral Student in Computing Education Research

*Education & Practice Section*

*Centre for Computing Science Education*

*University of Glasgow*
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://upskilling.stacs.scot/conference26/session-b-workshops/problem-framing-in-the-computing-classroom.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
