TheManWhoWas
Posts: 50
Joined: Thu Feb 09, 2012 9:11 pm

Re: Isn't this all too complicated?

Sat Feb 18, 2012 2:32 pm

Jaseman said:


Here we are 12 pages later.

To go back to the original question - No it isn't too complicated.



Not quite the conclusion 12 pages of discussion had led me to. I am now pretty confident and excited that this will be true of the educational release in the autumn, and it sounds like that'll be the time to get one for my son.

But the version due to be released on Monday sounds every bit as hardcore as I expected, and is really one for the hackers.

Those wanting to learn a bit of programming before the educational release is ready would be better off looking at some of the existing resources mentioned in these threads and trying them out on their existing PCs.

lewmur
Posts: 386
Joined: Sun Dec 25, 2011 3:20 pm
Contact: Website

Re: Isn't this all too complicated?

Sat Feb 18, 2012 2:55 pm



trying them out on their existing PCs.

The whole point of a $25 R Pi is that not every kid in the world HAS an existing PC.  Duhh!!!


jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24149
Joined: Sat Jul 30, 2011 7:41 pm

Re: Isn't this all too complicated?

Sat Feb 18, 2012 4:03 pm

TheManWhoWas said:


Jaseman said:


Here we are 12 pages later.

To go back to the original question - No it isn't too complicated.


Not quite the conclusion 12 pages of discussion had led me to. I am now pretty confident and excited that this will be true of the educational release in the autumn, and it sounds like that'll be the time to get one for my son.

But the version due to be released on Monday sounds every bit as hardcore as I expected, and is really one for the hackers.

Those wanting to learn a bit of programming before the educational release is ready would be better off looking at some of the existing resources mentioned in these threads and trying them out on their existing PCs.


You are more than welcome, in fact, encouraged, to try stuff out on your existing PC. I recommend Python if you want to program with real code, or Scratch for a real beginner to all the concepts.

I don't know how well Scratch works on a  Raspi (it does work), but I do know that python works pretty much the same on a Raspi as it does on a desktop Windows or Linux box. And using a Raspi is pretty much the same as using a desktop Linux box.

It's not complicated, but like anything else, you do have to learn stuff, although my personal opinion is you don't actually have to learn that much to use a Raspi.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

eric_baird
Posts: 37
Joined: Sun Dec 04, 2011 3:42 pm
Contact: Website

Re: Isn't this all too complicated?

Sat Feb 18, 2012 11:32 pm

JamesH said:

It's not complicated, but like anything else, you do have to learn stuff, although my personal opinion is you don't actually have to learn that much to use a Raspi.

Well, I think there needs to be a big push on cutting the amount of things that a kid needs to learn before they start doing anything "fun" to a bare minimum. Rapid gratification. With the old 1980's consoles, you could walk up to one in a shop and start typing, and it'd do things. You didn't have to learn a load of obtuse acronyms that seemed to have been designed to deliberately exclude people outside a particular group and age-range. PEEK and POKE were fun, and easy to remember, once your mates had told you about them. It was fairly self-explanatory what sort of market "BASIC" was aimed at, even if you didn't know that it was an acronym.

But calling calling a programming language "Python"?!? After Monty Python? An old tv show from the 1970's whose name was itself a joke about the name having nothing to do with the show's contents? That's indulgent, nostalgic, in-jokey "GNU is Not Linux" territory, and if I was a little kid, I'd be staring at the smirking adults and thinking that perhaps these guys weren't serious, and perhaps I'd be better off going into some other field. "Python" sounds like a language aimed at paunchy male beardy middle-aged system programmers with large "prog rock" collections.

Names are important, they give uncertain newbies cues as to whether something is designed for the likes of them, or not. "Raspberry Pi" is a nice name for a little educational-market product (fruit, colour, math). Python ... not so much.

The other thing that concerns me about Python is the number of people who seem to love it on a point of principle because it's used in so much Linux software. While I agree that it'd be wonderful if Linux was more widely used, I don't think that we should be using kids as leverage to help us to fight that battle. If kids would find it easier to use a modern, line-numberless powerful, fully-typeable, compilable, BASIC-type language, then we should give them what they'd find most fun and most useful, rather than what we'd like them to have to help us to "push" Linux.

