<p>This sounds a little bit like <a href="https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem">an X-Y problem</a>. When you're using micro controllers in a computer science class, what is it that you're trying to teach? How to write a for/while loop to satisfy an abstract line of pseudo-code, or the joy of making yourself something that previously you have only seen as an expensive gimmick in a shop?</p>

<p>I think there are similarities in science practicals. There, there is a precise script to follow, and often not much scope for 'now make up your own experiment to mix random chemicals'. What you're teaching is (a) a <strong>re-enforcement</strong> of the theoretical work through application and repetition, and (b) the <strong>practical, hands on</strong> skills of real development. </p>

<p>What we do in the real world (particularly in the embedded device space) really is find someone else's description of what they did, then copy it and make sure you can also get it to work. Finally, you make your own version better. Along the way, you learn lots of vitally important practical skills. Assembling the project isn't the only goal, it's almost an excuse for the activity. </p>

<ul>
<li><p>Debugging is harder. The 'debug by random iteration' approach won't work.</p></li>
<li><p>Results are tangible - you can hold them. You can flash lights, react to stimulus, move things. This teaches students about real applications, not just web pages and databases.</p></li>
<li><p>MCUs are more resource constrained. You can make optimisation a <em>necessary</em> part of the task, not just a pointless exercise.</p></li>
<li><p>Each student will put their own twist on the exercise, drawing in other skills.</p></li>
</ul>

<p>Picking out the current micro:bit ideas on twitter:</p>

<p><a href="https://twitter.com/NuLSchoolUK/status/916626982519103489" rel="nofollow noreferrer">Robot Football</a><br>
<a href="https://twitter.com/NeilRedRobotics/status/911332591768363008" rel="nofollow noreferrer">NeoPixel Clock</a><br>
<a href="https://sites.google.com/site/hardwaremonkey/blog" rel="nofollow noreferrer">An optical indicator for a S/W project</a> (I think, was a bit unclear)<br>
<a href="http://www.instructables.com/id/Avoid-the-Asteroids-With-ElecFreaks-Microbit-Tinke/" rel="nofollow noreferrer">Arcade game on a 5x5 display</a></p>

<p>If I'm interviewing, I can ask about one of these projects, what was hard, what was interesting, what comes next. That tells me something about a candidate that no 20 minute coding test will. All of these projects would take any of us here some time to complete too. </p>

<p>If I gave you an arduino and a kit of hardware, I'd say 'do the blink LED exercise first', to make sure you know how things behave when they work. Then a few more simple follow on activities. Jumping straight in at the deep end is too big a step - we set up commercial products just the same too, with easy step-by-step instructions (plus videos). People still come back with questions - our first question is always 'does binky work?'</p>

CC BY-SA 3.0
2017-10-14T20:31:32.147Z
I like the analogy to a biology or chemistry lab section. In the lab session, though, there are often reflective questions a student must answer to show that they have an understanding of what they did. I remember writing endless lab reports explaining why my results meant something. What are examples of those reflective questions for Arduino projects?
nova
CC BY-SA 3.0
2017-10-07T13:27:22.563Z
2017-10-07T13:27:22.563Z
Sean Houlihane
<p>There are many pre-designed Arduino Projects!</p>

<p>As an example, <a href="https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6" rel="nofollow noreferrer">here</a> from the official Arduino Website.</p>

<p>Be sure to not have Arduinos ready, also get some basic materials as sensors, leds, breadboards and so on.</p>

<p>I'm a student, and I had to teach the others developing with an Arduino, and the only thing we could make (due to lack of materials) was turning off the LED which is pre installed on the board.</p>

<p>It was getting so boring, that I made a function to play the LED via a pattern given :) </p>

CC BY-SA 3.0
2017-10-06T11:34:51.090Z
We're not clear on the question, but I think it was saying 'all I can find are full projects, not open ended design/development ideas'. Are you saying that this doesn't matter for a student, or that making games is a good extension?
Sean Houlihane
CC BY-SA 3.0
2017-10-06T12:31:04.017Z
What do you mean by “to not have Arduinos ready”? Tell us more about what would have made it fun/interesting/useful for you.
ctrl-alt-delor
CC BY-SA 3.0
2017-10-06T10:18:04.313Z
2017-10-06T12:29:58.090Z
2017-10-06T12:29:58.090Z
user5339049
<p>You may not be able to find what you want ready-built, but it shouldn't be hard to develop your own pedagogy here. </p>

