By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,949 Members | 2,038 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,949 IT Pros & Developers. It's quick & easy.

introduction to programming

P: n/a
Dear folks

I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.

So, not introduction to programming *in" Javascript. Well, I guess this would be in a way included anyway, but I would like to use
Javascript/HTML/Browser as programming environment for pupils who have no idea of programming so far.

Any tip would be much appreciated.

Thanks

Martin

Jan 12 '08 #1
Share this Question
Share on Google+
29 Replies


P: n/a
SAM
Martin Schmied a écrit :
Dear folks

I would like to use
Javascript/HTML/Browser as programming environment for pupils who have
no idea of programming so far.
In french :
Général :
<http://www.salemioche.net/pasapas.php>
HTML :
<http://magali.contensin.free.fr/html/SYNTAXE_HTML/cours_html.html>
<http://pagesperso-orange.fr/chatinais/courhtml/somrhtml.htm>
JavaScript :
<http://pagesperso-orange.fr/chatinais/coursjs/somrjs.htm>
<http://www.salemioche.net/javascript.php>
<http://www.cmi.univ-mrs.fr/~contensi/CNFPT/index.php>

Mais tout n'est pas "uptodate" ....

--
sm
Jan 12 '08 #2

P: n/a
Martin Schmied said the following on 1/12/2008 5:24 AM:
Dear folks

I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.
There have to be at least 100 languages better suited for what you want.
So, not introduction to programming *in" Javascript. Well, I guess this
would be in a way included anyway, but I would like to use
Javascript/HTML/Browser as programming environment for pupils who have
no idea of programming so far.
BASIC. Simplest language to teach concepts with.
Any tip would be much appreciated.
Don't try to use JS to teach programming principles. The language is so
screwed up that it makes it a difficult language to try to teach with.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 12 '08 #3

P: n/a
VK
On Jan 12, 10:05 pm, Randy Webb <HikksNotAtH...@aol.comwrote:
Don't try to use JS to teach programming principles. The language is so
screwed up that it makes it a difficult language to try to teach with.
?!? That is the coolest statement I have heard so far about
JavaScript. I do remember myself back in 1997 making working scripts
in a couple of days after I started to learn it. So did millions of
other users ever since 1995, so will millions starting this year and
after that. I'm ready to agree that my quick progress was caused by my
absolutely outstanding IQ level :-) - so is it true for all others?
Jan 12 '08 #4

P: n/a
On 1/12/2008 5:24 AM, Martin Schmied wrote:
Dear folks

I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.
[snip]

There is no single best programming language, only the best programming
language for a particular task. If you want to learn strong object
oriented, very structured programming first, I would suggest C or C++.
It is the one of the most unforgiving languages ever written, and it
will make sure that the student using it does not do silly things.

One those foundations are in place, there is nothing hard about
programming, it's really the mindset and the concepts you need.

For something a little easier, but still very structured, Java is likely
the way to go.

I'll caveat that by saying that if your goal in programming is web
development inside the browser, then it makes sense to learn javascript.

~A!
--
anthony at my pet programmer dot com
Jan 12 '08 #5

P: n/a
On Sat, 12 Jan 2008 11:24:27 +0100, in comp.lang.javascript "Martin
Schmied" <ma****@jogging.ch>
<47*********************@news.sunrise.chwrote:
>| Dear folks
|
| I'm looking for good sites/material for this topic:
|
| Introduction to programming, using Javascript.
|
| So, not introduction to programming *in" Javascript. Well, I guess this
| would be in a way included anyway, but I would like to use
| Javascript/HTML/Browser as programming environment for pupils who have
| no idea of programming so far.
|
| Any tip would be much appreciated.
Are you teaching a web development course?
If not then Javascript is the wrong language to teach. The student
needs a good working knowledge of HTML and CSS for this to be of any
benefit.

They will also need to use additional applications to help them write
and debug their code (Notepad++, Firefox with Web dev and Firebug
plugins).

I do teach a web development course with students who have had no
programming experience. I can tell you that it is bloody hard work
trying to get through so of the concepts.
-- -------------------------------------------------------------
jn******@yourpantsyahoo.com.au : Remove your pants to reply
-- -------------------------------------------------------------
Jan 12 '08 #6

P: n/a
Thomas 'PointedEars' Lahn wrote:
Martin Gregorie wrote:
>My tip would be: don't use Javascript to teach programming.

There's no compiler, so nothing to highlight errors in the source code.

Wrong, there is a compiler. There is a byte-code compiler for the server,
and there are just-in-time compilers in HTML user agents (that may or may
not create byte code that is later interpreted by a VM). Errors in the
source code are displayed on the command line, in UA's error consoles and
in script debuggers.
Not according to the Rhino book (5th edition), anyway. That mentions a
couple of interpreters, of which one, Rhino, is part of Java 6 and can
be used as a compiler if its embedded in a Java wrapper to capture and
save its output.
>In consequence any typing or syntax errors will merely and silently not
work.

