Ask Slashdot: Best Strategies For Teaching Kids CS Skills With Basic?
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.
Slide problems under door. If solved correctly, they get fed. Few years of this and you have a BASIC pro.
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.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
GOTO is well-known as a beneficial logical statement. I suppose in this day and age, we're going to need something like this:
Thanks to the War on Drugs, it's easier to buy meth than it is to buy cold medicine!
My daughter took a programming class using Basic during her freshman year. I encouraged her to take it, so she could see that there are multiple ways of solving problems. Unfortunately the teacher was having none of this. He dictated to his students exactly how he wanted them to write the programs. This was very disappointing and incredibly discouraging for my daughter. Let the students struggle a little bit, and let them find ways to complete their assignments. When they're done present some of the students' solutions to the class, and talk about how they solved the assignment and discuss alternatives. You'll need to be respectful. People that are new to programming can be pretty sensitive about their code, so make sure you take that into account. You don't want to make somebody feel stupid, especially when they probably worked very hard on completing the assignment. Lastly, maybe you should consider a different language. Maybe you should consider Python or even C++.
People have been saying this for 60 years, and the reverse has happened. As programmable devices continue to propogate the need for programmers only grows. It's becoming standard for all medium to large sized businesses to have a software department, so they can get the software they need to run their business developed. I don't see that trend reversing anytime soon.
Firstly, don't confuse the students by telling them it's Computer Science, if it's only simple programming.
I think I owe everything to this book:
http://www.amazon.com/Brain-ga...
26 short (1-2K) games/puzzles - you have the source, can you solve the puzzles?
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
Implement a turtle-based drawing API and build a curriculum that introduces programming concepts with turtle graphics.
I am becoming gerund, destroyer of verbs.
FTFY
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
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!
Everyone who buys Wild Hunt will receive 16 specially prepared DLCs absolutely for free, regardless of platform.
beaverdownunder isn't really trying to ask a question at all. He just wants to hype his own Basic called Discocrapper (no point in giving him the satisfaction of repeating the actual name). This entire thread isn't about any valid ask Slashdot question, it is just a spammy link.
I'm an American. I love this country and the freedoms that we used to have.
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 much better ones.
Finding God in a Dog
The first things anybody needs to learn about programming are generic in terms of language. They're concepts. Branches, loops, function calls, and maybe even classes and delegates are all within range of exercises off of the machine. This approach can go well beyond basic. I'll describe it generally but apply as needed.
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 box one by one and putting them in another box. One person executes the instructions exactly as they are written. One person catches mistakes in the execution where something is ambiguous that shouldn't be. They can rotate roles twice, so between each time there's a chance to stop the activity and have a quick class discussion about things that went wrong in different groups. Next iteration, they should each improve upon their instructions according to mistakes made by the whole class last iteration. By the third iteration, if there's not a perfect algorithm out there then the best will still be a short instructor's change away from the goal.
Design exercises like this carefully. For example, the above exercise focuses on loops and branches, but those concepts can be further divided. Function calls can be taught by having different groups perform different tasks, but they have to "call out" to each other to complete a more complicated task together. Classes can be demonstrated literally, whereas one class has one role it develops for in its exercises and another class of students develops another. Then, they have to find a way to work together with simple messages like notes.
Before they ever touch a development environment, they can already have the conceptual foundation to understand what they will be taught. Instead of introducing functions to the sound of, "I don't get it!" you can have students asking about the concept ahead of time. For example, "This assignment would be so much easier with loops! But we have to finish it with branches."
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?
Required reading for internet skeptics
> 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.
I don't think you can predict what is going to happen in the future. Please prove I am wrong by giving me the winning lottery numbers.
Whoopse didn't read the first sentence.
Ack Damn,
Ok so what works. Graphics! Logo/Turtle in small basic made it really really really simple to teach loops, conditionals, how objects and variables work, etc.
Without visual aids most students can't grasps the concepts. Remember there are three types of learners, Sight, sound, written word. Sight learners are the most common.
What I would normally do is terminal write out, write in, change colors, strings, math, and then right into logo/turtle. Once they learn most of the concepts make a game using the graphics they have learned.
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. Hell, if you had learned to program back when slide rules were still common you probably would have learned FORTRAN. FORTRAN is still valuable to this day, because the problems haven't changed and the solutions still work. At most, you'd move to something like C++ or OpenCL for those problems, which is a smaller change than moving from a slide rule to a graphing calculator or computer math package would be.
-- The act of censorship is always worse than whatever is being censored. Always.
This is what I leaned on when I was 10 - and I can't think of anything better to teach kids basic programming skills. This was a operating system that had basic built in, and you just programmed right into the OS, and ran right from the OS. I can't think of anything simpler. The simplicity of it also allowed for the learner to just focus on logic and programming. I truly think it's the best possible learning tool. Even graphics were simple - nothing fancy - just lines and set/reset statements, paint statements... All this stuff was on a single page - the same one that the text was written on. I loved it - and I still do, perhaps for nostalgic purposes. But I swear by it. You can run it in an emulator, you just need the ROM, which is pretty easy to find. Get the "Extended Basic one". The real key here would be to find those original books - those things were gold and they taught in a step by step manner. Those - I have no idea how to find. I'm gonna look though, and if I find it, I'll put a link to it up here. I might even have the original books in my old bedroom at my parents' house. If I can find them, I'll scan them page by page and post a link to those as well... Anyone else think this is the ultimate tool for leaning programming or is it just me?
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...).
It might change in one or 2 decades.
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 are so internalized by experienced programmers that they often won't understand how students could be missing them. From the student's perspective, it's perfectly reasonable that once statements are made anywhere in a program, the computer should pick which one to run based on what would make sense. It's also reasonable that a variable should be set once and never change, or should be usable before being set because "it's set right there!"
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.
Those concepts are best covered in another language, which also highlights another important CS concept: The functional equivalence of all Turing-complete languages, but the effects of language choice on the difficulty of the project.
You do not have a moral or legal right to do absolutely anything you want.
BASIC is a really, really bad language to teach anything about computing. If you want to equip them for the world of work, go for Java or C# (which are more or less the same, from a learner's point of view, and neither is hard). If you want to teach a deep understanding of algorithms and how computers work, Clojure or Scheme would be good choices.
I'm old enough to remember when discussions on Slashdot were well informed.
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.
I'm old enough to remember when discussions on Slashdot were well informed.
Are you actively trying to make them future TERRIBLE programmers?
Who logs in to gdm? Not I, said the duck.
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.)
Required reading for internet skeptics
Deja Vu...
Required reading for internet skeptics
My apologies for posting as AC by mistake.
Those who would give up essential liberty to purchase a little temporary safety, deserve neither liberty nor safety.
http://gvr.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...
Whatever you do, remember, start with sequence, then iteration, decision making and ultimately wrap it up with problem solving.
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.
You do not have a moral or legal right to do absolutely anything you want.
Still in denial over outsourcing and off-shoring, I see.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
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.
Eat sleep die
Check out The BASIC Book, an oldie-but-goodie by Seymour Simon. Nice-and-simple 32-page illustrated intro to BASIC!
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
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.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
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.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Don't ask computer geeks how to teach children. That's moronic. Anyone who CAN program has already internalized all the bullshit of bad pedagogy. They have a predisposition to existing styles and modes of learning and coding that are barriers to others. AND, as some boffins pontificated, they're malignant enough to just want to foster the same abuse on kids that they put up with. As someone who has worked with programmers for 25+ years, trained educators, and worked with children, you should not waste your time trying to TEACH children anything. Develop tools to help them LEARN, and if the kids don't learn it, then blame yourself for your lack of creativity and imagination for not coming up with a sufficiently flexible model that addresses the variety of interest, goals, needs, skills of the children. We don't need another lame attempt to reproduce the errors of programming culture, and inflict them on another generation. Just a thought.
https://www.tandfonline.com/doi/full/10.1080/1369118X.2013.808365
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.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
BASIC considered harmful.
-- Jeff Woods
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 coding jobs implode.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
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.
What year is it? I loved basic in 1990, but this is not the right technology to use today.
No, you're not staying. Once you hit the magic number (age + perceived obsolescence + cost of benefits + likelihood of having quality of life concerns + salary + perceived inflexibility) .GT. availability of new cannon fodder who don't know any better , you're gone whether you like it or not.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Hint - she only started to get set up over the last few months. This article is a slashvertisement for her business.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Do small programs that a kid can do in one session.
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.
Greed is the root of all evil.
There is no reason to teach BASIC anymore, in particular the obsolete forms implemented by DiscoRunner.
There are numerous programming languages you can teach kids. Python is probably a reasonable choice, but there are even simpler ones out there if you like.
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 advanced course, and C++ your second.
Python has lots of good points if you can already program, but it hides too many details about what's going on under the hood, and this inhibits understanding. (That's why I'd start with MIX. The Apple ][ assembler would be even better, but the machine it runs on isn't reasonably available anymore. The M68000 assembler would also be a good starting point, but the i8080 much less so. Too much hardware specificity. Again, however, those machines are no longer generally available, and assemblers for current machines are as baroque as Objective-C++.)
I can think of *no* benefit to using any dialect of BASIC with which I am familiar.
I think we've pushed this "anyone can grow up to be president" thing too far.
I love writing in assembler
Now that's very interesting, but I for one prefer to write in compiler.
CLI paste? paste.pr0.tips!
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 succeed.)
I wish you peace.
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, like finding traffic signs in urban environment (for automatic driving) to bluescreen manipulation.
2. Also building databases and doing datamining.
3. Networking
4. More programming; Digital media, analog, security etc
Nick Parlante is the teacher, and a great guy.
https://www.coursera.org/cours...
don't cut it off www.mgmbill.org
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 don't see any sense in teaching kids to program and having pointers or even compiling and linking when the best thing for them to learn is the purity of understanding how to create simple algorithms to solve problems. If they show an interest, they can figure out more complex things like compilers, and the complexities of lower level languages like C. I stated in another comment, I learned how to code on a TRS80 color computer, and I think it was invaluable to master that before moving on to more complex and real-world things...
... 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.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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 whacked. Same as all those stupid "Look KICKSTARTER OMG" articles.
They're both binspam. While I usually down-mod them in the firehose, (same as those I want to learn how to code so I can make a zillion bux because my career sux), every once in a while I bump a really bad one up in the hope that it will make it to the front page for the shellacking it deserves.
Haven't been disappointed yet :-)
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Still in denial over outsourcing and off-shoring, I see.
Having made hiring decisions before, people who worry about competition with off-shore workers are the people who skills are no better than the off-shore workers. They pretty much deserve to be worried. There's plenty of high paying jobs for people who know their stuff.
I mean seriously. One of the strongest arguments for basic is that you don't need to teach someone functions to start a program. With the goto statement in Lua, you got that. At the very least, once the student knows lua and goes on to other things, it will be useful if he ever needs to use it as a scripting language.
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®.
It little behooves the best of us to comment on the rest of us.
It's a dead end, Jim.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
I used to joke with my wife that when I turned 40 I'd have to grow a ponytail to still be considered relevant as a programmer. My 40th birthday was a decade ago and I haven't had to grow the ponytail yet.
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 pretty much the same thing in the early 2000s. They were wrong too.
How long will software people be in demand? Who can say? Based on the last 50 years or so the demand has been pretty good (with some downturns here and there). Yes, ageism is a danger and yes you may find yourself with skills no longer needed, but looking forward there aren't many vocation choices that don't involve some sort of risk.
If you're good at it, keep your skills fresh, and pick good companies to work for, you can make a career out of it. Having other skills doesn't hurt either.
While I don't think that a huge emphasis on coding for kids (who aren't otherwise interested) is a good idea, they should definitely get some exposure to it. Just like they should get exposure to art, music, literature, or even robotics. I also believe that there are huge opportunities for those who can combine programming with expertise in another field.
I have a son who is in his early teens. He really has no idea what wants to do for a living yet and that's fine. He has a vague notion that he might want to do something with computers. He's a reasonably smart kid but I don't think that's his calling. He's kinda sorta interested in electronics and will mess around with Lego Mindstorms with some prompting. He's had a little experience with programming but doesn't have nearly the excitement over it that I did at his age. Still, I've encouraged him to take a one semester course at his high school. I think that will tell him if coding is something he wants to pursue further or not, even as a hobby.
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, any more than they can do algebra. Yes, they can do some coding, but not the analytical work. Yes, some kids can do algebra at 10, but not many.
So this is why things like Alice are used to teach the concepts to pre-teens and children. Using heavy scaffolding, which means I wrote most of the programs myself and just let the kids type it in, I have taught 11-13 year old kids to make games in python as a web based application.
For pre-teens with minimal abstract thinking skills, the most interesting thing that can be taught with programming is cause and effect, a critical skill for children. This leads directly to more abstract skills as the child ages.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
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.
Required reading for internet skeptics
I disagree with C. Pointers are something a lot of children have difficulties understanding. Also, languages which use symbols like "&&" and "||" instead of words like "AND" and "OR" should be avoided.
(I (also) (completely (disagree (with) (Scheme()))). Seriously.
Finally, I disagree with any object-oriented language. Object programming requires too much structure. A beginner's language should as straightforward as possible and look as much as possible as English writing.
Pascal (not object Pascal) or simple BASIC languages (not .NET Visual Basic) are much better as first languages.
As for assembly, I first learned ARM assembly when playing with my Nintendo DS. It's a bit more complex than 68000 assembly, but certainly not "baroque" (and obviously much, much better than 8086 assembly).
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 languages leading the 'ease-of-use' charge. Ultimately, it doesn't matter what language they learn first.)
Required reading for internet skeptics
BASIC teaches concepts but really isn't a usable skill in the marketplace anymore. Try Ruby, Java or even C.
Harrison's Postulate - "For every action there is an equal and opposite criticism"
Best Strategies For Teaching Kids CS Skills With Basic?
Coming soon to a theatre near you.....
Teach modules I moved to C/C++ from BASIC (HP-BASIC) by learning BASIC modules to C ((C++) functions/routines/subroutines) by breaking down problems to fundamentals. JUST THINK!
The only thing new in this world is the history that you don't know.[Harry Truman]
Oh, you've only used a slide rule 2.7? We're looking for someone with experience on 3.2.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
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 used are ineffective. There is no benefit to be had in having longer badly taught lessons.
The problem in this thread isn't "teach teh k1dz teh c0d3z" but the insistence of the original poster of using a buggy implementation of an obsolete language (that wasn't even a good language in its heyday) simply because it's "her baby". OK, maybe not just that. It's "I learnt this way, so this way must be best" syndrome -- the same idea that caused resistance to the phasing out of other obsolete technologies like slide-rules, log tables and abacuses. Just because something was part of one person's education doesn't mean it is fundamental to the education process. All too often we learn in spite of teaching rather than because of it.
[ * I teach foreigners** English for a living, and I have to keep shrugging my shoulders about the sheer mindlessness of the spelling system. ** "foreign" has nothing to do with "reign", but some idiot a couple of hundred years ago thought it did, so changed its spelling to match. Mindlessness. ]
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
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.
BeauHD. Worst editor since kdawson.
In the old days, the best way to teach programming with basic started and finished with LOAD "C"....
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
While we're slashvertising BASIC emulators, PC-BASIC is a GPL, Python-based emulator for GW-BASIC. </plug class="shameless">
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 teaching about the way a good amount of the world works.
So, in other words, I disagree. I don't see what's so special about programming that it shouldn't be taught in school.
[*]There is an almost infinite amount wrong with the way school is done, but that doesn't mean I think the idea is pointless.
SJW n. One who posts facts.
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.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
That's what electronic engineers said. Now even Apple outsources the internal design of their electronics to ODMs.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Come on - there are people who can't even figure out how to use a simple flip phone. Your estimation of the ability of the average person is demonstrably wrong - look at how many guys can't even figure out how to change to roll of toilet paper.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
But learning programming teaches process thinking, which is an invaluable skill.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
You haven't identified the problem you're trying to solve. At least you made a huge mistake of asking here since you're asking for opinions from an extremely opinionated community without taking the time to actually identify what it is that you're actually having problems with. It seems you just haven't even bothered thinking about it.
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.
the question invariable is: which BASIC? Which of the zillion dialects are we discussing here?
Discorunner is a multi-dialect BASIC interpreter... that supports... erm... 1 dialect. Apple ][ BASIC. Yuk.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
But learning programming teaches process thinking, which is an invaluable skill.
No it doesn't. Kids learn that long before they go to school. "If I do x, I will get y." "If I pull the dog's tail too many times, he'll lose his patience with me." "I can get more cookies if I say please." "I can get even MORE cookies if I invite friends over and we get the whole bag." "Holding my breath until I turn blue no longer works - I'll try throwing myself on the floor." "Taking a tantrum no longer works - maybe I'll say please." "If I say 'are we there yet' often enough, they'll stop and buy me an ice cream cone to shut me up." "Baths are better with a rubber duckie." "I guess I shouldn't have helped by emptying my diaper myself." "I guess I shouldn't have helped by painting the cat." "I'm not going to tell them I also painted the dog." "He followed me home" (said while dragging dog behind me on a rope).
Kids learn at a young age to try different strategies to get an optimal (for them) outcome. They learn what processes for getting their way work, and what don't. Sure, you can map it out with a bunch of conditionals, loops, tests, and switch statements, but kids have already internalized the whole thing far better than you can map it out.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
As my friend Edsger Dijkstra once said "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration."
The problem with many laws and corporate policies is that the letter and spirit are not properly aligned. People write rules that can be gamed. "You know what I mean" doesn't work for computers, and it doesn't work for big organisations.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
He's dead, Jim.
That should be "She's dead". Do you think only "idiots" study history as well?
And then there are the idiots who study astrology, theology, etc.
Speaking of history, you'll find that many of histories greatest minds were theologians. You can even still see that influence in modern science.
Required reading for internet skeptics
Well, Call me paranoid or cheap or whatever, but here's the only thing I see about licensing on their site: Please do not re-distribute this preview version of DiscoRunner. and despite seeing some stuff on Git about Disco and Runner, but no mention of BASIC there, I'm starting to think that this ain't GPL. Not that it has to be, but I like to know that up front. I'm not an idiot, but I'm often busy and distracted, and when I have to search their site and then the web for 10 minutes or so, and I still don't have a clear answer, then I'm not that stupid, probably, or they're trying to downplay this at least. I wish them the best, and commercial software is cool, but I'm one of those that imagines GPL in schools and instantly available to anyone that wants it. It has served me well and I'm very grateful.
OK. I've never used ARM assembler. Your "scheme" example shows mainly that you don't understand Lispish syntax, it's actually rather simple. Pascal is a good choice, but the documentation would need to be specially written, because the available sources on-line are pathetic. (And if you're using Pascal be very certain you stay well away from not only Objects, but also Units.)
But BASIC, including explicitly Dartmoth BASIC, is terrible. I'd rather recommend FORTRAN II. (FORTRAN IV would be a decent choice, but I don't know about fortran77, but that doesn't seem to be supported anymore either, and fortran95 introduces objects.) Forth would be better than BASIC.
I think we've pushed this "anyone can grow up to be president" thing too far.
BASIC is reasonable for non-programmers who intend to stay non-programmers. Hypercard was actually a better initial language. I do agree that you can do simple things in BASIC, but it teaches horrible habits.
I think we've pushed this "anyone can grow up to be president" thing too far.
All processes are based on cause and effect.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
And then there are the idiots who study astrology, theology, etc.
Speaking of history, you'll find that many of histories greatest minds were theologians. You can even still see that influence in modern science.
So what does that "prove?" That the "great minds" of the past were equally subjected to the stupidity and / or pressures of their time - nothing more, nothing less. "It still moves."
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Since you missed it:
You can even still see that influence in modern science.
I would recommend you take some time to look in to the history and philosophy of science. It's quite enlightening. If you can't afford a proper education, I can make some reading recommendations for you.
Required reading for internet skeptics
Already have, and I'm not impressed. It has taken a long time to get to the point where a significant portion of the world has abandoned superstition - hopefully, the rest will eventually see that there is no such thing as a "God" or "Force" or whatever.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
Ah, I figured you were an autodidact. It explains SO much.
Anyhow, I'm sorry that you're so disadvantaged.
Required reading for internet skeptics
Two words - grow up :-)
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
People have been saying this for 60 years, and the reverse has happened. As programmable devices continue to propogate the need for programmers only grows. It's becoming standard for all medium to large sized businesses to have a software department, so they can get the software they need to run their business developed. I don't see that trend reversing anytime soon.
A business needs software the same way it needs trucks, desks and toilet rolls. That doesn't mean that every kid has to be a truck driver, furniture delivery guy and sanitary product salesman.
To have a right to do a thing is not at all the same as to be right in doing it
Since you missed it:
You can even still see that influence in modern science.
I would recommend you take some time to look in to the history and philosophy of science. It's quite enlightening. If you can't afford a proper education, I can make some reading recommendations for you.
Miaow!
To have a right to do a thing is not at all the same as to be right in doing it
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.
Yes, but despite the ubiquity of computing devices compared with fifty years ago, most (non geeks) still struggle to set up their TV properly.
It has been said countless times before, but the relationship between being a computer user and programmer is analogous to that between being a car driver and a proper mechanic.
To have a right to do a thing is not at all the same as to be right in doing it
[ * I teach foreigners** English for a living, and I have to keep shrugging my shoulders about the sheer mindlessness of the spelling system. ** "foreign" has nothing to do with "reign", but some idiot a couple of hundred years ago thought it did, so changed its spelling to match. Mindlessness. ]
Maybe, but it means more work for those teaching English.
To have a right to do a thing is not at all the same as to be right in doing it
You must be new here :-)
We've had far too many stories about people trying to make a quick buck with half-assed plans about "thinking of the children by teaching them to code." This is just another example, by someone whose 10 years as an Apple service tech gives them zero qualifications for instructing kids, and whose web sites put the lie to them being able to teach graphics design for $97 an hour.
This is slashdot, not facebook. People here will take you to task for being an idiot in public.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
All processes are based on cause and effect.
And all calculus is based on arithmetic. This doesn't mean calculus is arithmetic.
Natural cause-and-effect is kind of fuzzy and can lead to incorrect generalisations, which we call "superstitions"; but process thinking has to be rigid, complete and unambiguous.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Natural cause-and-effect is kind of fuzzy and can lead to incorrect generalisations, which we call "superstitions"; but process thinking has to be rigid, complete and unambiguous.
I guess you never heard of the expression "In theory, theory and practice should be the same, whereas in fact they're not."
Cause and effect does not lead to "incorrect generalizations" - those are observer errors or biases.
And "process thinking" has all the same problems of observer errors and biases. People make mistakes all the time. Until you can come up with the perfect person, you cannot guarantee that any process is "complete and unambiguous". Also, it's a fundamental error to create a process that is rigid - things that are rigid tend to break.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.