<p>I have a different interpretation of the question than I think the other current answers do. I'm going to put my emphasis on the <em>Active Learning</em> part of the question rather than the <em>Arduino</em> part. I'm going to have to make some assumptions here, since there is incomplete information. First, I'll assume that your students are young people, up through teen years. Next, I'll assume that your purpose is at least two-fold, learning about Arduino and becoming more confident in speaking and explaining things in a peer setting. </p>

<p>For background I'd suggest two things. The first (which I don't suggest doing, but which it is good to be aware of is the game <a href="https://en.wikipedia.org/wiki/Chinese_whispers" rel="nofollow noreferrer">Telephone or Chinese Whispers</a>. I don't suggest passing a technical description from student to student to see how it gets garbled for two reasons, one of which is that it can lead to embarrassment, and the other is that it would take up too much time. But to subvert the issue of garbling in passed messages feedback at each stage is needed to see that the message gets passed faithfully and even improved. </p>

<p>The second thing to look at is two <a href="https://smile.amazon.com/Guide-Teaching-Computer-Science-Activity-Based/dp/1447166299/ref=sr_1_1?ie=UTF8&amp;qid=1502067480&amp;sr=8-1&amp;keywords=guide+to+teaching+computer+science" rel="nofollow noreferrer">Pedagogical Patterns</a>, <em>Own Words</em> and <em>Peer Feedback</em>. The first suggests that you can get a feel of student understanding by asking them to explain something in their <em>own words</em>, rather than just a repetition of what they have read or heard. The latter pattern suggests that students give feedback to one another. </p>

<p>I might try something like the following in a reasonably sized class of young people. After examining some Arduino project from the literature or of your own devising, I'd suggest a somewhat modified problem with some details the same and some different. I'd divide the class into small groups (say 3 students) and ask them to work for a bit to come up with a solution. I would then ask one of the groups to explain their solution to the others, focusing on the new parts. Sometimes it is appropriate for the group to choose a spokesperson and sometimes it is better to require that each student participate in the discussion. </p>

<p>After the explanation is given, ask the other students to do one or more of the following.   </p>

<ul>
<li>Ask questions about the solution given</li>
<li>Comment on the solution, or at least note where more explanation is needed</li>
<li>Improve on the solution</li>
<li>(more?)</li>
</ul>

<p>You can have a couple of teams give their own explanations. If you do this you can also have a vote on which one seems more complete. You can give a prize for the best explanation. </p>

<p>It is also good if you can use a whiteboard or a projector to note the important elements of the solution given and can use this as a framework to fill in as students make comments. You can judge for yourself when the solution is complete enough that it can be implemented and then send them off to build the thing or keep the discussion going until it is more complete. You can make suggestions along the way, of course, to try to bring out missing parts. You can actually give feedback in a subtle fashion by asking the appropriate questions of the speaking team, rather than directly commenting. </p>

<p>This technique works for lots of things, not just Arduino. </p>

<hr>

<p>Meta discussion:</p>

<p>With teens, avoiding embarrassment is an important consideration as they are developing their own self image and don't like to see it bruised in public. Younger and older students can be (not always) more open. </p>

<p>Most classes have a few students who try to answer everything and always put their hand up first. Teams are a way to get each student's contribution into the solution, not just those of the loudest speakers. </p>

<p>Making it a bit competitive can be good or bad, depending on the nature of your students. </p>

<p>Try to build such considerations, when they occur, into your pedagogy. </p>

CC BY-SA 3.0
2017-10-15T12:27:22.703Z
2017-10-15T12:51:01.413Z
2017-10-15T12:51:01.413Z
Buffy
<p>I've been looking for <a href="https://www.youtube.com/watch?v=tpAEx2abKBQ" rel="nofollow noreferrer">peer instruction</a> style questions for an intro to Arduino workshop, but I haven't found anything. Besides not seeing PI materials, it's hard to find any materials where a student has to self-explain their own knowledge or discuss with classmates. Most resources are in a tutorial style where the student is expected to essentially copy a given configuration. I'm worried that this will lead to low understanding and not change students' misconceptions.</p>

