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

0 Members and 1 Guest are viewing this topic.

Offline StormJunkie

  • Contributor
  • Posts: 9
  • Country: us
Teaching an 8yr old to code - Arduino & Notepad ++
« on: March 11, 2017, 11:17:39 am »
So am I starting to teach my 8yr old the basics of electronics & the basics of coding.  The main teaching tools are Snap Circuits & an Arduino Uno.  Also teaching him to use multimeter, bench power supply, and DSO to analyze circuits.  Anyway, I would really like to move him from the Arduino IDE to Notepad++.  I've found the sourceforge library https://sourceforge.net/projects/narduinoplugin/ and this instruction for mating Notepad++ with the Arduino IDE  http://blarbl.blogspot.com/2016/07/how-to-compile-and-upload-arduino.html.  The main point of wanting to use a different editor is not to get away from the Arduino compiler, at least not at this point (I don't even know much about the compile process at this point as I'm learning the ins and outs of micro-controllers as well), but just to have him working in an environment that will be more universal.  A little background on where my education and skills are...  Acquired my basic electronic skill while getting an avionics degree, but my primary experience is with industrial electronics.  Machining centers, VFD's, PLC's (Siemens, Allen-Bradley, Rexroth, etc).

Some of my questions....

Does creating the scripting make it much easier to use N++?

Will the "Use external editor" in the Arduino IDE suffice with the sourceforge library?

Any major problems with using N++ and the Arduino line?

All advice on this is much appreciated.
 

Offline JoeO

  • Frequent Contributor
  • **
  • Posts: 525
  • Country: us
  • I admit to being deplorable
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #1 on: March 11, 2017, 03:11:12 pm »
Make sure that you get the latest Notepad++.  You don't want the CIA spying on your 8yr old son or your family.  (I am not kidding)

https://notepad-plus-plus.org/news/notepad-7.3.3-fix-cia-hacking-issue.html
The day Al Gore was born there were 7,000 polar bears on Earth.
Today, only 26,000 remain.
 

Online rstofer

  • Super Contributor
  • ***
  • Posts: 7407
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #2 on: March 11, 2017, 03:43:57 pm »
You can download Microsoft Visual Studio Community Edition including everything and then add in a hook for the Arduino:
http://www.visualmicro.com/

Now you have a professional environment capable of uploading sketches.  You still need the Arduino software on the machine to have access to the toolchain.
 

Offline obiwanjacobi

  • Frequent Contributor
  • **
  • Posts: 985
  • Country: nl
  • What's this yippee-yayoh pin you talk about!?
    • Marctronix Blog
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #3 on: March 11, 2017, 04:07:51 pm »
Tell us how he does in VS...

 :popcorn:
Arduino Template Library | Zalt Z80 Computer
Wrong code should not compile!
 

Offline StormJunkie

  • Contributor
  • Posts: 9
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #4 on: March 11, 2017, 04:23:23 pm »
I've looked at Atmel Studio, but not VS yet.  There's so much for him to learn, I wanted a fairly basic text editor.  Y'all don't think VS on top of learning basic electronic theory is too much?  Need to preface that with I don't know enough about Atmel Studio or VS to judge it yet, but I am familiar with N++.  I'm having to relearn a lot of the basic theory myself so I teach him as accurately as possible, so another factor is that I don't want to spend a lot of learning new software when what I really need to be able to explain is how a N channel enhancement mode Mosfet works and how to look at the datasheet and find the critical data.

"Baby steps Sparks"....
 

Offline janoc

  • Super Contributor
  • ***
  • Posts: 3125
  • Country: fr
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #5 on: March 11, 2017, 07:00:03 pm »
I would rather suggest to use PlatformIO http://platformio.org/ instead. It comes with the Atom editor (very comparable or better than Notepad++)  and has the Arduino stuff (but not only Arduino) integrated, along with serial terminal and flashing support. Saves you the hassle having to switch between the editor and command line or the Arduino IDE or having to rely on some unsupported Notepad++ plugin.

Visual Studio is a horrible idea for a beginner. I hope that was a joke.
« Last Edit: March 11, 2017, 07:01:49 pm by janoc »
 

Online rstofer

  • Super Contributor
  • ***
  • Posts: 7407
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #6 on: March 11, 2017, 07:23:42 pm »
What's hard about VS?  File -> New -> Arduino Project -> <name the project> and up comes a new document with setup() and loop() predefined.  Click on the green ball icon to compile and upload the sketch.