Wrong.
Considering that I saw exactly this behavior last night and so am
talking from recent experience, I disagree.

FYI: Opera 9.25, mistyped variable names, nothing in the error console.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Jan 12 '08 #7

P: n/a
VK said the following on 1/12/2008 3:02 PM:
On Jan 12, 10:05 pm, Randy Webb <HikksNotAtH...@aol.comwrote:
>Don't try to use JS to teach programming principles. The language is so
screwed up that it makes it a difficult language to try to teach with.

?!? That is the coolest statement I have heard so far about
JavaScript. I do remember myself back in 1997 making working scripts
in a couple of days after I started to learn it.
After some of the scripts you have posted here in the last 2-3 years,
maybe you should have stopped after a couple of days.
So did millions of other users ever since 1995, so will millions starting
this year and after that.
No, what they did (and you included) was to write a half decent script
that worked where you tested it.
I'm ready to agree that my quick progress was caused by my
absolutely outstanding IQ level :-) - so is it true for all others?
Your IQ level ranges around my shoe size. And I don't have a very big foot.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 12 '08 #8

P: n/a
VK said the following on 1/12/2008 3:36 PM:
On Jan 12, 1:24 pm, "Martin Schmied" <mar...@jogging.chwrote:
>Dear folks

I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.

So, not introduction to programming *in" Javascript. Well, I guess this would be in a way included anyway, but I would like to use
Javascript/HTML/Browser as programming environment for pupils who have no idea of programming so far.

Any tip would be much appreciated.

Well, just to make your "feet wet" right away, you may try this
minimalistic page:
And then trash it.
For a total beginner http://www.w3schools.com/js/default.asp may be a
readable resource. Other readers may have their own suggestions.
Considering that half of what is on that site is unmitigated garbage
then it isn't a good resource for anybody other than someone that wants
to see how *not* to do things.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 12 '08 #9

P: n/a
Martin Gregorie wrote:
Thomas 'PointedEars' Lahn wrote:
>Martin Gregorie wrote:
>>My tip would be: don't use Javascript to teach programming.

There's no compiler, so nothing to highlight errors in the source code.
Wrong, there is a compiler. There is a byte-code compiler for the server,
and there are just-in-time compilers in HTML user agents (that may or may
not create byte code that is later interpreted by a VM). Errors in the
source code are displayed on the command line, in UA's error consoles and
in script debuggers.

Not according to the Rhino book (5th edition), anyway. That mentions a
couple of interpreters, of which one, Rhino, is part of Java 6 and can
be used as a compiler if its embedded in a Java wrapper to capture and
save its output.
Rhino is merely the Java implementation of the JavaScript script engine,
SpiderMonkey, which also emphasizes that JavaScript and Java are *different*
languages.

My sincere suggestion to you and any other beginner would be to not to let
your J(ava)Script/ECMAScript knowledge be based on any book. There are a
number of J(ava)Script/ECMAScript- and DOM-related books out there and so
far none qualifies as being a reliable language or API reference. The FAQ
only recommends Flanagan's "javascript: The Definitive Guide (4th ed.)" as
being the least bad book about the topic.

http://developer.mozilla.org/en/docs/Rhino
>>In consequence any typing or syntax errors will merely and silently not
work.
Wrong.
Considering that I saw exactly this behavior last night and so am
talking from recent experience, I disagree.

FYI: Opera 9.25, mistyped variable names, nothing in the error console.
You have made a general statement about "typing or syntax errors" in JS/ES
not being displayed, which is wrong. Syntax errors throw a SyntaxError
exception in implementations of ECMAScript Ed. 3, such as JavaScript 1.5+
and JScript 5.6, before the code is even executed, which will cause HTML
user agents or extensions for them (cf. Firebug) to display them in the
error console. Mistyped variable names will result in a ReferenceError
runtime error on read access, that is reported as well. Only if the
variable name is mistyped on write access that results in the creation of a
property of an object in the scope chain, which will therefore go without an
error message.

Please read
http://developer.mozilla.org/en/docs..._to_JavaScript pp.
before you make further bold statements about a group of programming
languages you obviously don't know about.
PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16
Jan 12 '08 #10

P: n/a
Thomas 'PointedEars' Lahn wrote:
The FAQ
only recommends Flanagan's "javascript: The Definitive Guide (4th ed.)" as
being the least bad book about the topic.
Fair comment. Others I've seen have been truly gruesome. However, from
what you say there are *NO* good Javascript books so doesn't this all by
itself make it an unsuitable teaching language for programming beginners.

One reason I suggested C is the sheer readability of K&R and its ease of
use as a tutorial. I taught myself C from it without any problems at
all, though admittedly I knew a few rather different block structured
languages by then (Algol 60 & 68, Pascal, PL/9 and even [ugh] PL/I).
>FYI: Opera 9.25, mistyped variable names, nothing in the error console.

