Teaching programing

Does anyone have a suggestion for teaching programing to students ( 11 to 18 years old )
We currently use RealBasic on Windows for the odd one or two students but RealBasic
on openSuse doesn’t work that well and is expensive to roll out to 300 or so desktops.

Ta

Mal

On Tue, 24 Jan 2012 21:56:03 +0000, interele wrote:

> Does anyone have a suggestion for teaching programing to students ( 11
> to 18 years old )
> We currently use RealBasic on Windows for the odd one or two students
> but RealBasic on openSuse doesn’t work that well and is expensive to
> roll out to 300 or so desktops.

It’s a little unclear what you’re asking for - you seem to be asking
about how to teach programming, but then ask about a specific Windows
program.

Are you looking for suggestions for languages to teach?

Or IDE tools to teach?

Do you have a specific language preference, or do you not care about what
language you use?

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

Sorry if it wasn’t clear

We would like to teach basic programming. At the moment we have Windows
and only a couple of student doing any programming so we use RealBasic ( on Windows )

We are actively considering openSuse for all machines and expanding the number of
students that can have a go at basic programming.

We have looked at the Linux version of RealBasic and it doesn’t work that well
on openSuse and it is very expensive if you need 300ish licences.

Since we are using KDE and I am the only one who knows how to do any
programming and I only know RealBasic ( The blind leading the blind
springs to mind ) I guess what I really want is something like ‘QTBasic’ …
… which I imagine doesn’t exists. :frowning:

Any idea as to how to get this off the ground would be appreciated

regards

Mal

I would recommend Python because it has most of the elements of any programming language and is self-documenting and therefore well documented. It is also pretty easy to run up something simple that works and then add further features.

Am 25.01.2012 10:36, schrieb john hudson:
>
> I would recommend Python because it has most of the elements of any
> programming language and is self-documenting and therefore well
> documented. It is also pretty easy to run up something simple that works
> and then add further features.
>
>
+1 for Python

If it really needs to be Basic and if it is ok to use a Basic which has
no Windows port I recommend Gambas.
http://gambas.sourceforge.net/en/main.html

It is available in openSUSE from the standard repositories and a easy to
install.

None the less I want to repeat that you will do your students a favour
teaching them Python instead, teaching it to yourself at the same time
and many good books are available for it and it is independent of the
platform (Mac, Windows, every Linux, BSD has it).


PC: oS 11.4 (dual boot 12.1) 64 bit | Intel Core i7-2600@3.40GHz | KDE
4.6.0 | GeForce GT 420 | 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.4 |
nVidia ION | 3GB Ram

No, it doesn’t have to be BASIC. The only reason so far is that I know it reasonably well.
Actually a more real world skill would be much better… but it’s got to be simple enough
that I can be up to speed by September.

Mal

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Python is a good choice, though my personal preference (disclaimer: I
have used Python very little) is for Perl. Both are cross-platform,
though, so even while you’re stuck on windows machines you would at
least be able to use a language that is practical (RealBasic? really?)
as well as educational no matter the platform underneath. PHP is
another good option, though for general programming I’d probably go with
one of the others.

Good luck.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJPIANUAAoJEF+XTK08PnB5TzIQAIXJEZ6h80+B6QZKpQDqCvrq
Vm2IkpioaZNlXtNsLsZTolcFY0mENUKmcLmq71BKoqabs8LvpJmNw5U8oNiAL3Qc
KZXDv5X1e9LCD7OoQa3JhR3V5xohbhSadBh49ETLlCj5+78Z944o2f9VH8W4Bytw
cp5RkspBprffobLcJeTyxOMXge6Wb2s9Gu4dQ/KFTaZAM3lP25849mM4NbYNxvFq
ix9PF3rxpVG55KREkPMug4Oc/thEzGCJiiwAGQazrNY8Q2iIWp2rjWVLxX2PNx+p
zOn65v2mx7qr3NZD4BLMi2hdJ22OOwWMv5ftG7+Rhm/L/Ul4d3at41CFzGqc6430
1MRnYVjU6ypXPEx5fiI2qH4ld+D66BzJid97VNs8BMXUuoqjh9Asuki+wTQxZi1b
3Zy0D4a/uSuGAPu1EwmuVW7eeWK/pn5jiUpMJWdM1GPAFhLoXLv82oC6PpDF+a5v
7mU8vmFgdbdfw3ElKDIjTh4RYyUMduqJTyzlULetzbWD2Rs23nfdcn0AiY4DTBap
nX22rgyxEsE7//Yk0w37GlH94nW4qQJrWk0VguAchu6zgamVsx5xESMBZHxp5TV7
2dcLZ54WRR3OarFxQGPCIpFrz/9V5kV6+X+jX4xMoveAHmORZQfsNjM11CbdEsWi
hVH7lz6+E2r5ZfwJz47L
=w9yV
-----END PGP SIGNATURE-----

