Author Topic: Teaching an 8yr old to code - Arduino & Notepad ++  (Read 7203 times)

0 Members and 1 Guest are viewing this topic.

Offline apelly

  • Supporter
  • ****
  • Posts: 1061
  • Country: nz
  • Probe
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #25 on: March 14, 2017, 04:46:57 pm »
(Except that one guy at every company that uses Unix vim, I hate that guy)
Gah! Another troll!  ;D

I'm confused.
That is because you think the language is the important but hard thing to learn. That is fundamentally wrong.

The difficulty is learning structured problem solving. This skill transfers readily from language to language.

I would keep the language as simple as possible for a while. Many, many problems can be solved without complex data structures, pointers or classes.

But, to answer your question: Just use the shitty Arduino "IDE." It's quite adequate for pasting code snippets from the web and experimenting. And it JustWorkstm.

If the dude turns out to have an interest I'd be inclined to send him to eclipse. It's a monster, but there are configs available for most everything. That means that after you've spent an age climbing the IDE learning cliff, when you switch from C++ to Java, to JavaScript, to HTML, to PHP or whatever, you can worry about the language and not the IDE.

I'm not saying eclipse is perfect. I'm saying it's consistent, and there's value in that.
 

Offline Rick Law

  • Super Contributor
  • ***
  • Posts: 3439
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #26 on: March 14, 2017, 05:26:56 pm »
C programming is a bit esoteric for an 8yo isn't it? When I taught my kids, I noticed they could follow the examples for the C code just fine, and they could repurpose it in blocks to suit their needs.

I found that a BASIC Stamp was much better for them, can you still get those?  The linear syntax works well, and they were able to improvise better without having to worry so much about memory and strict types.  Around 12yo they took to C a lot better with the PBASIC background.

You can drive any SNAP circuit gizmo with one of those, something to look in to.

All that said, no respected programmer uses notepad++ as an IDE.  Something like VS or Eclipse will give you a bunch of nifty features like code complete and syntax highlighting, and is what we use day to day in the profession.  (Except that one guy at every company that uses Unix vim, I hate that guy)

I'm confused.  You said that your kids could follow C and re-purpose it when you started teaching them?  This is mostly what I am looking to accomplish since he is only 8 after all.  I just can't understand the benefit in teaching him BASIC syntax/language and then in a couple years have to explain that all that BASIC stuff was so yesterday?  I think the only difference in teaching him BASIC or C is the pace at which I can teach it.  Sure, could move through BASIC a lot faster, but at the cost of it being an outdated language that he'll likely never use again.

StormJunkie, hope you are not in 16" of snow.

Anyhow, I think most important to let the kid learn a language, any language.  BASIC, FORTH, PL1, FORTRAN...  Doesn't even matter.  Any of the language will help the kid make mental connection between how one instructs the computer, and how the computer behaves.  If an MCU is involved, than you can extend that one extra step and help the kid mentally connect between how the computer can interact with the physical world.

Once a kid knows a language, transferring that skills into another language is easy.

DOS (any console text) basic is so easy to get started - but, there is no way you can keep a kid interested.  It is boring, virtual, seem totally disconnected from day-to-day life.  So what if you can write a dozen line program to find prime numbers.  Kids don't care about prime numbers.  Even if it is say GUI/JAVA/Whatever and have it show a clock ticking, kids don't care about what time it is.  You need a "hook" and "glue".  Hook the kid into trying programming, and a glue to keep the kid interested.

Programming is a great tool to learn problem solving skills, but it has to be a problem that the kid is interested in solving...
 

Offline Cupcakus

  • Contributor
  • Posts: 42
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #27 on: March 14, 2017, 06:28:21 pm »
I'm confused.  You said that your kids could follow C and re-purpose it when you started teaching them?  This is mostly what I am looking to accomplish since he is only 8 after all.

What I'm saying is, it was easy for them to copy digitalWrites() around and associate that with turning on and off an LED, but to really teach them programming they needed to be able to meaningfully debug their work.  That wasn't possible without actually teaching them C, which I found was over their heads at the time.  Everyone is different, but I had great success with this approach and my kids.
 

Offline timb

  • Super Contributor
  • ***
  • Posts: 2536
  • Country: us
  • Pretentiously Posting Polysyllabic Prose
    • timb.us
Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #28 on: March 14, 2017, 08:48:06 pm »
Yes, programming is about a fundamental, structured approach to problem solving. The language doesn't really matter, it's all about the concepts. (Variables, functions, statements, strings, etc.)

Personally, if it were me, I'd get a Raspberry Pi and start them out with Scratch. It's literally designed for teaching 8 year olds programming. It does so in a visual, hands on way, which is how kids that age learn.