You have made a general statement about "typing or syntax errors" in JS/ES
not being displayed, which is wrong.
I've since tried the same flawed script with Firefox, which did report
errors. I checked Opera again: still nothing in Error Console. Its such
an obvious bug that it never occurred to me that they'd release a
version containing it. I've reported it to Opera.

I should remind you that the OP was planning to teach programming to raw
beginners using only an unspecified web browser and, presumably, a text
editor. Regardless of how much or little I know about Javascript,
teaching beginners to program by using a language that only reports
runtime errors doesn't seem like a good idea to me: they really need all
the errors and warnings a good compiler will produce but they'll never
see them in the OP's chosen environment. Your comments about the lack of
acceptable Javascript books just reinforce this point.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Jan 13 '08 #11

P: n/a
Randy Webb wrote:
>
BASIC. Simplest language to teach concepts with.
I think Logo would be better - even Primary school kids have learnt to
program in it. However, that's a side comment. What I really want to
know is if there are any traditional BASICs that are readily available
nowadays for PCs or Macs?

I don't think MS has supported one since GW-BASIC back in DOS days but
am willing to be proven wrong. The only currently supported non-visual
BASIC I can think of offhand is Parallax's integer BASIC for their
embedded STAMP devices.

This sort of digression is OK over on c.l.j.p., but if its not welcome
here just let me know for future reference.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Jan 13 '08 #12

P: n/a
VK
On Jan 13, 2:21 am, Randy Webb <HikksNotAtH...@aol.comwrote:
No, what they did (and you included) was to write a half decent script
that worked where you tested it.
So they _worked_. So millions of other ugly, nasty, completely
improper scripts disturbing all imaginable perception organs of
refined selected individuals hanging around c.l.j.

So shall be it. Some people are building houses, some people spending
their lifetimes in thinking of a really perfect house they could
build. Some people writing programs being used by millions - some
spending their time on calling it junk and making all kinds of hints
what great and absolutely outstanding program they would write if ever
went down to that programming trash on the earth. Alas, self-appointed
gods are very rarely leave Olympus and mostly to drop thunders around,
not to take care of crops...

So what is the resource you are suggesting to a very beginner in
Javascript/DOM ?
clj FAQ are not of a great help here, unless it is supposed that every
neophyte has to start from taking by heart selected chapters of Books
of ECMA :-)

Please don't tell me that your current position is that there is not a
single descent online source so whoever doesn't know Javascript at all
- she has to stay in this happy ignorance. If it is indeed your
position then I have to question if you are really suited for your
current position at c.l.j. - but I'm sure it is not. So your URL then?
Jan 13 '08 #13

P: n/a
Martin Gregorie wrote:
Thomas 'PointedEars' Lahn wrote:
>The FAQ
only recommends Flanagan's "javascript: The Definitive Guide (4th ed.)" as
being the least bad book about the topic.

Fair comment. Others I've seen have been truly gruesome. However, from
what you say there are *NO* good Javascript books so doesn't this all by
itself make it an unsuitable teaching language for programming beginners.
It does not. There are many good tutorials available online.
One reason I suggested C is the sheer readability of K&R and its ease of
use as a tutorial. I taught myself C from it without any problems at
all, though admittedly I knew a few rather different block structured
languages by then (Algol 60 & 68, Pascal, PL/9 and even [ugh] PL/I).
In this time of Open Access taking off it seems a bit anachronistic to
insist on printed material as being the only acceptable source for teaching.
>>FYI: Opera 9.25, mistyped variable names, nothing in the error console.
You have made a general statement about "typing or syntax errors" in JS/ES
not being displayed, which is wrong.

I've since tried the same flawed script with Firefox, which did report
errors.
Not quite. When writing to a value that does not designate a property of an
object in the scope chain and was not declared a variable, or reading from a
value that is not such a property, Firefox's error console shows a *warning*
(that requires Strict mode to be enabled). When reading from a value that
does not designate an existing property on an object in the scope chain and
was not declared a variable, a ReferenceError exception is thrown. Of
course, because of the dynamic nature of the language, it does not make
sense to error in that case when compiling.
I checked Opera again: still nothing in Error Console. Its such
an obvious bug that it never occurred to me that they'd release a
version containing it. I've reported it to Opera.
It is not a bug at all.
I should remind you that the OP was planning to teach programming to raw
beginners using only an unspecified web browser and, presumably, a text
editor. Regardless of how much or little I know about Javascript,
teaching beginners to program by using a language that only reports
runtime errors doesn't seem like a good idea to me: [...]
It is very relevant how little you understand the language(s) and apparently
programming in general, because you are jumping to false conclusions and
make questionable recommendations because of that fact. Accessing an
undeclared token is _not_ a *syntax error* in any programming language, and
real syntax errors such as omitted closing braces are immediately reported
by all known script engines; as I have said, a SyntaxError exception is
thrown when a syntax error in encountered while parsing, before execution.
PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
Jan 13 '08 #14