ab wrote:
> Python is a good choice, though my personal preference (disclaimer: I
> have used Python very little) is for Perl. Both are cross-platform,
> though, so even while you’re stuck on windows machines you would at
> least be able to use a language that is practical (RealBasic? really?)
> as well as educational no matter the platform underneath. PHP is
> another good option, though for general programming I’d probably go with
> one of the others.

Speaking as somebody who presently uses Perl for $work, and quite likes
it, I’d have to say that I’d strongly recommend not trying to teach it
to youngsters, especially if the teacher is not already expert. It’s a
very capable language but not terribly well-designed, especially from a
comprehensibility and conceptual point of view. There’s a lot of
background knowledge needed to write good Perl beyond a two-line
program. (Note that I don’t say one line because you have to be a real
expert to write good one-liners - google JAPH)

As PHP started as a bastardised form of Perl, I would also recommend
against teaching it. It has numerous ‘gotchas’. Again, it has an
established place in commercial operations but is definitely not a good
choice to teach people as their first language.

Python, which I don’t use, is much cleaner and a more sensible choice.
Knowledge gained in learning Python could be transferred to Perl or PHP
if people subsequently wished to learn them.

For younger children it might also be worth looking at the Logo language
(install kturtle)

Cheers, Dave

On Wed, 25 Jan 2012 13:26:03 +0000, interele wrote:

> No, it doesn’t have to be BASIC. The only reason so far is that I know
> it reasonably well.
> Actually a more real world skill would be much better… but it’s got
> to be simple enough
> that I can be up to speed by September.

For beginning programmers, I’d go with a language with a straightforward
syntax and that isn’t overly complicated. BASIC fits this nicely, as
does Python (at least it seems to, though it is extensible, so it can get
complex). I started programming with BASIC and Logo myself back in the
early-to-mid 80’s.

The important thing when teaching programming, though, is to focus on
good coding practices and program structure. If you focus on language
syntax, then the students are only going to know the syntax of the one
language.

If you focus on program structure and concepts, then they can apply that
knowledge to whatever language.

If I had only learned:

10 FOR X = 1 TO 10
20 PRINT "X = " X
30 NEXT

Then the construct:

