TMC is an independent, primarily volunteer organization that relies on ad revenue to cover its operating costs. Please consider whitelisting TMC on your ad blocker or making a Paypal contribution here: paypal.me/SupportTMC

Coding practice for kids?

Discussion in 'Off Topic' started by cmu5p, Nov 25, 2015.

  1. cmu5p

    cmu5p Member

    Joined:
    Feb 3, 2015
    Messages:
    223
    Location:
    Shenandoah Valley, VA
    Hi, all-

    Was doing some work in home office this morning when one of my sons (8) came in and asked if I could get off the computer so he can practice "coding". Apparently, they have been using a website called code.org at school and making simple games (star wars, minecraft, etc.) I watched him run through a couple and was impressed. So, to my question, knowing many of you are far more computer-savvy than me: Are there any other coding websites you'd recommend? My google search turned up about 25+ sites with some free, some not, and just wanted some expert opinion before diving in. Don't mind paying for service long as it is worth it.

    Thanks for any help!
    Claire
     
  2. Arbitrage

    Arbitrage Member

    Joined:
    Jun 1, 2015
    Messages:
    24
    Location:
    California
    #2 Arbitrage, Nov 25, 2015
    Last edited: Nov 25, 2015
    Not sure if this is exactly what you're looking for, but TopCoder used to have "Single Round Matches" which were basically 3 small coding problems that people did in 2 hours. They had some UI where you could run tests on the code to see if it passed the test cases. I haven't looked at their site in many years, though, so I'm not sure how much they've changed. You don't have to participate in the contests as all the historical problems with solutions and things should still be up.

    Maybe this is too advanced but USACO has some good online training resources but the problems are more geared for top high school level students so maybe that's something for the future more so than now.
     
  3. rage_777

    Joined:
    Feb 14, 2013
    Messages:
    157
    Location:
    US
  4. essaunders

    essaunders Member

    Joined:
    Jun 6, 2012
    Messages:
    89
    Location:
    Nashua NH area
  5. BriansTesla

    BriansTesla Old school meets new tech

    Joined:
    May 8, 2012
    Messages:
    236
    Location:
    AI WA
  6. woof

    woof Model S #P683 Blue 85 kWh

    Joined:
    Apr 30, 2009
    Messages:
    1,149
  7. Mike_HburgVA

    Mike_HburgVA Member

    Joined:
    Aug 29, 2014
    Messages:
    25
    Location:
    United States
    You are the ultimate mom. I'm going to introduce Scratch to the girls today. I'll have to be careful how to introduce it. It would be more helpful if a friend of theirs suggested it to them. But it looks cool.
    I'm sure my kids will learn to program some Minecraft mod, while yours develop the next great app, and you retire in luxury.
     
  8. RDoc

    RDoc S85D

    Joined:
    Aug 24, 2012
    Messages:
    1,569
    Location:
    Boston North Shore
    I'm a software engineer and have used and taught programming with Scratch for a few years, but am kind of ambivalent about it. On one hand, it's very easy to get started and there is a huge community for it. However, once beyond basic programming, IMHO it tends to develop very bad programming practices. For example, there isn't any way to write your own functions which leads to really awful code for anything beyond the simplest program. There are also some design issues with Scratch that can cause very mysterious behavior (race conditions if you're a geek).

    Alice is more advanced, but also leads directly into real programming and has a lot more possibilities as it's a 3D virtual world.

    Scratch is definitely easier to get started with, but Alice, while a bit more difficult is a much better platform for the longer term IMHO.
     
  9. cmu5p

    cmu5p Member

    Joined:
    Feb 3, 2015
    Messages:
    223
    Location:
    Shenandoah Valley, VA
    #10 cmu5p, Dec 1, 2015
    Last edited: Dec 1, 2015
    Gosh, everyone, thank you for all this! (and the mom-props, Mike_HBurgVA)
    I played with Scratch last weekend and found it fun. It is probably good enough for me, but as RDoc mentions, may become too elementary too fast for kids with plasticity. Will check out Alice tonight. (that sounds a little funny :)

    - - - Updated - - -

    Yes, but how will I ever get any work/laundry/sanity restoration done? (kidding, kidding) Actually, the fact that we limit it so much makes them hunger for more. Coding practice, in my opinion, is good media distraction.
     
  10. 21miDay

    21miDay Member

    Joined:
    May 26, 2014
    Messages:
    31
    Location:
    Phoenix
  11. anticitizen13.7

    anticitizen13.7 Enemy of the Status Quo

    Joined:
    Dec 22, 2012
    Messages:
    2,549
    Location:
    United States
    I often wonder if all the emphasis on coding is misplaced.

    I taught myself to code in C when I was in grade school, using old manuals I'd found. Most of the stuff I coded were inane games and rudimentary simulators. While I was able to learn the language fairly easily, the code I produced was terrible quality, because I made up solutions as I went along. Even when I took a class in C++, there was only cursory attention given to design. The assignments were simple enough that they usually had only 1 or 2 key algorithms and some text-base interface for user interaction.

    It wasn't until college that I learned OOP, and learned to think about the big picture and how different parts of a system would interact and affect one another. Even as a dumb ("unwise") teenager, everything made so much more sense when design was taught concurrently with code. The fundamental question of what a computer program is (in general terms, an abstraction of relevant algorithms and data) made a difference in the way I approached coding.
     
  12. RDoc

    RDoc S85D

    Joined:
    Aug 24, 2012
    Messages:
    1,569
    Location:
    Boston North Shore
    IMHO, this is the best reply by far, and is a far more comprehensive reply than my kvetching about Scratch teaching bad coding habits. The kids I've helped who started coding on their own, not to mention the college freshouts I worked with, had some of the worst coding habits imaginable, and it proved very difficult to break them of it. Once someone starts hacking and actually gets code to do something, convincing them that good design and structure is really important becomes quite difficult.

    Having said that, I'm unaware of any source for good coding design and structure instruction, apart from an experience programmer. Most of the coding examples online are dreadful. Sorry to be so negative, but there is a lot of very poorly conceived and structured code out there and more being produced every millisecond!
     
  13. tga

    tga Active Member

    Joined:
    Apr 8, 2014
    Messages:
    2,198
    Location:
    New Hampshire
    That's because there are a lot of poor programmers out there. :wink: Seriously, I've worked with some people who should be downright embarrassed to take a paycheck for the junk they've cranked out.

    Now how do you teach kids to be good programmers? Beat me. Probably takes guidance from talented adult?
     
  14. woof

    woof Model S #P683 Blue 85 kWh

    Joined:
    Apr 30, 2009
    Messages:
    1,149
    I think the answer is to show them good code. And yes, the short samples found in books and the 'net usually aren't that.

    If I were to run a beginning Univ level C coding class, I'd pick a simple well defined and well written utility (gnu's "touch" for example) and have 'em read code. Do a full code review. However, before they did that, I'd probably have them read the man page as a specification, and have them write their own version, then do the code review of the gnu version. It's always a learning experience to see how other's solved the same problem you just did.


    --Woof!
     
  15. anticitizen13.7

    anticitizen13.7 Enemy of the Status Quo

    Joined:
    Dec 22, 2012
    Messages:
    2,549
    Location:
    United States
    There is probably no substitute for mentoring, preferably mentoring from several different perspectives over time. I believe Steve Jobs said something to the extent of engineering/design being the intersection of sciences and the humanities. I used to think he was full of it, but I've appreciated that view more in recent years.

    Part of the reason I think this is so difficult is because there are so many ways of coding a system to create a product or solution. What makes a system divided into logical components? Does a particular inheritance hierarchy make sense? What is easy for others to understand? What is easy to upgrade/maintain? Outside the realms of algorithmic efficiency and resource utilization, much of this is subjective and difficult to quantify.

    For kids, I would say it makes sense to teach design and evaluation skills first. Lego sets come to mind. What makes a particular Lego set good? Perhaps the pieces have flexible application. Is the set too simple or too hard to build? Is the assembled set fun to play with? Or does it fall apart too easily (yes, in the distant past I owned a big set or two that was fragile and could fall into pieces far too easily). One can do this with any number of objects: tablet computer models, headlamps, cars, and so forth. What design choices resulted in which consequences?

    On the coding side, I would focus on human readability. I have worked with people who enjoyed writing code that was super duper compact, but difficult for others to quickly understand. Simple things like following variable naming conventions, using proper indents, and adding comments often seem stupid to new coders, but they make a difference to people who have to maintain the code months or years down the line.

    Finally, I think that it helps to introduce the intersection of hardware and software early on.

    The machines that run the code are black boxes to most kids. Explaining memory, and how code objects are instantiated, referenced, and deleted, will give a better understanding of what happens when a computer program runs. While this doesn't have much impact for a kid writing small programs on a computer with 4 GB of RAM, it might make a difference in the future if that kid is many years down the line creating systems that run into resource constraints.
     
  16. cmu5p

    cmu5p Member

    Joined:
    Feb 3, 2015
    Messages:
    223
    Location:
    Shenandoah Valley, VA
    Thanks, again, to all of you for your insight- just what I am looking for. I am a code-naive parent trying to encourage my kids who are showing interest. Twin boys, age 8, who love getting lost in video games, but once I explained that they could have the ability to control those games by programming, they really took off. Sadly, I don't have the (personal) hardware to mentor them properly (perhaps I need to take up a new hobby in coding). I am up to my ears in lego's, technics, new designs for starships, weapons and pod-racers and Santa's bringing Lego Mindstorm for Christmas. I always knew these kids would be smarter than me, just didn't think it'd be so soon. :p
     
  17. malcolm

    malcolm Active Member

    Joined:
    Nov 12, 2006
    Messages:
    2,142
  18. TampaRich

    TampaRich Member

    Joined:
    Jul 7, 2013
    Messages:
    110
    Location:
    Tampa, FL
    +1 Our girls do this every year. We need more programmers in the workforce!
     
  19. 21miDay

    21miDay Member

    Joined:
    May 26, 2014
    Messages:
    31
    Location:
    Phoenix

Share This Page