Back to BASIC

My stepson is about to start first year aerospace engineering and has to learn programming. Incredibly, the university seems to consider C as ideal for learning. I’ve programmed several million lines in C and I don’t think it’s at all suitable for a beginner who needs to learn the very basics of programming. When I was his age, more time ago than I care to remember, I learned the, er, basics with BASIC (with an ASR33 Teletype linked by acoustic coupler to a DEC machine somewhere else in the universe and with punched tape as the only “storage medium” – that shows my age).

What I’m looking for is a version of the old text-only BASIC for MS-DOS, preferably free, so I can teach him from the very start without the distraction of spending time and effort designing a user interface, which can come later.

Any ideas, anyone?

http://www.quitebasic.com/
http://www.compileonline.com/execute_basic_online.php

very basic, but seems to line up with what you are asking

[quote=125353:@Peter Rodwell]My stepson is about to start first year aerospace engineering and has to learn programming. Incredibly, the university seems to consider C as ideal for learning. I’ve programmed several million lines in C and I don’t think it’s at all suitable for a beginner who needs to learn the very basics of programming. When I was his age, more time ago than I care to remember, I learned the, er, basics with BASIC (with an ASR33 Teletype linked by acoustic coupler to a DEC machine somewhere else in the universe and with punched tape as the only “storage medium” – that shows my age).

What I’m looking for is a version of the old text-only BASIC for MS-DOS, preferably free, so I can teach him from the very start without the distraction of spending time and effort designing a user interface, which can come later.[/quote]

I hate C by every fiber of my being, but it seems to be the standard today. You may not want your stepson to be out of sync with his classmates…

That said, you can find GWBasic very easily : https://duckduckgo.com/?q=download+gwbasic
I am not quite sure it still works with Windows 7 and 8, though. It did with XP when I looked.

Using a basic BASIC to learn the… er, basics of programming before moving onto C is a great idea, IMO.

1 Like

Since object oriented is the standard these days, I would think learning with Xojo would be better than with the old BASIC dialects… If you learn procedural first it can make transition to OO languages more difficult for some.

  • Karen

Seems GWBasic can be run in 32 bits environments with DosBox http://www.dosbox.com/wiki/Basic_Setup_and_Installation_of_DosBox

Still the same reservations about it, though. The more I think about it, the more I feel your stepson may be considered retarded for not speaking today’s C lingua. Just as me, dinosaur who’s not on Facebook and has no twitter account :stuck_out_tongue:

I think he is trying to teach the language construct (syntax) before he gets to things like OO, events, threads…

starting with just syntax will indeed provide less distraction
I remember the magic of typing a few lines of code and without having to compile (interpreter) seeing what the result was. Sometimes it even did what i thought it would do :slight_smile:

Yet again with all the repulsion I have for C, one can learn the basic in that language as well, without the potential risk of appearing ridiculous in front of kids who are usually quite cruel for misfits. Just try and alude about Xojo in Apple developers forums to see what I mean…

[quote=125373:@Michel Bujardet]Seems GWBasic can be run in 32 bits environments with DosBox http://www.dosbox.com/wiki/Basic_Setup_and_Installation_of_DosBox

Still the same reservations about it, though. The more I think about it, the more I feel your stepson may be considered retarded for not speaking today’s C lingua. Just as me, dinosaur who’s not on Facebook and has no twitter account :p[/quote]

Facebook & Twitter are just a new way to spend time at the virtual “water cooler” rather than working :stuck_out_tongue:
I’m not on either and don’t personally find I’m missing that much

[quote=125374:@Dirk Cleenwerck]I think he is trying to teach the language construct (syntax) before he gets to things like OO, events, threads…

starting with just syntax will indeed provide less distraction
I remember the magic of typing a few lines of code and without having to compile (interpreter) seeing what the result was. Sometimes it even did what i thought it would do :)[/quote]
Learning the common control flow constructs (if then, loops, etc) is useful - but it has to be done in a way that you say "this is like this in this language and like something else elsewhere so the concept is whats important not he specific syntax (unfortunately many training programs teach specific syntax and not concepts)

Learning OO concepts will require an OO language - again the concepts are whats important - not the specific language

At school we were taught there are three important concepts, and with these three concepts you can write any imaginable program…

  • Statements (Units that does something useful)
  • Conditions (ability to make decisions, e.g. if statement)
  • Repetition (ability to repeat selected logic a number of times, e.g. for loop)

Any other concepts are really only extensions of these three basic principles. e.g. a class in OOP is just a very fancy container and interface for statements.

Once a person grasps these basic concepts it shouldn’t be too difficult to apply it in any language.

There’s something you need to consider. While you may find creating the UI as a distraction, your stepson could very well find that part of it really compelling and motivating. The UI is an incredibly important part of most applications and it makes the app feel real. People learn better when the goal is tangible. So I would recommend starting with a simple project that includes UI. And I would base that simple project on something near and dear to your stepson.

And of course I would recommend teaching him via Xojo. You know we have a free book called, “An Introduction to Programming with Xojo” that is designed to teach programming concepts. That’s its number one priority. The fact that you learn Xojo at the same time is really a side effect. I don’t know how old your stepson is but we have schools that are starting to teach programming with that book. I think it would work out quite well for you and your stepson.

I recommend Python for a first timer. Very popular in school and easy to learn.

[quote=125394:@Norman Palardy]Facebook & Twitter are just a new way to spend time at the virtual “water cooler” rather than working :stuck_out_tongue:
I’m not on either and don’t personally find I’m missing that much[/quote]

My parents did not understand the Beatles or my passion for electronics and buddhism. Youngsters have a field of conscience of their own and ways of doing things of their generation. I am absolutely sure am not missing anything, but also certain these things are important to them.

No doubt it is - its a great way for folks to stay in touch with family & friends & causes they support.
And a great platform for electronically socializing.
And they CAN be used for work related purposes - they just generally aren’t.
Hence why most of them have to find a way to monetize their users - and end up pushing ads at them as thats the most useful thing they can figure out to generate lots of revenue.

I’d love to be wrong but I’m fairly certain I’m not

Facebook is what you make of it.

I clean out my facebook contacts on a regular basis as many postings are just too boring to follow.

What’s left is usually really good.

It is just that most people are too afraid to do the same because they fear (1) they miss something (trust me, you don’t), or (2) they offend someone (just unfollow them, no need to unfriend them)

Facebook has about 2 years left.

JavaScript? It’s easy to learn, easy to run, more similar to C than BASIC or Python and every quality browser has a debugger built right in. Not only that JavaScript can be used for pretty much anything now: web client (in the browser), web server (node.js), mobile apps (Cordova/CocoonJS), desktop apps (Seed/Windows Runtime), SmartTV apps (Tizen/WebOS), microcontroller (espruino),…

I’d suggest starting with the HTML5 canvas.

I’d start with a strongly typed language before getting into scripting languages that let you plop anything in anything
It forces you to think really hard about how to design things instead of just “throw it in there and see what sticks”

BUT I do think theres value in what Geoff said in terms of being able to SEE results quickly
It’s encouraging

Clearly he should start with assembly.