P: n/a
Thomas 'PointedEars' Lahn wrote:
>
It is not a bug at all.
If not reporting an attempt to read from an undefined variable is normal
behavior than that's worse than useless for a programming newbie, who
will be tearing his hair out and unable to spot the mistake. Its also
unhelpful to the teacher, who'll be run off his feet sorting out the
uncomprehending newbies.

I didn't set FF to any 'strict' model: it reported the problem with line
number in its Error console using its default setting while Opera did
not. Opera doesn't even offer a way of setting 'strict' mode. The only
Javascript error handling option is whether the Error console should pop
up when an error occurs. As no errors were reported, it never popped up.
Accessing an undeclared token is _not_ a *syntax error* in any programming
language,
I never said it was, so don't put words in my mouth. However, it *is* a
semantic error in most compiled languages.

Bottom line: I would not teach a scripting language on an introductory
programming course but ymmv.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Jan 13 '08 #15

P: n/a
Martin Gregorie wrote:
Thomas 'PointedEars' Lahn wrote:
>It is not a bug at all.

If not reporting an attempt to read from an undefined variable is normal
behavior than that's worse than useless for a programming newbie, who
will be tearing his hair out and unable to spot the mistake. Its also
unhelpful to the teacher, who'll be run off his feet sorting out the
uncomprehending newbies.
Again: Not reporting an undeclared name is not a bug because of the dynamic
nature of the language it is entirely possible to create an object or
property in the process that allows the resolution of the name to be to a
value at a later point in execution. If you had any clue what you are
talking about, you would have known that.
I didn't set FF to any 'strict' model: it reported the problem with line
number in its Error console using its default setting
_Mode_, not model. If Strict Mode is not enabled, which is the default,
those warnings are not displayed. Either you are mistaken, your
distribution has Strict Mode enabled by default, or your profile was
imported from an earlier installation of a Gecko-based user agent.
while Opera did not. Opera doesn't even offer a way of setting 'strict'
mode. The only Javascript error handling option is whether the Error
console should pop up when an error occurs. As no errors were reported,
it never popped up.
Maybe so, but you missed the point.
>Accessing an undeclared token is _not_ a *syntax error* in any
programming language,

I never said it was, so don't put words in my mouth.
Any error that is not a syntax error is a runtime error. I am not
insinuating anything, I am concluding directly from your false assumption.
However, it *is* a semantic error in most compiled languages.
That is what you say *now*. However, it is also not necessarily a semantic
error in those languages, but it can result in a runtime error. As it does
in ECMAScript implementations.
PointedEars
--
Use any version of Microsoft Frontpage to create your site.
(This won't prevent people from viewing your source, but no one
will want to steal it.)
-- from <http://www.vortex-webdesign.com/help/hidesource.htm>
Jan 13 '08 #16

P: n/a
VK said the following on 1/13/2008 12:21 PM:
On Jan 13, 2:21 am, Randy Webb <HikksNotAtH...@aol.comwrote:
>No, what they did (and you included) was to write a half decent script
that worked where you tested it.

So they _worked_.
Did they "work" like most of the other scripts you have written and
posted here? Maybe phrases like "Vector", "Rounding", "Array test", will
ring a bell with you. Not a lot you have posted here would ever qualify
as something to learn from unless it was to learn how not to do things.

The major problem with using Javascript as an introductory language to
programming is the lack of control over the environment in which it is
executed and the problems you have to go through because of it.

<snipped typical gibberish rants of VK>
So what is the resource you are suggesting to a very beginner in
Javascript/DOM ?
Nobody asked about that.
<quote>
Introduction to programming, using Javascript.
</quote>

And Javascript is *not* a good language to use for that. It is probably
the *worst* language to try to use for that. There are just too many
other things that complicate the matter.
clj FAQ are not of a great help here, unless it is supposed that every
neophyte has to start from taking by heart selected chapters of Books
of ECMA :-)
I find it hilariously funny that you would try to associate me with the
ECMAScript bible thumpers. You should spend some time searching the
archives to find my opinion of ECMA. It shouldn't be hard to find.
Please don't tell me that your current position is that there is not a
single descent online source so whoever doesn't know Javascript at all
- she has to stay in this happy ignorance.
There is one. I have said it in the past and will, undoubtedly, say it
again in the future. Perhaps you should spend a little time trying to
figure out what it is I believe before you start trying to debate with
me about what I do, or do not, believe about this language.
If it is indeed your position then I have to question if you are
really suited for your current position at c.l.j. - but I'm sure
it is not. So your URL then?
First, your opinion of me ranks right up there with mouse's rear ends
and gnat's asses. Search the archives, I am sure you can find some
references to find out what that means.

