Teaching 5th graders - IDE, graphical, possibly robots?

Hello World!

I have my first Arduino boards for two weeks or so now, and as suspected, it is a great platform. I am familiar with programming and building circuits, so the basic Arduino examples and modifying them has been easy and is a blast to far.

I bought several boards and kits as I volunteer at a school, and a lot of students asked me to learn about electronics and robotics. So I am currently trying to put together part kits and an introduction to programming as well as electronics.

One class I work with is 5-6th grade, the other 7-8th grade.
I have found several blog posts and school websites about teaching kids to work with arduino. Some use the IDE, some use s4a, Ardublock, Eduwear/Amici (which I like), Minibloq and others.
I have posted part of this elsewhere, and I hope it is okey to post it again here.
I would really appreciate any feedback from teachers, parents and hobbyists, so that I can plan my course without running out of time or running into typical pit-falls that could occur.

I did find little information on how people tackle teaching programming to a bunch of kids.
In my experience even with the older students, the attention span and abilities vary greatly.

From my previous experience with teaching 3D printing and animation there are basically two types of students:

  • Some are eager but have a difficult time learning, probably expecting to push two buttons and, voila, they have made a walking & talking robot. They will be tired after half an hour of work.
  • Other students seem to love to tinker, grasping the logic concept much easier and they will work on projects for hours, up to the point I have to throw them out of the computer lab :slight_smile:

So right now I am torn.
Graphical programming is easy to grasp, but complex programs can be messy and even more difficult then directly starting in "real" coding. Anyone here that has experience with teaching 6-12 Kids, especially 5th graders?

Also, I just have 8 x 90 minutes with them. I probably would reduce the electronics 101 to one or two breadboard experiments with LED, resistors and so on. Just so they know the very basics.
Also a bit of discussion about robots, sensors, and what they could build.
Perhaps creating ten or so example projects which they can examine.

I had the opportunity to buy the Ardublock kits very cheaply, around $15. They include an UNO compatible, Extension shields, a bucket of plugs/cables, and plug&play modules (4xLED, Ultrasonic, joystick, switch, LDR, Poti, Piezo, Mic, thermometer, servo). All in a neat box so they can store their projects for the next lesson.

I also ordered six $10 Robot chassis with two motors, encoder discs an battery case, plus H-Bridge modules, fork opto barriers, DC Boosters, TCRT5000 IR distance sensors, IR-Receiver-Modules, Nunchucks and breakout boards, NRF24l01 transcievers, Pan/Tilt mounts and more servos, Nokia LCDs, breadboards, resistors, transistors, capacitors, thousands/hundreds of 3mm, 5050 and ws2812 LEDs. Enough to make the whole school look like a christmas tree :wink:

The school has been supportive but can't help much, so I bought it pretty much from my own sparse savings. I would rather have good resources then just making a few LED blink.

For starters I thought about making a traffic light blink, then quickly moving on to the 2 wheel drive robot chassis. It was easier to build then I thought, and basically, in pseudo-

If distance sensor value < somevalue
stop motor 2
delay 2 seconds
start motor again

will create a robot that avoids obstacles, or would work for very basic wiggling line followers as well.
I think the 5th graders would be able grasp that.

Anyone teaching kids; Do you use handouts, pre-made sketches they can modify, or do you let them learn it bit by bit, until they are able to develop the program themselves?

Thank you in advance for any feedback.
I would love to here
-thoughts,
-advice,
-links to resources
-or cool projects ideas.

I also apologize for the length of this post and my mediocre english skills, I am trying to improve it.

Check this out:

http://arduino-info.wikispaces.com/YourDuinoEngStarter

It includes a souped-up Arduino-compatible board that can sink higher currents (less chance of accidents) and has a host components for many projects. He says he has educational discounts, too. (I have no financial interest in this board.)

It includes a souped-up Arduino-compatible board that can sink higher currents

Let me correct this just a bit. The board "RoboRED" HERE: uses the same Atmel 328 as the Arduino UNO and the I/O pins can sink the same (40 mA Maximum, 20 mA recommended) current.

However the onboard 5V regulator is much different: it is a switchmode power supply and with external power like 12 volts the board can supply 2 Amps at 5 volts (compared to about .5 Amps by the UNO). This allows the user to directly plug several Servo motors directly into the 3-pin connectors on the board, or operate up to 16 relays on Relay driver boards, or supply many other devices that need 5 volts.

