BGB <[email protected]> writes:

> general programming probably doesn't need much more than pre-algebra
> or maybe algebra level stuff anyways, but maybe touching on other
> things that are useful to computing: matrices, vectors, sin/cos/...,
> the big sigma notation, ...

Definitely.  Programming needs discreete mathematics and statistics much
more than the mathematics that are usually taught (which are more useful
eg. to physics).


> but, a person can get along pretty well provided they get basic
> literacy down fairly solidly (can read and write, and maybe perform
> basic arithmetic, ...).
>
> most other stuff is mostly optional, and wont tend to matter much in
> daily life for most people (and most will probably soon enough forget
> anyways once they no longer have a school trying to force it down
> their throats and/or needing to "cram" for tests).

No, no, no.  That's the point of our discussion.  There's a need to
increase "computer"-literacy, actually "programming"-literacy of the
general public.

The situation where everybody would be able (culturally, with a basic
knowing-how, an with the help of the right software tools and system) to
program their applications (ie. something totally contrary to the
current Apple philosophy), would be a better situation than the one
where people are dumbed-down and are allowed to use only canned software
that they cannot inspect and adapt to their needs.

Furthermore, beside the need the general public has of being able to do
some programming, non-CS professionals also need to be able to write
programs.  Technicians and scientists in various domains such as
biology, physics, etc, need to know enough programming to write honest
programs for their needs.  Sure, they won't have to know how to write a
device driver or a unix memory management subsystem.  But they should be
able to design and implement algorithms to process their experiments and
their data, (and again, with the right software tools, things like
Python sound good enough for this kind of users, I kind of agree with
http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python).  


> so, the main goal in life is basically finding employment and basic
> job competence, mostly with education being as a means to an end:
> getting higher paying job, ...

Who said that?


> (so, person pays colleges, goes through a lot of pain and hassle, gets
> a degree, and employer pays them more).

You wish!




> probably focusing more on the "useful parts" though.

No, that's certainly not the purpose of high-school education.



>>> On the other hand, an awful lot of classes, and college degree
>>> programs seem to think that coding in Java is all there is, and we're
>>> seeing degrees in game design (not that game design is simple,
>>> particularly if one goes into things like physics modeling, image
>>> processing, massive concurrency, and so forth).
>> Indeed.  In the French manual, it's made mention only of languages in
>> the Algol family.  It would be better if they also spoke of Prolog,
>> Haskell, and of course Lisp too.  But this can be easily corrected by
>> the teachers, if they're "good" enough.
>
> yes, but you can still do a lot with Java (even if hardly my favorite
> language personally).
>
> throw some C, C++, or C# on there, and it is better still.

No.  Java is good enough to show off the algol/procedural and OO
paradygms.  There's no need to talk about C, C++ or C# (those language
are only useful to professionnal CS guys, not to the general public).
(And yes, I'd tend to think Python would be better for the general
public than Java).

What you could throw in, is some Lisp, some Prolog, and some
Haskell.  Haskell could even be taught in Maths instead of in CS ;-) 

The point here is to teach to the general public (eg. your future
customers and managers) that there are other languages than the
currently-popular Algol-like languages and languages in the Lisp, logic
or functional families are also useful tools.


> a problem with most other further reaching languages is:
> it is often harder to do much useful with them (smaller communities,
> often deficiencies regarding implementation maturity and library
> support, ... 1);

This is irrelevant.


> it is harder still for people looking at finding a job, since few jobs
> want these more obscure languages;

This is totally irrelevant to the question of educating the general
public and giving them a CS/programming culture.


> a person trying to "just get it done" may have a much harder time
> finding code to just copy/paste off the internet (or may have to go
> through considerably more work translating it from one language to
> another, 2);

This is irrelevant.  The question is for them to know what CS can do for
them, and know that they can hire a profession CS/programmer to do the
hard work.



> 1: it is not a good sign when one of the first major questions usually
> asked is "how do I use OpenGL / sound / GUI / ... with this thing?",
> which then either results in people looking for 3rd party packages to
> do it, or having to write a lot of wrapper boilerplate, or having to
> fall back to writing all these parts in C or similar.

This is something that is solved in two ways:

- socially: letting the general public have some consciousness of what
  CS is and what it can do, so that they can contract a CS/programmer
  professionnal to solve their problem, just like they do eg. with a MD
  when they have a health problem.  And the MD doesn't use the same
  tools and the same drugs than what you do at home: he has his own
  specialized and powerful tools and drugs.

- technically: providing programmable software systems that are more
  easily usable by the general public.  Ie. NOT C, more Lisp, Python, 
  and integrated programming environment like indeed Hypercard.


> 2: it is much easier to copy/paste between languages if both have the
> same basic syntax. whether or not this is "good", this is a bit of a
> productivity feature, as then a person doesn't have to find code in
> the same language, but only one in a language with a similar-enough
> syntax that they can do quick changes or use some find/replace magic
> or similar (for example, although C++ and Java are very different, the
> similar syntax doesn't completely rule out the ability to use
> copy/paste and some manual editing to convert between them, rather
> than having to rewrite the code from-scratch).

This is totally irrelevant, ie. it's only a CS/programmer professionnal
problem.

But otherwise indeed tools could be developed to translate from one
high-level general public language to the other, but this is something
that would only be needed in the new world.


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
A bad day in () is better than a good day in {}.
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to