Exactly the same process as the Arduino IDE.

There are probably some issues to work through but it shouldn't be all that difficult.

The Arduino IDE is less than optimal but it does get the job done.

 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 1922
  • Country: fr
    • kripton2035 schematics repository
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #7 on: March 11, 2017, 07:49:21 pm »
for simple projects, the arduino IDE is really more than enough.
 
The following users thanked this post: 3db

Offline westfw

  • Super Contributor
  • ***
  • Posts: 3244
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #8 on: March 11, 2017, 08:59:08 pm »
Quote
The main point of wanting to use a different editor is not to get away from the Arduino compiler, ... but just to have him working in an environment that will be more universal
Ok.  I'll step out and say that I think this is a mistake.  The Arduino editor is a fine example of a generic "universal" mouse-and-cursor-key based editor.  Horribly primitive, but ... universal.  (And Notepad++ doesn't run on Mac or Linux, so it's NOT very universal afterall.)  Little of the "community" on the net will be using notepad++ for Arduino stuff, so you'll cut down on the available help.  And you'll create the impression that things are more complicated than they really are (unless your child is already proficient with notepad++...)
I did this with my kids: "yeah, let's not follow the instructions that came with this kit for this part, because there's a better way to do it that I learned ...."  And they got the impression that the instructions weren't useful, and that you had to have all this arcane knowledge to accomplish anything.   So that was a mistake too...
 
The following users thanked this post: 3db, StormJunkie

Offline timb

  • Super Contributor
  • ***
  • Posts: 2528
  • Country: us
  • Pretentiously Posting Polysyllabic Prose
    • timb.us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #9 on: March 11, 2017, 11:47:50 pm »
Quote
The main point of wanting to use a different editor is not to get away from the Arduino compiler, ... but just to have him working in an environment that will be more universal
Ok.  I'll step out and say that I think this is a mistake.  The Arduino editor is a fine example of a generic "universal" mouse-and-cursor-key based editor.  Horribly primitive, but ... universal.  (And Notepad++ doesn't run on Mac or Linux, so it's NOT very universal afterall.)  Little of the "community" on the net will be using notepad++ for Arduino stuff, so you'll cut down on the available help.  And you'll create the impression that things are more complicated than they really are (unless your child is already proficient with notepad++...)
I did this with my kids: "yeah, let's not follow the instructions that came with this kit for this part, because there's a better way to do it that I learned ...."  And they got the impression that the instructions weren't useful, and that you had to have all this arcane knowledge to accomplish anything.   So that was a mistake too...

I concur. The kid is 8! The OP needs to remember this: KISS

The Arduino IDE will do fine.
Any sufficiently advanced technology is indistinguishable from magic; e.g., Cheez Whiz, Hot Dogs and RF.
 
The following users thanked this post: StormJunkie

Offline StormJunkie

  • Contributor
  • Posts: 9
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #10 on: March 12, 2017, 02:02:55 am »


I concur. The kid is 8! The OP needs to remember this: KISS

The Arduino IDE will do fine.

Good points and I tend to agree with both of you.  One of the really big things I liked about N++ and other editors is the auto complete/drop down list option.  Just for the fact that it helps keep the attention span of an 8yr old flowing.  That isn't enough of a reason to add the extra complication of a different editor though.

Thanks all for the input.  I'll likely start toying around with VS when not working with the boy and maybe in 6 months or so we will switch over...After I have a bit of an understanding of VS.
 

Offline janoc

  • Super Contributor
  • ***
  • Posts: 3125
  • Country: fr
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #11 on: March 12, 2017, 12:34:36 pm »
What's hard about VS?  File -> New -> Arduino Project -> <name the project> and up comes a new document with setup() and loop() predefined.  Click on the green ball icon to compile and upload the sketch.

Exactly the same process as the Arduino IDE.

There are probably some issues to work through but it shouldn't be all that difficult.

The Arduino IDE is less than optimal but it does get the job done.



You do realize the kid is 8, right? You know how to  use this, I know how to use it, but someone who has never seen VS is going to be utterly lost in the maze of menus and irrelevant crap that is in it.
Also installing the damn thing takes a few hours if you are unlucky, plus several gigs of download.

