Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Coderdojo Inspires Coding In Kids As Young As Seven

Soulskill posted about 2 years ago | from the learn-programming-through-single-combat dept.

Education 40

An anonymous reader writes "With kids growing up in an increasingly digital world, it's alarming that many of them have no idea how the devices that power their lives actually work. So three cheers for Coderdojo — a worldwide group of volunteers teaching programming and web design to children aged seven and up. From the article: 'Coderdojo's format is open and inclusive. Participants can use the operating system and programming tools of their choice. There is no set curriculum and the only rule is: "Above all: be cool." More rigid approaches, he suggests, can often stifle learners' enthusiasm: "A lot of coding tuition aimed at young people tends to revolve around games," he said. "But that can disengage some young people. Many of them, particularly girls, just aren't interested in gaming. "On the other hand, doing something like developing a web site shows them that they can do things they might not have realized they were able to and combines artistic and design skills with an understanding of why things are built in a certain way."'"

Sorry! There are no comments related to the filter you selected.

Great idea - and a suggestion (1)

Anonymous Coward | about 2 years ago | (#42197109)

Anyone wanting to start teaching kids how to program can start with a nice free and open project I am involved in called:
http://turtleacademy.com

So if anyone want a simple way to start his kids on programming, just visit this site

Ofer

Re:Great idea - and a suggestion (1)

rioki (1328185) | about 2 years ago | (#42213639)

Nice idea, but I have never liked the concept of a turtle. It is frustrating and not very rewarding. Lego Mind Storms on the other hand...

Re:Great idea - and a suggestion (1)

technosaurus (1704630) | about 2 years ago | (#42231033)

not to mention the javascript centering forces the turtle out of view as soon a you try to enter something in the terminal

Remember the day you learned... (2)

Lord_of_the_nerf (895604) | about 2 years ago | (#42197119)

20 Goto 10

*Sob* Precious memories I hope all kids will have....

Re:Remember the day you learned... (0)

Anonymous Coward | about 2 years ago | (#42197239)

Yeah, I was programming in BASIC before I could even really read. I'd copy things out of books, and make modifications. By the time I was 7 or 8, I was building quizzes for my friends on other subjects I was interested in like astronomy. The great thing about BASIC is that it is really easy to make a rocket liftoff.

Re:Remember the day you learned... (1)

decipher_saint (72686) | about 2 years ago | (#42197383)

Absolutely, that was the first thing my mom showed me on the Commodore 64 almost 30 years ago, everything changed that day.

FIve years later I had a simple CarisWorks database for my hockey cards and comic books, five years after that I was in college getting excited about polymorphism and multi-threading.

I think for the right kid getting their hands on this stuff early changes how they think about and use technology and may lead to some unique career options in the future.

Re:Remember the day you learned... (-1)

Anonymous Coward | about 2 years ago | (#42197947)

And 30 years on, you're still living in your mom's basement.

Re:Remember the day you learned... (0)

Anonymous Coward | about 2 years ago | (#42206099)

Careful with that joke, it's an antique.

Re:Remember the day you learned... (1)

frosty_tsm (933163) | about 2 years ago | (#42197831)

I started with the strange "turtle".

Re:Remember the day you learned... (1)

istartedi (132515) | about 2 years ago | (#42197975)

Even more powerful than that was FOR X=...

Suddenly, algebra made sense. This happened to me at the perfect time too, right when they were introducing us to algebra. I wonder if I would have done as well without it. The leap from concrete numbers with values to variables that could be anything, that leap of abstraction was facilitated greatly.

Re:Remember the day you learned... (0)

Anonymous Coward | about 2 years ago | (#42218175)

You forgot the first line:
10 Print "PENIS"

One of the most eye opening things I ever did (3, Insightful)

kilodelta (843627) | about 2 years ago | (#42197275)

Was to participate in program reviews in high schools all over the State of Rhode Island. I recall one classroom where they were learning the Office suite. On the particular day we were there the teacher had them doing a payroll spreadsheet, but they had to look up the tax rates on a cheat sheet.

I talked with the teacher and asked if they had any intention of teaching the kids about VBA and explained what VBA was and how it is present in every Microsoft Office application and lets you do fun things like for instance, calculate the tax, etc. The teacher looked at me with a straight face and said "Well, you need advanced math to program a computer!". I thanked her for her time.

On my review I made note of the conversation and how at the most, one might need maybe one semester of Algebra 1 but if they understood basic mathematical equations they could program.

What I heard is that my comment struck a warning bell in the school. They'd never had someone with an I.T. background review a program before. So it just flew under the radar until I made mention in the official report.

Re:One of the most eye opening things I ever did (2)

Octorian (14086) | about 2 years ago | (#42197471)

Yet this myth is so pervasive, that it feels like anyone who isn't the school's top math wiz is outright discouraged from even considering computer programming.

Re:One of the most eye opening things I ever did (1)

kilodelta (843627) | about 2 years ago | (#42197591)

You got that right! And look - you also should know number systems. Decimal is fine but binary is simpler, and hex a bit more complex but follows the same rules as decimal. It's just 16 symbols versus 10.

Re:One of the most eye opening things I ever did (1)

bolthole (122186) | about 2 years ago | (#42197743)

Well, using hex can be a huge mental barrier for some.

But more importantly... only a teenie tiny fraction of modern programming needs it. So its in the same category of "advanced math"

Re:One of the most eye opening things I ever did (1)

kilodelta (843627) | about 2 years ago | (#42197915)

Agreed - but hex is good for representing larger numbers in fewer characters. And like I said, it works the same rules as decimal, you just have to think base 16 instead of base 10.

Re:One of the most eye opening things I ever did (1)

turkeyfeathers (843622) | about 2 years ago | (#42197969)

you just have to think base 16 instead of base 10.

And you wonder why programmers are considered nerds by all the cool kids?

Re:One of the most eye opening things I ever did (1)

19thNervousBreakdown (768619) | about 2 years ago | (#42198485)

I think the fewer characters than base 10 thing is only a secondary benefit at best. The real attraction is that it aligns well with base 2, and takes much fewer characters than base 2. You can look at 0x00080000 and know that the fourth bit of the second word is on, that's a lot harder to do when you're looking at 524288.

Re:One of the most eye opening things I ever did (1)

rioki (1328185) | about 2 years ago | (#42213657)

I program some low level C and need hex numbers regularly. I also do some web stuff for kicks and have NEVER needed hex number there. Any "normal" programming that students or teachers will do will never ever need one single hex number. Most modern languages are so high level, that you seldom see these low level concepts such as how is a number represented in memory. Do you even know how your java script engines does it? Do you need to care?

Re:One of the most eye opening things I ever did (1)

UnknownSoldier (67820) | about 2 years ago | (#42198263)

> using hex can be a huge mental barrier for some.

While true, hexidecimal (hex) can also teach constant-bit-decoding / variable-bit-decoding and about permutations / combinations! The _interesting_ bit is how SIMILAR the code is.

As we all know:

Decimal numbers go: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 19, 20, 21, ... 99, 100, 101, ...

Hex numbers go: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, ... 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, ... FF, 100, 101, ...

To convert a hex number to decimal you can "peel" off the digits by div-mod. Essentially you are using a constant-bit-decoding -- every hex number has a fixed number of bits -- you divide the result by a constant "base" and peel off the digits in reverse order. The standard hex number is a permutation in that you DO allow duplicate digits.

Conversely, if you want to print the i'th "enumeration" of a Combination, that is, where duplicates are NOT allowed, instead of dividing by a constant "base" what you do instead is after every division you decrease the base by one.

I.e. Say you have 3 digits { A, B, C }. How many different ways can combine 2 of them?

i'th | Permutation | Combination
0: AA -n/a- // not a valid combination
1: AB AB
2: AC AC
3: BA BA
4: BB -n/a- // not a valid combination
5: BC BC
6: CA CA
7: CB CB
8: CC -n/a- // not a valid combination

With permutations there are: 3^2 = 9 possible states.
With combinations there are: 3! = 6 possible states.

It is easy enough to extend this principal to hex. The fun part comes when given the i'th iteration then print off either the permutation or combination string! Here is a code fragment -- again look how much the code is almost identical:

// Also known as: itoa() !
void Constant_Bit_Decoding( int n, char * const pOutput_, const int nBase )
{
    int d, r; // d = digit, r = remainer, n = the initial/new result.
    char aDigits[] = "0123456789ABCDEF"; // is constant
    int nDigits = 0; // variable length output!
    char *pDst = pOutput_;
 
    if( nBase > 0 )
        do
        {
            d = n / nBase; // nBase is constant
            r = n % nBase;
            n /= nBase;
            *pDst++ = aDigits [ r ];
 
// Permutation: re-use all elements
            nDigits++;
        } while( n > 0 );
 
    String_Reverse( pOutput_, nDigits );
    *pDst = 0;
}
 
// Print Combination enumeration!
void Variable_Bit_Decoding( int n, char * const pOutput_, int nBase )
{
    int d, r;
    char aDigits[] = "0123456789ABCDEF"; // modified!
    int nDigits = nBase; // constant length output!
    char *pDst = pOutput_;
 
    if( nBase > 0 )
        do
        {
            d = n / nBase; // nBase is variable!
            r = n % nBase;
            n /= nBase;
            *pDst++ = aDigits[ r ];
 
// Combination: Remove 'r'th element
            int nDigits = nBase - r - 1;
            if( nDigits > 0 ) {
                memcpy( aDigits + r, aDigits + r + 1, nDigits );
            }
            nBase--;
        } while( nBase > 0 );
// No need to reverse the digits
    *pDst = 0;
}

That's the interesting about algorithms. It can connect many different disciplines of math and make them practical.

Re:One of the most eye opening things I ever did (1)

phantomfive (622387) | about 2 years ago | (#42200371)

And yet any kid can begin to learn programming using LOGO.

Games (3, Informative)

Gripp (1969738) | about 2 years ago | (#42197719)

IMO games are the key. I know I learned most of what I know because of games.

Either trying to hack online games or dicking around with configs and custom content on PC games, I was learning. Trying to write macros to automate mundane gaming tasks. I was learning.

Also, I know every programmer out there will want to bash my face in for this, but excel is also very good to learn from. And a lot of games stand to gain from doing a bit of heavy analysis, or at least tracking, in excel. You learn how to deal with IF and ELSE statements, arrays, tables, lookup, AND/OR logic, strings concatenation and variables. And the framework for doing so in excel is not nearly as intimidating. Most non-programmers can make handy things in excel, that if you broke all the cell into variables and functions into code, would look a whole like a real program, they just don't know it.

At some point during all of this I got curious about "Real" programming and kept looking at C. And while I never fully learned C to a usable level I learned about pointers and memory allocation/addresses/pointers/cleanup/etc. At some point I wanted to get into linux since it seemed more programming friendly. I choose gentoo by pure coincidence, and from bootstrap+compile kernal I learned even more.

All because of games. But the problem becomes that over time it has become harder and harder to hack games; both web and PC based. So many measures in place to stop people from doing it, and even threats of bans. I feel like this is bad for our future. Like the one thing games stood to give to society is diminished by pettiness.

Re:Games (0)

Anonymous Coward | about 2 years ago | (#42198727)

Someone +1 this please?

Re:Games (0)

Anonymous Coward | about 2 years ago | (#42201299)

Hacking online games is bad for other people playing, so it's only normal that server admins/developers should try to stop it.

Re:Games (0)

Anonymous Coward | about 2 years ago | (#42204389)

All because of games. But the problem becomes that over time it has become harder and harder to hack games; both web and PC based. So many measures in place to stop people from doing it, and even threats of bans. I feel like this is bad for our future. Like the one thing games stood to give to society is diminished by pettiness.

That's rather short sighted most of the banning comes from attempted exploiting of online games. And it should, because you're attempt to learn programming to make you guy "stronger" hurts the balance of the game for me. If people want to hack Assassin's Creed, or Bioshock I'm ok with that and honestly I'm sure that's easier than trying to hack Call of Duty or Killzone.

How do you address the gender bias in that "start with games" approach*? Girls aren't interested in gaming to the level that boys are. Hence the decision to develop websites in the first place.

- wolfkin

* or is that why you mentioned excel in the first place

Games are not the answer.... (1)

Half-pint HAL (718102) | about 2 years ago | (#42205491)

IMO games are the key. I know I learned most of what I know because of games.

I disagree, but that's not to say I agree with the philosophy of the Coderdojo guys. The problem with games as motivation is that it is an attempt to motivate by topic rather than process.

Learning is an inherently rewarding process -- it is a pure form of mental stimulation. If the teaching is effective, it generates flow and the process becomes self-motivating... but to achieve this the process needs to have a low cognitive load and each step must be inherently meaningful.

Games, however, are complex beasts, and in order to teach with games you have to take a lot of shortcuts and provide a lot of "black-box" code that the beginning programmer can't and won't understand, which means the learning experience isn't entirely meaningful. There's really nothing more frustrating than achieving a result under instruction but not really knowing why it's working. You haven't learned the system. Worse -- those black-boxes can be munged up with lots of "simplifications" that not only obscure the code logic, but also reduce the human logic in the system (eg gamemaker, where increasing the score is done by adding a "setscore" event and ticking a little box marked "relative").

Learning programming has to start with learning how to overcome simple problems and slowly upping the complexity -- starting a course on programming with games is like taking someone who has done no maths and no physics and trying to teach them structural engineering.

Another example of bad teaching practice is that old favourite of programming books: "Hello world." Why do we start with a piece of code that doesn't actually do anything? In C, it's particularly bad. When I started learning C at uni, we were compiling and running from a Unix command prompt (or possibly Linux. In second year CS it was definitely Linux, although we were using Solaris in AI.) What would have been more meaningful than writing simple programs that carried out specific mathematical functions as an extension to the BASH command set? Instantly meaningful nd useful. Instead, we were struggling with C's esoteric consol IO functions for weeks in order to be at the stage where we could even start to do anything meaningful.

Whereas we could have been writing nth root programs and typing nthroot 1024 9 and getting the answer 2 within a day or two.

All subjects are easier to learn when every step is meaningful -- games offer no easy path to meaningfulness.

Re:Games are not the answer.... (1)

Gripp (1969738) | about 2 years ago | (#42210697)

Hmm. I think you missed my thought process. I am talking about how to motivate kids into wanting to learn about computers/programming. Not learning programming outright via games, or worse teaching people HOW to program games. I think a programming game would never be fun enough to honestly captivate a kid. They really aren't much better than math games... And trying to get kids to program their own games would only lead to confusion and frustration, and likely turn them off from programming.

And no one will *ever* go from messing with game files to programming, say, path finding algorithms in assembly; without having decided to dig into some level of formal learning first. That isn't my goal in my post, either.

My reasoning is that in leaving some room for people to customize and manipulate games there is a higher chance that a youth will at least try to learn enough to create an advantage for themselves, like they have since the invention of PC games... And thus in doing so they will not only gain motivation to take it to the next level, but gain at least some tools in the process.

Re:Games are not the answer.... (1)

Half-pint HAL (718102) | about 2 years ago | (#42213641)

A pre-existing game is an enormous black-box, and you're thrusting kids into a whole world of complexity. You need to be really motivated by the end-goal to push through that. You were, most aren't. I remember trying to motivate myself to learn Quake modding. I failed. It was, in the end, simply too complex, and I couldn't work on that level of abstraction. Starting simple means starting without games.

I learned coding at 7 (1)

Dunge (922521) | about 2 years ago | (#42197871)

Because we had no choice, there were no pre-built executable back then.

Re:I learned coding at 7 (0)

Anonymous Coward | about 2 years ago | (#42198101)

Get off my lawn! We had to learn how to build electrons at seven because the were no pre-built realities back then.

misNamed (1)

aNonnyMouseCowered (2693969) | about 2 years ago | (#42198089)

Not to take anything away from the efforts of the volunteers, but I think the project's misnamed. According to Wiki a dojo is broadly "a formal training place for any of the Japanese do arts" or specifically " a formal gathering place for students of any Japanese martial arts style such as karate, judo."

http://en.wikipedia.org/wiki/Dojo [wikipedia.org]

The key word is "formal", which while not contradicting appears to contrast with the project's goal of fostering "open and inclusive" participation. The presence of older mentors appears to be the main inspiration for the use of the word "dojo" besides its exotica when compared with more conventional terms like "club", "gym" or everybody's summer favorite "camp".

Re:misNamed (1)

dadioflex (854298) | about 2 years ago | (#42200069)

There are about a million websites, charities, government initiatives worldwide aiming to teach kids to program. It's the essence of what drove the production of the Raspberry Pi. Plug most of the obvious names into Google and you'll see they've already been taken - in fact several I looked for have been taken, lapsed, then acquired by spam or trojan operators. coderdojo isn't a bad name, though it doesn't really speak to teaching children, and is somewhat similar to codeacademy.

BASIC for some, LEGO for others (0)

Anonymous Coward | about 2 years ago | (#42198625)

I learned LOGO on an old mac (with floppy floppy disks). When I got my first PC I learned BASIC/BASIC. It was cool, but I also had a great teacher in high school that convinced the school to buy NXT sets, and I got to see some of my classmates see the same "look what I can make a computer do" awesomeness that I did. Today, as I recently made my first android app I still feel the same way. Programming is awesome, whether for fun or work there's just something fun about taking this complicated piece of silicon and making it your bitch.

Sorry but this is bullcrap (1)

xQuarkDS9x (646166) | about 2 years ago | (#42200431)

Like my subject says after reading this

"A lot of coding tuition aimed at young people tends to revolve around games," he said. "But that can disengage some young people. Many of them, particularly girls, just aren't interested in gaming."

Girl's not interested in gaming? Ok then try telling that to all the young and old women gamer's I've met in person and talked to on Ventrillo over the year's playing games such as World of Warcraft, Team Fortress Classic, and Counter-Strike 1.6 (and earlier) and Jedi Knight: Dark Forces 2.

Especially World of Warcraft where it seem's more often then not the traditional female roles come into play. You more often see females for example playing healing classes or dps classes before tank classes especially more often then not with bf/gf or husband/wife couples where the man is a tank and the woman is playing the healing role.

Shortage of Coders? (1)

RedHackTea (2779623) | about 2 years ago | (#42200997)

Do we need more programmers? I hear about stories like this all the time, but the company I work for literally gets tons of applicants monthly. None of my coworkes nor myself needed to be "inspired" by a group like this. We were all inspired by just living in tech daily as kids -- which includes games. And if you have a passion, you'll pursue it.

Shouldn't there be a focus on the careers that we have a shortage of? Such as nurses, labor workers, etc.? Or is there a shortage of coders in Scotland?

If the kids truly are interested, then I suppose this is good. However, they should be focusing on good programming practices. Is making websites (probably just HTML and CSS without any PHP, etc.) conducive to this? Hopefully, they are teaching the fundamentals correctly.

One of our largest Dojo meets... (1)

ei4anb (625481) | about 2 years ago | (#42202627)

was a Kinsale Coderdojo session in the Lilly factory canteen. Here's a video we shot of the event http://www.youtube.com/watch?v=MMODHilE4qk [youtube.com]

Curriculum?? (1)

bradgoodman (964302) | about 2 years ago | (#42202837)

I first learned back in the BASIC days - things were simple and straightforward back then.

I've always wondered how I'd have to do it today. Something like HTML? PHP? Java? Something like Alice or NTX? I've also wondered how I'd best go about it with my own kids.

This article and organization seems to take on the challenge of teaching "7 years olds". The web site even has links on "opening your own dojo", and makes references to different skill levels and languages.

It didn't say anything about curriculum though. It's a great idea - and I'd like to do it, but how? Does it really define that? It's a great idea to teach kinder-gardeners calculus, but you'd have to provide some more specifics on how you intend on doing this for it to make sense to me...

Re:Curriculum?? (0)

Anonymous Coward | about 2 years ago | (#42204555)

It is called Visual Basic these days

Re:Curriculum?? (1)

Half-pint HAL (718102) | about 2 years ago | (#42205223)

It didn't say anything about curriculum though. It's a great idea - and I'd like to do it, but how? Does it really define that? It's a great idea to teach kinder-gardeners calculus, but you'd have to provide some more specifics on how you intend on doing this for it to make sense to me...

7

"Oh no, you don't want a curriculum! A curriculum would stifle creativity!"

So what do I do then?

"Use your judgement as a teacher!"

OK, but I'm not really a teacher yet -- you're supposed to be showing me how to become a teacher.

"Ah, but I am. The first lesson is that there are no rules, only experience."

Ah, I see. So what have I paid you over a grand for if you can't teach me anything?

"My experience."

Right. Your experience. But you won't tell me what your experience is.

"Exactly. Because every teacher is unique and you have to experience the classroom for yourself to find out what sort of teacher you are."

Can I have my money back then?

"Oh no, because now I've taught you how to be a teacher."

Not strictly a real conversation, but that's how I felt after taking a course in teaching English as a foreign language (and it was a Cambridge-accredited CELTA course, too).

This is the reality of the "liberal" school of pedagogical thought -- there are no rules, only creativity. The problem is that the people who found all the "liberal" methods develop a way of working that is very effective, but are not strictly aware of what they are doing and can't identify the effective core of their method to teach it. They believe they're working without structure and without directing the students, but they have a strong internal structure that they follow and they direct the learners subtly and subconsciously. In the end they often advise strategies that are diametrically opposed to what they actually do. People who try to follow their advice end up either end up misinterpreting it and getting lost, or (worse) following it literally and buggering up the children's education....

alias (1)

gruntkowski (1743014) | about 2 years ago | (#42204297)

"Coderdojo", must be an alias of the Super Adventure Club.
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?