Maybe I have bitten off more then I can chew.

My wife and I belong to a home schooling group. Last year there was a push to do the legos mindstrom robotics challenge. I bought the very expensive kit only to find that I had to teach my son to use that crappy picture programming environment that legos provided. I used to have my own business writing IVR systems before the web hit. My experience is mostly in C and assembler along with some VB to build user interfaces with. When I saw the picture programing crap legos makes one use I didn't want to pollute my sons mind with it. So we didn't do much. I did try to teach him and some of his friends pseudo code. To help in designing programs. I have a degree in Comp Sci that I got in my forties after I stopped doing IVR systems but I have no EE.

A lot of people in the homeschooling group pushed me to teach a class on "computers." They have no idea what that means but they know their children will need it. The kids are mostly around 12 years old. I want to give them a good foundation is what are logic circuits, what are analog circuits, how to do procedural as well as event driven code. Plus I want to make some cool stuff with arduino. I am somewhat disabled from cancer but I can do a lot of things I just have pain a lot and it's hard to stand for long periods and hard to walk. This puts a damper on a lot of things. I live in Montana and one of the reasons I moved here was for the skiing but now I can't ski ( I can't tell you how POd I am about that.) So now what do I do with the Kids.

The first book I bought is "Getting Started with Arduino" by Massimo Manzi. I also found a lot of stuff online, especially on youtube, that give good examples. One of my goals in the class is to get the kids to learn the math involved. That is a major aspect of my goals. When a person is young they do mostly very boring work sheets in math class. I want to show them that it actually has uses in the real world. I thought doing arduino would be a good place to do that.

So now what do you all think on how I should structure the class?

A lot of homeschooling groups homeschool be cause they want to protect their kids from un ideas. We aren't like that. we homeschool because we want the best education our kids can get. My daughter took the PSAT when she was almost 15. She was three points below a perfect score. Most kids don't take that test until they are 18. She now goes to the local university because she was allowed to skip high school. She wants to be an engineer and she is getting straight As. Please don't think we crack the whip over her. She did most of her work in the car as we drove her to her horseback riding lessons. Or her Gymnastic lessons or the dozen other lessons she takes. She plays the piano and did a state wide piano competition. She really wanted to win. When she came in the door after the competition I could see in her face she was pissed. I asked her how she did. She spat out "I got second." I asked her "do you know the difference between first and second?" She said "WHAT!" I said "Practice." She then started to increase her practice time by fifteen minutes every week until she had doubled her practice time. She did that on her own. But later she got more interested in gymnastics and didn't do piano comps any more ( but our neighbors stand in their driveway to listen to her practice.) But now she is always medaling when she competes. That's what home schooling does for your kids. But believe me we, her patents, put a ton of effort and money to support her. Kids always need to know that their parents love and support them.

So enough of a side track. What do you all suggest in books to help, web sites to help and any other ideas you might have to help a bunch of 12 year old boys become eecs majors. I think I should add that I use the MIT open course work program a lot. MIT decided they weren't in the education business they are in the degree granting business. So they give the education away free. If you like to learn, as I do, it's a very great resource.

Computers run on electricity. If you plan to do something with Arduino, teaching them voltage, resistance and current is important for them to move forward on their own. Also, it's good to be taught about the dangers of it... so they don't attempt anything that may endanger them.

Logics is ok, although analog might be tough if you don't give them good bases in electricity and basic electronic components. I guess a must is at least to connect a transistor to spin a motor or turn on a relay.

It's not easy... but you have quite a flexible task without any limitations on what you need to teach. So like with everything else, be sure to teach the basics so they can fully understand them and take it from there.

I'm going to recommend what I always recommend for electronics beginners:

Grob's "Basic Electronics" - Grob's Basic Electronics Information Center:
Forrest M. Mims III's "Engineer's Mini-Notebooks" - http://www.forrestmims.org/

The first is basically an EE101 college/university level textbook. As you know, college level textbooks aren't cheap, and Grob's is no exception. However, you don't necessarily need the "latest and greatest" most recent edition. In your case, I would try to get one copy of the latest edition (because it has a CD-ROM or something with a lot of info on it - heck, there may be a PDF of the book on it, for all I know), then pick up a few copies of an older used edition. This book is well worth it; it starts out with "What is an electron" and moves on from there. Its formatting is clear, its well written, and there are end-of-chapter quizes/tests - just like a good textbook should have. If you can afford it/find it - you might want to get the educator's edition/version as well.

The "Engineer's Mini-Notebooks" are a series of small books (well, they used to be, when they were published by Radio Shack back in the 1980s - the current editions are are now found in larger books - research Mim's site, Amazon, etc) geared toward a variety of various electronic topics. One book is on nothing but schematics and symbols and how to read them. Another has stuff about logic circuits. There's one on sensors, and another on communications and RF (ie, how to build a radio, how to communicate over a light-beam, that kind of thing). There's one that dedicated to the 555 timer. The series is a great addition to anything else you find for the Arduino, as well as Grob's. He has also published a larger regular "book" of circuits, some are from the Mini-Notebooks, others are new for the book (I can't remember the exact name of the book right now) - try to find a copy of that as well (it was published earlier this decade).

Another good reference for general electronics (though it is UK/EU specific in their symbol notations - which is different from what you generally see here in the US - so be aware of this, and you might as well teach it alongside anyhow):

Electronics Club - http://www.kpsec.freeuk.com/

For the Arduino specifically - there are a number of free books out there; one of the best I have found was done by Earthshine Electronics in the UK (it is a companion to an Arduino learning-kit they sell):

earthshineelectronics.com - This website is for sale! - earthshineelectronics Resources and Information. (the kit)
Loading... (the book)
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1247637768 (the thread that started it all?)

There's also this book (but you have to pay for it):

Finally - one last "resource" (consider this a "fun time" resource, that will teach the basics behind logic circuits, as well as problem and puzzle solving):

Back in the day, when home computing was young, the company (which is still in business last I looked!) called "The Learning Company" published a series of computer-based logic-puzzle games. One of the most cherished of this series was called "Robot Odyssey":

I won't give away too many details (just read the above article for more) - but I have to say that as a kid, on my TRS-80 Color Computer 2, it helped me to understand logic circuits (and logic puzzles) in a very complete and challenging (not to mention fun!) manner. While you might find it difficult to find a copy of the original today (though to be sure, they do exist out there as "abandonware" - if you have the hardware, or at least an emulator - there's nothing like running it as it originally was designed!) - it does exist in a "renewed" fashion:

http://www.droidquest.com/

...I guess it helped and inspired more than one of us out there...

:slight_smile:

I hope this helps!

joseph_m:
A lot of people in the homeschooling group pushed me to teach a class on "computers." They have no idea what that means but they know their children will need it. The kids are mostly around 12 years old. I want to give them a good foundation is what are logic circuits, what are analog circuits, how to do procedural as well as event driven code.

First you should think about, what kind of goal has your computer course. What should the kids learn? How to use a computer in daily life, from writing, processing digital images, safe surfing to backing up one's data? How computers work and what's behind that network stuff? Making web pages? A little programming and scripting? A little computer science? Electronics? Electrical Engineering? Quantum physics and other fun with electrons in semiconductors and electromagnetic fields?

With so many topics to choose from, it's very easy to either get lost or just skimming too many topics lightly so that the kids will be left confused and nothing learned.

Make a plan where the Arduino fits in and what kind of knowledge the children will have acquired before the Arduino module starts. Will they know about current and Ohm's law? Will the know about variables and loops? Will the have an idea what an algorithm is? In my opinion this will be the driving factor on what you can do with them using the Arduino.

joseph_m:
One of my goals in the class is to get the kids to learn the math involved. That is a major aspect of my goals. When a person is young they do mostly very boring work sheets in math class. I want to show them that it actually has uses in the real world. I thought doing arduino would be a good place to do that.

I doubt it. At that age the children should be beyond simple sums, multiplication and fractions, but that's most of the maths involved with the Arduino. You can teach many things with the Arduino, but maths ain't one.

joseph_m:
The first book I bought is "Getting Started with Arduino" by Massimo Manzi. I also found a lot of stuff online, especially on youtube, that give good examples.

The book is good, one of the better ones. But as you wrote, there are lot of good and even more crappy resources on the web for this whole topic. The difficult part choosing the right ones that fit into your curriculum. And here's a shameless plug for another educational project I'm quite fond of: Computer Science unplugged

Perhaps that helped.

Korman

I bought the very expensive kit only to find that I had to teach my son to use that crappy picture programming environment that legos provided

Google NQC

Thank you all for your input. I was going to start with Ohm's law, Kirchhoff's laws, and do some algebra. Only a couple of the kids have gotten there so I think just having only one variable to find would be a good intro to algebra for them. I am putting together the complete class as work sheets. This way I will have a framework to come back to when you go off on tangents. Also thank you for all the links I will check them all out. It's interesting for me because when I studied electronics we used tubes, I guess that shows how old I am. I clearly remember making a 5 tube radio. It worked very well. I was part of the group that built an AM radio station. We had an old Army surplus transmitter. Two quarter turn queuing turntables and a reel to reel. Boy we were hot.

I did checkout NQC - Not Quite C but it's not allowed in the leggo nxt challenge. You can't even use HITECHNIC sensors. They really try hard to push their own products no matter how crappy they are. And if you have kids and are contemplating going to leggo land don't waste your time. It's not worth the gas to get there. The only thing I thought was worth anything was the tent selling small leggo toys at a discount. I bought a bunch for the families of the poor that stop by the church. It gives the kids something to play with. Most of the time the people that come to the church for food just walk away with a bag of groceries. So I wanted to make sure there where some toys in the bag as well.

Well thank you all for your help
Joseph

Just my two cents here: when I was around 12 I was in a BASIC club using HKC 8800 machines (possibly apple II clones). I made a program that draws lines and circles and produces da-da-da sound (a function call). I then drew a helicopter with it and the sound and drew some background mountains (a few lines as mountain tops) and made the helicopter rescue a person (person slowly ascending a rope). That was the most popular code in the club, copied on many tapes and played many times on those machines. So many years passed I don't remember what we were taught by the club director, our school computer programming teacher, but I still remember that program. So if I try to teach 12 year old I will try to teach programming by examples, not starting from data types and logic operations. Their little brains are not up for logic yet. I learned my programming and computer science all by myself, mostly reading books but I could remember not being able to understand certain concepts until certain grades/ages. Human brains don't grow mature one night.

This following is newly brewed in my head so don't laugh if you think it's funny or silly: I would try, if I had a chance, to teach programming like what English profs. teach English 101, a lot of readings of nicely written (no tricks just nicely written) codes that do something. You didn't learn your English from ground up (grammar first), you did it by reading lots of classic pieces and learned from others about how to write a nice paragraph and on to articles. If you learn a computer language, you should start from reading good codes and enough reading and you can start dicing codes and mimicking with the help of teachers, teaching some basics so now all those things start to make sense, like what there is always a "int a=0;". That means a variable a is defined and it is given value of 0. I'm sure if I just said that to a bunch of 12yr old they'll look at me with strange facial expressions.

Oh, DO make them type entire programs to the IDE over and over. You can't learn syntax with ctrl+C and ctrl+V.

Other things I remember fondly from childhood would be typing in codes from 4 books of BASIC programs (fun and useful codes), trying to correct mistakes (some very obvious) with my brother. Oh, those apple games we played:)

liudr:
Just my two cents here: when I was around 12 I was in a BASIC club using HKC 8800 machines (possibly apple II clones). I made a program that draws lines and circles and produces da-da-da sound (a function call). I then drew a helicopter with it and the sound and drew some background mountains (a few lines as mountain tops) and made the helicopter rescue a person (person slowly ascending a rope). That was the most popular code in the club, copied on many tapes and played many times on those machines. So many years passed I don't remember what we were taught by the club director, our school computer programming teacher, but I still remember that program. So if I try to teach 12 year old I will try to teach programming by examples, not starting from data types and logic operations. Their little brains are not up for logic yet. I learned my programming and computer science all by myself, mostly reading books but I could remember not being able to understand certain concepts until certain grades/ages. Human brains don't grow mature one night.

This following is newly brewed in my head so don't laugh if you think it's funny or silly: I would try, if I had a chance, to teach programming like what English profs. teach English 101, a lot of readings of nicely written (no tricks just nicely written) codes that do something. You didn't learn your English from ground up (grammar first), you did it by reading lots of classic pieces and learned from others about how to write a nice paragraph and on to articles. If you learn a computer language, you should start from reading good codes and enough reading and you can start dicing codes and mimicking with the help of teachers, teaching some basics so now all those things start to make sense, like what there is always a "int a=0;". That means a variable a is defined and it is given value of 0. I'm sure if I just said that to a bunch of 12yr old they'll look at me with strange facial expressions.

Oh, DO make them type entire programs to the IDE over and over. You can't learn syntax with ctrl+C and ctrl+V.

Other things I remember fondly from childhood would be typing in codes from 4 books of BASIC programs (fun and useful codes), trying to correct mistakes (some very obvious) with my brother. Oh, those apple games we played:)

