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