for (x=0;x<=10;x++)
printf("X = %d
",x);

Would not have made much sense to me.

But since I was taught about FOR loops first, I was able to see (when I
learned C a few years later) that these two constructs are essentially
the same thing.

Interpreted languages like BASIC and Logo in particular are good at
showing younger students results very quickly, and Logo is especially
good because if you’re using turtle graphics, they can draw things on the
screen with their programs and see the results.

http://www.linuxjournal.com/content/teaching-programing-skills-children-
logo looks to be a good article on using Logo.

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

On 01/25/2012 07:07 PM, Jim Henderson wrote:
> If you focus on language
> syntax, then the students are only going to know the syntax of the one
> language.

(as a non-programmer) i agree completely, and go on further to say:

imo, “Beginning Programming” should use real language, like:

ask “What is two plus two?”
if reply is not “4” or “four” say “Try again” and wait for reply
if reply is “4” of “four” say “Good job.” and go to next question
ask "What is . . .

and on like that…and you can talk about wait loops, endless loops, do
while loops, blah blah blah forever and never use anything but real
language…

of course you can’t that (TA-DA!) “Hello world!”

but, bash is a pretty neat “programming interface” at a rudimentary level:

echo Hello World! > myFirstProgram.txt
ls myF*
cat myF*
rm -i myF*
ls myF*

do that for a few days weeks and then talk about snakes…

ymmv [note: i realize i am unqualified to speak on these matters]

DD http://tinyurl.com/DD-Caveat
READ all the neat stuff about openSUSE here http://tinyurl.com/SUSEonDW

On Wed, 25 Jan 2012 19:17:03 +0000, DenverD wrote:

> (as a non-programmer) i agree completely, and go on further to say:
>
> imo, “Beginning Programming” should use real language, like:

Some programming classes work entirely in pseudocode (or start that way),
but I have found and observed over the years that having real output from
a real computer helps keep younger students’ attention focused on what
they’re doing.

That’s why logo is a good starting language - Turtle Graphics lets them
draw pretty pictures, and they learn programing structure concepts and a
bit of maths along the way as well. :slight_smile:

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

know you are right that pseudocode has a limited life, and soon you need
a more real lingo…and logo sounds kinda cool…


DD
READ all the neat stuff about openSUSE here http://tinyurl.com/SUSEonDW

On Wed, 25 Jan 2012 20:13:12 +0000, DenverD wrote:

> know you are right that pseudocode has a limited life,

It’s actually extremely useful for software development, and is used a
lot. But to be effective, it requires that you know how the computer is
going to process the instructions when you translate it to a language it
understands. :slight_smile:

But I remember doing pseudocode in college-level programming classes (not
the intro classes, the more advanced classes)

> and soon you need
> a more real lingo…and logo sounds kinda cool…

It is - and making the turtle move around the screen really resonates
well with children. I actually learned it and then taught it while
assisting a teacher in summer school one year - I might’ve been about 14
at the time. :slight_smile:

(I also then did a couple hour session on using the Commmodore 64
character editor to edit the fonts…Ah, the good ol’ days. <G>)

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

On 2012-01-25 19:07, Jim Henderson wrote:

> For beginning programmers, I’d go with a language with a straightforward
> syntax and that isn’t overly complicated. BASIC fits this nicely, as
> does Python (at least it seems to, though it is extensible, so it can get
> complex). I started programming with BASIC and Logo myself back in the
> early-to-mid 80’s.

My personal choice would be Pascal or Modula. I’m old fashioned.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Am 25.01.2012 14:26, schrieb interele:
>
> No, it doesn’t have to be BASIC. The only reason so far is that I
> know it reasonably well. Actually a more real world skill would be
> much better… but it’s got to be simple enough that I can be up to
> speed by September.
>
> Mal
>
You will not have too many problems to get familiar with Python. Start
here http://wiki.python.org/moin/BeginnersGuide/ and judge based on your
own experience if you feel comfortable with it.


PC: oS 11.4 (dual boot 12.1) 64 bit | Intel Core i7-2600@3.40GHz | KDE
4.6.0 | GeForce GT 420 | 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.4 |
nVidia ION | 3GB Ram

On Wed, 25 Jan 2012 21:13:06 +0000, Carlos E. R. wrote:

> On 2012-01-25 19:07, Jim Henderson wrote:
>
>> For beginning programmers, I’d go with a language with a
>> straightforward syntax and that isn’t overly complicated. BASIC fits
>> this nicely, as does Python (at least it seems to, though it is
>> extensible, so it can get complex). I started programming with BASIC
>> and Logo myself back in the early-to-mid 80’s.
>
> My personal choice would be Pascal or Modula. I’m old fashioned.

For an older audience, I’d be inclined to agree.

But for schoolkids, I don’t know that the joys of Pascal’s string
processing facilities would be adequate to hold their attention.

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

On 2012-01-25 23:50, Jim Henderson wrote:

>> My personal choice would be Pascal or Modula. I’m old fashioned.
>
> For an older audience, I’d be inclined to agree.
>
> But for schoolkids, I don’t know that the joys of Pascal’s string
> processing facilities would be adequate to hold their attention.

:slight_smile:

Mmm… 11 to 18. 18 are not that young. For 11… perhaps. But I could
program my TI calculator at about 15. O:-)

Pascal was designed for teaching.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Am 26.01.2012 00:23, schrieb Carlos E. R.:
> Pascal was designed for teaching.
>
More than 40 years ago and time did not stand still in programming.


PC: oS 11.4 (dual boot 12.1) 64 bit | Intel Core i7-2600@3.40GHz | KDE
4.6.0 | GeForce GT 420 | 16GB Ram
Eee PC 1201n: oS 11.4 64 bit | Intel Atom 330@1.60GHz | KDE 4.7.4 |
nVidia ION | 3GB Ram

Hi,

I would agree that Python would be an excellent choice: it is easy to get started with, commonly used in the real world, multi-paradigm and available on all major operating systems, so they can practice at home.

Well, either that or 68000 Assembler.

Kind regards,
Barry D. Nichols

Coming back to the original question, I have recently adopted Bacon, BaCon - A free BAsic CONverter for Unix, BSD and MacOSX, a very effective BASIC compiler. It will compile to an executable using the gcc compiler available from our repos. You use any simple editor to write the BASIC instructions then run a bash script to pass it to gcc. The language itself is like a simpler QuickBasic and full documentation is available as HTML and PDF. The HTML vesion is particularly easy to search and understand. Error reporting is excellent. There is a forum for all and the maintainer is quick to help. It’s all free and you can be ready long before September.

Let me know what you think.