That is pretty much what I had intended to do. I was going to make a project and have them watch. Then have them see me type in and run the program. Then they copy what I made and wrote. After a month or so of that then I was going to have them do things like change the timing or pins or something simple. I haven't done the projects yet so I can't be specific. But it will be something like change the hello world program to say hello < your name >.

By the way you are lucky. I wrote my first code in my second year of high school. It was in fortran using pencil and paper. I then gave the paper to the person that did the input and they gave me a handful of cards back. I don't remember exactly what it was about but I remember it had something to do with logarithms. No helicopters no da-da-da sounds just boring numbers. I hated it. But hey back then for electronics I made a five tube radio. Have you even seen a tube in something?? The only people I know that still use tubes are audiophiles that have old McIntosh amps. You can heat your house with those things.

Sometimes you have to give it to the communists in my home country. One big brother said in 1984 computer needs to meet the kids and the official tv station started broadcasting BASIC language programming every night and schools started getting Apple computers and teaching BASIC. I was being more than lucky to have lived on a university campus and went to their grade school. After BASIC I also tried FORTRAN but didn't go all the way besides not having a compiler. I did remember learning c was hard in 10-11 grade but in twelve and college I became logical enough to do any c stuff and assembly. So for.you teaching c to 12 year old will be a bit more difficult than BASIC. On the other hand arduino will help keeping the kids interested. You could even spell out a bunch of digital writes on leds to make cylon eyes/knight rider. Later after they learned loops, you rewrite it with for loop.