DISCLAIMER: Mentioned stuff from my own shop...

Anyone teaching kids; Do you use handouts, pre-made sketches they can modify, or do you let them learn it bit by bit, until they are able to develop the program themselves?

There is quite a lot of how-to on the ArduinoInfo.Info WIKI HERE:

5th graders are a challenge, especially if you have 10+ of them at once, and wires to connect. And as you point out, humans (including 5th graders) vary widely. I appreciate how difficult it is for teachers to deal with this.

I have used the older Lego Mindstorms with kids that age.. possible but still difficult. My wife and I have done workshops with motivated high school seniors.. different thing! And I used to occasionally teach IBM engineers who were being paid to go to class and were motivated. Easy!

Ardublock is probably the most available thing today for drag-drop programming. Where did you get Ardublock kits at $15?? The ones I see are $50 or more...

@Terry: My bad...I meant the board, not individual pins.

Hello Econjack,
thank you for the link! I have been reading up on Arduinoinfo when I got started but forget about that :slight_smile: I will use the tutorial as reference when creating my worksheets;
A more "rigid" Arduino would indeed be neat, let's see how quickly they fry the regular ones :wink: I also saw the Ruggeduino the other day.

Hello Terry,
thank you for all the insight!
The school did consider Lego Mindstorms at one point AFAIK, but it was too expensive.

When I heard about Ardublock it sounded like an alternative.
Ardublock, Minibloq, Amici (my favorite) and such have great potential but of course are less of a "finished product".
I am not sure if I will use one of those yet or not. Those block systems do get a bit confusing with growing programs.

With 7th grade it will be a no-brainer: IDE it is.
I myself started around 4th grade with Basic, and if I can do it, anyone may can. But as you mentioned it is also a question of motivation, plus the larger the group, the more difficult it gets.

I know 5th graders can be difficult to work with - in more then one way :wink:
So far it worked to break topics down to easier fragments in order to introduce them to younger students.
For example 3D printing: While the older students would learn Sketchup and how to control the 3D printer, and how to assemble a Printer, the younger ones would just watch how it works and use block-based software or Minecraft to make their models. They still enjoyed it very much, and those who where into it, could get deeper into the subject.

Today I brought a USB Mouse to lunch break, and had a student disassemble it. A small crowd formed, and I explained what the different components do. It is amazing how curious kids are at that age, and they are not scared to just take something appart. With older students I had a few cases where some of them where actually afraid to turn on the computer, worried they would do something wrong.
So in a way it is ideal to get them into electronics early.

Back to Arduino, I was hoping the Ardublock kit would be easy enough. They will have to hook up the UltraSonic module to the Sensor Shield, connect the H Bridge and power... done.
Then I would prepare Sketches such as avoiding, following and simply drive a predefined pattern.
Nothing scientifically noteworthy to have impact on robotics, just easy to understand and modify :wink:
The students that grasp the concept can experiment, the others can just try different pre-made sketches.

( Of course I would give an intro to Arduino before that anyway, not confront them with a sketch right away. )

While doing my research I found the Ardublock-Kits on eBay and Aliexpress. Usually they sell for $33 and up, but on Aliexpress I found the kit for $15, sometimes $11-12 on sale. Hard to resist!
The box alone would cost more here.
This way I can afford a few kits without having to rely on the school and still be able to build all kind of things with them.
The cheap version of the kit does not include the laser, there seem to be a few different packages. It does have the modules mentioned in my original post, but it is still cheaper then sourcing the modules at Aliexpress in quantities from 10-20 pieces.
The more expensive kits seem to sometimes contain a laser module and an IR distance sensor, but getting kids to responsibly work with lasers is annoying, and the tcrt5000 costs a few cents or 28 cents as module at Aliexpress.

terryking228:
However the onboard 5V regulator is much different: it is a switchmode power supply and with external

power like 12 volts the board can supply 2 Amps at 5 volts (compared to about .5 Amps by the UNO).

Is that a buck converter you use?

Maximum recommended draw through an UNO or MEGA is 200 mA.

This allows the user to directly plug several Servo motors directly into the 3-pin connectors on the board, or operate up to 16 relays on Relay driver boards, or supply many other devices that need 5 volts.

