3 ms·
I agree with the principles, but I am curious what so-called "coding app programming" approach they're referring to. I strongly suspect it's a straw man. I tau
by phlakaton 10y ago
I agree with the principles, but I am curious what so-called "coding app programming" approach they're referring to. I strongly suspect it's a straw man.
I taught a semester of CS to high school students in Snap!, a derivative of Scratch. It's a coding-with-blocks app and we did go through a sequence of game projects with it. But it's unfair in the extreme to say students are not learning real CS by going through it. Here's what we covered:
Algorithms and algorithmic thinking (one of the first things we hit upon!)
- Data types and variables
- Data representation
- Binary arithmetic
- Scope (to some extent)
- Conditionals and boolean expressions
- Loops
- Modeling and simulation
- Event-based programming
- Functions and procedures
- Prototypal OOP
And all this while keeping high school students engaged with extremely limited time.
The curriculum I linked elsewhere on this thread if you're curious.
I think that, given the time and size constraints of an American high school class, the emphasis on keeping the cognitive overload constrained is paramount. And that includes as little yak shaving as we can get away with! Any attempt to evaluate a PL for intro really _really_ needs to look carefully and honestly at the yaks - in the language as well as the programming environment...
- mathattack 10y agoI agree. I dismissed Scratch as a toy, and then saw my kid doing logic, loops, variables, procedures... It was more advanced that anything I learned up until AP Computer Science. (And now he wants to learn Python)
- blendo 10y agoAnd now a derivative of Scratch can take you through the new AP "Computer Science Principles" course. See http://bjc.berkeley.edu/ http://bjc.berkeley.edu/, which says: "Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students."
- phlakaton 10y agoYeah, the language goes into some pretty advanced territory, though our class didn't stick with it that long. We did use BJC as a secondary source though. Good stuff!