I'm not emotionally attached to BASIC, but I've found it quite useful in a lot of different projects. I've used GFABasic to write a range of (marginally) commercial programs, some large projects for Windows and some "helper" .DLLs for VC++, I've used WordBasic and VBScript to process, cross-index, auto-format, keyword-link and convert large documents for online help systems, VisualBasic for generating 3D computer models, and VB-based VBScript for generating vector art files within CorelDraw. "BASIC" variants can be useful when you just want to Get Something Done, quickly, once in a while, without having to learn and memorise a whole new set of syntax for whichever new language is currently fashionable. I'm not interested in languages. I'm interested in the final product.

I /would/ have liked to have used Python as a scripting language to drive Blender a couple of years ago for a 3D graphics project, but the bloody thing wouldn't install/work properly under Ubuntu due to some sort of Linux package conflict (and due to the programmers also not bothering to check that the install program worked as-is under WinXP), so in the end I gave up and wrote some quick BASIC scripts to generate .obj files to import into Blender, rather than waste any more time trying to find why the Python option wouldn't install properly.

I'd like to do some functional apps for Android at some point - again, another project where I want to get results quickly without learning a lot of technicalese. At the moment the main candidate tools seem to be AppInventor (which looks kinda fun, in a "toy" way, but doesn't currently package for full distribution), and a VB clone. Python seems to be available for Android, but nobody seems to be particularly excited about it, and the documentation that I looked at looks kinda command-liney and aimed at programmers rather than the mass market. An increasing number of kids have Android devices, and might like to learn to program in a way that might be useful for eventually creating their own mobile apps.

It may be that there's a really good reason why we should be pushing kids to specifically learn Python rather than a generic language with a straightforward, guessable, verbally-styled syntax with a minimum of funny symbols, punctuation and formatting conventions, that lets you recite code out loud, and that's designed to be easy to use for beginners, but so far I haven't seen anyone give it. Maybe I missed it.

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: Isn't this all too complicated?

Sat Feb 18, 2012 11:34 pm

TheManWhoWas said:

Those wanting to learn a bit of programming before the educational release is ready would be better off looking at some of the existing resources mentioned in these threads and trying them out on their existing PCs.
Sure, use your existing PC if you have one.

Unless we find some bugs in the hardware or software that the beta-testers missed, the RPi that you buy later is the same as you could buy now. Other than that, the only things that will change is that you wont have to program your own SD card and a few books will be published.

There is nothing special about a RPi that makes it super for learning to program. A PC is always going to be better, before or after the educational release. Except... such a simple device concentrates the mind and, for a child, owning your own computer is empowering.

Programming the SD card is easy, and a week after the RPi goes on sale there will be loads of tutorials on every facet of it. Just as empowering as owning your own computer is understanding it and making it do what you tell it to do. That's far more possible with a RPi than a bigger PC where there is more complexity and the penalties for making mistakes can be tragic.

I always say that with both Linux and Windows, occasionally you come across a problem that has you tearing your hair out in frustration for three days straight. The difference is that with Windows you come out of the experience having formatted the hard-disk and reinstalled Windows, with no more idea what went wrong than you had to begin with, just a little more sure that you are incompetent and unworthy to own such a complex device. With Linux you emerge with a fixed machine that you understand a little better than before, and empowered by the knowledge that you've learned something and grown in the process.

The RaspPi is a real computer, for $25. It's a tool, and as such you might find a thousand and one uses for it that you have never considered. By September you might have a HTPC, a car computer, a temperature logger for the greenhouse, even a wild-life camera taking videos of nocturnal visitors to your garden. And your son might have a burglar/parent alarm on his bedroom and an mp3 player that he built himself.

So if your only desire is to own a Raspberry Pi so you can teach your son how to program, then you are correct in your assessment that a normal PC is as good or better to do that with, at least until there are child-centric RaspPi-targeted educational materials available.

But that is not the only reason you might chose a Raspberry Pi.

error404
Posts: 351
Joined: Wed Dec 21, 2011 11:49 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 1:08 am

eric_baird said:

With the old 1980's consoles, you could walk up to one in a shop and start typing, and it'd do things.
Ditto Raspberry Pi.

You didn't have to learn a load of obtuse acronyms that seemed to have been designed to deliberately exclude people outside a particular group and age-range. PEEK and POKE were fun, and easy to remember, once your mates had told you about them. It was fairly self-explanatory what sort of market "BASIC" was aimed at, even if you didn't know that it was an acronym
I can tell you're not joking, but seriously? BASIC is way more obtuse than almost any modern language is, and most of the few commands BASIC actually provides are present, often with the same name, in modern languages.


