Miles Fidelman <[email protected]> writes: > Pascal J. Bourguignon wrote: >> Miles Fidelman <[email protected]> writes: >>> And seems to have turned into something about needing to recreate the >>> homebrew computing milieu, and everyone learning to program - and >>> perhaps "why don't more people know how to program?" >>> >>> My response (to the original question) is that folks who want to >>> write, may want something more flexible (programmable) than Word, but >>> somehow turning everone into c coders doesn't seem to be the answer. >> Of course not. That's why there are languages like Python or Logo. >> >> >>> More flexible tools (e.g., HyperCard, spreadsheets) are more of an >>> answer - and that's a challenge to those of us who develop tools. >>> Turning writers, or mathematicians, or artists into coders is simply a >>> recipe for bad content AND bad code. >> But everyone learns mathematics, and even if they don't turn out >> professionnal mathematicians, they at least know how to make a simple >> demonstration (or at least we all did when I was in high school, so it's >> possible). >> >> Similarly, everyone should learn CS and programming, and even if they >> won't be able to manage software complexity at the same level as >> professionnal programmers (ought to be able to), they should be able to >> write simple programs, at the level of emacs commands, for their own >> needs, and foremost, they should understand enough of CS and programming >> to be able to have meaningful expectations from the computer industry >> and from programmers. > > Ok... but that begs the real question: What are the core concepts that > matter? > > There's a serious distinction between computer science, computer > engineering, and programming. CS is theory, CE is architecture and > design, programming is carpentry. > > In math, we start with arithmetic, geometry, algebra, maybe some set > theory, and go on to trigonometry, statistics, calculus, ...... and > pick up some techniques along the way (addition, multiplication, etc.) > > In science, it's physics, chemistry, biology, .... and we learn some > lab skills along the way. > > What are the core concepts of CS/CE that everyone should learn in > order to be considered "educated?" What lab skills? Note that there > still long debates on this when it comes to college curricula.
Indeed. The French National Education is answering to that question with its educational "programme", and the newly edited manual. https://wiki.inria.fr/sciencinfolycee/TexteOfficielProgrammeISN https://wiki.inria.fr/wikis/sciencinfolycee/images/7/73/Informatique_et_Sciences_du_Num%C3%A9rique_-_Sp%C3%A9cialit%C3%A9_ISN_en_Terminale_S.pdf > Some of us greybeards (or fuddy duddies if you wish) argue for > starting with fundamentals: > - boolean logic > - information theory > - theory of computing > - hardware design > - machine language programming (play with microcontrollers in the lab) > - operating systems > - language design > - analysis > - algorithms Yes, some of all of that. > 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. > And then there's the school of thought that all you need to know is > how to use things - turn on a computer, use common programs, maybe > write some Excel macros, and customize their operating > environment. (After all, most of us learn to drive, but how many > people take an auto shop class anymore.) > > Now me... I kind of think that high school should focus more on > "computational thinking" than on programming. Yes, kids should write > a few programs along the way, but that's the lab component. A more > interesting question becomes: is this a separate discipline, or is it > something to be incorporated into math and science? Indeed, I find that in the French manual, algorithms are more stressed than the programming language itself (Java). It's definitely not a Java manual. -- __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