I concur with @Timb - if the primitive (and honestly infuriating) editor  is not an issue, then the Arduino IDE is the best choice. All the tutorials are written with it in mind too.

If one wants something better (which I assumed since use of external editor was mentioned) then I would go for that PlatformIO (no need to fiddle with the integration like for Notepad++).

I didn't give Visual Studio even to my university students when they were learning to program in C - it is just an enormous distraction and I wouldn't have been doing anything else than troubleshooting VS issues instead of actually teaching. Basic editor is just fine for that and they were free to "upgrade" to a full IDE later when they actually knew what they were doing in  terms of compilation, linking, finding libraries, etc.

If I have done it in reverse (aka started with a full IDE), they would have learned that if the thing complains about a missing header they have to click here there and there to fix it - and would have been lost because XCode on their laptop or Eclipse later doesn't call the things the same nor are they in the same place. Many (not all) Eclipse "haters" are the product of this approach - all they have ever learned is how to use VS or XCode or whatever and when suddenly faced with another IDE with a different design philosophy they struggle to adapt. Which sucks for an engineer, IMO.
 
The following users thanked this post: 3db, StormJunkie

Online rstofer

  • Super Contributor
  • ***
  • Posts: 7407
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #12 on: March 12, 2017, 05:46:31 pm »
It is true that VS could be overwhelming if an 8 year old was left to himself.  Clearly, it would be installed by others because no kid has enough patience to install VS.  The thing is ginormous!

But, in actual use, compiling and uploading code, I don't see much of a difference.  I also don't see much of a gain for having done it.  The Arduino IDE is the 'standard' and without some justification, I don't see the benefit of changing.

I would also expect any of the projects to be supervised.  I just can't imagine turning an 8 YO loose with C or C++ and no guidance.  I would consider the programming aspects to be much more complicated than clicking buttons on an IDE.



 
The following users thanked this post: StormJunkie

Offline Rick Law

  • Super Contributor
  • ***
  • Posts: 2869
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #13 on: March 13, 2017, 05:18:30 am »
For an 8 year old kid, any IDE/editor considered universal today would be horribly out of date or in the museum by the time this kid finishes high school.

In my view, learning the "environment" or the IDE is of little value.  It is the analytical skills with programming, the organization, the math, the logic-driven decisions making in program design, program design techniques, and most important, the division of responsibility and the interplay between CPU hardware and the software...  Those are in my view far more important and useful to learn.  Not the IDE.  The importance of IDE choice is to make sure the IDE doesn't get in the way.

The more basic the tool, the more likely it is that it would still be in use.  My guess is, mouse would be history while the qwert keyboards will face extinction shortly after.  Just my guess work that keysets will last a bit longer than the mouse.
 

Offline Nusa

  • Super Contributor
  • ***
  • Posts: 1824
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #14 on: March 13, 2017, 06:31:41 am »
I disagree...you're only talking about 10 years in the future, and looking at the past 10 years, the mainstream IDEs have not changed THAT much. Sure there have been some new offerings, but even then many of the concepts remain the same. People tend to stick with what works, so long as it's working.

As the most obvious example, the VI editor is still relevant today, 40 years after its introduction. It's practically guaranteed to exist by default on any unix/linix derived system in existance (and windows versions are easily found), so it absolutely qualifies as one of the most universal editors in existance.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 1922
  • Country: fr
    • kripton2035 schematics repository
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #15 on: March 13, 2017, 06:55:17 am »
VI exists, yes, but I don't think any system administrator uses it daily, and prefers it to some notepad ...

Offline alsetalokin4017

  • Super Contributor
  • ***
  • Posts: 1974
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #16 on: March 13, 2017, 07:59:15 am »
gedit is kind of cute...
The easiest person to fool is yourself. -- Richard Feynman
 

Offline apelly

  • Supporter
  • ****
  • Posts: 1039
  • Country: nz
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #17 on: March 13, 2017, 08:10:42 am »
VI exists, yes, but I don't think any system administrator uses it daily, and prefers it to some notepad ...
TROLL!

 :)
I'd rather a Google clue, link, or some theory than "do this" (generally)
 

Offline janoc

  • Super Contributor
  • ***
  • Posts: 3125
  • Country: fr
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #18 on: March 13, 2017, 09:57:46 am »
VI exists, yes, but I don't think any system administrator uses it daily, and prefers it to some notepad ...

