College Board Mainstreams AP Computer Science (collegeboard.org)
New submitter Pollux writes: In the Fall of 2016, the College Board will begin a new course titled "AP Computer Science Principles," designed to "introduce students to the central ideas of computer science, instilling the ideas and practices of computational thinking and inviting students to understand how computing changes the world." This course will not replace the existing "AP Computer Science A" course, but has been added, "To appeal to a broader audience, including those often underrepresented in computing." A short list of differences between the two courses notes that instructors can choose a language of their choice. The curriculum framework directs the focus of instruction away from programming as a skill and towards programming as an activity, "enabling problem solving, human expression, and creation of knowledge (PDF)."
"A language of their choice"
Funny; the link labelled that specifically states that the language that will be used is Java.
So they are not going to learn about explicit memory management, layout of data in memory, pointers, and a bunch of other things, as they would potentially have done with another computer language.
There also appears to be more of an emphasis on social impact than, say, binary math, boolean logic, algorithms, and data structures. Guess those things are less useful in an AP Computer Science course...
Since when does learning about Java or the verifiably type-safe subset of C# mean not learning about pointers? In Java, every variable that isn't a primitive is a pointer to an object. Sure, you don't learn about pointer arithmetic as a means of iteration, but you still can't spell java.lang.NullPointerException without "Pointer".
I'm squarely on the "systems" side of computing, having risen through help desk monkey, support tech, system admin, and finally landing on the systems integration/engineering spot. Every time I've considered taking on more development-focused roles, I've always backed away because of how much generic low-level coding work is being automated, abstracted away or offshored/outsourced. Any dev work that I do is focused on automating installs and tasks (PowerShell, Linux shell scripts, orchestration stuff, etc.) The "appealing to women" crowd is probably going to be strong in their condemnation of this approach, but I do feel that knowing CS concepts is important for a broad range of tech-related jobs and tasks, more so than "spoon fed introductory Java and a little discrete math, we'll teach the interesting stuff later" that you see in intro to CS courses. Therefore, having a "concepts" AP course is a good way to allow people to see if they have the aptitude for either development or IT work in general.
The truth is that low level coder positions, as in "here's the spec, code exactly to it" work, is going to be less lucrative. Same thing with expert-level systems work, as in "Cisco IOS guru" or "EMC storage wizard" or "VSphere administrator." Offshoring is driving the low level coders out, and cloud is driving the systems guys who are so far into a particular niche that they can't think outside of it anymore. Of course, you are still going to need genius-level people in both spots, but there will be fewer of them, and they will tend to work for service providers -- Azure and AWS run on physical hardware somewhere down the stack and that's where the genius level guys are going to wind up.
What I think is going to end up being a reasonably stable place to be is a generalist who is capable of seeing the whole end-to-end stack regardless of where it runs or who is coding it. What we will need fewer of is pure CS grads, especially those who don't really understand what's going on under the hood in their language/OS/database/network of choice. So yeah, give high school students a broader taste of what's out there, get them thinking logically and some might end up in CS.
I see that they're hell-bent on watering down the computer science exams as much as possible. First they ax the AB exam (which had some real meat to it), and now they introduce a non-computer-science programming class. I'm not opposed to the test per se, but don't call it computer science. It sounds like something between a problem-solving challenge and weak vocational training. Again, that's not a bad thing, but call it what it is: AP Computer Literacy.
When I was browsing college catalogs in the early 1990's, some colleges would allow the substitution of a programming language for the foreign language requirement. Needless to say, eight years of Commodore 64 BASIC wasn't transferrable.