# Teaching Guidelines

### Teaching Method: I Do, We Do, You Do

The "I Do, We Do, You Do" method is a teaching method designed to help students learn new concepts by first observing, then practicing with guidance, and finally working independently.

* **I Do:** The teacher explains and demonstrates a concept by explaining the steps and thought process aloud. The teacher can use live coding to show the steps. Explain why you're creating variables, choosing certain loops, or implementing specific functions. Demonstrate not only successful code but also introduce common errors and how to troubleshoot them. This helps students understand that mistakes are a normal part of the coding process and builds their debugging skills from the start.
* **We Do:** Once students have observed your demonstration, transition to the guided practice or "We Do" phase. The teacher walks the students through an activity. You might provide partially completed code for students to finish and ask for suggestions on what comes next. The students code along. This collaborative stage allows students to apply what they've seen with support, ask questions, and receive immediate feedback.
* **You Do:** The final phase is independent practice, or "You Do." Assign coding tasks similar to those you've demonstrated and practiced together, but allow students to work through them independently. Provide clear instructions and success criteria so students know what's expected. During this time, circulate through the classroom to offer assistance where needed, but resist the urge to take over. This is when students develop coding confidence and problem-solving abilities.&#x20;

**Example: Introducing Javascript**

* **I Do:** The teacher introduces JavaScript and demonstrates a simple script that shows an alert when clicking a button. Key concepts like variables, functions, and events are explained briefly.
* **We Do:** The teacher walks the students through creating a function that changes a heading's color when clicking a button. The students follow and code along. The teacher shares their screen and gives the students time to code along. Together, the teacher and the students write the function, select the element, and add an event listener, with the teacher guiding and asking questions to engage students.
* **You Do:** Students independently write JavaScript to change the text of a paragraph when a button is clicked in a breakout room. They practice using variables, functions, and event listeners and then share their work for feedback.

### How do you teach a session with I Do, We Do, You Do?

We see two ways to apply the method to a session:

1. You split the whole session by the method:
   1. I Do - Introduce concepts for \~45min and try to live code them)
   2. We Do - live code the same concepts and ask students to follow along for \~ 45min)
   3. You Do - let students apply the concepts independently in a slightly different way for \~ 20min
2. You introduce every concept by the method:
   1. Concept A (example: Intro to React) - I Do (15 min), We Do (15 min), You Do (15 min). After introducing concept A with the method, you introduce concept B once again with the method.
   2. Concept B (example: React Components) - I Do (30 min), We Do (30 min), You Do (15 min)&#x20;

### Why is the method helpful?

* **Breaks Down Complexity**: Coding has many rules and new concepts—seeing it done first, then trying with help, and finally doing it alone makes learning manageable.
* **Teaches Problem-Solving**: Students learn how to approach coding problems by watching, then practicing with guidance, before solving independently.
* **Builds Confidence**: This step-by-step method reduces frustration with coding errors and builds confidence gradually through supported practice.
* **Reflects Real Coding Practice**: Matches how actual programmers learn—by studying examples, working with others, and then coding independently.

### Implementation Tips

* Start with smaller coding problems that can be completed in one session
* Think about examples and exercises in advance
* Connect coding concepts to everyday experiences using analogies
* Show both correct solutions and common mistakes with fixes
* Use color-coding to highlight syntax patterns
* Incorporate visual aids and flowcharts
* Celebrate debugging as learning rather than failure
* Share stories of professional programmers overcoming challenges

#### Articles about the method:

* [https://classwork.com/i-do-we-do-you-do-strategy-gradual-release-strategy/](https://classwork.com/i-do-we-do-you-do-strategy-gradual-release-strategy/)
* [https://explaineverything.com/blog/inspiring-educators/how-to-master-the-i-do-we-do-you-do-model-approach-to-teaching/](https://explaineverything.com/blog/inspiring-educators/how-to-master-the-i-do-we-do-you-do-model-approach-to-teaching/)
* [https://thirdspacelearning.com/blog/i-do-we-do-you-do/](https://thirdspacelearning.com/blog/i-do-we-do-you-do/)

### Other Best Practices

* **Context before content** - We experienced that explaining why a concept is important helps a lot in understanding what the concept is about. Why should you learn this concept? Try to give the context. Maybe explain where you use it in your daily work life. Or explain how this concept can help to solve a bigger problem
* **Engage with Students:** Ask questions to check understanding. Use their names and keep the tone friendly and encouraging.
* **Be Prepared but Flexible:** Have a plan but adapt based on student needs.
* **Feedback is Key:** Provide constructive feedback to help students improve. Celebrate small wins to keep motivation high.

### Ice Breakers:

* Ice Breakers and Energizers - Do you want to start the session with an energizer? Have a look at [class-engagement](../class-engagement "mention")