You couldn't be more wrong on that one ...

Even among Windows admins vi (or more likely GVIM) has quite a religious following, because few OPs people today have to deal with only Windows or only Unix servers, even in pure Windows shops. And if they come from Unix backgrounds then many actually prefer this editor for its speed (if you are opening and closing the editor hundreds of times a day to modify config files, you do want it to start quickly) and features.

I am also using it almost daily on Linux for all sorts of administration tasks, even though I prefer other tools for writing code. It is guaranteed to be present even on a tiny Raspberry Pi and available even in restricted environment (e.g. when doing maintenance), works the same on every system and starts instantly. I am certainly not a vi power user but one could do much worse than to learn a few basic keystrokes how to use it if dealing with Unix/Linux on a regular basis.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 1922
  • Country: fr
    • kripton2035 schematics repository
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #19 on: March 13, 2017, 01:08:23 pm »
I do use VI when there is nothing else ... but if there is anything else I use this other thing...

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 1619
  • Country: us
  • Formerly SiFive, Samsung R&D
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #20 on: March 13, 2017, 01:36:39 pm »
The Arduino editor is reasonably OK. I just stick to it 98% of the time I'm doing Arduino programming. It annoys me a lot less than, say, Visual Studio or Eclipse!

From time to time if I want to do some heavy duty editing on an Arduino program I open it in emacs (which is always running anyway). But it's not even all that often.

Mostly I just want editors to show me the code, let me type and move stuff around, and stay out of my way. The Arduino editor mostly does that.
 

Offline Rick Law

  • Super Contributor
  • ***
  • Posts: 2869
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #21 on: March 13, 2017, 06:00:33 pm »
I disagree...you're only talking about 10 years in the future, and looking at the past 10 years, the mainstream IDEs have not changed THAT much. Sure there have been some new offerings, but even then many of the concepts remain the same. People tend to stick with what works, so long as it's working.

As the most obvious example, the VI editor is still relevant today, 40 years after its introduction. It's practically guaranteed to exist by default on any unix/linix derived system in existance (and windows versions are easily found), so it absolutely qualifies as one of the most universal editors in existance.

Two thing.  First, 10 years from now the 18 year old kid is going to college.  Colleges would be using typical (some what more up to date) tools.  What is around today would be "classic stuff" and probably not what they use.

Second, there is a sea change in progress.  Tablet/phone format is getting more dominant at the users' end.  Some kids don't even type and preferred to use the voice recondition thing.  I think the impact of the change at the users' end is not fully seen at the developer's end yet.  Most developers are still sitting on a PC with mouse+full size keyboard.  But I am not sure that will stay.
 

Offline Cupcakus

  • Contributor
  • Posts: 43
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #22 on: March 14, 2017, 06:49:25 am »
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)
 

Offline StormJunkie

  • Contributor
  • Posts: 9
  • Country: us
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #23 on: March 14, 2017, 09:21:14 am »
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. 
 

Offline Kjelt

  • Super Contributor
  • ***
  • Posts: 5844
  • Country: nl
Re: Teaching an 8yr old to code - Arduino & Notepad ++
« Reply #24 on: March 14, 2017, 09:29:39 am »
On a sidenote, this is a nice way to teach kids how to start programming and directly seeing what happens and where it goes wrong.
It uses symbols and colors to program the behaviour of the robot that moves across the symbols and colour coded tracks.
http://ozobot.com/products/ozobot-bit
 

Offline apelly

  • Supporter
  • ****
  • Posts: 1039
  • Country: nz
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.
I'd rather a Google clue, link, or some theory than "do this" (generally)
 

Offline Rick Law

  • Super Contributor
  • ***
  • Posts: 2869
  • 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: 43
  • 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: 2528
  • 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: 1039
  • Country: nz
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.
I'd rather a Google clue, link, or some theory than "do this" (generally)
 

Offline Cupcakus

  • Contributor
  • Posts: 43
  • 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: 161
  • 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: 1619
  • Country: us
  • Formerly SiFive, Samsung R&D
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: 161
  • 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: 401
  • 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 StormJunkie

  • Contributor
  • 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: 269
  • 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: 525
  • 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: 401
  • 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: 2528
  • 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: 401
  • 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