×

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

Thank you!

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

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

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

709 comments

Use C# (0, Troll)

Anonymous Coward | more than 3 years ago | (#34693722)

I've never loved programming as much as I do now that I use C#.

Re:Use C# (-1)

Anonymous Coward | more than 3 years ago | (#34693832)

Agreed. I dropped C++ as soon as I discovered Java
Then the first time I saw C# I assumed it was just a MS version of Java. It is not. Being second has advantages.
I do have to say that I'm not sold on the WPF MVVM concept.

Re:Use C# (0)

Haffner (1349071) | more than 3 years ago | (#34693952)

Agreed. As a former Java coder who had to move to C++, moving to C# after those two makes it so much simpler.

Re:Use C# (-1, Troll)

Ethanol-fueled (1125189) | more than 3 years ago | (#34694240)

The problem with C++ is that it has to run in a slow interpreter, which adds overhead and makes things slow.

Java apps are compiled to native bytecode before they execute so they run super fast on the architecture. The problem with Java is that you have to use the command line to compile programs and add packages. Another disadvantage is that, if you compile the bytecode on one architecture, it won't run on another architecture. Another advantage, however, if the programmer is skilled and willing, adept, and has a huge penis; of Java is its multiple layers of abstraction. They allow the programmer to talk to the hardware* when apps have to run super-fast.

* Not talking as in the way people and some animals talk to each other, but being able to manipulate individual ones and zeroes of the stack**

** The stack is computer lingo for the software suites you get like how Word comes with Office, and Office runs on Windows***, etc.

*** The shittiest operating system ever****

****Ever ever.

BASIC (0)

Anonymous Coward | more than 3 years ago | (#34693730)

10 print "hello"
20 goto 10

Re:BASIC (5, Funny)

plover (150551) | more than 3 years ago | (#34693760)

10 print "hello"
20 goto 10

This is why we can't have nice things.

Re:BASIC (1)

Anonymous Coward | more than 3 years ago | (#34694092)

No,
10 print "fuck you ";
20 goto 10

At Radioshack, Sears, Wards, and anywhere hobby computers were sold.

Can't get there from here (3, Funny)

icebike (68054) | more than 3 years ago | (#34693734)

There is still the theory that once you teach someone basic it becomes impossible to teach them programming. /running and ducking...

Re:Can't get there from here (1)

YrWrstNtmr (564987) | more than 3 years ago | (#34693748)

Theories are frequently wrong.

Re:Can't get there from here (1)

Anonymous Coward | more than 3 years ago | (#34693788)

Not this one.

Re:Can't get there from here (2, Insightful)

Anonymous Coward | more than 3 years ago | (#34693818)

This theory is easy to prove false with a counter-example. Me.

Re:Can't get there from here (2)

Proudrooster (580120) | more than 3 years ago | (#34693960)

That's called reductio ad absurdum or proof-by contradiction which is my favorite type of proof, since it's the only one I can actually do and understand :). Don't forget your QED the end of your proof :)

Re:Can't get there from here (2)

syousef (465911) | more than 3 years ago | (#34694130)

That's called reductio ad absurdum or proof-by contradiction which is my favorite type of proof, since it's the only one I can actually do and understand :). Don't forget your QED the end of your proof :)

Well you have to be very careful about exactly what you've proved. The statement that "No programmer who has learnt BASIC can be taught a modern object oriented language" could certainly be proven by a single counter example. However the statement that "Programmers who've learnt BASIC tend to be harder to retrain in a modern object oriented language" requires statistical study.

Re:Can't get there from here (1)

Proudrooster (580120) | more than 3 years ago | (#34694286)

Or you could use the dreaded, "Research suggests that programmers who've learnt BASIC tend to be harder to retrain than ..... " :)

Re:Can't get there from here (0)

syousef (465911) | more than 3 years ago | (#34694112)

This theory is easy to prove false with a counter-example. Me.

First of by saying this as AC, the irony is that you haven't even provided a firm counter-example.

Secondly just because YOU were re-trainable doesn't mean others will be. There will certainly be others that aren't re-trainable. Whether or not this is a significant percentage requires statistical studies.

Re:Can't get there from here (0)

Anonymous Coward | more than 3 years ago | (#34694204)

Secondly just because YOU were re-trainable doesn't mean others will be. There will certainly be others that aren't re-trainable. Whether or not this is a significant percentage requires statistical studies.

The question isn't one of specific percentages, but rather that no one who starts on BASIC would be "re-trainable". He was, and several others have as well. Is it common? No. Impossible? Hardly.

Re:Can't get there from here (0)

Anonymous Coward | more than 3 years ago | (#34693778)

I remember learning to program with BASIC, and not doing a lot with it for a while. Then we were taught Pascal, which sped things up a little, and I found jumping over to C and derivatives fairly easy. I guess they're very similar structurally. BASIC tends to eschew structural stuff slightly, perhaps being more in favour of a kind of "do this, do that, then do that, goto 4" kinda approach. I'm not sure whether teaching kids' 'goto' as a feasible solution to things is really a good idea.

Re:Can't get there from here (1)

chispito (1870390) | more than 3 years ago | (#34693812)

There is still the theory that once you teach someone basic it becomes impossible to teach them programming. /running and ducking...

What, then, do you propose to teach kids?

Re:Can't get there from here (2, Funny)

Anonymous Coward | more than 3 years ago | (#34693850)

section .text
        global _start

_start:

        mov edx,len
        mov ecx,msg
        mov ebx,1
        mov eax,4
        int 0x80

        mov eax,1
        int 0x80

section .data

msg db 'Teach them in assembly, you insensitive clod!',0xa
len equ $ - msg

Re:Can't get there from here (1)

hedwards (940851) | more than 3 years ago | (#34694016)

Just about anything else. No sanely designed programming language will ever require you to label each line of code and throw and require the lines to be renumbered whenever you want to put new code in the middle.

Basic is fine if you're just wanting to quickly introduce it, but anything beyond that is just going to convince them to go to arts college.

Re:Can't get there from here (2)

Lloyd_Bryant (73136) | more than 3 years ago | (#34694150)

Just about anything else. No sanely designed programming language will ever require you to label each line of code and throw and require the lines to be renumbered whenever you want to put new code in the middle.

I take it you haven't used any BASIC variant in the last 20 years or so. Line numbers, as in GWBASIC, aren't required for any modern BASIC.

Re:Can't get there from here (1, Funny)

syousef (465911) | more than 3 years ago | (#34694178)

Basic is fine if you're just wanting to quickly introduce it, but anything beyond that is just going to convince them to go to arts college.

10 REM ARTS COLLEGE
20 PRINT "HELLO WORLD"
30 GOTO 10

Re:Can't get there from here (1)

SilverAlicorn (986453) | more than 3 years ago | (#34693842)

There is another theory that the first theory was concocted by a wily editor of the Hitch Hiker's Guide to C Programming to raise the level of general insecurity in the industry, and thus boost the sales of the book.

Re:Can't get there from here (5, Insightful)

hcs_$reboot (1536101) | more than 3 years ago | (#34693906)

I started with the BASIC language as a child. And it was not easy.
If Basic didn't have lines numbered, a goto, a limited set of instructions (no while for instance), and no mysterious crash (no pointer for instance), maybe I'd have given up. After a while, when Basic concepts were understood, I wanted to get over the language limitations: speed and abilities. The next step was the assembly language, at the time.
Then learning C: coming from Assembly helped a lot to understand pointers and what happens under the hood.

Basic was simple enough to give me interest in programming, and its limitations made me want to learn more elaborated languages afterwards.

Re:Can't get there from here (2)

DeadlyFoez (1371901) | more than 3 years ago | (#34693918)

I partially agree. The part the I agree about is I used QBasic back in '95 and I have never learned another language since. I love basic programming and I have never stepped away from it because I have never had a need to. Trying to learn any C derivative while being an at home father is impossible. The part I disagree about, although I have no grounds to speak since I only know basic programming and I should just STFU, is that basic is a very good stepping stone. If I had more time or any money to goto school then I would already have a decent foot in the door with other languages because I understand how a program works and how logic is with computers. If I were to try and learn C (or any derivative from scratch) then I would be overwhelmed very easily. There is too much to learn with C (or it's derivatives) all at once. At least with basic I can learn and understand how subroutines work. I can understand program structure without having to worry about including libraries or .h files for what I desire to do. Basic is a very good stepping stone, but if you dont have motivation then someone may never get beyond it.

Re:Can't get there from here (0)

Anonymous Coward | more than 3 years ago | (#34694128)

I used basic growing up (ZX, GW, Q then Visual) and found it very difficult to make the step to c/c++, until someone pointed me to the classic K&R "The C Programming Language". It's pretty short, straight to the point and didn't labour over stuff I was familiar with.

Re:Can't get there from here (1)

tibit (1762298) | more than 3 years ago | (#34694182)

Try Python. It's the only language I can think of that's similarly easy -- namely you can accomplish anything you want with zero fluff. If you want to, you can write in pure procedural style without creating a single class of your own. It'd be easy to transplant your QBasic knowledge into Python, and then learn more tricks (object orientation, functional programming features, iterators and generators, etc).

Re:Can't get there from here (1)

honkycat (249849) | more than 3 years ago | (#34694292)

The one serious limitation of Python, particularly for beginners, is that it makes extremely liberal use of external (though standard) libraries. While the availability and easy of extending it like this makes it powerful, it doesn't make it a great beginner's language. You've either got to introduce the concepts of namespaces and hierarchies before you can do some of the good stuff or you need to drill in a lot more rote syntax.

I love Python, and it's much simpler than many of its alternatives, but I think BASIC is still a pretty solid language for a n00b. Many of the weaknesses people point out (line numbers, simple flow control) are actually strengths when you are training someone who really doesn't have the slightest background in how computers work. I thought the article's rationales were pretty sound.

If, as is the case for the OP, BASIC fulfills all your needs, there's no shame in using it. It may not be ideal for all purposes, but if you know it and it can do what you need, then sometimes it's better to use the tool you know than to learn a new one. All it has to be is good enough for the task at hand.

Re:Can't get there from here (1)

pizzach (1011925) | more than 3 years ago | (#34694196)

QBasic is the only programming language I failed. It was also my first. I couldn't figure out the damn QBasic for dummies Book. It made absolutely no sense to me what was going on. But it may have also been my age.

Re:Can't get there from here (1)

syousef (465911) | more than 3 years ago | (#34694238)

I partially agree.

The part the I agree about is I used QBasic back in '95 and I have never learned another language since. I love basic programming and I have never stepped away from it because I have never had a need to. Trying to learn any C derivative while being an at home father is impossible.

The part I disagree about, although I have no grounds to speak since I only know basic programming and I should just STFU, is that basic is a very good stepping stone. If I had more time or any money to goto school then I would already have a decent foot in the door with other languages because I understand how a program works and how logic is with computers. If I were to try and learn C (or any derivative from scratch) then I would be overwhelmed very easily.

There is too much to learn with C (or it's derivatives) all at once. At least with basic I can learn and understand how subroutines work. I can understand program structure without having to worry about including libraries or .h files for what I desire to do.

Basic is a very good stepping stone, but if you dont have motivation then someone may never get beyond it.

First, you can learn any language you like as an at home father, albeit slowly. Wait till the kids are asleep. Dedicate 20 to 30 mins to it at at time regularly (at least 3 times a week). It wouldn't be easy, but it's far from impossible.

Second, in terms of the language, there is nothing that complex in C or any of it's derivatives. Certainly a bit of pointer arithmetic, and function call styles, which you must understand properly. But in terms of control flow and branching there's really not that much difference between BASIC and C. (There may be more ways to do it in C, but to write your own code you can certainly start with a subset and learn the rest as you encounter them, and they're very intuitive anyway). Beyond that the C library needs to be understood, but if you're doing anything serious in BASIC there are libraries to understand there too. At least C libraries are standard.

Re:Can't get there from here (3, Interesting)

gstrickler (920733) | more than 3 years ago | (#34693932)

My first language was BASIC, my second assembler. Since then, I've learned at least 6 more languages, but I still prefer a modern compiled BASIC for most projects. On the rare occasion that BASIC can't deliver sufficient performance, I'll link in some assembly or C routines. I've been quite successful doing that professionally for almost 26 years. That doesn't mean I always write in BASIC, I use the language that best fits the needs, the majority of the time, that has been BASIC.

Mind you, I hate old interpretive BASIC languages that require line numbers, don't have DO/LOOP, WHILE/WEND, Sub/Proc/Function calls, variable scope controls, and other necessities. I'm talking about modern compiled BASIC languages with most of the modern structures we all know and love. It's not a perfect language, but it allows me do code, debug, and modify far faster than any other language, and for most purposes, performance is close to any modern language.

Re:Can't get there from here (1)

fean (212516) | more than 3 years ago | (#34694036)

There is still the theory that once you teach someone basic it becomes impossible to teach them programming. /running and ducking...

Know the difference between Theory and Hypothesis...

http://lmgtfy.com/?q=theory&l=1 [lmgtfy.com]

Yay! (0)

Anonymous Coward | more than 3 years ago | (#34693736)

10 ? "First Post";
20 Goto 10

Why I Use Basic (-1)

Anonymous Coward | more than 3 years ago | (#34693750)

Here's the thing... I teach computer programming to way-cute hot teen boys at a middle school in Seattle. We have to keep it simple because really, even though I grade according to cock size / load and ability to please me, the boys have to do SOMETHING related to programming...

Re:Why I Use Basic (0)

Anonymous Coward | more than 3 years ago | (#34693820)

I guess it's a good thing you don't teach Unix.

Re:Why I Use Basic (2)

Haffner (1349071) | more than 3 years ago | (#34693974)

Dear FBI, please stop by sometime later this week. As you can see, I am at home at 7:12pm CST. Thanks!

FTFY

Python vs. BASIC (4, Informative)

Anonymous Coward | more than 3 years ago | (#34693758)

I learned to program pretty much with Applesoft BASIC and a Franklin Ace 1000 manual [ironicsans.com]

Now I'm teaching my mom (!) to program in Python using the Hello World [amazon.com] book.

Honestly, I wish Python were around when I was learning. Trying to squeeze a new instruction between line 11 and line 12 kinda sucked sometimes. (Then again, I wish a lot of things were around...)

Re:Python vs. BASIC (2)

Yaos (804128) | more than 3 years ago | (#34693798)

Python is a easy as BASIC, and you can teach good programming practices in it. Once they get to understand programming, they can move on to the harder things without leaving the language.

Re:Python vs. BASIC (1)

Anonymous Coward | more than 3 years ago | (#34693874)

I found a nice cite for that: "Python's a drop-in replacement for BASIC in the sense that Optimus Prime is a drop-in replacement for a truck." - Cory Dodt

Re:Python vs. BASIC (2)

BagOBones (574735) | more than 3 years ago | (#34693940)

Why do I suddenly imagine Optimus Prime holding his cargo trailer over his head and running..

Re:Python vs. BASIC (0)

Anonymous Coward | more than 3 years ago | (#34694170)

Python's IndentationError and NameError exceptions make it one of the worst languages to learn first. A program shouldn't treat block structure or typos as run-time errors. Even FORTRAN and C fail at compile-time to teach the rules clearly. BASIC is far more forgiving.

Re:Python vs. BASIC (1)

Hatta (162192) | more than 3 years ago | (#34694024)

Writing a program to renumber your programs is an excellent early programming exercise.

Um...those are teaching languages? (1)

Anonymous Coward | more than 3 years ago | (#34693776)

Logo is an educational language. With the addition of Turtle Graphics, it's a great way to show a student how to deconstruct a task into components and instruct the machine to perform that task. Wanna draw a hexagon? Pen down, move a bit, turn 60 degrees, rinse and repeat.

BASIC means Beginner's All-purpose Symbolic Instruction Code. It, too, was an educational language. Of course, since so many learned it early on, it turned out to be useful to evolve it into things like VB Script, VBA, and now VB.NET, so you can do everything from web page scripting to writing spreadsheet macros to building sophisticated desktop applications with some form of BASIC.

So why is it any surprise that languages created for teaching purposes are good for teaching programming?

Re:Um...those are teaching languages? (0)

Anonymous Coward | more than 3 years ago | (#34693956)

I was introduced to Logo when I was kid, and I never saw point of it. Why would I (this is me as a 7-year old kid) want to make turtle go around? I rather draw pictures or make it prints stuff on the screen or any other number of things.

yeah but (4, Insightful)

hguorbray (967940) | more than 3 years ago | (#34693792)

despite their limitations and age, procedural languages are a better way to teach kids (or anyone)how to think logically about the steps required to make a computer do something they want it to do.

It worked for me in 1971 on a teletype at Cory School in SJ connected to a Stanford mainframe -which I had to feed my 'saved' paper tapes to

and it will work just as well today on whatever BASIC emulators (or even VB.NET god forbid) that are available today on PCs, pads or whatever.

Although Java is probably better for middle/high school, I do believe that Basic or Logo are better for those younger who have not yet learned how to deconstruct a desired outcome into a bunch of logical steps.

-I'm just sayin'

ClubColditz (0)

Anonymous Coward | more than 3 years ago | (#34693794)

# We wanted a system easy to secure, such that there are no mechanisms to escape the security of the system to manipulate either the underlying machine or the experience of other users. In this case, a language with fewer features and fewer possibilities for abstraction and cleverness is easier to audit. This meant evaluating our implementation for potential mischief.

clubcompy sounds like a miserable creativity quashing experience.

Scheme not Basic (1)

amightywind (691887) | more than 3 years ago | (#34693800)

I learned Basic on a Commodore VIC-20 in 1978. I think it is a terrible choice for learning to program. I suggest newbies learn Scheme, a very simple language that will lead you as far down the rabbit hole as you are willing to go. If you are more interested in electronics you should learn C, particularly on the nice small embedded development boards that are available.

Re:Scheme not Basic (1)

xigxag (167441) | more than 3 years ago | (#34694048)

You left out the important part.

WHY do you think Basic is a terrible choice for learning to program, and WHY is Scheme better?

The good and the bad, let me add the ugly... (0)

Anonymous Coward | more than 3 years ago | (#34693802)

Logo is indeed a excellent beginner's language that can instill all the good programming habits that lead to great code. And if the learner is young, add some graphic library like the old turtlegraphics and you will pique their interest to go in deeper.

Basic, on the other hand, is a half-assed POS that was excreted out of an abortion, one dark Friday the 13, when Bill Gates and Belzebub got together to play a cruel joke on the universe.

Oh, the ugly.... How about Assembly Language? >:D

work with what you've got (1)

sankyuu (847178) | more than 3 years ago | (#34693804)

I personally started with Logo and assembly language, but only because it was what was available in school (Logo) and on my DOS 2.0 floppy (DEBUG).
Looking back, BASIC may have been the most available language available on ROM at that time, so that's what folks used (despite that it supposedly 'mutilates the mind beyond recovery' according to Dijkstra http://en.wikiquote.org/wiki/Edsger_Dijkstra [wikiquote.org] ).
I think now, javascript would have that advantage since it comes with the browser (and firefox is particular has got good debugging support for javascript).

Web-based programming environment... (5, Funny)

windcask (1795642) | more than 3 years ago | (#34693808)

"Here, son, let's look at this Wordpress site that hasn't been updated in 18 months. Now, this is called 'SQL Injection' and 'Cross-site Scripting.'"

Nothing better than learning by example...

Not too big of a surprise (1)

TythosEternal (1472429) | more than 3 years ago | (#34693828)

While high-level abstractions like .NET and Java are splendid modern tools, nothing teaches you the fundamentals of how a computer thinks and works like a line-by-line BASIC program. Two reasons off-hand: a) The leap to assembly language is natural and easily understood. b) The leap in the reverse direction, to functional languages, is mostly a simple matter of wrapping blocks in headers and return statements. If you start in a language with these two attributes, you're already 1 - 2 years into a collegiate computer science degree.

Re:Not too big of a surprise (2)

hardburn (141468) | more than 3 years ago | (#34694256)

b) The leap in the reverse direction, to functional languages, is mostly a simple matter of wrapping blocks in headers and return statements.

Nay, no, notta. Functional languages make you think completely differently about how the computer operates. Simply wrapping things up like that is how you get spaghetti code. The budding programmer will tend to keep writing this way for a long time. Some never grow out of it.

If you start in a language with these two attributes, you're already 1 - 2 years into a collegiate computer science degree.

That's the biggest indictment of CS curriculums I've ever read.

Basic is the best (1)

Anonymous Coward | more than 3 years ago | (#34693848)

BASIC helps to teach logical though process, critical in both programming, and in business analytics. I learned BASIC on an Apple IIE back in the 80s and a C64. That knowledge went dormant, until about 10 years ago when I began using Access, Crystal, SQL (and derivatives) and now SPSS.

Slashvertizement (2, Insightful)

SoftwareArtist (1472499) | more than 3 years ago | (#34693872)

Wow, this "story" is a really blatant advertisement for a commercial website.

No, BASIC is not a good language for much of any purpose, including education. Especially not the archaic type of BASIC they're using. Computer science really has progressed in the last four decades. Personally, I'd recommend Python as a starting language - it's easy to learn enough to do simple things, it's a well designed language that teaches good habits, and it's a "real" language that you won't outgrow as soon as you start writing anything beyond toy programs. But if you want a language designed specifically as a learning tool, there are lots of those that are a lot more modern and let you do a lot more than this company's offering: Processing, Alice, etc.

Why Not Python? (1)

chromatic (9471) | more than 3 years ago | (#34693988)

Personally, I'd recommend Python as a starting language...

I might, if there were a simple, cross-platform, one-click-install download bundle for all of the major operating systems which included pygame and a decent IDE, and even then I'd target motivated 13 year olds as the youngest users.

If I were trying to teach motivated ten year olds in person, I might choose Python/pygame as well.

That's not our goal, though. We're trying to help motivated eight year olds discover the joy of programming as a means of using computers as creative tools, not to produce millions of practical programmers.

Yes, Python :) (2)

kripkenstein (913150) | more than 3 years ago | (#34694104)

Personally, I'd recommend Python as a starting language...

I might, if there were a simple, cross-platform, one-click-install download bundle for all of the major operating systems which included pygame and a decent IDE, and even then I'd target motivated 13 year olds as the youngest users.

You can run Python directly in the browser [syntensity.com] - no need for installs at all. In fact one of the motivations for getting CPython working in JavaScript was for things like this. (Note: It doesn't work perfectly yet, but all the hard work is already done.)

For a basic IDE, that demo includes Skywriter. Integrating some additional features like load/save etc. would make it very usable I think.

Regarding pygame: It would be possible to get something like that working in the browser, targeting an HTML canvas element. See this demo [syntensity.com] for C++ code written against SDL, compiled into JavaScript and an SDL implementation that targets a canvas.

Re:Yes, Python :) (1)

chromatic (9471) | more than 3 years ago | (#34694164)

I agree that it's possible, but we decided that rather than producing a stripped-down version of Python or Scheme or Smalltalk which runs client-side in the browser and includes graphics primitives, we'd enhance a simpler language designed for teaching. Remember, we're not trying to produce professional programmers. We're trying to produce people who see computers as tools which they can use to create, not just consume.

Teach Python instead (2)

talcon (1281856) | more than 3 years ago | (#34693876)

I think Python is a better contemporary choice now (and I learned on structured BASIC - QuickBASIC)

Programming should begin with OO - yes really! (2)

robbak (775424) | more than 3 years ago | (#34693894)

There is noting inherently complex with OO, unless you already have a head full of linear or procedural programming that you need to get rid of.

A nice, stripped-down OO language - I'd sugest parts of java if it was a free language - would be a good start. Even a graphical interface, although they are undeniable useless for real programming, would be useful for starting off.

Re:Programming should begin with OO - yes really! (1)

aztracker1 (702135) | more than 3 years ago | (#34694254)

I would think that JavaScript would be appropriate, it's easy enough in terms of syntax, there's a lot of flexibility, and it's an event driven, functional language with prototype based inheritance. I know it gets a bad rap, but honestly it's a very good language, and very widely available.

Kids these days (0)

Anonymous Coward | more than 3 years ago | (#34693896)

Back in the day, when I programmed a Harvard Mark III computer, you had to check out the entire computer six weeks in advance and then enter your program from the console, under tremendous time pressure, using switches for 1's and 0's. There were no compilers and no operating systems. If you made a single mistake, either during preparation or program entry you were hosed. If any vacuum tube blew or relay malfunctioned during your run you were hosed. If the CO showed up during your shift and commandeered the computer for some emergency purpose, you were out of luck. If the Germans attacked the base during your run - and sometimes they did - you were out of luck.

Is it 1994 again? (1)

mmaniaci (1200061) | more than 3 years ago | (#34693912)

BASIC? Really? In 2010 someone is making products with BASIC?!?!?! This has to be for legacy supp... wait you say it isn't? WHAT THE FUCK!!!

Please do your students a favor and use Python.

Re:Is it 1994 again? (1)

syousef (465911) | more than 3 years ago | (#34694274)

BASIC? Really? In 2010 someone is making products with BASIC?!?!?! This has to be for legacy supp... wait you say it isn't? WHAT THE FUCK!!!

Please do your students a favor and use Python.

Yeah 1994 comes around every 500 lines or so. It's a bug in the code. That's what you get for using a language that depends on line numbers.

Microcomputers grew up with us. (5, Insightful)

ZorinLynx (31751) | more than 3 years ago | (#34693916)

Those of us who were kids in the 80s and grew up playing on microcomputers with BASIC have a very distinct property:

We grew up together with computers.

When we were kids, computers were simple, single-tasking, small memories, and it was easy for a youngster to understand the entire system. As we got older, systems got more complicated, and so did our ability to understand them.

Today's kids start with computers that are already large systems with complex operating systems, millions of times more memory than we have *disk* when we started, that are difficult to understand at a low level. I think this puts them at a loss. Every child should be able to play with and learn on an Apple II, C64, or similar small system. Of course realistically that won't happen. So emulated "systems" with simple programming languages may indeed be a good idea for today's kids.

Re:Microcomputers grew up with us. (1)

Nimey (114278) | more than 3 years ago | (#34693972)

Or, you know, there's actual emulators such as AppleWin for the ][ series and VICE for the C=64 and its brethren. Also RetroForth.

Abstraction == Good (0)

Anonymous Coward | more than 3 years ago | (#34694218)

Today's kids start with computers that are already large systems with complex operating systems, millions of times more memory than we have *disk* when we started, that are difficult to understand at a low level.

Actually, there's another side to this.
We now have much greater abstraction between the developer and the underlying hardware -- so you don't need to fully understand how to position a hard-drive head, or write assembly or even proper memory management[*].

Today's kids will have the "next big ideas", do we really want to scare them away by forcing them to worry about all the things we lost hair over?
The closer we can get them to turning ideas into working software the better.

[*] Blasphemy, I know... but leaving it up to Java or .Net can make things much easier to learn.

Re:Microcomputers grew up with us. (0)

Anonymous Coward | more than 3 years ago | (#34694228)

Why do my fellow old guys think that the old ways are the way to teach something. Go to the Photo.net site and the old guys and their hipster enablers their say that the only way to truly learn and understand photography is to shoot film.

The logic, algorithms and thought processes can be learnt perfectly well on modern "complicated" machines.

Alright, I'm getting off your lawn - stay out of my rose garden!

Re:Microcomputers grew up with us. (1)

underqualified (1318035) | more than 3 years ago | (#34694250)

also, we were the ones who were different: we were those kids who were fascinated by this new thing. that fascination eventually turned into passion. for kids these days, a computer is as commonplace as a door. the fascination is still there, but no longer as strong. there's no strong desire to find out how it works.

back when i was still a CS student, i could easily divide the class into two: those who had this passion for programming(self-taught during HS for the most part) and those who were there because they were told that programmers get paid well. guess who shifted after two sems?

Teaching Kids Programming Considered Harmful (1)

the eric conspiracy (20178) | more than 3 years ago | (#34693938)

Teach them math and language skills. These are the fundamentals of programming and it is a waste of time to teach programming until these foundations are in place.

Re:Teaching Kids Programming Considered Harmful (1)

Proudrooster (580120) | more than 3 years ago | (#34693982)

This works well for geeks who are interested in programming, but for the general population, it is best to get them immersed and interested first before teaching syntax, grammar, and object oriented programming principles.

Re:Teaching Kids Programming Considered Harmful (1)

syousef (465911) | more than 3 years ago | (#34694278)

This works well for geeks who are interested in programming, but for the general population, it is best to get them immersed and interested first before teaching syntax, grammar, and object oriented programming principles.

If you aren't interested in programming, and you don't have a burning need to program, you're not going to learn it. EVER. Getting someone interested only works if they're open to being interested.

Re:Teaching Kids Programming Considered Harmful (0)

Anonymous Coward | more than 3 years ago | (#34694054)

That's nearly backwards. Algebra is far easier to learn if you have a reason to use it, which programming an provide in a real world way. If I had been taught programming before math, I would have had a better reason to pay attention and retain it, rather than finally understanding why those things were actually important. Same thing with complex numbers and electronics.

Re:Teaching Kids Programming Considered Harmful (1)

Proudrooster (580120) | more than 3 years ago | (#34694270)

I never said it was easier. The logical path does not always work best with humans. Generally speaking, humans are emotional beings and need to connect with something before they invest or connect with it.

Even the Head First [amazon.com] books get you up and running in Chapter 1/Day 1. If Chapter 1 were a quick review of Algebra, followed by Chapter 2 a quick review of Discrete Mathematics, followed by Chapter 3 a quick review of Logic, followed by Chapter 4 Proper Object Oriented Design, followed by Chapter 5 Design Patterns most kids would drop the course somewhere between Chapter 1 and Chapter 2.

If programming were a high school graduation requirement or tested on the ACT it could be structured differently like Physics or Chemistry. Unfortunately the USA does not seem to care about computer programming and the course is generally treated as an elective and if you are lucky, really lucky, the computer teacher will inspire you and teach you programming. Hopefully, they will start with Alice move to Java and then onto LeJos on a Lego NXT brick. Then in semester #2 move on to html, php, databases, and operating system basics.

sys 64738, peek, & poke won't work but GOTO wo (1)

Proudrooster (580120) | more than 3 years ago | (#34693942)

Pretty cool little Commodore 64 emulator but the peek, poke, and sys commands have yet to be implemented. Luckily the GOTO command was implemented. The Java and OOP Nazis have been trying to kill GOTO for years and I am glad to see that it is still alive and well for future generations of programmers to enjoy.

If you are new to basic try this little program...

10 ? 'HELLO WORLD'
20 GOTO 10

Re:sys 64738, peek, & poke won't work but GOTO (1)

robbak (775424) | more than 3 years ago | (#34693986)

loop while( true )
          screen.print( "Hello World" );

Re:sys 64738, peek, & poke won't work but GOTO (1)

Proudrooster (580120) | more than 3 years ago | (#34694000)

Error: While is a word reserved for future use.

Looks like that is on the to be implemented list as well, but GOTO works :)

"How can we teach kids how to program?" (5, Interesting)

underqualified (1318035) | more than 3 years ago | (#34693996)

the correct question would be...

how do we get our kids interested in learning how to program?

and the answer to that would be...

tell them they're not allowed to do it.

I completely agree with Edsger W.Dijkstra (1)

McNihil (612243) | more than 3 years ago | (#34694002)

"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

There might be hope for subjects that started using "gosub" without ever using "goto" but I have never seen anyone having done that.

But then again IMHO today's html/javascript is one form of modern spaghetti code too so maybe BASIC should be taught because of that.

Re:I completely agree with Edsger W.Dijkstra (0)

Anonymous Coward | more than 3 years ago | (#34694042)

He was insanely WRONG in that comment.

Re:I completely agree with Edsger W.Dijkstra (4, Insightful)

volkerdi (9854) | more than 3 years ago | (#34694098)

Famous quote, but nonsense. In many ways, trying to build large BASIC programs and ending up with unmaintainable spaghetti code is one of the most valuable lessons a programmer can learn.

Re:I completely agree with Edsger W.Dijkstra (1)

catbutt (469582) | more than 3 years ago | (#34694206)

If your teaching style is to frustrate your students, rather than get them doing something fun and satisfying as quickly as possible.

"computer programming" is not "logic" (5, Insightful)

rbrander (73222) | more than 3 years ago | (#34694090)

You can teach people logic statements and procedures and about objects, even - with ENGLISH.

In my grade 8 class, there were no computers except the ones at the University I was by then programming with punch cards using stolen student accounts. But the math teacher asked us to write out our procedure for tying our shoes - in precise, motion-by-motion detail so another student could do it exactly the same way as we did, without help. Most people required over a page, and it was a revelation how excruciating it was. Later, in CompSci 501, I learned about logic statements and predicates and the wonderful Lewis Carrol problems ( 1: All my turtles that are not green are old....) All English.

"Computer Programming" on the other hand, is about making computers do things for you. By hook or by crook, by object or procedure, just get 'er done. I completely agree with the language snobs and detest BASIC. And I do most of my programming in it because you can make Excel about 10X more useful with just a little VBA here and there.

Learning Python or Java is just great if you plan to be a professional programmer one day, those languages can solve very large problems without the codebase becoming unmanageable. If your problem is getting a bunch of kids excited about what computers can do, you have no choice but to use whichever language will produce results with the greatest WOW factor with the shortest learning time.

That cuts out ALL verbose languages, languages that demand typing. The "Hello world" program should be one statement long.

Notice that doesn't chop out Perl or Python. But also notice that at kid-levels, those languages can only take screen input and produce text output. That was cool for me in the 1970's but I think today you'll get better results with something that can go graphical right away. (This also just cut out your original BASIC).

So, if your school has MS-Office on every machine, well, as a FLOSS fan I hate you, but you're crazy if you don't leverage the presence of VBA. You can show them what cool stuff a computer can do with Excel alone, show them some formulas in action and all that. (This, by the way, keeps them from thinking of "computer programming" as necessarily procedural right there - clearly, you are instructing the computer, but you are NOT using a procedure, just setting up conditions for behaviour of the cell objects!)

Then show them procedural programming by modifying the spreadsheet with VBA. This can lead quickly to manipulating the Excel data structure, which is a huge collection of objects with properties and methods. Many can manipulate charts in pretty ways, or turn Excel into "graph paper" with coloured cells in funny shapes, like ASCII art. You can take it all the way to them inventing their own objects in VBA.

AND: It will be useful in a job, even if they only learn to write 10-liners. Bonus.

Java For the Loss! (0)

Anonymous Coward | more than 3 years ago | (#34694118)

Could always teach them java.

First they would have to install the java interpreter, and then some class libraries.

Then, they would have to figure out what to import to run "hello world".

Then, they could share their java program with other people, as long as they have the same version of the interpreter, and the same class libraries.

Then, when something doesn't work, they can sift through a huge stack trace and figure out they missed a semi colon.

Or, we can use basic, not have to worry about libraries, versions, etc, and concentrate on algorithms, etc.

Java is great for those who want to learn how to type.

BASIC is great for those who want to learn how to program.

How to teach programming (4, Interesting)

QuoteMstr (55051) | more than 3 years ago | (#34694120)

When teaching students how to program (which is entirely different from teaching them computer science), you should begin with the most fundamental concepts: talk about raw memory and opcodes. Discuss briefly how these instructions are actually interpreted and implemented (how a half-adder [wikimedia.org] works is fascinating, even if most people never have to build one in real life).

Once your students understand how to make computers do basic things with raw instructions, teach them jumps, conditionals, loops, and even subroutines. After that, introduce higher-level languages and compilers, and demonstrate that the compiler merely automates what your students have already been doing. From there, teach progressively higher-level constructs, including second-order function references, data structures, and so on. Object-orientation falls out naturally once you get to structures and function pointers.

If you follow this approach, your students will have an understanding of the entire abstraction hierarchy, which is not only of immensely practical value, but also underscores the principle that nothing in this field is "magical". You can always pierce an abstraction, and even more importantly, erect new abstractions where appropriate. The most common flaw I find in programmers is the inability or unwillingness to build new abstractions. The only way we make progress in this field is by the old reductionist approach of breaking a hard problem into smaller parts and attacking each individually. When you teach your students how to do that by demonstrating the power of abstraction, you make them better programmers.

Programmers shown UML, Java class graphs, and so on right away become too familiar with that level of abstraction. They think of lower levels as some kind of magic and don't realize they can and should build their own levels on top of what they're given. The result is often incoherent, rambling, brittle, and ugly code. Don't let that happen.

Breaking news (0)

Anonymous Coward | more than 3 years ago | (#34694126)

Languages designed for teaching coding to kids are useful for teaching coding to kids.

Also, water is wet, pope is catholic.

Worthy Cause (0)

Anonymous Coward | more than 3 years ago | (#34694162)

This looks like a great place to donate a few bucks, especially in light of the article last week about how most schools don't have anything approaching Computer Science classes these days (if they ever did). Anecdotally, there are plenty of graduates with a BS in CS who couldn't traverse a binary tree if their lives depended on it, and I think a lot of that is due to students who have no actual background in programming before entering college or university. I dropped $10 in the jar, and I'd encourage anyone who's concerned about the future of CS talent to do the same. I don't know if it will help, but it seems like something worth trying.

Full disclosure: I've been looking for a way to show my kids about programming for a while now. There are standalone BASIC and LOGO IDEs, but I think the social/online aspect of this project is something that will appeal to a lot of kids, especially since they can't just hang out at a friend's house making games that rival the latest commercial titles anymore. Almost nothing of the culture that drew me to computers in the 80s exists today.

Posting AC since I already moderated in this discussion..

Get them going first (1)

Goboxer (1821502) | more than 3 years ago | (#34694166)

Perhaps the reason we start at a higher level than BASIC is because we want the kids to get in there and start going first. A hello world program is pretty exciting. But if it takes you a shit ton of time to make it happen you aren't going to capture the attentions. A simple program should be simple. I know I found the underlying structure and commands a hell of a lot more interesting once I saw what their higher level counter-parts could do.

Depends on which version of BASIC (1)

pedantic bore (740196) | more than 3 years ago | (#34694220)

The answer to "Why teach programming with BASIC?" depends on which language called BASIC you mean, and the answers vary from "You don't know better" to "You want to teach them how to write quick one-off VBA macros, not to program" to "You passionately hate your students."

Assuming that you want to teach them to program, use a language that incorporates some modern language features and gives them room to grow, but has enough in terms of training wheels that they aren't distracted or frustrated by unnecessary trivia. Python, Ruby, maybe C#.

Learning BASIC led me to a CS degree (2)

t'mbert (301531) | more than 3 years ago | (#34694294)

I learned to program in BASIC, on an Apple ][+, back in the early 80's when I was 10 or 11. I loved it, but I started wondering how programs like word processors could access a large document in RAM, and work with files bigger than available memory, and other mysteries...which led me to learn C (with a classic Borland C compiler) at 15, and eventually to a CS degree.

In my case, BASIC (and I did LOGO too) didn't ruin me, it made me more curious and moved me into the more complex languages. When I got to college, data structures class was a piece of cake, as I'd already done linked lists and other structures while learning C, and I could easily deal with pointers and pointer arithmetic, multiple indirection, function pointers, and more. I feel a debt of gratitude to the humble BASIC language.

Just a couple weeks ago, I started teaching my son Apple BASIC from a web-based Apple BASIC emulator, hoping that he'll be as excited about programming as I was.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...