Second, the URL that I refer people to when asked for the best online
resources to try to learn Javascript (which isn't what was asked in this
thread) is very easily found if you search for it.

Just to satisfy your pedantic ignorance, I will post it here to save you
the trouble of trying to find it:

The best JS resource you will ever find on the web are the Google Group
archives and the FAQ of the comp.lang.javascript newsgroup.

And none of that has anything to do with teaching programming principles
by using JS as the language of choice to use.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 14 '08 #17

P: n/a
Thomas 'PointedEars' Lahn wrote:
Either you are mistaken, your
distribution has Strict Mode enabled by default, or your profile was
imported from an earlier installation of a Gecko-based user agent.
FireFox 2.0.0.11 and no, there is nothing in preferences that controls
'strict' mode. I suppose the setting could be left over from an earlier
version of FireFox.
>
Any error that is not a syntax error is a runtime error. I am not
insinuating anything, I am concluding directly from your false assumption.
Maybe so in a scripting language.
>However, it *is* a semantic error in most compiled languages.

That is what you say *now*. However, it is also not necessarily a semantic
error in those languages, but it can result in a runtime error.
Only in one of those obsolete rarities, like the older FORTRANs or some
PL/1 dialects that don't require you to declare variables. Its a
misfeature: you waste far more time hunting for the one misspelled
variable reference than you save by not declaring it in the first place.
And don't get me started on FORTRAN's trick of using the initial letter
of the name to set the type.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Jan 14 '08 #18

