Ask Slashdot: Best Strategies For Teaching Kids CS Skills With Basic? 215
beaverdownunder writes We're currently working on developing a teaching platform based around our BASIC interpreter DiscoRunner, and we would love to hear from Slashdot readers as to what methods they've used in the past to teach kids computer science concepts — which worked, what didn't, and why? This will obviously be invaluable to us when it comes to working out the lessons that will be taught in our fight-to-save-the-world-from-evil learning environment, and we would be eternally grateful for any scraps of wisdom you could toss our way.
Offer more streams (Score:2)
While your saving the world idea sounds exciting, it won't appeal to a large segment of your audience. Give them a choice of some other options, maybe something more social.
Re: (Score:2)
I've found that kids will be much more interested in programming if they can create games, because almost every kid on earth enjoys playing them. That's pretty much what I did when teaching myself how to program (my first language was actually AppleBASIC) back in grade school, and this continued even through college - when I had a choice in my projects. I found I was much more willing to challenge myself with difficult problems when I was interested in the task at hand, rather than just completing some ra
Re: (Score:2)
True - which is why Gamemaker is installed often in classrooms. Gives you a running game in basically an hour. After that, you get to add stuff and then you start programming.
Re:Offer more streams (Score:4, Insightful)
While your saving the world idea sounds exciting, it won't appeal to a large segment of your audience. Give them a choice of some other options, maybe something more social.
Perhaps - before you even attempt that:-
Fix those point and you'll have a product that stands head and shoulders against the competition. Which isn't hard - most of the edutainment market is utter crap (I work with a large number of schools that buy utter shit on the basis of "social-networking" merit points)
Until then it 'seems' like you (Melody and Anne? [founderdating.com]) are just spamming Slashdot to promote a 2 month old project.
Not that the idea isn't without merit - it's just that the "edutainment" market is overcrowded with "outsourced" get-rich-quick, all-froth-(and social marketing) and-no-beer closed-source schemes knocked-up-in-an-afternoon that leave a trail of broken promises in schools already hard pressed to do the bare minimum with their tiny budgets
Good luck
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" ~ Edsger W. Dijkstra
Re:Offer more streams (Score:5, Informative)
It's Melody Ayres-Griffiths. She's promoting her new (started setting ip up in December) pixelwitches [pixelwitches.com], which will teach you "training in graphic design, music / audio and videography on Macintosh and Windows-based PCs for $97 per hour." And let's not forget drupal and wordpress [pixelwitches.com] work.
But from the look of their discorunner site (hint - she used to do music stuff) she needs someone to tell her that the '90s wants their butt-ugly wordpress theme back.
Archive org shows that the original owner of discorunner.com let it expire in the spring of 2014. It was taken over by the new owner on January 15th of this year. The previous site had to do with ... wait for it ... jogging.
Slashvertisement, pure and simple.
Re:Offer more streams (Score:4, Interesting)
It's Melody Ayres-Griffiths.
I wasn't sure if it was Melody, or her partner April [pozible.com]. I know 'of' them (I have a voluntary position on a community funding body, so I've seen previous "software" by them) - so I chose my words carefully when describing the "market", the nature of some (many?) of those trying to, um, mine it - and what I'd want to see before I'd vote in favour of funding it. Melody(?) has previously promoted this latest 'project' on /. celebrating 1000 downloads (by who?).
Whois showed the current registration was recent , hence my comment about, um, young code.
DiscoRunner is different because:-
Yes, I'm a jaded cynic (and Australian).
Re: (Score:2)
I believe they're both involved, but the two sites (discowhatevah and pixelwitches) both give Mel as the contact.
BASIC programs are saved as text files (revolutionary! paradigm shift!! No more .BAS binaries!! [sigh])
Yeah - that's about as "new" as my pre-PC Radio Scrap computer.
Re: (Score:2)
I believe they're both involved, but the two sites (discowhatevah and pixelwitches) both give Mel as the contact.
I remember Mel, kind of full-on (shades of Christopher Skase) - she's the does the thinking and talking. Pixelwitches how, um, original [pixelwitch.com].
"those that can do, and those that can't, teach". i.e. advertise your WordPress version, don't keep it up-to-date, use images where ever possible instead of pesky text, alt tags are for wimps, CSS means make shit up - maybe it'll parse [sigh]. I'm guessing "select" contract work means "if you're gullible".
Dear Slashdot, please do my homework - I've got a killer idea for
Re: (Score:2)
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" ~ Edsger W. Dijkstra
1975 called and they want their very out of date quotes back.
Seriously, that comment was made in 1975, when the state of the art in BASIC was more or less "goto". By 1982, BASIC variants with proper named functions and procedures existed. It also reduced the impact of line numbers drastically with th
Re: (Score:3)
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" ~ Edsger W. Dijkstra
1975 called and they want their very out of date quotes back.
And you're still banging the BASIC is good - oh, look it's now in 256 colours drum? I guess in your fanboi haste you missed where I linked to the Wikipedia page on BASIC - but don't let it stop you from spewing realms of your BASIC trivia creds (you forgot the beauty and joys of VisualBASIC). BASIC has new features and Barbie does IT. Grow up and eat your own dog food - 'cause 1988 wants BASIC back (and it can keep it). Maybe try getting children interested in any version of BASIC when they can choose from
Re: (Score:3)
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" ~ Edsger W. Dijkstra
1975 called and they want their very out of date quotes back.
Actually, this is only one from a series of "definitions" Dijkstra made for a humorous glossary of computer languages on an old mailing list.
Seriously, that comment was made in 1975, when the state of the art in BASIC was more or less "goto". By 1982, BASIC variants with proper named functions and procedures existed. It also reduced the impact of line numbers drastically with the "RENUMBER" command which renumbered and tracked gotos and gosubs (excluding computed gotos). That was BBC Basic.
By 1988 QuickBasic 4.5 was released (later adapted to be qbasic), which contained proper nested blocks, and made line numbers completely optional. I'm sure there were earlier versions doing such things (certainly earlier versions of QuickBasic), but many people here will be familiar with this one and its derivatives.
The system alluded to in the summary/question is an Apple ][ BASIC emulator. It is not BBC BASIC. It is not QuickBasic. Apple ][ BASIC. With emulated Apple ][ display hardware. This is not something that will grab kids' attention.
Besides, there comes a point when either you've changed BASIC to such a point that it's not BASIC any more, or it's a clumsy morass of diffe
Re: (Score:2)
Teach them GOTO! (Score:3, Insightful)
GOTO is well-known as a beneficial logical statement. I suppose in this day and age, we're going to need something like this:
Give students license to solve problems (Score:3, Insightful)
Re: (Score:2)
Deja Vu...
Don't confuse them (Score:5, Insightful)
Re: (Score:3)
Why did he say that? Because BASIC teaches people to only 'get it to work.' They don't start thinking about what could go wrong, they become copy-paste programmers. To overcome this, you need to start thinking about every possible case.
As far as teaching kids.....you are missing a lot if you don't lo
Re: (Score:2)
On the flip side, near instant gratification of "getting it to work" is good for education - keeps students interested and involved if they have quick successs.
Of course, once it is "just working" *then* you can start getting your students to think about edge cases, logical errrors, validating user input, etc.
Brain games for kids & adults using Timex/Sinc (Score:3)
I think I owe everything to this book:
http://www.amazon.com/Brain-ga... [amazon.com]
26 short (1-2K) games/puzzles - you have the source, can you solve the puzzles?
Chess (Score:2)
the changing semantics of languages and APIs will change — best way to teach the sort of mental discipline is to abstract it to the level of chess —
then using something like SDLTRS to run an old version of TRS80 or Apple II Basic, and have them solve simple problems (like Towers of Hannoi, generating Prime Numbers, Loop and Display their name 1000x on the screen).
keep it simple.
2cents
jp
Use Logo (Score:4, Insightful)
Implement a turtle-based drawing API and build a curriculum that introduces programming concepts with turtle graphics.
first the interface and now ..... (Score:2)
yes I get it. You have a child and have the urge to tell the world about it. .... How about you come back in 2 years and ask the following.
This is Slashdot. It used to be news for nerds, shit that MATTERS
"How do I get my child to be a kernel hacker since he/she already outgrew fucking basic !?!?!?"
Look he/she made potty on the toilet .... twitter that shit!
Does it have to be BASIC? (Score:2)
I cut my teeth on BASIC on an Apple ][+, and wrote my first professional-grade program (a math tutor) on it when I was 12. I have a lot of fondness for BASIC. These days, if I were to teach a kid any language, it would be Python. It has the easy syntax of BASIC with the added advantages of (a) a rich enough API set for everything from web development through machine learning (b) being an actual marketable skill in places like Silicon Valley.
I'm not saying BASIC is a bad choice, just that I think there are m
Re: (Score:2)
" These days, if I were to teach a kid any language, it would be Python. It has the easy syntax of BASIC with the added advantages of (a) a rich enough API set for everything from web development through machine learning (b) being an actual marketable skill in places like Silicon Valley."
Not to mention that whole "white space is significant" aspect, so as to give them early knowledge of the arbitrary nature of working with business types in the future...
A. (only 1/2 a :-)
Take if out of the machine (Score:2)
Here's a template: Split students into groups of three. One person must come up with non-ambiguous instructions to complete a task, such as taking balled up sheets of paper out of a b
TRS80 Color Computer (Score:2)
For the love of God don't use BASIC (Score:2)
Re: (Score:2)
Well, with pointing to Closure and Scheme and then claiming it teaches you how a computer works, you are far away from those guys who claim you need to program the bare metal to learn just that.
BASIC is an excellent language, as long as it is not a VisualBasic variation. No idea from what the hate comes.
BASIC has basic datatypes, like float, int, string. It has functions, built in and user defined, arrays and "basic" file/input/output capabilities.
More you don't need to start, and it has a REPL command line
Basic? are you killing future competition? (Score:3)
Are you actively trying to make them future TERRIBLE programmers?
Guido van Robot! (Score:3)
http://gvr.sourceforge.net/ [sourceforge.net]
Why reinvent the wheel. Check out Guido van Robot, a programming language that teaches all the basics of programming (problem solving, sequence, iteration and decision making).
Best yet, it already has fun progressive lessons that are perfect for teaching in the classroom.
http://gvr.sourceforge.net/les... [sourceforge.net]
Whatever you do, remember, start with sequence, then iteration, decision making and ultimately wrap it up with problem solving.
Teach them mathematical logic first (Score:2)
Start with the basics. Teach them the foundational mathematical principles so that they have a command over the base ideas before throwing them into a text editor with a strange new language/syntax. If you want those kids to really learn CS, you need them to understand the math first. I mean, if the goal is to show kids what computers can do with code... then just throw them into the code , but if the goal is for them to understand how they're doing those things... you should start with mathematical logic.
The BASIC Book (1985) (Score:2)
Check out The BASIC Book [tedfelix.com], an oldie-but-goodie by Seymour Simon. Nice-and-simple 32-page illustrated intro to BASIC!
Easy (Score:4, Interesting)
1. Drop the Applesoft BASIC clone.
2. Create a programming language that natively interfaces with Facebook API, Minecraft API or whatever other software project they actually care about.
3. Show them a "Hello world" example.
4. Wait five minutes.
5. Classroom full of programmers.
seriously? (Score:2)
Make it fun (Score:2)
Don't bother trying graphics and video games - when they realize how much time and effort it takes, they will become very discouraged.
Do something like an adventure game, magic eightball or eliza variation.
Why (just) BASIC? Mix in HTML/CSS/JavaScript. Better yet, do Arduino projects and get both programming and electronics.
Basic:tedious, user unfriendly, not problem orient (Score:2)
Basic as a language is tedious, user unfriendly, and not problem oriented. Java is a lot better. My kids 6. and 8. grade took Stanfords CS101, and I was truly impressed with how fun it was for them, as well as what they could accomplice.
Everything is done right in the browser. Try it out for yourself. Khan academy has tried a "fun game" in java approach, but this is much less focussed and kids seem to tire of it as soon as they have made the limo break the sound barrier.
1. A lot of graphical processing, lik
negative comments? (Score:4, Informative)
Re: (Score:3)
BASIC was what you described... 30 years ago. Today, we have better languages that go about "removing all the complexity" in a better way. Python, for example.
Re: (Score:2)
I see a lot of negative comments pertaining to teaching basic as a first step in understanding how to code. I respectfully disagree. I believe that basic removes all of the complexity that gets in the way of learning pure logic skills.
I kind of agree, it worked for me.
When i was 12, i self taught Qbasic and wrote a simple program. 10 years later, i went back into programming and self taught C, a year after that i learned C++.
"Self taught" is the key. Most people cant achieve knowledge/skill in an area, unless they have the interest and a drive to do so. Programming isnt for everyone. However, looking back, i honestly believe a "programming" lesson at school could of changed my careerer, regardless of the language.
Now my programming skill
Please do not abuse your children... (Score:3)
... by trying to teach them the worst abomination of a programming language under the sun. Even a good macro-assembler is better. I also strongly advise you to stay away from Java and JavaScript. These languages are only for experts that already have serious skills, all other develop very bad habits using them. Possible candidates if you really want to teach them are Python, Ruby and maybe Lua. But seriously, CS concepts are not something you teach with a language, that would be like teaching them to use a pen of a specific color instead of teaching how to write.
Re: (Score:2)
With a macro assembler you can produce an infinite number of run time errors. No beginner will graps what is going wrong.
As bad as BASIC might be, it is certainly 100 times better than assembler.
I would use a REPL language, likely Groovy. Another alternative would be SmallTalk, but I guess the "jump into it" might be to hard for one who never coded.
Why the hell has no one suggested Lua? (Score:2)
Pick another language (Score:2)
BASIC teaches concepts but really isn't a usable skill in the marketplace anymore. Try Ruby, Java or even C.
BASIC?! (Score:2)
Best Strategies For Teaching Kids CS Skills With Basic?
Coming soon to a theatre near you.....
Re: (Score:2)
CS or Programming? (Score:2)
These really aren't the same things. If you want to teach the computer science, the best thing you can do for them is teach them math instead of BASIC.
If you're talking about programming, the best strategy is to find something they really enjoy doing and show them how they can use programming to solve a problem that involves that something. It's a lot easier to teach someone how to use a tool if they have a practical use for the tool.
Basic error (Score:2)
You've already failed miserably (Score:4, Interesting)
1) Are you trying to teach CS to children? Is this the goal? Have you considered asking whether people with legitimate pedagogical sciences experience and studies have identified methods of teaching children topics of this type?
2) Are you asking if there are other tested methods of teaching children computer science which have proven effective that can be adapted to the tool you want to use?
3) Are you in love with a certain tool and while it has almost no practical value to anyone else, you considered it might be a great way to teach kids and now you want to see how you can justify the existence of such a tool (which should simple be, it was fun to make) by trying to use it in CS education of children because "Hey back in the 80's I used AppleSoft Basic and learned from that!"
4) Have you stopped for a minute to decide whether you're narrowing your scope so much by choosing a specific tool and language that your first goal should have been "How do I teach kids CS?" and then "Are there any learning platforms already available for this?" and then "What are the benefits of making a new learning platform using a language like BASIC when the rest of the world, using well funded pedagogical studies have chosen alternative approaches?"
5) Why are you trying to choose a language as a tool. You want to teach principles and things like linked lists and design patterns just are damn near impossible to implement in your language. Any form of real math is also shit in BASIC. Yes, we managed to do these things back when a PASCAL compiler cost $400 and a cheese burger cost $2 and BASIC was free. We have moved on.
6) What are you actually hoping to teach with BASIC? Are you trying to teach them how to draw a line on a screen? Are you trying to teach them to do math? Teach them to do something more applied? What kind of tasks do you actually plan on teaching them? Did you honestly put any thought into this at all.
I know I'm tearing you up here, but I hope you'll consider it tough love. You're trying to mess with children's minds. This is more than just a fun toy... you need to consider the implications of things like "If I teach them BASIC today, will it actually assist in building interest in kids that otherwise would have never programmed or will it chase off the kids who thought it might be fun but were scared to try and now will never try again because it was too nerdy."
There are people who spend decades researching how to introduce topics like this into schools. They don't just say "Hey wouldn't it be great if we made them play with this for a bit!". These people instead are educated not only as engineers but as school teachers. Most of them have at least one masters and one bachelors and they think in terms of "How can we most productively introduce a topic like programming and CS to children" and then they research it with teachers, parents and children.
I think you are very cool for being interested in getting involved.... I hope I gave you some food for thought and I really hope you take your ambitions further and accomplish your goals... once you figure out what they are.
Re: Lock them in room with books about BASIC (Score:5, Insightful)
That, and give them a problem to solve. Better yet, let them find a problem to solve.
If there is no drive (i.e. "I just want to learn how to 'program'") they will learn nothing.
My kid is 7 and is getting pretty darn good with Java... Not because he wanted to learn to program, but because he wanted to mod minecraft. Programming was a side-effect to solving a problem. Now he loves it for what it is... He made the initiative on his own and he's much more appreciative on what he accomplishes.
Re: (Score:3, Interesting)
That, and give them a problem to solve. Better yet, let them find a problem to solve.
So much this. Programming is a practical skill, not unlike juggling. There's ultimately very little beginners need to learn, the bulk is merely practice and experience.
Good beginner problems, unfortunately, are really difficult to find. My go-to problems are "math quiz", "triangle", "pyramid and diamond", "NIM two-players" and "NIM one-player". "Math quiz" and "NIM" are self explanatory. "triangle" and "pyramid and diamond" need a bit of explanation. Essentially the student is challenged to accept a h
Re: (Score:2)
While we're on the subject, that should be "needlessly pedantic".
Re: Lock them in room with books about BASIC (Score:5, Insightful)
"If there is no drive (i.e. "I just want to learn how to 'program'") they will learn nothing."
One should not discount the motivations of others. "I want to learn how" can be just as effective as "I want to mod minecraft" (if not *more* so).
A.
Re: (Score:3)
In The Netherlands the standard installation in classrooms nowadays is "Gamemaker". You can teach kids a lot about the first steps of programming while they get a game up and running. Takes them at most an hour for a basic tutorial, and then they can add stuff.
Re: (Score:3)
>shudder<
I really don't like Gamemaker. The presence of a GUI doesn't immediately make something "visual". They failed to abstract away the most unnatural parts of code, and then hidden away crucial parts of the logic. Why do you have to use a "score" object for your lives? Renaming numerical variables as "score" has no benefits whatsoever, because the default action (set) runs counter to our understanding of scores. Scores may be increased, they may be decreased, and they may be set to zero. The idea
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I wouldn't. While 7 is unusually young, a lot of Slashdotters weren't much older when they (on their own) learned to program. Under 10 is pretty common. I was around 9. I've seen several people here say they were about 8 when they started programming.
Kids are pretty damn amazing. Don't be so quick to underestimate them.
Re: Please, DIAF (Score:2)
Re: (Score:2)
Re: (Score:2)
Because there's no reason to learn programming unless you're going to make a living at it?
Maybe it's a useful set of tools for viewing the world and solving problems.
Or maybe it's just plain fun.
Yeesh.
Re: (Score:3)
Hint - she only started to get set up over the last few months. This article is a slashvertisemen
Re: (Score:3)
Isn't it easier to just take a question at face value?
While you might be right about the motivation, if you're correct then perhaps it's something to be taken up with the editing staff? You could add your voice to the other commenters headed in that direction.
(Aside, the market will ruthlessly sort out whether they provide a service worth the prices they're asking. Me? I find watching the futile struggle from a distance can sweeten that bilious taste in your mouth. But be warned - it can backfire if they su
Re: (Score:3)
As I pointed out, "This whole 'OMG if my kids can't code they'll be disadvantaged for life' stupidity has to be called out for what it is." And that includes those trying to profit from it in various ways - and not just the big boys either.
This is a blatant slashvertisement - that doesn't mean that it's in any way approved by the editors. It means that it's an article that was submitted by the submitter with the express purpose of pimping her new project.
So, submitting it, it's fair bait for getting whack
Re: (Score:2)
As I pointed out, "This whole 'OMG if my kids can't code they'll be disadvantaged for life' stupidity has to be called out for what it is."
Uh, oh. Sounds like *someone* only has a single skill and is worried about their future job security!
Yes, those kids will be disadvantaged. Programming and related skills offer numerous advantages regardless of their future career or station in life.
It does not make much difference what a person studies. All knowledge is related, and the man who studies anything, if he keeps at it, will become learned. --Hypatia of Alexandria
I'm a firm believer in the value of interdisciplinary study. Even if those kids never touch a computer again, that experience will undoubtedly enrich future learning experiences, creative exercises, and other aspects of their lives.
Re: (Score:2)
Uh, oh. Sounds like *someone* only has a single skill and is worried about their future job security!
So, instead of making a counter-argument, you attack my motives? Wow, just wow.
It does not make much difference what a person studies. All knowledge is related, and the man who studies anything, if he keeps at it, will become learned. --Hypatia of Alexandria
He's dead, Jim. But seriously, not all knowledge has equal value to the individual. Every pursuit of knowledge in one domain has a "lost opportunity cost" in that the time and energy could have been devoted to other knowledge or endeavors. And then there are the idiots who study astrology, theology, etc.
Re: (Score:2)
Those who want to learn it on their own, will learn it on their own, when they want to.
Well, you could say that about absoloutely anything, and if it's the case then school as a whole is pointless[*]. I think it's every bit as important to teach it as it is to teach maths, sciences, history, native languages, how to make stuff, foreign languages and whatever else is taught. It provides a way of thinking which is not generally taught in other subjects. And dince were surrounded with such things it's also tea
Re: (Score:2)
It's a dead end, Jim [bloomberg.com].
Re: (Score:2)
That's what electronic engineers said. Now even Apple outsources the internal design of their electronics to ODMs.
Re: (Score:3)
By the time these kids grow up, "programming skills" will be obsolete
The essential skills are the same now as they were 60 years ago. What makes you think that will change in the next 10-15 years?
Re: (Score:2)
Right now, a lot of us sit in front of a desk, while oil does most of the job for us(see http://en.wikipedia.org/wiki/E... [wikipedia.org]).
It might change in one or 2 decades.
Re: (Score:2)
And who, exactly, would have been hurt by learning to use a slide rule to solve problems 40 years ago?
Sure, the slide rule skills themselves aren't terribly valuable - although it's not a bad tool to reach for occasionally if you have one on your desk - but the problems and solution methods haven't really changed. Math is still a pretty damn useful thing to know.
Programming has been pretty similar over the same timescale. Specific tools come and go, but the general problems and solutions have only evolved.
Re: (Score:3)
Slide rules are an excellent example because they went from a must have to a nice to have to a wtf is a slide rule.
The demand for fortran programmers is a lot lower than it was 40 years ago. And yes, the problems have changed, and the old solutions no longer work in new problem domains. Nobody is developing web sites or apps in fortran or with a slide rule.
The simple fact is that software development will continue to be off-shored to wherever is cheaper, until such time as it is automated and all those c
Re: (Score:2)
By the time these kids grow up, "programming skills" will be obsolete.
That's what they told me when I was at school. I'll be sixty this year. I don't see programming becoming obsolete any time soon.
Re: (Score:2)
By the time these kids grow up, "programming skills" will be obsolete, same as slide rules became obsolete a generation ago. Let the kids be kids, and concentrate on the basics. There are too many supposedly intelligent adults here on slashdot who still can't tell the difference between "brake" and "break", "rain", "reign", and "rein", etc.
"Let the kids be kids"?!?!? Are you serious? What is it that makes arithmetic suitable for kids? Baby chimpanzees don't do it -- it's something we've created, and we teach because we believe it has value.
Spelling may be an issue (in no small part because English is a stupid language*) but using that as a catchall excuse for dropping [[insert name of subject here]] from the curriculum has no logical grounding. The problem with English language lessons is not that they're too short, it's that the techniques u
Re: (Score:2)
PixelWitches provides one-on-one training in graphic design, music / audio and videography on Macintosh and Windows-based PCs for $97 per hour.
Oh, and also drupal, wordpress [pixelwitches.com]
Judging by how ugly her Discorunner website is, they need to learn, not teach, graphic design. Then again, it must take some "skill" to make wordpress look more than usually like shite.
Re: (Score:2)
Many programming skills are already marginalized. I love writing in assembler because of the clarity (what I ask for is what I get - or else!) but the number of jobs, even in the embedded space, is declining. And how's the demand going for dBase, clipper, and Foxbase programmers? Adobe AIR? Object Pascal? ColdFusion? ActiveX?
But I don't have to predict the future to know that off-shoring is going to continue, and that programming is fast becoming a mooks game.
Re: (Score:2)
I love writing in assembler
Now that's very interesting, but I for one prefer to write in compiler.
Re: (Score:2)
I hate to break it to you, but those skills transfer really, really, easily.
Do you struggle with, say, bounded iteration every time you learn a new language? I seriously doubt that!
I've always maintained that anyone can learn how to program. Equally, I've never wavered from my conviction that it doesn't matter what language you learn first, the essential skills easily transfer to other languages. (Though some languages, and paradigms, are admittedly more beginner-friendly than others, with imperative lang
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
The book "Decline and Fall of the American Programmer" was written in 1992. The author got it wrong because he didn't understand how the Internet, smart phones, and now "smart everything" were going to push software into so much of our lives. He was wrong in 1992 and you can find slashdot articles saying
Re: (Score:2)
FTFY
Re: (Score:2)
What's always amused me is that Dijkstra's hatred toward BASIC was originally hyperbole, and much of "Go To Statement Considered Harmful" Dijkstra himself later regretted, explaining that his disgust is really toward misuse of any construct, of which GOTO was the prominent example.
Of course, later retellings of the story have continually inflated the horrors of BASIC, forgetting all about the context of Dijkstra's statements.
it isn't a real question (Score:2)
Re: (Score:2)
Is it even a real issue? Cynicism suggests that the idea of teaching programming in grade school is a great way to employ some CS grads as teachers, lesson planners, and system administrators and the like, for a while, until it fails miserably and everyone becomes disillusioned with the idea. Businesses, especially tech companies, think that if this works, they can drive down the cost of labor even more,
I think that it could work, but it's too early. Ancient civilizations didn't teach literacy to every
Re: (Score:2)
But yes, absolutely, this was spam to promote Melody Ayers-Griffiths new pixelwitches.com "training" at $97/hour for things like wordpress, drupal, graphic art, music, whatever, and kids "group learning events." Though none of her experience [founderdating.com] is geared towards that. Being an Apple service tech for a decade doesn't qualify you much for either teaching or programming.
A BASIC fan's step-by-step curriculum (Score:3)
Step 1: Show them the BASIC interpreter
Step 2: PRINT, INPUT, IF, GOTO, END
Step 3: Show them Python, C++, or even JavaScript, if you hate them
I know it's not really what a platform-builder wants to hear, but please use BASIC only for purposes for which it's the best tool. It's ideal for highlighting the often-missed initial concepts, such as the facts that statements are executed in order, variables can store information and change, and that certain statements can change the program flow. Those core ideas ar
Re: (Score:2)
I know it's not really what a platform-builder wants to hear, but please use BASIC only for purposes for which it's the best tool. It's ideal for highlighting the often-missed initial concepts, such as the facts that statements are executed in order, variables can store information and change...
In declarative languages instructions are not executed in order (indeed, modern compilers frequently reorder instructions and, as we progressively move away from Von Neumann architectures, very few computing environments will guarantee instructions are executed in order). In functional languages variables cannot change. If those are the ideas you've internalised about software, you aren't going to go very far.
BASIC is just the ultimate bad language. Like King John, it has no redeeming features.
Re: (Score:3)
Those are subjects for a later lecture.
Re: (Score:2)
BASIC is just the ultimate bad language. Like King John, it has no redeeming features.
Next you're going to claim that Hitler never did anything good. He did - he killed Hitler.
BASIC might be bad, but for kids, why not?
Still, this slashvertisement needs to die.
Re: (Score:2)
BASIC is just the ultimate bad language.
It's TURTLES all the way down? (SMALLTALK). I started with COBOL because PCs weren't around then, then BASIC when IBM released the PS/2 - because TURTLE wasn't around. All my kids started with TURTLE (none are programmers, but they can program in a multitude of languages), and my grandkids with Python.
tl:dr? BASIC sucks badly for teaching children anything but an aversion to thinking like a programmer - it was good when it was the only quick entry to programming. Which is probably why it's Bill Gates only
Re: (Score:2)
Re: (Score:2)
BASIC has one major advantage over every other language out there: absolutely no boilerplate, and absolutely no hidden intelligence in the interpreter. Everything that makes the program run is visible in the code, and everything in the code does something lesson-related in the most minimal programs. Contrast with C, which requires defining a main() function before the student knows what a function is. This simplicity and obviousness makes BASIC the perfect tool for demonstrating simple and obvious programs, but it's inelegant for learning any actual computer science concepts like memory management, design patterns, or data structures.
Python works almost as well for this learning stage.
This is an example of a valid 2-line Python program:
x = 1+1
print x
Here is another valid program:
def oneplusone():
return 1+1
print oneplusone()
This next program will crash at line 1 with "NameError: name 'oneplusone' is not defined":
print oneplusone()
def oneplusone():
return 1+1
The one stumbling block with Python is that indentation matters. Copy-pasting your classmate's code into your program can easi
Re: (Score:2)
The indentation is the main reason I'd avoid Python for the day-one lesson. I'd also note the empty parentheses and the colon in the function definition as being boilerplate and an easily-missed detail, respectively.
Minor points, certainly, but points nonetheless.
Re: (Score:2)
Both of those are absolutely awful beginner languages. BASIC, in contrast, is a really good fit as it has no "cruft". (If you've ever taught Java as a first language, you know exactly what I'm talking about.)
Re: (Score:2)
Traditional BASIC was a lousy language for learning to program. Modern C++ is, if anything, worse.
I can think of several reasonable starting points ranging from MIX, through Scheme, C, and Smalltalk (Squeak). Each have their benefits, but were I designing the class I'd probably start with MIX, move onto Scheme (probably Racket) and then do most of the work in C, with an end segment on how to adapt your C code to run under C++. C++ would be an advanced course...or two. Or you might make Erlang your first
Re: (Score:3)
Before that I had a significant experience writing programs, at least for a 13 years old in the nascent PC world. The problem was that it was very mechanical. The problem is that most kids in the 9-12 year old range do not have a great deal of abstract thinking skills, so can't really program computers,
Re: (Score:2)
My apologies for posting as AC by mistake.
Re: (Score:2)
This.
Kids should be exposed to programming, just as they should be exposed to the violin: See if they embrace either and if not, try next Legos® and Crayolas®.