Oh I have not used tube you mentioned except for crt tv :wink: I do teach electronics with tubes as they are much easier examples of current controlled devices than their semiconductor counterparts. How are you gonna miss one-way conducting?

Offcourse I would take the normal electronic course law of Ohm and so on, but beside that I would take out some of the default arduino learning sketches: http://arduino.cc/en/Tutorial/HomePage
Let them play around (kids like to learn while there playing) make some running lights let them figure out how to increase the speed etc.

Later on you can give them assignment to do something extra with the skeches they downloaden and make them feel how to combine 2 skeches or ad some extra code, always try to give them an extra challange by adding some extra parts and let them fix the code for it.
Even for something simple as the running light you can teach them how to increase or lower the speed with A potmeter, next lesson you can add start stop buttons after that add smoother transicion from one led to another to it.

At the end it will be nice to finish with A pcb that has al these default things so they can swap there AVR to that pcb solder the other parts on it and take it home to show there friend and family what they build.

This will be A lot of work for you but try to get in contact with others who do projects like this, maybe they can help you make pcb's, loan you some soldering stuff and come by sometime to help the kids.
You can't imagine howmany groups of people are working on this kind of "getting kids involved with electronics projects" there are.
Look at ham radio, scouting (world wide jota), hackerspaces etc etc

Here in the Netherlands there is A school very intressested in doing technics, A couple off ham radio operators picked this up and helped the school out on the technical part of it.
The school prepaires the kids to this day an at the day itself they do all kind of thing like:
Radio direction finding
soldering different kind of pcb's (wich they can bring home)
do some ham radio and amateur television
They even had some contact with one of the dutch ISS operators in space.
http://www.doetechniekdag.nl/fotos-en-videos

AWOL:

I bought the very expensive kit only to find that I had to teach my son to use that crappy picture programming environment that legos provided

Google NQC

Or Lejos, if you like Java