P: n/a
Martin Gregorie wrote:
Thomas 'PointedEars' Lahn wrote:
>Either you are mistaken, your
distribution has Strict Mode enabled by default, or your profile was
imported from an earlier installation of a Gecko-based user agent.
FireFox 2.0.0.11 and no, there is nothing in preferences that controls
'strict' mode.
It is spelled "Firefox", and yes, there is. Type `about:config' in the
Location Bar and type `strict' in the filter input. You will observe the
entry "javascript.options.strict", and if you select "Reset" in the context
menu it will revert to `false'. I know two extensions that allow you to
toggle this preference: Web Developer Extensions (Menu "Disable", "Disable
JavaScript", item "Strict Warnings"), and Console^2 (Menu "Options", item
"Report Strict Warnings"). IIRC, there is also an extension that provides
a dialog window with checkboxes for setting advanced JavaScript-related
preferences explicitly, including this one.
I suppose the setting could be left over from an earlier version of FireFox.
Maybe.
>Any error that is not a syntax error is a runtime error. I am not
insinuating anything, I am concluding directly from your false assumption.

Maybe so in a scripting language.
That applies to *all* programming languages. If it is not a syntax error,
then it must be a runtime error because code that cannot be parsed
successfully according to the grammar of the programming language, cannot be
executed.
>>However, it *is* a semantic error in most compiled languages.
That is what you say *now*. However, it is also not necessarily a semantic
error in those languages, but it can result in a runtime error.

Only in one of those obsolete rarities, like the older FORTRANs or some
PL/1 dialects that don't require you to declare variables. [...]
You are mistaken. For example, Perl, PHP and Python do not require you to
explicitly declare variables as well; the variable scope is defined by the
place of initialization by default. However, those are also programming
languages with source code that is compiled first (PHP since version 4).
PointedEars
Jan 14 '08 #19

P: n/a
On Jan 12, 5:24*am, "Martin Schmied" <mar...@jogging.chwrote:
Dear folks

I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.
....
Hmmm.

Pros:

1. Everybody has a browser with built-in Javascript
2. The Firebug debugger is free so students can step through code
3. JS is basically typeless so students don't have to worry about that
yet (as in BASIC)
4. You can do impressive graphical things much easier than in C
5. You can port from C and Java examples quite easily ( and basically
hide the Scheme/Lisp like attributes from the students)

Cons:

1. As mentioned, many DOM related errors go unreported.
2. Syntax errors are difficult to track
3. The more powerful attributes of the language (closures,
prototyping, anonymous functions etc.) are hard for newbies to get.
4. To do File and other IO, you'll have to switch out to server-side
or standalone javascript (Windows and Mac have it, I don't know about
Linux)

So, the good news is that in one sense it's a good idea. The downside
is that if you hide all the powerful and hard to learn aspects of
javascript from your students, you'll be unleashing more bad
javascript coders on the web development world.
Jan 14 '08 #20

P: n/a
beegee wrote:
On Jan 12, 5:24 am, "Martin Schmied" <mar...@jogging.chwrote:
>I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.
....

Hmmm.

Pros:

1. Everybody has a browser with built-in Javascript
Not everybody.
2. The Firebug debugger is free so students can step through code
You don't need Firebug for that, although having it is a big plus.
3. JS is basically typeless so students don't have to worry about that
yet (as in BASIC)
JS is not at all typeless; it is loosely-typed instead, like several other
contemporary programming languages.
4. You can do impressive graphical things much easier than in C
However, that is a feature provided by the DOM, an API, not by the language.
This API can be accessed with several other programming languages as well
and just as easily.
5. You can port from C and Java examples quite easily
This much is true.
( and basically hide the Scheme/Lisp like attributes from the students)
What exactly are you talking about?
Cons:

1. As mentioned, many DOM related errors go unreported.
At least in Firefox they don't. What are you referring to?
2. Syntax errors are difficult to track
They are not.
3. The more powerful attributes of the language (closures,
prototyping, anonymous functions etc.) are hard for newbies to get.
It certainly requires a teacher who knows what they are talking about, but
that should be the standard anyway.
4. To do File and other IO, you'll have to switch out to server-side
or standalone javascript (Windows and Mac have it, I don't know about
Linux)
You don't have to.
PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16
Jan 14 '08 #21

P: n/a
VK
No, what they did (and you included) was to write a half decent script
that worked where you tested it.
So they _worked_.

Did they "work" like most of the other scripts you have written and
posted here?
They worked good enough to charge $80-$100/hr for the time spent. And
I'm not talking about the modern baby games with "do we have
getElementById or not?". I am talking about making universal working
scripts for nearly absolutely and intentionally incompatible systems.
I am not questioning if anyone of current gurus was ever paid for his
Javascript coding so much several years in the row as it is not my
damn business: I just want to tell once again that all these voodoo
jumping "you are bad, you're so bad" are making me smile.
Maybe phrases like "Vector", "Rounding", "Array test", will
ring a bell with you.
Uhm... "Vector"
A very productive discussion - after the regular hysteria of some
regulars on seeing someone's else code longer than a few lines.
Resulted in a very nice IMO result at the end of the thread.
http://groups.google.com/group/comp....4ae20ba5c760c6
Many algorithms found during the discussion went into different
libraries or just were very useful to c.l.j. posters
http://groups.google.com/group/comp....fbc7ad434afb20

"Rounding"
An extremely useful discussion for me and for all participants.
http://groups.google.com/group/sci.m...ba8b58baa153d4
http://groups.google.com/group/comp....7030f7c099d140
If anyone in this NG thinks of having any grasp of idea about
IEEE-754 DP-FP and related rounding problem then let's laugh together
with all side readers.

"Array test"
Truly cannot recall that particular issue. Is it about to distinguish
instanceof Array from any other objects?
Not a lot you have posted here would ever qualify
as something to learn from unless it was to learn
how not to do things.
At least I posted something, so others could learn at least as little
as that. Besides Matt Kruse others did not provide even that on a
three years run.

The major problem with using Javascript as an introductory language to
programming is the lack of control over the environment in which it is
executed and the problems you have to go through because of it.
Javascript is mainly executed inside of browser. It is a fully
controllable environment IMO. Also Javascript is the language of the
Internet: anyone going to where will have to learn it sooner or later,
so why not start sooner? More exotic and complex languages can be
learner later. "Exotic languages" is not an offense to C++, C#, PHP
etc programmers but a simple fact. The proportion of ones able to deal
anyhow with Javascript to ones able to deal anyhow with C++ : this
proportion is roughly the same as the current amount of people able to
speak English to ones able to speak classical Latin.
I find it hilariously funny that you would try to associate me with the
ECMAScript bible thumpers.
I don't associate you with anything, simply look at
http://www.jibbering.com/faq/index.html#FAQ3_2

The top link is "The official ECMAScript specification". If anyone
asked "I am absolutely new in Javascript, what online sources to use"
and answered "see this group FAQ", then it is implied that the first
source to study is ECMA-262 3rd ed.
And from the bunch of all other links there is not a single obvious
one to someone who is on the "Hello, world!" level.
Jan 14 '08 #22

P: n/a
Isn't everyone in education on the Java bandwagon using BlueJ for an
introductory course ?
Randy Webb wrote:
Martin Schmied said the following on 1/12/2008 5:24 AM:
>Dear folks

I'm looking for good sites/material for this topic:

Introduction to programming, using Javascript.

There have to be at least 100 languages better suited for what you want.
>So, not introduction to programming *in" Javascript. Well, I guess
this would be in a way included anyway, but I would like to use
Javascript/HTML/Browser as programming environment for pupils who have
no idea of programming so far.

BASIC. Simplest language to teach concepts with.
>Any tip would be much appreciated.

Don't try to use JS to teach programming principles. The language is so
screwed up that it makes it a difficult language to try to teach with.
Jan 14 '08 #23

P: n/a
Thomas 'PointedEars' Lahn wrote:
>
It is spelled "Firefox", and yes, there is. Type `about:config' in the
Location Bar and type `strict' in the filter input. You will observe the
entry "javascript.options.strict", and if you select "Reset" in the context
menu it will revert to `false'. I know two extensions that allow you to
toggle this preference: Web Developer Extensions (Menu "Disable", "Disable
JavaScript", item "Strict Warnings"), and Console^2 (Menu "Options", item
"Report Strict Warnings"). IIRC, there is also an extension that provides
a dialog window with checkboxes for setting advanced JavaScript-related
preferences explicitly, including this one.
Thanks for that. I've filed it for future reference before using it, but
this turned up something unexpected: javascript.options.strict was
already defaulted to false, yet I got those Error console reports of
name mismatches between names on a form and the script. What's going on
here?
You are mistaken. For example, Perl, PHP and Python do not require you to
explicitly declare variables as well; the variable scope is defined by the
place of initialization by default. However, those are also programming
languages with source code that is compiled first (PHP since version 4).
Don't know about PHP or Python (haven't used either), but thats
certainly true for awk and most UNIX shells. All the efficient scripting
languages I've used are what we used to call "compile & go" in the sense
that there's no visible compiler. Your point applies to these too.

