Code.org Disses Wolfram Language, Touts Apple's Swift Playgrounds (edsurge.com) 241
America is changing the way it teaches computer science. "There are now 31 states that allow CS to count towards high school graduation," according to an announcement this week by the White House, while a new Advance Placement course "will be offered in more than 2,000 U.S. classrooms this fall...the largest course launch in the history of the AP exam."
But what's the best way to teach coding? theodp reports: Tech-backed Code.org, one of the leaders of the new CSforAll Consortium that was announced at the White House on Wednesday, took to its blog Thursday to say "Thanks, Tim [Cook], for supporting the effort to give every student the opportunity to learn computer science," giving a shout out to Apple for providing "resources for teachers who want to put Swift Playgrounds in their classrooms. (A day earlier, the White House said Apple developed Swift Playgrounds "in support of the President's call to action" for CS for All).
Curiously, Code.org CEO Hadi Partovi argued Friday that "the Wolfram Language has serious shortcomings for broad educational use" in an EdSurge op-ed that was called a "response to a recent blog post by Stephen Wolfram" on Wolfram's ambitious plan to teach computational thinking in schools. Partovi's complaints? "It requires login for all but the simplest use cases, but doesn't provide any privacy safeguards for young children (required in the U.S. through legislation such as COPPA). Also, a serious user would need to pay for usage, making implementation inaccessible in most schools. Lastly, it's a bit difficult to use by students who struggle with English reading or writing, such as English language learners or early elementary school students."
The submission ultimately asks how should computer science be taught to teenagers. "Would you be inclined to embrace Wolfram's approach, Apple's Swift Playgrounds, Microsoft TEALS' Java-centric AP CS curriculum, or something else (e.g., R, Tableau, Excel+VBA)?"
Curiously, Code.org CEO Hadi Partovi argued Friday that "the Wolfram Language has serious shortcomings for broad educational use" in an EdSurge op-ed that was called a "response to a recent blog post by Stephen Wolfram" on Wolfram's ambitious plan to teach computational thinking in schools. Partovi's complaints? "It requires login for all but the simplest use cases, but doesn't provide any privacy safeguards for young children (required in the U.S. through legislation such as COPPA). Also, a serious user would need to pay for usage, making implementation inaccessible in most schools. Lastly, it's a bit difficult to use by students who struggle with English reading or writing, such as English language learners or early elementary school students."
The submission ultimately asks how should computer science be taught to teenagers. "Would you be inclined to embrace Wolfram's approach, Apple's Swift Playgrounds, Microsoft TEALS' Java-centric AP CS curriculum, or something else (e.g., R, Tableau, Excel+VBA)?"
allow CS to count towards high school graduation (Score:2)
Mathematica is pay to play only (Score:5, Insightful)
If you want to program in Mathematica, you have to buy it. Most use is geared towards annual fee. There is no open source version of Mathematica. This greatly limits its appeal, regardless of the languages merits.
Re: (Score:2)
Re: (Score:2)
Open source version of Mathematica: http://www.gnu.org/software/oc... [gnu.org].
CS should _not_ be taught to teenagers (Score:3, Insightful)
Some coding can be, but even that should be limited to those that really want it. It is not even remotely similar to reading, writing and basic math. Most people do not need coding, will never be any good at it and trying to tech it to them is a complete waste of time. Might as well teach bridge building or how to sew up a cut to everybody. Sounds stupid? That is because it is.
Some things are jobs for specialists that have the aptitude for it, because anybody else will never be any good at it. Coding is such a thing. CS even more so.
Re: (Score:3)
Computers run the world, so they do need to understand how they work in a general way. To do this I they should give students a general understanding of logical structures and how computer programs work. Knowing a particular language, or making that the focus, won't do most of them any good.
Re:CS should _not_ be taught to teenagers (Score:5, Insightful)
It is not even remotely similar to reading, writing and basic math. Most people do not need coding, will never be any good at it and trying to tech it to them is a complete waste of time.
I absolutely disagree. Programing (by which I mean building something that does stuff, rather than doing it the best possible way) is not about math, it's about logic. It's about deciding goals, making a plan, testing one's progress, and making milestones. This sort of thinking is essential in nearly every field, from baking to investing, from education to career planning.
Re:CS should _not_ be taught to teenagers (Score:4, Informative)
Re: (Score:2)
So teach them baking, or investing.
You can screw those up and not even know you are doing it wrong. A lot of things can "sort-of" work, with no clean and clear distinction between getting it right and getting it wrong. That is why programming is the best way to teach logic and reasoning. You design the logic, you run it, and it either works or it doesn't. If it doesn't, then you need to figure out what you did wrong and fix it.
If you are taught baking, you learn how to bake.
If you are taught investing, you learn how to invest.
If you are
Re: (Score:2)
I seriously doubt this, unless you are taught in a very specific way.
If you were taught baking in the same way it would have the same effect.
Most CS teaching I see is basic "here's how to use these language features" kind of stuff, which doesn't teach you anything useful at al.
Re: (Score:2)
I doubt this as well. I know people who know programming but cannot reason their way out of a paper bag. I'm unsure what causes this but it would seem that programming encourages "reasoning in the small" where everything can be controlled. In most real world problems, conditions cannot be controlled and competing interests must be evaluated as well as the end goal. Also, process matters out there, in the closed world of programming, it does as well but at the level of baby programming, that is not going to
Re: (Score:2)
A couple of years ago I decided to actually go and get a CS degree after 15 years of on-the-job experience. I chose a well known, internationally recognised distance learning university and picked one of their CS-Maths combined degrees so as to learn something new.
The maths side of things was awesome.
The CS part was dismal - one of the first year courses was around handling mobile devices on web pages. The approaches they taught were either doing a client side xml transform, using JS to switch out the desk
Re: (Score:2)
Re: (Score:2)
Programming is much, much more than simple propositional logic. At the very least you need discrete-time predicate logic, and there you leave basically all non-experts behind. Hence modeling programming as "logic" is not useful in actual reality beyond very simple toy code.
Re: (Score:2)
It's about deciding goals, making a plan, testing one's progress, and making milestones.
But usually not handing it over to a hyper-autistic coworker that'll do exactly what the instructions say despite making no sense at all without ever pausing to reconsider. Even a dog is way, way smarter than a computer in certain ways. A dog won't jump off a cliff for you. A dog won't get stuck in an infinite loop. Most people hold a dialog, you tell me what to do, I ask where there's a reasonable ambiguity - even though there might be a literal or linguistic one - and we work out the details. There are a
Re: (Score:2)
And when, in your deranged mind, has Logic stopped being a mathematical discipline? Also, how much actual CS do you have, because logic does not get you very far, even eminently complex HOLs do not capture most of CS (or even coding) in a practically useful way. In addition, your "approach" is pretty much unusable in the real world, as the technology is neither simple nor obvious at this time and will remain so for the foreseeable future.
Re: (Score:2)
You're right, it's about logic. So let's teach them all electronics and circuit design. And mechanical engineering.
Yes, kids should have exposure to all of these things. I teach programming (using Scratch [mit.edu]) and robotics (using Mindstorms [wikipedia.org]) to 4th, 5th, and 6th graders. They love the programming, but they also learn how to design circuits and interface them to the robots. They learn the mechanics of grippers, leverage, and gear ratios.
This is way more useful that teaching them cursive writing, or the avoidance of split infinitives and dangling participles.
Opposite is true (Score:5, Insightful)
Most people do not need coding, will never be any good at it
Actually that is very, very wrong. Most people DO need coding.
Yes they are bad at it, but look how useful just knowing how to work excel is to tons of people.
Also over time, look how many personal database products have come and gone... in their time, each of those was very, very useful to a lot of people that did no other programming.
Each of those classes of products can do amazing things even in the hands of people who stumble around computer operating systems.
That's why learning some basics of programming is a really good idea for everyone, because everyone really can benefit from knowing some simple programming concepts in conjunction with task-dedicated tools. Even just for hobby, or home finance use.
Most people will not be doing programming with general purpose languages as we know it, but on the other hand those that are good at it may never discover they enjoy it if we don't try to teach it to everyone, and the value one good coder can bring is so substantial over a lifetime it's worth testing 1000 people to find - and in the meantime the other 1000 trying it out may learn basics that help them in other ways.
Re: (Score:2)
Re: (Score:2)
Complete nonsense. Nobody needs coding outside of their jobs even today, and very few need it for doing their jobs. Also teaching people a tiny bit of coding is like teaching them to start a chainsaw: People will get hurt with that approach. Large enterprises see this routinely in practice when some semi-competent idiots start to automatize business processes with Excel, for example, with no review, no testing, no backup, no documentation and no emergency procedures. This does much, much more harm than good
Re: (Score:2)
Need it for what?
SuperKendall answered that question:
Yes they are bad at it, but look how useful just knowing how to work excel is to tons of people.
Also over time, look how many personal database products have come and gone... in their time, each of those was very, very useful to a lot of people that did no other programming.
Each of those classes of products can do amazing things even in the hands of people who stumble around computer operating systems.
Maybe you should break tradition and read posts before asking stupid questions?
For those needs, you only need to know how use software, not create it. Just download or buy the software you need for the hobby or finance use, instead of creating it from scratch.
Woosh. It's worth noting, for example, that programming is just using software too. And programming usually doesn't create stuff from scratch (you use libraries and reuse your code, right?).
Re: (Score:2)
Those databases usually involve a very high-level declarative programming languages with a limited scope.
And there we go. We were speaking of "some coding" after all.
So you and Kendall are simply acknowledging that regular users have no interest into delving into the depths of programming (despite having plenty of opportunity).
We're pointing out that regular users still have need for coding skills even if they have no interest in delving into the depths. There's two points that have been made so far. First, even a rudimentary coding skill allows one to do some good stuff with spreadsheets, databases, etc. Second, such a coding skill extends to other aspects of life, not just computers. Many things are structured in similar ways, such as procedures for cooking food or fu
Re: (Score:2)
There are literally thousands of free tutorials to learn programming on the web. Heck, you don't even have to install the compiler, just use the web-hosted editor and compiler. Either way, both tools and tutorials are free.
OTOH, there are certain places where kids are required to be which can teach that stuff as well.
In spite of all that, only a few people are interested in learning programming. So people like you want to force other people to learn programming by making it a requirement of school curriculum. Can we say, hidden agenda?
There are also a few people interested in literacy or numeracy too. I don't mind forcing kids to learn stuff that they need.
Re: (Score:2)
Need it for what? There's no compelling need for everyone needing to learn programming. Most people would benefit more from learning medicine that would help safeguard their health.
How exactly do you think work gets done at most jobs? There are people that still manually sort Excel files because they don't know the sort function exists. Millions of jobs would benefit from a bit of scripting to cut out repetitive, error prone human tasks.
Re: (Score:2)
And how many people know VBA exists? Perhaps if they had a coding course in high school.
Re: (Score:2)
No one is saying that we teach a CS curriculum in high school, just like not one is saying that we teach math or science or literature or history to the levels taught in college.
Re: (Score:2)
Absolutely right. Let's start with being able to coherently read, write, and do math. If you want to code, fine, but you don't need to do it, any more than you need to be able to build an engine in order to drive a car.
Re: (Score:2)
Indeed. And look, anybody actually able to read well (not the mostly functionally-illiterate level we encounter so often these days) can work though a coding tutorial if they find they need basic skills at it.
Re: (Score:2)
As someone who started coding before I was a teenager, Fuck off with your attitude.
One of my best friends teaches programing to elementary children -- ages 8 - 12. We both got degrees in Comp. Sci. and he regular talks with me for feedback on his lessons. He usually ha the kids "programming" with paper and pencil before moving onto Python. I'm constantly amazed how he has taken a complex subject, such as Encryption / Decryption, Image Recognition, etc. and made it accessible so that even a child an under
Re: (Score:2)
Re: (Score:2)
You seem to be functionally illiterate. I was always talking about coding well. Coding badly can indeed be taught to almost everybody, just like singing badly, doing bad oil-painting, giving bad speeches, etc. can be taught to almost everybody. The point is that doing so does far more harm than good and hence it should _not_ be done.
Re: (Score:2)
Re: (Score:2)
Thanks, and same to you too. You think I have no experience teaching coding? Meeep, wrong. You think I am a shitty teacher? Meeeep, wrong. The difference is that I teach CS students on different levels and that I found out that even among them, most never learn to code well, _regardless_ on who teaches them, what language(s) are used or whether they were taught at all. Same result in any situation: About 10% can code well on graduation, 30-40% so-so, 50% (!) not really. This is not a question of teaching me
Re: (Score:2)
You are throwing the baby out with the bath water.
Yes, some (most?) people will never be great programmers. That's _not_ the point.
The point about teaching them "coding" is to expand their mind and expose them to areas other then just the "regurgitate indoctrination" that "education" tends to focus on.
Even if only _1_ kid is any good at it that is a success. You don't have any idea how the basic of coding will effect them later in life, but I can tell you that without it that they will be at a disadvantage
Re: (Score:2)
Most people do not need coding
Even fewer people need calculus, trigonometry, or even algebra. But high schools still teach that.
Please explain why anyone, other than an academic, would use calculus professionally yet not find programming useful.
As a practicing engineer, I spend a thousand times as much time coding as I do deriving closed form integrals.
Re: (Score:2)
Making change involves basic algebra. (e.g. cost: $4.97, handed $5. $4.97 + x = $5)
Re: (Score:2)
Making change involves basic algebra. (e.g. cost: $4.97, handed $5. $4.97 + x = $5)
No it doesn't. Making change is just arithmetic.
Kids know enough math to make change by 3rd grade.
Re: (Score:2)
You're not that special, sorry.
Re: (Score:2)
Hahahaha, you wish.
Re: (Score:2)
Most people do not need coding, will never be any good at it and trying to tech it to them is a complete waste of time.
On the contrary, in the medium-term future, many (if not most) employees will be expected to know how to partially automate their own jobs. That may be as simple as the ability to use the macro system in your office suite, but it's all algorithmic thinking.
Re: (Score:2)
That tired old nonsense has been touted since computers are around. Wrong half a century ago, wrong today. Unless you are thinking of a future where 90% are unemployed, because their jobs have been automated away. In that scenario, you will find that the remaining 10% are mostly those with the aptitude to write good code.
Re: (Score:2)
Wrong half a century ago, wrong today. Unless you are thinking of a future where 90% are unemployed, because their jobs have been automated away.
I'm thinking of a future where per-capita productivity increases over time. That is, pretty much what's happened in the last half century extrapolated.
Re: (Score:2)
But the way that you find out if someone has the aptitude for or an interest in something is to expose them to it. Sure, some kids will be exposed to it outside of school, and pursue it as a hobby (which is what I did), but not everyone has the same environment that I did which facilitated that.
It's like saying we shouldn't have kids play basketball in gym class because only some of them will be good at it and even less will play in the NBA.
Comment removed (Score:5, Insightful)
Re: (Score:3)
Because all three were rote tasks and required zero creativity.
Help desk requires a significant amount of creativity when it comes to consoling hurt computers, fixing broken users and avoiding office politics.
Re: (Score:3)
Re: (Score:2)
Found the helpdesk guy.
Former help desk guy. I now do computer security. Still consoling hurt computers, fixing broken users, and staying out of office politics.
Re: (Score:2)
Re: (Score:2)
And what right has that to this discussion here? Right, none at all.
Re: (Score:2)
The punchcard operators, switch board operators and keyboardists said the same things about their jobs as Slashdotters are saying about theirs. It's perfectly relevant.
Re: (Score:2)
Basic CS is stuff like algorithm design and complexity analysis
Seriously? [princeton.edu] That's not really high-schooler stuff. The prerequisites alone are undergraduate university math. It may be basic for CS but it's definitely not basic for the well-rounded knowledge one should get out of high school.
Re: (Score:2)
The rabbit hole undoubtedly goes deep - but basic things like being able to recognize the approximate Big O complexity of an algorithm aren't exactly rocket science, and can be useful even to optimize repetitive tasks around the house. Similarly things like functional decomposition.
And perhaps most importantly introductory computer science (ideally) teaches rigorous thinking of the kind useful in life, and absolutely essential in mathematics and science, in a form better suited to general human nature than
Re: (Score:2)
The prerequisites alone are undergraduate university math.
Understanding algorithms for sorting and searching require very little math. Complexity analysis requires understanding of exponents and logarithms, which are taught in junior high school. Most programming is more like doing plumbing than like doing math. "Okay, take this data stream and connect it to that socket, then run it through a filter and compress it ..."
Re: (Score:2)
Understanding algorithms for sorting and searching require very little math.
Indeed. I did those at high school. And again in the first week of CS degree.
Complexity analysis requires understanding of exponents and logarithms, which are taught in junior high school. Most programming is more like doing plumbing than like doing math.
It's built on that. But it's way too complicated a topic for high school. It wasn't even taught in the first year of my CS degree,
Most programming is more like doing plumbing than like doing math. "Okay, take this data stream and connect it to that socket, then run it through a filter and compress it ..."
Data processing is like that. If you were writing COBOL in the mainframe days it would seem like that. Or if you're writing shell scripts for Unix like OSs then it may seem like that. But most modern programming is not at all like that.
Re: (Score:2)
> complexity analysis
Basic CS???
One of the many cool things about Einstein was he could write descriptions of relativity accessible to the average person.
This doesn't involve that, or algorithms, or a language like C which punches you in the face. These things would be more obvious if you were as close to Einstein as you imagine.
Re: (Score:2)
I was going to argue for some CS being a perfectly applicable for high school, but couldn't think of a sub field which wouldn't require a lot more mathematical rigor than a typical high school student has.
Combinatorics, brute force strategies like the Monte Carlo method, basic numerical methods (finite difference, trapezoid method for integration), basic computer graphics, describing and solving computer puzzles, making games, etc.
Re: (Score:2)
Oh, sure, most people would _benefit_ from some actual coding skills. But the same is true for basic medicine, politics, budget planning, etc. And yet, most people cannot do these things competently either.
A problem (Score:2)
The main problem I think we face is that we appear to be very near the tipping point where "programmer" won't be a job -- it'll be the result of an expert system.
These neural-like-systems are already picking the right thing out of an image, out of speech, out of all the go moves possible -- with training. How long do you really think it'll be before one of them is trained on a metric shit-ton of code, and then asked to pick the right code to solve the problem... and then succeed?
Driving, lawyers, customer s
Re: (Score:2)
Re: (Score:3)
Fred Brooks said that half of the work is debugging the spec. If a school CS course just gets that across it'd be valuable for people who don't become programmers but have to work with them.
It's amazing how utterly shite some people are at describing a problem they want solved.
Re: (Score:2)
Yes, that's what "training" would have to cover, among other things.
Yes. But you only have to answer them once. Much (most, perhaps) programming is reinventing the wheel, or painting the rim a different color. The more you know, the easier that is, because you know the range of tools available and you can fit them to the problem, until you haven't done it in a while. Same thing will, I th
Re: (Score:2)
When you find yourself continually "reinventing the wheel", as a programmer, you should start figuring out how to create a wheel factory. But that doesn't put you out of work, as you still need to work on the wheel factory, if not the individual wheels. It just means you can create a lot more wheels with a whole lot less effort. The programmers still will have plenty of work - they just work on higher-level abstractions, and are more productive. True, there may be adjustments in employment numbers, but
Re: (Score:2)
Programming requires an understanding of semantics, not just syntax. A neural net may be able to cobble together some statements that solve a particular instance of a problem, but will the solution generalize to all possible inputs? And how do you train a neural net to understand a problem stated in a natural language? Providing a problem description the neural net can understand is a form of programming too.
Re: (Score:2)
I don't know if its a bigger problem, but it certainly is a problem; and particularly for entry-level stuff. And older workers.
Someone should mod you up. I have points, but I can't; already posted with my ID above.
Re: (Score:2)
Start with Turing machine (Score:2)
What's simpler than programming Turing machines? Start with zeros and ones and then introduce Gödel numberings for string computations. There are online Turing machine simulators. THAT's teaching computer science.
No Wolfram.. (Score:4, Insightful)
Wolfram should not be considered as a starting language worthy of being taught to entry-level students OR considered to be a mission-critical language until there's an open source version of it. As long as the language remains a monopoly, it is useless for all intents and purposes. Having finally transitioned to a fully open architecture for apps, what LOON wants to go back to the proprietary lock-in days? Next thing you know people will be trying to run their businesses with copy-protected diskettes and God help them when they wear out.
First defense of the honor of Python? (Score:2)
Interesting topic, but my initial reaction is that they seem to approaching the topic sideways, focusing on some weird trivialities of the current implementations. Is there a label for a Hobson's choice with two options?
There are lots of good first languages for programming, and the focus should be on the outcomes. Actually, that would probably mean that different first languages will help different kinds of students become better programmers, and the apparent premise of one and only one as a standard first
Re: (Score:2)
Anyone who thinks using a whitespace-significant language with young kids is a good idea has got to be out of his cotton-pickin' mind. (And obviously has never spent any time around kids.)
Pascal, by chance? (Score:2)
a new Advance Placement course "will be offered in more than 2,000 U.S. classrooms this fall...the largest course launch in the history of the AP exam."
Are they still teaching Pascal for AP Comp Sci, by chance?
Now, get off my lawn!
Seriously, though, I don't remember anything that I learned my high school AP Comp Sci class (which taught Pascal), aside from discovering that I really enjoyed tinkering with computers to make them do different things.
Re: (Score:2)
a new Advance Placement course "will be offered in more than 2,000 U.S. classrooms this fall...the largest course launch in the history of the AP exam."
Are they still teaching Pascal for AP Comp Sci, by chance?
AP Comp Sci [collegeboard.com] replaced Pascal with C++ in 1998 and C++ with Java in 2004.
...and don't tell me to get off your lawn, kiddo--I graduated high school before AP Computer Science was even a thing.
Choose none of those languages (Score:5, Insightful)
Choose none of those named above, nor any other proprietary language or platform. It is quite incredible and irresponsible that someone would recommend bringing up children into a form of corporate mental slavery and proprietary dependency.
Give your children freedom. There is no shortage of unencumbered free and open source programming languages that will serve their educational needs very well indeed. Once they are young adults armed with some knowledge and experience, they can choose their own proprietary chains if they so wish.
Re: (Score:2, Interesting)
Fyi, Swift is open source (swift.org), and one of the most popular depositories on Github.
I do like Swift, a lot, but perhaps introductory CS should start with something like Python for concepts and then move to Swift or whatever once performance becomes a factor.
Re: (Score:3)
Slashdot questions (Score:5, Interesting)
I normally never answer Slashdot questions, but I feel the urge to answer this one.
What would I teach? C.
You heard me. C.
As you may have guessed, I learned to ride a bicycle without ever having training wheels. The first language I learned was C. Kids should learn C. The ones that can't should never be programmers. The ones that can will be able to handle any high level language ever invented, including whatever wankery the Apples and Googles of the world come up with next. Teach them C. At the command line. All else is puffery.
I also feel obliged to respond to the blithering idiocy of the Code.org CEO. Early elementary students? Wtf are you babbling about you drooling moron? Coding has prerequisites. A student who wishes to learn code must read and write at least one natural language well and must know not only arithmetic but also elementary algebra. A student's first coding class will teach Boolean algebra. The combination of those three things is what coding is. Written language combining Boolean logic with algebraic equations. If you're not doing that, you're not coding.
Re: Slashdot questions (Score:2)
Pharo Smalltalk is an even better experience.
Re: (Score:2)
There is value in leaning to code being becoming a proficient programmer and doing it as a career. It teaches logical thinking and problem solving.
So we should start with something easy, to teach those skills, rather than worrying too much about making great future developers. A lot of great devs started out on BASIC, remember, myself included.
Re: (Score:2)
I think we should start with a scripting language, because even people who will never be good programmers can get something out of scripting.
I started with Logo, though, and that was bloody useless. So I also think they need to use a language people actually use for stuff. Teaching languages are fucking brain-damaged. What a waste of time.
Re: (Score:3)
You're basically pulling the "We walked to school uphill both ways" stereotype here. No, your way of learning back in the day was not the best. C
Re: (Score:2)
I really hope you are kidding. While it is true that C teaches some very important low level concepts... those can be taught on their own, without the mess that is C programming. Pointers alone would present a major challenge for kids, adults who know how to program in other languages have problems with pointers, much less kids.
Not even a little bit. Pointers are precisely what I was thinking of when I recommended C. Pointers are fundamental to how the machine works. Learning them learns the machine. If you do not know how the machine works, you are a bad programmer.
As for teaching abstract concepts... Nope. Humans learn by doing. There's a reason there are exercises at the end of every chapter in a math book. In order to understand the machine, you must program the machine, and you must do so in a language that does not in
Re: (Score:2)
You are talking about learning the fundamentals to provide a solid baseline to support a thorough understanding of how machines work, and thus how code actually runs.
That's not the topic here, because it will prevent most people from learning. The opposite of the goal here.
I agree that C and assembly should be studied and learned, but your goal is winnowing out anyone who doesn't yet have the spark of interest, or who hasn't developed the kind of logic processing you can teach through programming.
Your plan
Re: (Score:3, Interesting)
What do you mean by "fairly familiar with web pages"?
I and a bunch of my friends learned HTML in our teen years, in our spare time. We set up Angelfire, Tripod, and/or Geocities sites and learned to navigate the W3C standards to improve our sites. A lot of people in that generation are now full-blown web developers. What opportunities do today's kids have that are remotely close to that?
Maybe I'm not hanging around the right people but I don't see that spark of creativity in today's kids. At least not with
"coding" is not CS! (Score:5, Insightful)
Computer science is no more about computers than astronomy is about telescopes.
-- Commonly attributed to Edsger Dijkstra.
Re: (Score:2)
Actually, the quote is deeper than most people think. Go to any astronomy department and you will find faculty members whose specialty is telescope design.
Dijkstra wasn't saying that computers are not CS, he was simply pointing out that they are not the ultimate end of what CS does, they are only a part of what CS is.
CS is about processing information, presently we use computers and code to do that, hence look at any CS department and you'll find professors doing research on those subjects, among others. Bu
Re: (Score:2)
It is a lousy astronomer who does not know how to use a telescope, or who has never seen the stars.
free interactive online CS lessons (Score:2, Informative)
At the "University of Waterloo" we like Python and JS... So we built [https://opencs.uwaterloo.ca] so students can learn programming... Seems some high schools are starting to use it.
Re: (Score:2)
At the "University of Waterloo" we like Python and JS...
Maybe they do now, but back in the day they liked Fortran. Anyone remember WATFOR (and WATFIV [wikipedia.org])?
There was also a Waterloo BASIC, and later (actually done by a company spun off from UW) Watcom C/C++.
(Me, I learned ALGOL and APL more or less in parallel with each other. If you really want to learn programming, vs just doing some bit-bashing, learn at least two very dissimilar languages. It'll stretch your brain.)
Also, a serious user would need to pay for usage.. (Score:2, Insightful)
Where do I sign up for my free Mac or iPad to use the Swift Playground? And of course, Windows and Linux are second class citizens for all Apple products and services so any kids without access to Apple products are treated like shit.
Re: (Score:2)
[...] any kids without access to Apple products are treated like shit.
This is so true. I found in the 7th grade in 1983 that I came from a "poor" family because we didn't have an Apple ][ computer to do my homework and cable TV to watch MTV. My childhood was ruined. Damn Apple!
CHESS (Score:2)
the semantics of the languages change (C++, Swift, Java) — but the type of thinking you need to see the effect of logical interactions is best introduced by getting students playing CHESS. it offers the ability to teach logic independent of individual language semantics which i would see as fundamental.
2cents
jp
Wolfram is the best choice for Education (Score:2)
The answer depends on your goal.
If you want to teach kids so they can get a job, any popular coding language will do.
If you want to teach kids what programming is about, any teaching focused language (such as pascal) might be appropriate.
If you want to teach your kids how to incorporate math, electronics, robotics, and computing into the rest of their lives...than I think a computational computing focused language and tools such as Wolfram Framework and Mathematica makes sense. The problem will be that the
Re: (Score:3)
If you want to teach kids so they can get a job, any vocational trade will do.
FTFY - We need more plumbers, electricians, and carpenters.
I don't know, turtles are kind of cool. (Score:2)
Maybe some kind of simple programming language elementary dealing with turtles? A command based system where you tell it to go 5 spaces, draw a line and turn and have the students predict where it goes?
Seriously, high-school= C. Maybe stripped down without any of that pointer stuff or, make that a separate class, and that covers the basic syntax of every other major language out there. I learned fucking pascal off a Mac LC and it nearly failed me in programming 101 in college cause no one used that stu
Python (Score:2)
Teach kids Python.
It's what you use to make computers do what you want, especially for user-facing tasks.
In 3 hours kids can go from knowing nothing about how code commands work to downloading all the pokemon art from a website with a simple .py program run from the terminal.
Teaching Languages are Idiotic (Score:3)
No student should ever learn a language that they'll never use again, period. It is just a fat waste of time, when they could actually be learning a language. You don't get any additional skills by learning a teaching language, but odds are you will learn some bad habits.
The Wolfram language fails this test pathetically, so anyone who suggests that we use it for teaching should come down off their ivory tower and see how the other half lives before making their arrogant pronouncements of superiority.
Programming means logic in a specific language (Score:2)
What is important is to teach how to create the algorithm, the logical steps, in the first place. Not the actual language that was used (C was just starting to get rolling when I was learning languages, and Pascal was huge). Teach algebra and geometry. Teach trig. Use word problems. Have the student learn how to take a stated problem, break it down to steps needed to solve, and then implement the solution in any language - even pseudocode.
It is this process that enables all programming; learning a spec
Re: (Score:2)
What is code.org and why should I care what its CEO thinks? Who gives a shit?
Code.org is a non-profit organization promoting the teaching of programming. They have wealthy benefactors, and are very influential. Whether or not you agree with their goals and methods, you should "give a shit" about who they are and what they do. You should also give a shit in general about STEM education. It is important.
Re: Code.org (Score:3)
Quite correct
You should give a shit about who finds/owns code.org and what their motives are.
And if you think it is the betterment of children then you are not thinking critically.
Code.org is about to things.. Ownership of hearts and minds as early as possible, and the attempt to reduce software development/software engineering to a blue collar function.
This is quite clear by the mutual ego stroking of the members over their proprietary closed 'solutions' for education rather than a focus on simpler and fre
Re: (Score:2)
If "most of the best" programmers you know only know how to create websites and mobile apps, maybe you just don't know any good programmers... Which would also explain why they have no clue about CS.
Re: (Score:3)
I found the following example on wikipedia:
repeat ten times
put "Hello world at" && the long time & return after field 1
wait 1 second
end repeat
So what does this magical natural language-based language do? It uses the same keywords you find in other languages ("repeat", "end repeat"), it still requires quotes around quoted text, it still uses weird symbols ("&&" and "&"), and no doubt there are stil