"Python" sounds like a language aimed at paunchy male beardy middle-aged system programmers with large "prog rock" collections.

Names are important, they give uncertain newbies cues as to whether something is designed for the likes of them, or not. "Raspberry Pi" is a nice name for a little educational-market product (fruit, colour, math). Python ... not so much.


I'm pretty sure that kids won't be picking up on this same weird connotation you get from the name Python. It's not designed specifically for education, but it doesn't need to be. It's simple enough to be used that way, yet is actual a practical, modern language that people use to do real work. The name though? Do kids care about this? It's an animal, not some weird meaningless acronym, something hard to pronounce, or some made up word, I think it's fine.


I don't think that we should be using kids as leverage to help us to fight that battle. If kids would find it easier to use a modern, line-numberless powerful, fully-typeable, compilable, BASIC-type language, then we should give them what they'd find most fun and most useful, rather than what we'd like them to have to help us to "push" Linux.


I'm pretty sure that nobody is suggesting that and nobody's motivation is based on that. Python works equally well on most platforms. It has properties that make it well suited to education, and it's widely used in the wild, and well understood by a lot of people. Let's keep the arguments substantive, and you can try and argue that some weird dialect of BASIC that nobody actually uses can compete, but I'm not buying it. Let's teach kids things that relevant, not things that are 30 years old that nobody uses anymore and that can't support modern programming techniques.

Or teach them with tools that are specifically designed for teaching like Scratch, but I'd move them into a real language ASAP.

The side reason for not chosing weird proprietary dialects of BASIC is that with a $25 computer a $50 compiler that doesn't even work on ARM is kind of useless.


An increasing number of kids have Android devices, and might like to learn to program in a way that might be useful for eventually creating their own mobile apps.


All the more reason to teach them modern development tools and techniques.


It may be that there's a really good reason why we should be pushing kids to specifically learn Python rather than a generic language with a straightforward, guessable, verbally-styled syntax with a minimum of funny symbols, punctuation and formatting conventions, that lets you recite code out loud, and that's designed to be easy to use for beginners, but so far I haven't seen anyone give it. Maybe I missed it.


Perhaps for very early teaching this is relevant, but the reason is that this just isn't how programming works. If you want to teach them something useful, you need to use a useful language to do it. Otherwise you're just teaching the simplest concepts that can fit into such a pared-down syntax.

IMO dumbing things down is never helpful. Kids aren't stupid. Straightforward syntax rules are not a problem.

ReCreate
Posts: 48
Joined: Wed Feb 01, 2012 4:51 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 2:00 am

What? Did someone say they wanted a simple programming language? Have you seen brain****? It's composed purely out of 8 commands! ">", "<", "+", "-", ".", ",", "[", "]"

Now.. If it's easy to understand, That's different.

gritz
Posts: 449
Joined: Sat Jan 28, 2012 2:33 am

Re: Isn't this all too complicated?

Sun Feb 19, 2012 2:32 am

I do rather find myself agreeing with the comment about obtuse acronyms and exclusivity in general, even if I'm within the "age range" of that included minority (probably near the top end, if anything...) But I digress.

"Isn't this all too complicated?"

