For those of you who missed the slashdot posting earlier today, you may want to look at an article about how today, you can’t find an introductory language. (Watch the ad, and the full article comes up.)
Seeing as FIRST is about inspiring kids to do engineering, I figured I’d link this.
(And yes, my school’s math textbooks have BASIC examples, too.)
There isn’t really a “BASIC” lying around in Linux per se, but considering that the system is built to be easily modifiable and programmable, it’s pretty close. Shell scripts are about as BASIC-like as you can get.
An interesting thread. Both my sons learned to program using QBASIC (from DOS version … well, I dunno, but it fits on a floppy). It still works fine in a DOS window on Windows XP. It’s a whole lot easier than trying to understand the .NET framework to learn programming. Or C. Or C++. Or C#. Or just about anything.
The C64 was the best machine to learn on… and the Programmer’s Reference Manual from Commodore still sits on my shelf… graphics, sound, basic and machine code all in a small book about 3 or 4 cm thick.
I use PIC series microcontrollers with my students to make mini-sumo robots. (This is kind of how we ended up in FIRST… the students wanted to make something big enough to chase the grade 8’s down the hall…) When they program a PIC, or a robot, they can write a very simple program and be pleased with the result because they have nothing to compare it to.
When they write a program for a PC, they compare it to something like Quake, or the latest gaming hit, and aren’t that impressed. So really, FLL, VEX and FRC are really part of the solution for getting excited about programming… they remove the expectations and make everything a discovery.
This is what I learned to program in as well. Back when I learned (hehe, uphill both ways, no doubt) it was on Windows 95. QBasic is really really good for learning simple programming concepts. I never quite wrapped my head around the concept of a subroutine, but I was doing all sorts of inputing and outputing and simple games. It was awesome, and very simple for the 3rd grade me to pick up quickly.
I learned to program calculator BASIC, for my TI-83 plus. First came the basic math programs (GCF, triangle inequality checker, ect.), then came the output command programs (screensavers, top-down shooters), then pixle-based commands (SkiFree type game), then I moved on to C and Python.
For a simple lineprogramming language for beginners, I’d have to reccomend Python. I’ve dabbled in it a little and it’s remarkably intuitive to programmers and noobs alike. It’s versatile, powerful, and simple. Beginners can use it to learn very easy mathematical operations and pro programmers can use it as an engine to run an application that would be needlessly complex in C/C++.
Simple programming languages aren’t dead, they just no longer come from Microsoft.
(Yes, Python is a ‘scripting’ language. Don’t dismiss it because of that. So is PHP. Both are remarkably clean and powerful programming languages.)
If your school is looking for something to program and or give the kids something to play with that does BASIC take a look at the offerings from Parallax. They created the first BASIC stamp that controlled FRC robots, and they are awesome tools to learn how to program with.
cool, I didn’t know so many people learned the program with QBASIC. My brother started when I was about ten, and then I started programming. They actually used to have a QBASIC programming class at my school a while back, before my freshman year. But now they just teach Visual Basic.NET. It is sufficient for teaching programming, but I think the newer programming languages just aren’t as good
I started scripting for the Q3 Radiant engine in about 8th grade, picking up C++ in 9th by reading mid/late 90s era programming books. I took what I was seeing from looking at source code from python + my TI 83’s language (almost identical to Fortran), and I translated it into what I was learning in C++.
In 10th, I was one of 6 students enrolled in AP Computer Science A, learning Java, which led to AB and Advanced Computer Studies this year. Last year, I started work with Fortan and C for robotics and science fair projects.
In this day and age where software is truly marketting in some form and very little is needed to be coded from the user, kids that are joining APCS classes tend to be self taught C/C++ scriptors or people who “drag and drop” program off copies of VB.
When I first programmed, books still tended to focus on more in line programming and I had to learn how memory was allocated, where instructions were sent, how instructions were interpretted, and how pointers were handled real fast with an early GNU compiler.
Everyone that I meet now that joins the robotics programming team shys away from us FRC team coders and collect around the Vex team’s Visual C computers. It’s kind of a shame to see the newer visual programmers so fearful of something that comes so natural to us.
Our team has started teaching some of the Vex visual programmers how to write code effectively in C for our FRC bot. It’s slow and sometimes painful to unteach what they’ve learned from dragging and dropping.
There is a difference between a programmer, coder, scriptor, and software engineer. “Programmer” was put there because there is no better term for the form that they program in, as it is not the same as other forms of writing code. Programmer, as I associate it, implies that the user is coding in a programming language. Visual programmer would be a better term to put in the “programmer” spot, but at the time I could not think of a better term.
I have editted my post to reflect the terminology.
Great article and great thread. Thanks for posting this.
That article mentions all my old favorites. Back in the day, I learned to program on a green screened Apple II and later got a Commodore Vic20 for Christmas. Yeah, I was jealous of you C64 guys. BASIC was loads of fun, and later in life when I had some projects that could only be solved with a custom computer program, I went out and found Qbasic and later Visual Basic to get the job done. I’m really glad that I spent a year staring at those green screens while Mrs. Owen taught me the mysteries of Apple Basic. It has served me well.
Course, new functionality was often wasted on me. It was a long time before I actually used an ELSE statement because we didn’t have that animal when I stared out, and I was still numbering my lines in increments of ten long after there was no need to do so.
Ah, the good ol’ days. Software was scarce and it was a Garbage In/Garbage Out world. Mountain Dew kept us awake all night and Doritos kept us alive so we could finish those clunky programs. Sigh. It almost brings a tear to the eye.
I completely agree with the author of that article. Thank you for the link, Jamie.
I am a prime example of what the author is talking about as well. For those of you who know me, you may be thinking, Huh?! You’re obsessed with programming!
But I wasn’t always. In fact, I hated the thought of ever possibly being a programmer. I thought it would be the worst career (let alone hobby!) in the world.
In hindsight, what the author talks about is precisely why: I was scared because I didn’t understand it, at all. I didn’t think I could do anything related to programming, and it was hard.
(I never would have become a programmer and would still hate the concept of it, if it had not been for my teams programmers graduating in 2004, and us needing a programmer in 2005, and I reluctantly decided to give it a shot, and got hooked).
But the point is, the author is completely right–kids aren’t going to learn the basics of programming and get familiar with it because there is nothing simple to start with. No one would climb Mount Everest before climbing the hill in the park down the street.