However, it isn't true for any of the strongly typed, conventionally
compiled high level languages and it isn't true for any assembler I've
used either[1]. With the exception of early FORTRAN and some PL/1
dialects, which can generate implicit declarations, all the rest spit at
compile time if you use an undeclared variable in any context.

FORTRAN deduces the variable type from the first letter of the variable
name. Its compiler will object if that doesn't match the context, i.e. a
type mismatch.

The compilers for the dialects of PL/1 I've used usually objected to
implicitly declared variables too if there was a type mismatch. The
compiler always assumed you wanted a 32 bit signed integer, at least I
never saw it assume anything else, and this was often incorrect for the
context.

[1] Except PLAN 2, which had implicit declaration. A right pain it was
too: you had to look at the symbol table at the end of the listing to
see if anything was implicitly declared - they were usually not where
you wanted them in data memory - and then, because they were often
typos, you had to hunt through the program to find them. This was in the
days of punched cards, so "hunting" meant reading through many pages of
printout and swearing each time you got to the end without seeing the
misspelt name. PLAN 3 and PLAN 4 were greeted with cheers because they
dropped implicit declaration.
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Jan 15 '08 #24

P: n/a
In comp.lang.javascript message <dq************@zoogz.gregorie.org>,
Tue, 15 Jan 2008 17:06:48, Martin Gregorie <ma****@see.sig.for.address>
posted:
>Thomas 'PointedEars' Lahn wrote:
> BTW, your From header is in violation of Internet standards.
Deliberately so.
It's briefer to disregard his psychiatric problems, except in so far as
is necessary to refute him for the benefit of others.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk DOS 3.3, 6.20 ; WinXP.
Web <URL:http://www.merlyn.demon.co.uk/- FAQqish topics, acronyms & links.
PAS EXE TXT ZIP via <URL:http://www.merlyn.demon.co.uk/programs/00index.htm>
My DOS <URL:http://www.merlyn.demon.co.uk/batfiles.htm- also batprogs.htm.
Jan 15 '08 #25

P: n/a
VK said the following on 1/14/2008 12:33 PM:

<snip>

No need for me to go through your code, again, and tell you what is
wrong with it. Anybody that wants to see examples of VK's work can find
it easily enough. Let's get back the topic of JS as an introductory
language for programming.
>The major problem with using Javascript as an introductory language to
programming is the lack of control over the environment in which it is
executed and the problems you have to go through because of it.

Javascript is mainly executed inside of browser. It is a fully
controllable environment IMO.
Do you really believe that browsers are a "fully controllable
environment"? I hope not. It would be too trivially simple to prove you
wrong.
Also Javascript is the language of the Internet: anyone going to
where will have to learn it sooner or later, so why not start sooner?
The whole topic is whether JS is a good language to teach the basics of
programming or not, not learning the language itself. And, the language
itself is way too complicated for a beginner course.
More exotic and complex languages can be learner later.
"Exotic languages" is not an offense to C++, C#, PHP etc programmers
but a simple fact.
PHP is actually a better language to learn basics with than JS ever will
be for no other reason than you completely control the environment it
executes in. And, duplicating that environment, even at home, is
trivially simple.
The proportion of ones able to deal anyhow with Javascript to ones
able to deal anyhow with C++ : this proportion is roughly the same as
the current amount of people able to speak English to ones able to
speak classical Latin.
Nonsense. In C++ you control the environment where your code can/will be
compiled/executed. That is not true with JS.
>I find it hilariously funny that you would try to associate me with the
ECMAScript bible thumpers.

I don't associate you with anything, simply look at
http://www.jibbering.com/faq/index.html#FAQ3_2
The top link is "The official ECMAScript specification". If anyone
asked "I am absolutely new in Javascript, what online sources to use"
and answered "see this group FAQ", then it is implied that the first
source to study is ECMA-262 3rd ed.
And from the bunch of all other links there is not a single obvious
one to someone who is on the "Hello, world!" level.
You are trying to begin a second career as a comedian aren't you? That
might explain why what you say is so hilariously funny to me.