I started out programming at 9 in BASIC on a C64 (then shortly thereafter Qbasic on a PC). That led me to building robots when I was 13 using a Basic Stamp. I finally graduated to C when I was 14 or 15. Honestly, I would have been completely out of my depths in C if I hadn't known BASIC. Why? All the same concepts carried over, the syntax was just different.

Keep in mind I didn't have anyone teaching me, I clawed my way through it like a good autodidact should. Ultimately, figuring things out for myself made me an expert problem solver and while I'm not a master coder by any stretch, I can read and modify code in pretty much any programming language and write decent code in a few core languages. (But this only holds because I *wanted* to learn programming.)

I guess my point is this: Procedural programming is procedural programming. Start him out with something simple like Scratch, otherwise it's going to go way over his head and he'll get bored or frustrated with it. You have to make it fun and keep it simple!

When you taught your boy how to swim, you didn't just jump in the deep end and make him watch you doggy paddle, right? No, you put the water wings on him, took him into the shallow end and taught him to tread water.

C is the deep end of the pool. Scratch (or BASIC) is the shallow end.
« Last Edit: March 14, 2017, 08:55:00 pm by timb »
Any sufficiently advanced technology is indistinguishable from magic; e.g., Cheez Whiz, Hot Dogs and RF.
 

Offline apelly

  • Supporter
  • ****
  • Posts: 1061
  • Country: nz
  • Probe
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #29 on: March 14, 2017, 09:08:41 pm »
While I think of it: Touch typing. On a real 101 key keyboard. I haven't had the patience to teach myself but, man, what a useful skill!. I wish typing wasn't for girls when I was at school.

I'm also going to say this, even though you didn't ask: vi has its haters, but having learned how to use it in my youth, the skill has earned its keep many, many (,many, ...) times over. Don't muck about with anything windows specific. There's no point. They're all arrow keys and ctrl-s. literally zero seconds to operate and typically not much longer to master. If you can use vi you can edit anything anywhere. Use it well and you practically don't even need an IDE. BUT that's a separate issue from programming. I found it kind of fun after a few weeks, learning new tricks all the time, but you don't want to be fighting your editor when you're troubleshooting your first programs.
 

Offline Cupcakus

  • Contributor
  • Posts: 42
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #30 on: March 14, 2017, 09:55:30 pm »
Personally, if it were me, I'd get a Raspberry Pi and start them out with Scratch. It's literally designed for teaching 8 year olds programming. It does so in a visual, hands on way, which is how kids that age learn.

I didn't realize Scratch was available on the Pi, if you can control the PWM and GPIO from within Scratch that might be better.
 

Offline m12lrpv

  • Regular Contributor
  • *
  • Posts: 175
  • Country: au
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #31 on: March 14, 2017, 10:28:50 pm »
I introduced my 8yo to arduino 18 months ago and while they think it's interesting and can pick up the basics of turning pins on and off yet the concepts around looping and flow control an overwhelm them. The novelty wears off rapidly. They're also busy learning other things at the same time at school like maths so they're prone to overload.

On a side note there was a comment in the thread about moving away from text editors and onto tablets and voice control. I though it funny because 15 years ago application gui's were developed visually with drag and drop tools and now they're mainly developed in text editors.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 4028
  • Country: nz
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #32 on: March 15, 2017, 02:28:31 am »
On a side note there was a comment in the thread about moving away from text editors and onto tablets and voice control. I though it funny because 15 years ago application gui's were developed visually with drag and drop tools and now they're mainly developed in text editors.

NeXTStep/OSX/iOS UIs always have been and still are developed mostly in "Interface Builder" (which is now a panel in XCode).

I've heard one or two people use iOS apps and even think they're quite well done, in general.
 

Offline m12lrpv

  • Regular Contributor
  • *
  • Posts: 175
  • Country: au
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #33 on: March 15, 2017, 02:59:01 am »
NeXTStep/OSX/iOS UIs always have been and still are developed mostly in "Interface Builder" (which is now a panel in XCode).

I've heard one or two people use iOS apps and even think they're quite well done, in general.
I've heard one or two people use iOS too.

Mainly though for enterprise stuff nowadays it's all cloud/web browser based interfaces and a mountain of java script.
 

Offline ehughes

  • Frequent Contributor
  • **
  • Posts: 409
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #34 on: March 15, 2017, 03:02:12 am »
Dude,   kill the motor.  He is 8.   Don't depress him with anything complicated.   


Programmers (and parents) make the worst teachers.    It is easy to make the lesson about your needs and not his.

Allow him to get a dopamine hit from something simple.

 