<p>I want materials that ask students to discuss their understanding of</p>

<ul>
<li>How an LED light works</li>
<li>How digital pins are different than analog pins</li>
<li>How code is sent and stored on the Arduino board</li>
<li>What functions like digitalWrite() and setup() actually do</li>
<li>Ideally, given that you know so far, how would you _____ ?</li>
</ul>

<p>Do you know of any such materials for Arduino?</p>

CC BY-SA 3.0
2017-10-05T07:49:44.470Z
You could try looking at micro:bit resources, there may be some ideas you can copy. Not looked at Arduino specifically, but copy a skeleton and extend seems to work (not sure of the experience of the kids I did this with though)
Sean Houlihane
<resource-request><arduino><active-learning>
Teaching Arduino---but not just "monkey see monkey do"
# Teaching Arduino---but not just "monkey see monkey do"

(Asked by: username_0 on 2017-10-05)

I've been looking for [peer instruction](https://www.youtube.com/watch?v=tpAEx2abKBQ) style questions for an intro to Arduino workshop, but I haven't found anything. Besides not seeing PI materials, it's hard to find any materials where a student has to self-explain their own knowledge or discuss with classmates. Most resources are in a tutorial style where the student is expected to essentially copy a given configuration. I'm worried that this will lead to low understanding and not change students' misconceptions.

I want materials that ask students to discuss their understanding of

* How an LED light works
* How digital pins are different than analog pins
* How code is sent and stored on the Arduino board
* What functions like digitalWrite() and setup() actually do
* Ideally, given that you know so far, how would you \_\_\_\_\_ ?

Do you know of any such materials for Arduino?

**Tags:** resource-request, arduino, active-learning

> **Comments:**
> **username_1**: You could try looking at micro:bit resources, there may be some ideas you can copy. Not looked at Arduino specifically, but copy a skeleton and extend seems to work (not sure of the experience of the kids I did this with though)  

---

## 3 answers

### Answer by username_1 on 2017-10-07. Score: 1

This sounds a little bit like [an X-Y problem](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). When you're using micro controllers in a computer science class, what is it that you're trying to teach? How to write a for/while loop to satisfy an abstract line of pseudo-code, or the joy of making yourself something that previously you have only seen as an expensive gimmick in a shop?

I think there are similarities in science practicals. There, there is a precise script to follow, and often not much scope for 'now make up your own experiment to mix random chemicals'. What you're teaching is (a) a **re-enforcement** of the theoretical work through application and repetition, and (b) the **practical, hands on** skills of real development.

What we do in the real world (particularly in the embedded device space) really is find someone else's description of what they did, then copy it and make sure you can also get it to work. Finally, you make your own version better. Along the way, you learn lots of vitally important practical skills. Assembling the project isn't the only goal, it's almost an excuse for the activity.

* Debugging is harder. The 'debug by random iteration' approach won't work.
* Results are tangible - you can hold them. You can flash lights, react to stimulus, move things. This teaches students about real applications, not just web pages and databases.
* MCUs are more resource constrained. You can make optimisation a *necessary* part of the task, not just a pointless exercise.
* Each student will put their own twist on the exercise, drawing in other skills.

Picking out the current micro:bit ideas on twitter:

