Hi, 2014-09-07 13:02 GMT+02:00 Alain Busser <alain.bus...@gmail.com>:
> Strangely, I am preparing a Python session for pupils who are supposed ti > know almost nothing about programming; and I finally came up with the > turtle module! I realized that > > *COBOL has been invented so that people who work in banks and do not know > how to program, can program > *Basic was supposed to be usable by beginners (hence the "b" letter); > which imho is false > *LOGO has been invented so that such silly creatures as robots could > program; and of course children could program in LOGO (and even, as I read, > tech programmation at the age of 4) > *Smalltalk has been created to cope with the mice and windows, but > thinking about programmation for children (hence, Etoys and Scratch) > *In France there was a thing called "LSE" which was supposed to help > writing the program in a language neighboring French language. No one > remembers that, but there were other experiments like "execalgo" or > "algobox" (not mentionning MathsOntologie ;-)) > > > Seeing that, I realize that a programming tool especially made for > children is not really a new idea, but Python is cool for that. In France > too Python is heavily used, especially for students. What surprises me is > that the English government choose Python for *children* instead of, say, > Scratch. I would not use xMaxima to teach fractions just because xMaxima is > able to compute integrals! > > To conclude, for me, Phratch on Android is the future in that domain ;-) > Thank you to make advertisement for phratch. I hope to see it on Android soon. Cheers, Jannik > > > Alain > > > On Sun, Sep 7, 2014 at 2:29 PM, kilon alios <kilon.al...@gmail.com> wrote: > >> Python has no competition. Sure there are languages that are more popular >> than Python for their own reasons. There have been simpler languages before >> python, there have been more popular languages, more cross platform >> languages etc etc but Python fills a gap that no language was able to fill >> before it , easy to use very powerful well documented libraries. Python is >> a language that you can teach to a kid now and make a living later on using >> until his or her old age. Its not because the language is simple , its >> simple enough but not the simplest. Its because the culture surrounding the >> creation of libraries . That culture has a name its called "pythonic" >> >> Beautiful is better than ugly. >> Explicit is better than implicit. >> Simple is better than complex. >> Complex is better than complicated. >> Flat is better than nested. >> Sparse is better than dense. >> Readability counts. >> Special cases aren't special enough to break the rules. >> Although practicality beats purity. >> Errors should never pass silently. >> Unless explicitly silenced. >> In the face of ambiguity, refuse the temptation to guess. >> There should be one-- and preferably only one --obvious way to do it. >> Although that way may not be obvious at first unless you're Dutch. >> Now is better than never. >> Although never is often better than *right* now. >> If the implementation is hard to explain, it's a bad idea. >> If the implementation is easy to explain, it may be a good idea. >> Namespaces are one honking great idea -- let's do more of those! >> >> >> this kind of ideology is why Python has been so successful. It has also >> inspired jokes like this >> >> >> http://xkcd.com/353/ >> >> it may look funny and it says thinks about overestimating the simplicity of >> those libraries but python does feel at times as simple as this, as simple >> as importing antigravity. >> >> So if a kid comes to me and ask me "what language should I learn" , I will >> recommend a language that is fairly easy to learn , has powerful library , >> easy to use libraries , well documented and its a language that will able to >> keep using even if his or her needs change, forever. For that only Python is >> the language that has been able to succeed and I think its adoption will >> continue to progress in educational institutions pretty much everywhere on >> the planet. >> >> >> Referring to the rest of your post I dont agree that we need to separate >> Data from Code, I think quite opossite that a kid needs to be taught why >> Code and Data are one and what that means in practice. I also don't agree >> that OO or functional programming or any other programming paradigm I am >> aware of are the future. They are simple solutions for simpler times. The >> coding community at large the way I see it is in denial hoping to apply >> simple recipes to solve complex problems. We need very complex solutions to >> very complex problems , we need tools that can interact with the user in >> many diffirent ways. >> >> Pharo is definitely showing the future, the close integration of IDE , >> language and environment. But thats is just the start, the next step is >> powerful tools that can deeply interact with code and solve automagically >> logical coding problems. Obviously all that has to be wrapped to an easy >> enough interface for the user even if the solutions is very complex. >> >> Fortunately this where the rest of the coding world is heading. For example >> iPython is one of the most popular python projects right and it offers a >> highly interactive environment for python coders that shares a lot of >> similarities with Pharo though the implementation is very different. >> >> So the future is no longer languages , is no longer IDEs , its not even >> environments but tools that are produced in these environments that can >> vastly automate coding and hide the increasing complexity of coding >> solutions. Maybe one day a child will be able to describe to a computer what >> kind of software he or she needs and the computer automatically generate the >> code for it. That day is not close enough but is where we are heading. >> >> >> >> On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug <tryg...@ifi.uio.no> >> wrote: >> >>> I have for some time been pondering two problems. One is to identify >>> the fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming. >>> There are many contenders for the kids' first step. I believe the English >>> government has chosen Phyton as a first language. Scratch has a certain >>> popularity, there are many others. My concern is "what comes next"? I want >>> the kid to gradually build a mental model of what computing is all about. >>> Learn a little, do a little, lean more, do more, etc. up do old age. This >>> goes much deeper than any programming language. It's a bit as learning to >>> read. Personally, I "broke the reading code"at an early age. Since then, I >>> have been learning more and more. What I read today would have been >>> incomprehensible to me 75 years ago. But my basic mental model of what >>> reading is all about has remained unchanged. I have never had to unlearn >>> anything. >>> >>> I suggest that true object orientation (not class orientation) can form >>> the foundation for the human mental model of computing. Internalize it and >>> live with it forever. >>> ------------------------------------- >>> The other problem is to find a better example for DCI presentations. It >>> should >>> >>> 1. Be executable and have a cool demo effect. >>> 2. Its domain model should be obvious from the demo. >>> 3. It should have very few and very simple Data classes. >>> 4. It should have a Context that is clearly and obviously >>> separate from the Data. >>> 5. It should scale to any number of Contexts (use cases) without >>> changing the Data classes. >>> >>> ----------------------------------------- >>> *Last night I got an idea for an example: A waltzing couple. (See the >>> attached for a picture and Wikipedia for a movie of the use case).* >>> >>> The program needs one simple class for a moveable shape and a DCI >>> Context for each dance (waltz, foxtrot, tango, ... for two role, polonaise >>> for more.) The example will clearly demonstrate the wisdom in separating >>> what the system IS from what the system DOES since the simple Shape class >>> would be overloaded with instance methods for all dances. >>> >>> What do you think? >>> >>> --Trygve >>> >>> >>> >>> -- >>> >>> Trygve Reenskaug mailto: tryg...@ifi.uio.no >>> Morgedalsvn. 5A http://folk.uio.no/trygver/ >>> N-0378 Oslo http://fullOO.info >>> Norway Tel: (+47) 22 49 57 27 >>> >> >> > -- ~~Jannik Laval~~ École des Mines de Douai Enseignant-chercheur http://www.jannik-laval.eu http://www.phratch.com http://www.approchealpes.info http://car.mines-douai.fr/