Offline asgard20032

  • Regular Contributor
  • *
  • Posts: 184
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #35 on: March 15, 2017, 03:36:07 am »
People, calm down. Although that kid is 8, you have to understand there are different type of kid. Many would like a simple setup, but some (like me when i was 8 year old) want to know the black arcane magic, the inner working, and when something look too much simplistic, we want to go deeper. Very high level of curiosity and an obsession to understand and control everything that happen. And I am sure I was not the only one like this. We don't know that kid, maybe he is one of that few percentage of kid that really want to go deep, or just a kid that want to discover a new hobby and taking it relax.

When I was young, I was obsessed with processor, machine-language, assembly, operating system...
 

Offline StormJunkieTopic starter

  • Newbie
  • Posts: 9
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #36 on: March 15, 2017, 08:32:32 am »
Quote from: asgard20032 on Today at 02:36:07 PM
People, calm down. Although that kid is 8, you have to understand there are different type of kid. Many would like a simple setup, but some (like me when i was 8 year old) want to know the black arcane magic, the inner working, and when something look too much simplistic, we want to go deeper. Very high level of curiosity and an obsession to understand and control everything that happen. And I am sure I was not the only one like this. We don't know that kid, maybe he is one of that few percentage of kid that really want to go deep, or just a kid that want to discover a new hobby and taking it relax.

When I was young, I was obsessed with processor, machine-language, assembly, operating system...

Thanks all, I greatly appreciate all of the insight and various opinions on this topic.  I concur with asgard that this question was loaded from the get go.  All kids are not the same and therefore, what they are capable of learning and how they are capable of learning it varies with every child.  At the same time, I also know that every parent is different as well.  Personally, I think there are many cases where we tend to hinder a child's learning with the mindset of "they are only 8".  Kids are capable of learning and retaining massive amounts of information.  For example, my son can likely rattle off the names of over 200 Pokemon and what some of their stats are.  The key is in finding a way to keep them interested AND not overwhelming them in a short period.  I have been using this video set to introduce him to Arduino and C++.    Very basic introduction, and just enough humor thrown in to keep him interested.  On top of that, he'll watch one video a day, but may watch the same video for 3 days straight before moving on.  I don't think working through 3-4 videos a day would be nearly as beneficial to him.  It also helps that we have an Oscope.  Explaining what the electrical signal is doing when he blinks or fades an led is one thing.  Being able to show him what that signal looks like really makes it easier to understand.

 

Offline Gibson486

  • Frequent Contributor
  • **
  • Posts: 324
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #37 on: March 15, 2017, 02:45:09 pm »
Just use the IDE or maybe even some controller that has a BASIC front end. The important thing is that he can understand how to solve an issue with code.  If you have him go out of your way to do C/C++, and he gets to pointers or some other weird concept, good luck. He is going to get lost in a concept when in reality he is losing grasp of the bigger picture. If he wants to go further, he can on his own. No need to push it on him.

 

Offline JoeO

  • Frequent Contributor
  • **
  • Posts: 527
  • Country: us
  • I admit to being deplorable
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #38 on: March 15, 2017, 04:47:06 pm »
Dude,   kill the motor.  He is 8.   Don't depress him with anything complicated.   


Programmers (and parents) make the worst teachers.    It is easy to make the lesson about your needs and not his.

Allow him to get a dopamine hit from something simple.

When trying to make a point, don't start off with the word "Dude".
I taught my son how to program when he was 6 years old.
Most successful people start off by learning their skill as a child, not waiting until they go to college.
Just because your parents were poor educators does not mean all parents are poor educators.
Where do you want him to get a "dopamine" hit from, playing video games?
The day Al Gore was born there were 7,000 polar bears on Earth.
Today, only 26,000 remain.
 

Offline ehughes

  • Frequent Contributor
  • **
  • Posts: 409
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #39 on: March 15, 2017, 08:01:13 pm »
Quote
When trying to make a point, don't start off with the word "Dude".
I taught my son how to program when he was 6 years old.
Most successful people start off by learning their skill as a child, not waiting until they go to college.
Just because your parents were poor educators does not mean all parents are poor educators.
Where do you want him to get a "dopamine" hit from, playing video games?

Actually yes.    Playing copious amounts of Nintendo led to an interest in the 6502 (which led to the rest of the career).    Being forced to look at 6502 opcodes from the start would have killed it.  Now that was just me but having the constraints of a simple  Apple IIe basic interpreter was a good thing to get started.   The ASM and complicated details followed later after the playground was not longer suitable.

There are children who have built entire microprocessors in Minecraft.     Not because their parents forced them to do it and it certainly wasn't writing a Verilog module using vi on an obscure Unix variant.   