[Robot Football](https://twitter.com/NuLSchoolUK/status/916626982519103489)  
[NeoPixel Clock](https://twitter.com/NeilRedRobotics/status/911332591768363008)  
[An optical indicator for a S/W project](https://sites.google.com/site/hardwaremonkey/blog) (I think, was a bit unclear)  
[Arcade game on a 5x5 display](http://www.instructables.com/id/Avoid-the-Asteroids-With-ElecFreaks-Microbit-Tinke/)

If I'm interviewing, I can ask about one of these projects, what was hard, what was interesting, what comes next. That tells me something about a candidate that no 20 minute coding test will. All of these projects would take any of us here some time to complete too.

If I gave you an arduino and a kit of hardware, I'd say 'do the blink LED exercise first', to make sure you know how things behave when they work. Then a few more simple follow on activities. Jumping straight in at the deep end is too big a step - we set up commercial products just the same too, with easy step-by-step instructions (plus videos). People still come back with questions - our first question is always 'does binky work?'

> **Comments:**
> **username_0**: I like the analogy to a biology or chemistry lab section. In the lab session, though, there are often reflective questions a student must answer to show that they have an understanding of what they did. I remember writing endless lab reports explaining why my results meant something. What are examples of those reflective questions for Arduino projects?  

---

### Answer by username_2 on 2017-10-06. Score: 0

There are many pre-designed Arduino Projects!

As an example, [here](https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6) from the official Arduino Website.

Be sure to not have Arduinos ready, also get some basic materials as sensors, leds, breadboards and so on.

I'm a student, and I had to teach the others developing with an Arduino, and the only thing we could make (due to lack of materials) was turning off the LED which is pre installed on the board.

It was getting so boring, that I made a function to play the LED via a pattern given :)

> **Comments:**
> **username_1**: We're not clear on the question, but I think it was saying 'all I can find are full projects, not open ended design/development ideas'. Are you saying that this doesn't matter for a student, or that making games is a good extension?  
> **username_3**: What do you mean by “to not have Arduinos ready”? Tell us more about what would have made it fun/interesting/useful for you.  

---

### Answer by username_4 on 2017-10-15. Score: 0

You may not be able to find what you want ready-built, but it shouldn't be hard to develop your own pedagogy here.

I have a different interpretation of the question than I think the other current answers do. I'm going to put my emphasis on the *Active Learning* part of the question rather than the *Arduino* part. I'm going to have to make some assumptions here, since there is incomplete information. First, I'll assume that your students are young people, up through teen years. Next, I'll assume that your purpose is at least two-fold, learning about Arduino and becoming more confident in speaking and explaining things in a peer setting.

For background I'd suggest two things. The first (which I don't suggest doing, but which it is good to be aware of is the game [Telephone or Chinese Whispers](https://en.wikipedia.org/wiki/Chinese_whispers). I don't suggest passing a technical description from student to student to see how it gets garbled for two reasons, one of which is that it can lead to embarrassment, and the other is that it would take up too much time. But to subvert the issue of garbling in passed messages feedback at each stage is needed to see that the message gets passed faithfully and even improved.

The second thing to look at is two [Pedagogical Patterns](https://smile.amazon.com/Guide-Teaching-Computer-Science-Activity-Based/dp/1447166299/ref=sr_1_1?ie=UTF8&qid=1502067480&sr=8-1&keywords=guide+to+teaching+computer+science), *Own Words* and *Peer Feedback*. The first suggests that you can get a feel of student understanding by asking them to explain something in their *own words*, rather than just a repetition of what they have read or heard. The latter pattern suggests that students give feedback to one another.

I might try something like the following in a reasonably sized class of young people. After examining some Arduino project from the literature or of your own devising, I'd suggest a somewhat modified problem with some details the same and some different. I'd divide the class into small groups (say 3 students) and ask them to work for a bit to come up with a solution. I would then ask one of the groups to explain their solution to the others, focusing on the new parts. Sometimes it is appropriate for the group to choose a spokesperson and sometimes it is better to require that each student participate in the discussion.

After the explanation is given, ask the other students to do one or more of the following.

* Ask questions about the solution given
* Comment on the solution, or at least note where more explanation is needed
* Improve on the solution
* (more?)

You can have a couple of teams give their own explanations. If you do this you can also have a vote on which one seems more complete. You can give a prize for the best explanation.

It is also good if you can use a whiteboard or a projector to note the important elements of the solution given and can use this as a framework to fill in as students make comments. You can judge for yourself when the solution is complete enough that it can be implemented and then send them off to build the thing or keep the discussion going until it is more complete. You can make suggestions along the way, of course, to try to bring out missing parts. You can actually give feedback in a subtle fashion by asking the appropriate questions of the speaking team, rather than directly commenting.

This technique works for lots of things, not just Arduino.

---

Meta discussion:

With teens, avoiding embarrassment is an important consideration as they are developing their own self image and don't like to see it bruised in public. Younger and older students can be (not always) more open.

Most classes have a few students who try to answer everything and always put their hand up first. Teams are a way to get each student's contribution into the solution, not just those of the loudest speakers.

Making it a bit competitive can be good or bad, depending on the nature of your students.

Try to build such considerations, when they occur, into your pedagogy.


---