I think that as techies and geeks (rather than professional educators) there's a danger of putting the cart before the horse. Why would young people be tempted into experimenting with programming? When I was at school and the ZX81 arrived (note singular - our comprehensive didn't exactly chuck money about) the kids tended to work on games. This was a reflection of the the increasing importance of games in popular culture at that time (as well as being very rewarding once you'd got past all the cassette faff and whatnot...)

OK, fast forward to today. What would the 21st century child want to create / manipulate / interface with? Communications? Robotics? Environmental applications? Apart from the distinct possibility that our modern day students will want to do a great deal more hardware interfacing than in the past I think it's essential to let the potential applications choose the IDE, rather than the other way round. And yes, I'm talking about a proper IDE, not a vague philosophy that splinters into different camps, some with woeful documentation, obtuse acronyms, hacky workarounds, et al. Children feel comfortable with order and predictability. They don't tend to respond so well to inconsistency and chaos.

So, the development process. The development of an idea typically involves an awful lot of planning, discussing and fine-tuning before the first line of code is written. This Is A Good Thing - it teaches (amongst other things) structure, cause and effect, good communication, considering the needs of the end user and the importance of proper documentation.

Programming is just a small part of the whole process and teaching someone to program effectively in whatever language is IMO far more important than forcing six-year-olds to learn xyz++ because "they'll need it when they grow up" or because we want to promote a particular language for selfish purposes.

andyl
Posts: 265
Joined: Tue Jan 10, 2012 11:05 am

Re: Isn't this all too complicated?

Sun Feb 19, 2012 12:34 pm

error404 said:


eric_baird said:

It may be that there's a really good reason why we should be pushing kids to specifically learn Python rather than a generic language with a straightforward, guessable, verbally-styled syntax with a minimum of funny symbols, punctuation and formatting conventions, that lets you recite code out loud, and that's designed to be easy to use for beginners, but so far I haven't seen anyone give it. Maybe I missed it.
Perhaps for very early teaching this is relevant, but the reason is that this just isn't how programming works. If you want to teach them something useful, you need to use a useful language to do it. Otherwise you're just teaching the simplest concepts that can fit into such a pared-down syntax.

IMO dumbing things down is never helpful. Kids aren't stupid. Straightforward syntax rules are not a problem.


One reason for choosing Python over some generic made up language is community.  There is a large body of people, a large body of existing code, a large number of books which beginners can draw upon.

As for reciting code out loud?  Words almost fail me.  Is there any evidence that is easier to learn, or that it makes building up programming knowledge easier to learn?  I would imagine that the thought processes behind writing good code are the hard part, not some minor syntactical tic a language may or may not have.

drgeoff
Posts: 9922
Joined: Wed Jan 25, 2012 6:39 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 1:51 pm

I'll preface this by saying that I have never been involved in teaching and I don't have any children, so if anyone responds with "you don't know what you are talking about" they could well be right! Nevertheless I'm entitled to an opinion.

I think a major issue, at least in the UK, is that children now see PCs as appliances,  in the same vein as a TV or fridge.  You buy them to perform functions.  In the case of the PC, those functions are WWW, email, social networking, playing games, writing an essay or presentation for homework etc, etc.  They do realise that software or programs are needed to make the PC do those things (or "apps" for their phone") but those are made by "some company somewhere" that knows about those things, just like TVs and fridges are made by companies that know how to make them.  The average child has no idea that writing a program, even a simple one, could be within his or her abilities.

Also though children (and many adults) may mentally link computers and phones as using programs, they don't associate those "computers" with the myriad of devices around them with software running on embedded devices.  The TV, the DVD player, the satellite receiver, the washing machine, the engine in Dad's car etc.

The RP can change that by exposing children to the fact that there is a lot more to "computer technology" than driving a keyboard and mouse.   The RP is cheap enough that they can "get their hands dirty".  That doesn't mean that having had their eyes opened they will all aspire to be programmers.  But hopefully more of them than at present will find computers in this broader sense to be interesting enough to follow through.

User avatar
SN
Posts: 1014
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: Isn't this all too complicated?

Sun Feb 19, 2012 6:36 pm

Some great views on this thread and some arguments bordering on the ideological techie wars of old.
But we should be looking at this from the point of view of what we are trying to achieve. Which, if i"ve not got this wrong, is to try and produce the next generation of kids interested in being creative with computers - being able to really feel that THEY have made something interesting and cool. Theres no doubt that this engages kids, you only have to look at the ongoing success of construction toys such as Lego. And you need to weave in the need for instant gratification because if its too hard or takes too many steps to get to the point where a box pops up on the screen, then it won"t work. And you can"t force kids down the route of adhering to an unforgiving language syntax which needs a perfect set of non-alphabetic characters to run.
In a nutshell we need the "sexy visuals" combined with the "turn it on and go" experience.
Can Linux/python give us this? I"m not sure, but that is what it needs to hit.
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24149
Joined: Sat Jul 30, 2011 7:41 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 6:37 pm

eric_baird said:


JamesH said:


It's not complicated, but like anything else, you do have to learn stuff, although my personal opinion is you don't actually have to learn that much to use a Raspi.



Well, I think there needs to be a big push on cutting the amount of things that a kid needs to learn before they start doing anything "fun" to a bare minimum. Rapid gratification.

<clip>

But calling calling a programming language "Python"?!? After Monty Python? An old tv show from the 1970's whose name was itself a joke about the name having nothing to do with the show's contents? That's indulgent, nostalgic, in-jokey "GNU is Not Linux" territory, and if I was a little kid, I'd be staring at the smirking adults and thinking that perhaps these guys weren't serious, and perhaps I'd be better off going into some other field. "Python" sounds like a language aimed at paunchy male beardy middle-aged system programmers with large "prog rock" collections.

Names are important, they give uncertain newbies cues as to whether something is designed for the likes of them, or not. "Raspberry Pi" is a nice name for a little educational-market product (fruit, colour, math). Python ... not so much.

The other thing that concerns me about Python is the number of people who seem to love it on a point of principle because it's used in so much Linux software. While I agree that it'd be wonderful if Linux was more widely used, I don't think that we should be using kids as leverage to help us to fight that battle. If kids would find it easier to use a modern, line-numberless powerful, fully-typeable, compilable, BASIC-type language, then we should give them what they'd find most fun and most useful, rather than what we'd like them to have to help us to "push" Linux.



I presume you are not particularly familiar with Python, or indeed Linux, which is fine. Not everyone is (I'm not for example). Here a sequence to get started in Python (note, I am not a Python user)

Start Raspi to the command line. Type Python.

Type '  for i in range(0,9): print "Hello World"   '

and click enter.

Hey presto. Instant Hello World gratification.

As to the name of the language..Wuh? It's just a name, like C or C++ or BASIC, or Cobol, or Ada, or Pascal or Perl or Algol or Forth or Prolog. See here..http://docs.python.org/faq/general.html. That does seen a very bizarre argument for not choosing something - just because of it's name.

Using Python has nothing to do with the pushing of Linux. Linux is used on the Pi because its free and it works, there is plenty of software available, and there was already a working Linux for the SoC. Python is a good choice for beginners because its a multi platform language, with a sensible syntax, not as complicated (unless you want) as things like C or C++, used widely in many projects, and is also free. I'm sure there are BASICS that fulfil some of the same criteria, but perhaps not all.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

adlambert

Re: Isn't this all too complicated?

Sun Feb 19, 2012 7:26 pm

andyl said:



One reason for choosing Python over some generic made up language is community.  There is a large body of people, a large body of existing code, a large number of books which beginners can draw upon.


There are plenty of languages where there is a large body of people ready to help. You can check at Tiobe Index. Tiobe monitor the "chatter" activity on the www that relates to the available programming languages. Python is doing well in 8th position, behind all the Cs and VB with Java permanently at the top.

There are far more books and educational resource for Java, C, C++ and MS Visual ? than there are for Python. Isn't Java still de-facto in undergrad CS? Is was in my time.

If I was learning a discipline to take me on into the profession, then I don't think that I would see Python as suitable. If I wanted to program just for leisure and my own amusement then Python would be on my shortlist. Of course there are plenty of examples of Python being used commercially, but more often than not this is by people already skilled in the classics adopting Python. It's not a primary career language (yet).

Just considering where kids might take new programming skills – perhaps mobile device programming. Blackberry and Android use Java style, iPhone uses Objective-C, Windows phone uses .net stuff. Of course you can use Python with these, but it would be very niche.

If it were me learning for the first time then I think I would go with the QT version of C++. You would get the benefit of a good programming discipline with an industry standard language, Object Oriented, and use of a Framework on to to enhance the basic language, plus a shortcut into getting something really WOW happening very quickly with the added benefit of being cross-platform.

I am not intending to use the Pi to program on (because I am coding daily and have done for years), I think my Son will start on Python, but move on very quickly to something more substantial.

eric_baird
Posts: 37
Joined: Sun Dec 04, 2011 3:42 pm
Contact: Website

Re: Isn't this all too complicated?

Sun Feb 19, 2012 9:14 pm

error404 said:

I'm pretty sure that kids won't be picking up on this same weird connotation you get from the name Python.
Well, hopefully they won't get the references and will just think that those are just another bunch of random technical slang with no actual meaning. But Python has "Spam" and "Eggs" classes, its environment is called IDLE, and the related Google code project was called "Unladen Swallow".

davegb3
Posts: 4
Joined: Sat Feb 11, 2012 10:19 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 10:03 pm


There are plenty of languages where there is a large body of people ready to help. You can check at Tiobe Index. Tiobe monitor the "chatter" activity on the www that relates to the available programming languages. Python is doing well in 8th position, behind all the Cs and VB with Java permanently at the top.

There are far more books and educational resource for Java, C, C++ and MS Visual ? than there are for Python. Isn't Java still de-facto in undergrad CS? Is was in my time.



Yes, but the point about the Pi is to get kids (think 6-12 year olds, not 16 year olds) interested.  Like many here, I learnt Basic at 7, bit of assembler, and started with C about 12 or 13 or so. C or Java would have been completely lost on me at 7 (ignoring the fact that Java at least didn't really exist!).  Java might be undergrad "standard", but as someone mentioned, instant gratification is important.  Java, I need to write at least one class, Python I can write one line, and build up from there.  There's a prompt, so I can try things out without compiling in between.  What language you learn first doesn't matter, as long as it captures the interest.  The first language is 100 times harder than the next, so Python, being simple, easy to read, and instant feedback is a great choice for a first language.  Kids can progress to something bigger later, having maybe played with Python's object oriented features.


If it were me learning for the first time then I think I would go with the QT version of C++.


Yep, I'd probably go a similar route.  But I'm not 7. And I assume you aren't either.  C++ with Qt or whatever-your-favourite-framework-is could be 3 months later, but starting with Python is, in my view at least, a really good idea.

As for the name, I really don't think that matters.  That my first language was Basic - could have been called "Easy", wouldn't have mattered a jot.  I could do things with it. I could write something to solve a puzzle, find a word in a wordsearch - I really didn't care that it was called "Basic".

Just my 2 cents.

Dave.

eric_baird
Posts: 37
Joined: Sun Dec 04, 2011 3:42 pm
Contact: Website

Re: Isn't this all too complicated?

Sun Feb 19, 2012 10:06 pm

Hi, JamesH:

I do hope that current teachers aren't still using "Hello World" as an example.

"Hello World" excited the older members of my generation, who were brought up on manual typewriters and for whom the ability to see pixelly text appearing automatically on a CRT screen on demand was kinda wonderful. IMO, it was already looking a little bit dated when the first PCs appeared. It's a bit 1960's/1970's

Today's kids already have something significantly better than "Hello World" on their mobile phones. They have text messaging, and Twitter, and Facebook. They can already "Hello World" not just to their own screen, but to an audience of potentially millions of other devices without knowing anything about programming languages.

If we want to engage young brains, we have to give the current generation something that's designed to relate to their century, not ours.

I'd suggest a replacement for "Hello World", that's something more like:


text$ = GetNewestMessage("Twitter", "@ladygaga")
PRINT text$


Show that to a kid, press "Run",


> Thank you to the Virgin Media Awards. Because of fan votes we took home 5 awards including best album & track for Born This Way.


, count to four (which should be enough time for them to remember that the GaGa has around 19 million Twitter followers who'd want to be able to receive that information, Twitter in general has ~300 million, and Facebook ~850 million), and then stand back as they fight to get you off the keyboard so that they can write their World's Greatest Social Media Program, become a multimillionaire in two years, and retire off to their own private island.

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24149
Joined: Sat Jul 30, 2011 7:41 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 10:25 pm

I don't think Hello World have ever been that exciting TBH, but it's still  a basic and effective starting point.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

TheManWhoWas
Posts: 50
Joined: Thu Feb 09, 2012 9:11 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 11:05 pm

The more I've thought about this, the more I've started to think that actually a web server LAMP set up is the perfect starting point. Let's face it, in HTML, "Hello World" is:


Hello World


Beat that! OK, not exactly a program, but you get to see it in your web browser. And if you want that Lady Gaga feed, just nip over to Twitter and copy and paste the provided code snippet into your page, and voila!

And as you progress you can learn actual programming with PHP. Then there's JavaScript, MySQL, CSS, client / server, layout, design - the list is endless and allows kids to follow their particular area of interest whether it be more graphic design or dynamic web app. Those that didn't get on with the programming could still get something out of ICT.

And this is actually genuinely useful stuff, not theoretical and abstract. If schools provided all the kids with their own URL, then they could upload and view their work and show it off to friends and family. It would be like facebook, but they could personalise it to their hearts content.

khulat
Posts: 105
Joined: Sun Feb 12, 2012 9:43 pm

Re: Isn't this all too complicated?

Sun Feb 19, 2012 11:10 pm

Actually a proper HTML "Hello World" would be more like:


<!DOCTYPE html>

<HTML>

<HEAD>

<TITLE>

Hello World Program

</TITLE>

</HEAD>

<BODY>

Hello World

</BODY>

</HTML>


We don't want the kids to learn sloppy practices do we?




andyl
Posts: 265
Joined: Tue Jan 10, 2012 11:05 am

Re: Isn't this all too complicated?

Sun Feb 19, 2012 11:10 pm

eric_baird said:

I'd suggest a replacement for "Hello World", that's something more like:
text$ = GetNewestMessage("Twitter", "@ladygaga")
PRINT text$

Show that to a kid, press "Run",

> Thank you to the Virgin Media Awards. Because of fan votes we took home 5 awards including best album & track for Born This Way.


Actually the api for Twitter is pretty straightforward (although slightly different to what you have) and once they know how to install and use a module that example is pretty easy. For example after installing the correct Ruby GEM you have this Ruby one-liner

puts Twitter.user_timeline("ladygaga").first.text

A very similar piece of code can be written for Python and Tweepy (or Python Twitter Tools, or presumably quite a lot of the Python twitter libraries).

However installing the module and knowing how to tell your program you are using that module, is a few steps along the line for a beginner. Even if everything is installed and you get them started at that level, you will then have to go and backfill with more basic, and less interesting, stuff.

However I think it is probably a good idea to show them something non trivial that they can relate to and explain that over the next few months you are going to give them the knowledge so that they will be able to write that program themselves.

foo
Posts: 52
Joined: Thu Dec 29, 2011 12:49 am

Re: Isn't this all too complicated?

Mon Feb 20, 2012 6:59 am

khulat said:


We don't want the kids to learn sloppy practices do we?


Well, you are responding to somebody who also advocated copy/paste programming...

gritz
Posts: 449
Joined: Sat Jan 28, 2012 2:33 am

Re: Isn't this all too complicated?

Mon Feb 20, 2012 7:23 am

Perhaps if we junked the term "programming" in favour of something like "app creation" (awful I know, but it was just a first attempt) then it would stop the young 'uns getting a mental image of beardy men in corduroy jackets. [/not entirely serious but I do think the word "programming has an image problem mode]

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: Isn't this all too complicated?

Mon Feb 20, 2012 7:40 am

gritz said:


Perhaps if we junked the term "programming"


Perhaps if we junked the term "dustman" and made him a "Waste Reassignment Engineer"...

Regarding HTML, by all means teach them HTML and any other web technology, but I believe that if we want to teach programming, we need to be teaching something turing-complete. ie we need to teach a programming language and not just a mark-up scheme.

Sure you could teach PHP and Javascript, but then it's all confused behind some HTML project you're developing.

jools
Posts: 24
Joined: Sun Feb 19, 2012 9:47 pm

Re: Isn't this all too complicated?

Mon Feb 20, 2012 8:47 am

I've been reading the posts in this thread with much interest yesterday.

These days I am very much a geek and do command line linux, but I have heard the plea on these forums from several places for a machine that will boot straight into Python or Basic.  In my view this plea needs to be heard and fortunately (by dint of the SD card) that will be possible, I guess.

We would do well to remember the very first thing that fired our interest in computers. I would venture that for many of us that was running a simple program that wrote words or a pattern on a screen or even actuated a stepper motor.

I think the hardware designers of this project have grasped the nettle on this one but I am concerned about the software 'drift' on these forums: guys this isn't meant to be yet another linux box. Yes it's nice that it hasn't got Windows on it (yet) but you need to see that the OS can only be a means to an end with this one.  From an educational standpoint this device needs a simple interface and language that will do pretty and clever things on the screen and actuate LED's and server motors. Cl;early it will also be able to do much much more than that if the user wants, but some here seem to be trying to argue that because you can 'tinker' with Linux then the educational role is therefore fulfilled. That isn't the case in my view.


User avatar
grumpyoldgit
Posts: 1452
Joined: Thu Jan 05, 2012 12:20 pm

Re: Isn't this all too complicated?

Mon Feb 20, 2012 9:19 am

I'm not sure how easy you want it. The distro we have been given so far takes you to a login prompt. After logging in you just type Python. That's it. If the little kiddywinks can't do that they certainly aren't going to be able to type in some code. Surely the whole point is that students haven't been exposed to a command prompt for the best part of 20 years and that the Pi is an attempt to go back to basics.

Return to “General discussion”