DISCLAIMER: Mentioned stuff from my own shop...

Rugged Circuits make the Ruggeduino that can take 12V inputs. That's more the error-resistant.
The Teensy 3.1 can take 5V inputs even though it's a 3.3V chip.

Give any of them some -V and it's probably over but for the smoke, if that. Gotta care for circuits.

If distance sensor value < somevalue
stop motor 2
delay 2 seconds
start motor again

In the real world different things happen at times when they do.
Your robot can move and sense essentially at the same time without halting.

You can make a led stay lit by using delay. Suppose you have a button to push when the led lights?
Without using an interrupt, the delay makes it impossible to watch the button. The classic example is trying to blink 2 independent leds which can't be done using delay code.

To understand you first need to really learn Blink Without Delay from the Examples loaded in your IDE or for a very good guide to the subject, check out the 1st link at the bottom of my post.
Learn this step to free yourself of delay(). Read Nick's blog and he even names why.

And to complete Real World for beginners, get into finite state machines --- your students learning to break tasks down to states will be learning logical thinking to do it. Check link #2 below.

You will see what 16 MHz can mean.

Find out how many of your 5th graders play RTS games and can totally relate to parallel actions.
You need to catch up to their world while you can.

microcontroller -- real world device -- use a real world approach and blink some leds!

Hello sucram,

have you checked http://www.devoxx4kids.org/ ?
There is also an interesting podcast about them on FLOSS Weekly: OSCON Kids Day

get a pack of LED's, 10k resistors, and some buttons. guide them through a dozen odd variations of
the blink sketch, a good one is teaching them to connect up a button for "blink faster" and a button for "blink slower" that changes the delay between state changes in an "if" statement involving the digital inputs connected to the buttons.

I'm 31 years old and i still get hypnotized by blinking LED lights so yea good way to keep attention and safe.

In a perfect world, I'd give every fifth grader an Arduino (or two... for when he/she fries bits), and all the "stuff"... and enough attention to get them started.

In the meantime, if I have Windows PCs available, I'd teach them programming with either Lazarus... a VERY "real" language, and completely and really free. (Also available for Mac and Linux), but a bit "boring", unless skillfully presented... or...

Logo!

"Yesterday's" answer I know. Yawn. But it WAS COOL, and IS cool, even if not a current celebrity.

Also free, in the version available from...

(The "MS" in the name is for Multiple Sclerosis, not for the Evil Empire of Redmond)

Lets kids draw pretty pictures... which they enjoy, but builds an ability to write programs along the way.

(Of course, it isn't terribly difficult to draw pictures in Lazarus, and that, it must be admitted, is a lot closer to the language used in Arduinos, which, hand on heart, I DO want to see kids using, too... but teaching programming separately is a lot more do-able, and takes care of some of the barriers to having fun with Arduinos. And they can "do" the Lazarus or Logo stuff at home, not just in the classroom with the Arduinos. (Of course, sensible parents will buy them Arduinos for home use. But in the meantime...)

(Apologies for going slightly off topic.)

If you're working with kids who have experience in Scratch, but are outgrowing it can I give a plug for my own project:www.sniff.org.uk.

Sniff is basically Scratch as a text based language, so you learn to write programs rather than being limited drag an drop, but as much like Scratch as possible, so that kids don't feel like they've been dropped in a foreign country. It runs on PC/Linux/Mac, but can generate programs to run on Arduino too.

As a way of programming Arduino it works remarkably well. For example the standard blink becomes:

make led digital output 13

when start
.forever
..set led to on
..wait 1 secs
..set led off
..wait 1 to secs

If you've used Scratch then this should look pretty familiar, and you should be able to get your kids up and running quickly.

There are example projects on the website covering lots of great science experiements you can easily do...

Ian

Pls excuse this poor non saxon education system instructed man :wink:

One class I work with is 5-6th grade, the other 7-8th grade.

Wich age correspond to those grades?

Regards

8th grade: About 13 years old. 7th, 6th, etc... the years BEFORE 8th.

I think. Might be a year off.

Right for UK "Year 8", 7,6... in primary schools, which, in primary schools, has replaced the traditional 6th form (oldest) 5th, 4th... Which are sometimes still used in many and strange variations in the private secondary sector, and in some state (taxpayer funded) secondary schools. Alternatively, just keep counting up, year 9, etc.