Perhaps you should endeavor to understand why ECMAScript is even still
in the FAQ based on my personal beliefs and why my personal beliefs do
not get in the way of how and why I edit the FAQ.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 16 '08 #26

P: n/a
In comp.lang.javascript message <fN*********************@giganews.com>,
Wed, 16 Jan 2008 01:32:44, Randy Webb <Hi************@aol.composted:
>
Perhaps you should endeavor to understand why ECMAScript is even still
in the FAQ based on my personal beliefs and why my personal beliefs do
not get in the way of how and why I edit the FAQ.
Why, then, do you now have nothing in the FAQ to help someone who
searches for the words "dates" and/or "times" ?

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demon.co.uk/- FAQqish topics, acronyms & links;
Astro stuff via astron-1.htm, gravity0.htm ; quotings.htm, pascal.htm, etc.
No Encoding. Quotes before replies. Snip well. Write clearly. Don't Mail News.
Jan 16 '08 #27

P: n/a
Dr J R Stockton said the following on 1/16/2008 2:04 PM:
In comp.lang.javascript message <fN*********************@giganews.com>,
Wed, 16 Jan 2008 01:32:44, Randy Webb <Hi************@aol.composted:
>Perhaps you should endeavor to understand why ECMAScript is even still
in the FAQ based on my personal beliefs and why my personal beliefs do
not get in the way of how and why I edit the FAQ.

Why, then, do you now have nothing in the FAQ to help someone who
searches for the words "dates" and/or "times" ?
Section 5 is in the FAQ for a reason.

To answer your question though, for me personally, the sites in the FAQ
that deal with dates and times are of the quality to be of little, to
no, use for someone wanting to learn how to deal with dates and times in JS.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 18 '08 #28

P: n/a
In comp.lang.javascript message <hb*********************@giganews.com>,
Thu, 17 Jan 2008 20:12:32, Randy Webb <Hi************@aol.composted:
>Dr J R Stockton said the following on 1/16/2008 2:04 PM:
>In comp.lang.javascript message <fN*********************@giganews.com>,
Wed, 16 Jan 2008 01:32:44, Randy Webb <Hi************@aol.composted:
>>Perhaps you should endeavor to understand why ECMAScript is even still
in the FAQ based on my personal beliefs and why my personal beliefs do
not get in the way of how and why I edit the FAQ.
Why, then, do you now have nothing in the FAQ to help someone who
searches for the words "dates" and/or "times" ?

Section 5 is in the FAQ for a reason.

To answer your question though, for me personally, the sites in the FAQ
that deal with dates and times are of the quality to be of little, to
no, use for someone wanting to learn how to deal with dates and times
in JS.
That implies that you act in contravention of your previous statement.
The number of questions on the topic that have appeared in the past
surely justifies an entry, whatever it points to.

You could, of course, write a FAQ Note.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6.
Web <URL:http://www.merlyn.demon.co.uk/- w. FAQish topics, links, acronyms
PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/- see 00index.htm
Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
Jan 18 '08 #29

P: n/a
Dr J R Stockton said the following on 1/18/2008 4:33 PM:
In comp.lang.javascript message <hb*********************@giganews.com>,
Thu, 17 Jan 2008 20:12:32, Randy Webb <Hi************@aol.composted:
>Dr J R Stockton said the following on 1/16/2008 2:04 PM:
>>In comp.lang.javascript message <fN*********************@giganews.com>,
Wed, 16 Jan 2008 01:32:44, Randy Webb <Hi************@aol.composted:
Perhaps you should endeavor to understand why ECMAScript is even still
in the FAQ based on my personal beliefs and why my personal beliefs do
not get in the way of how and why I edit the FAQ.

Why, then, do you now have nothing in the FAQ to help someone who
searches for the words "dates" and/or "times" ?
Section 5 is in the FAQ for a reason.

To answer your question though, for me personally, the sites in the FAQ
that deal with dates and times are of the quality to be of little, to
no, use for someone wanting to learn how to deal with dates and times
in JS.

That implies that you act in contravention of your previous statement.
Nothing you write makes a whole lot of sense sometimes. My previous
statement? Would that be that Section 5 is in the FAQ for a reason?
Perhaps you should try reading it, and comprehending it, sometime.
The number of questions on the topic that have appeared in the past
surely justifies an entry, whatever it points to.
And I have no intentions, nor desires, to write that entry. If you want
an entry, write a proposal, post it, and see where it goes.
You could, of course, write a FAQ Note.
Or, I could be like you. Whine and complain about it. Obviously, I
didn't choose that option.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jan 19 '08 #30

This discussion thread is closed

Replies have been disabled for this discussion.