Forcing a child into a quagmire of details at a young age is feeding the ego of the parent.    Make it simple and fun.    They will take it from there if there is interest.   If the Arduino IDE is simple, and gets them to play around, there is no need to come up with a anything more complicated.    A gifted child will take the driver's seat when they have completely consumed the capabilities of what they have in from of them.

I am sure your 6 year old was ready to write Linux Kernel modules from your superb instruction but chances are he/she would be well outside the bell curve.   While their are truly gifted individuals,  most are not.  This is the central limit theorem on display.  The experiment of force feeding education to children at a ridiculous rate  has already been performed.   It is called Japan and all of the adults jump out of buildings when they fail.


That all being said,    sparking interests at a young age is a very good thing.    Parents however are biased observers and often fail as they only see their child as a special snowflake.    Every parent says their child is "different from the rest".









 

Offline dimkasta

  • Regular Contributor
  • *
  • Posts: 185
  • Country: gr
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #40 on: March 15, 2017, 08:36:33 pm »
I would remove as many obstacles from the equation as possible.

Moving to a different editor/compiler adds complexity both in maintaining the environment and in allowing him to find solutions on his own (a skill far more important that will help him in every aspect of his life)

Judging from how I started, it was because I wanted to build something cool. Robots and video games were my thing. Building a BEAM photovore blew my mind back in the 90s. The same when I built and hosted my first web site.

I would find a way to teach him through cool projects. Something that you can possibly work on together. Plain tutorials might seem like work. A feeling that he probably gets from school a lot already.
 

Offline timb

  • Super Contributor
  • ***
  • Posts: 2536
  • Country: us
  • Pretentiously Posting Polysyllabic Prose
    • timb.us
Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #41 on: March 15, 2017, 08:50:28 pm »
Quote
When trying to make a point, don't start off with the word "Dude".
I taught my son how to program when he was 6 years old.
Most successful people start off by learning their skill as a child, not waiting until they go to college.
Just because your parents were poor educators does not mean all parents are poor educators.
Where do you want him to get a "dopamine" hit from, playing video games?

Actually yes.    Playing copious amounts of Nintendo led to an interest in the 6502 (which led to the rest of the career).    Being forced to look at 6502 opcodes from the start would have killed it.  Now that was just me but having the constraints of a simple  Apple IIe basic interpreter was a good thing to get started.   The ASM and complicated details followed later after the playground was not longer suitable.

There are children who have built entire microprocessors in Minecraft.     Not because their parents forced them to do it and it certainly wasn't writing a Verilog module using vi on an obscure Unix variant.   

Forcing a child into a quagmire of details at a young age is feeding the ego of the parent.    Make it simple and fun.    They will take it from there if there is interest.   If the Arduino IDE is simple, and gets them to play around, there is no need to come up with a anything more complicated.    A gifted child will take the driver's seat when they have completely consumed the capabilities of what they have in from of them.

I am sure your 6 year old was ready to write Linux Kernel modules from your superb instruction but chances are he/she would be well outside the bell curve.   While their are truly gifted individuals,  most are not.  This is the central limit theorem on display.  The experiment of force feeding education to children at a ridiculous rate  has already been performed.   It is called Japan and all of the adults jump out of buildings when they fail.


That all being said,    sparking interests at a young age is a very good thing.    Parents however are biased observers and often fail as they only see their child as a special snowflake.    Every parent says their child is "different from the rest".


I agree with this. If a kid becomes interested, they will generally want to learn. My love for electronics started when I was 7 or 8, when my dad picked up a 300-in-1 Electronics kit for me at a thrift store. LEGO Technics and Capsula started my interest in mechanical things; computers and programming came into the picture when I was 9, when we got our first PC. Ultimately it all combined into robotics when I got into my teens.

Basically, it's a life long process. I'd say start them early, but let them discover it for themselves, don't push them into it.

For an 8 year old, I'd start them out with a Raspberry Pi and Scratch (using a RPi you can control GPIOs to blink LEDs and run motors) *or* something like LEGO Mindstorms. Then perhaps move them into Arduino once they've got the basics down.
Any sufficiently advanced technology is indistinguishable from magic; e.g., Cheez Whiz, Hot Dogs and RF.
 

Offline ehughes

  • Frequent Contributor
  • **
  • Posts: 409
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #42 on: March 15, 2017, 09:25:03 pm »
Quote
When trying to make a point, don't start off with the word "Dude".

You clearly have never seen Finding Nemo:

http://www.cornel1801.com/disney/Finding-Nemo-2003/film10.html

CRUSH: Whoa. Kill the motor, dude. Let us see what Squirt does flying solo

You are "Marlin" and need to become more like "Dude Crush"


 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf