College Board Mainstreams AP Computer Science (collegeboard.org) 69
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)."
I think I've seen the coursebook (Score:2)
Computers for Dummies
Re: (Score:2)
Re: (Score:2)
I've found upon finishing a 'For Dummies' title, I know a bit 'about' the topic but I have almost no practical skills in it. It's kind of amazing how well they pull that off.
Re: (Score:2)
CS 101. The only course usually taken by Business Majors, Engineers, etc. The people not on a CS major track.
What the point? (Score:2)
>> The curriculum framework directs the focus of instruction away from programming as a skill
so... it's completely worthless?
>> enabling problem solving, human expression, and creation of knowledge
sounds like new age feelz garbage to me.
Re: (Score:1)
I wouldn't doubt it if the Bill and Melinda Gates Foundation is behind this somehow, but if this is more along the lines of code.org, I don't think selling Microsoft software would be the focus.
It's been amazing watching the media fall all over themselves trying to trivialize programming. Everyone Can Code! We've got a president who's a programmer because he spent an hour of code. We've got a female CEO who's a programmer because she figured out the secret lingo all us evil misogynerds invented to keep w
Re: (Score:2)
Re: (Score:2)
What kind of schlong writes this crap? (Score:2)
The actual AP materials still refer to "skills" throughout. I guess that means you can't just show up at the exam, pout, tell them your name is Marissa and expect to get your 4.
"A language of their choice" (Score:3)
"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...
NullNotLearningAboutPointersException (Score:3)
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".
Re: (Score:3, Insightful)
When all you know about handling exceptions is to Google for the next bit of code you should toss at them until they go away. (Citation: half of StackOverflow)
Re: (Score:2)
Because, you do not learn about pointers in Java. In Java, all of that is taken care of for you, just like you do not explicitly handle garbage collection in java, in java you do not deal with the different between pointers to data and data, you just use variables and let the language figure out how to store it.
Does calling 'free' teach you anything? (Score:2)
(I'm not responding to you in particular, but this seems like a relevant branch to post in.)
I don't get why people think that it's not a real education unless you call malloc and free (or their equivalent in other languages). malloc and free are still automatic memory management because you're not implementing the details yourself. Yes, it's good to know how automatic memory management works, but calling simply malloc and free doesn't teach you that. Have you implemented your own memory management scheme fr
Re: (Score:1)
I agree that C# would be ideal. It should be the open EMCA C# standard. (This is not anti-Microsoft, it is just a good open standard to use.)
Re: (Score:2)
Re: (Score:3)
Yes, but even more important is making sure everyone understands the fundamentals. I maintain it would of been far easier to teach me the fundamentals of garbage managements if it was done before I learnt all the high level algorithums and such. In my academic career, we were taught Java, then sorting, trees, and all the other main algorithms and data structures, and programming paradigms, then assembly, then finally C++. The last thing I learned, well after we left practical programming long behind, was ga
Re: (Score:2)
Re:"A language of their choice" (Score:4, Interesting)
By my read you never got the most educational language, C.
IMHO the first language doesn't really matter, but the second and third have to be C and assembler, or the student will never be comfortable 'down and dirty' with the silicon.
C should always come before C++. Learning pointers and OO in one bite is too much for most.
Re: (Score:2)
Yep, the language is unimportant to Computer Science, and programming is a small part of CS too. The language is only important for those treating it as job training or employers looking for quick hires and for short term jobs after which they get fired because they've become outdated. AP used to be about being smart, going above and beyond mere high school curriculum, the cream of the crop, etc. But AP computer science sounds very dumbed down.
Re: (Score:2)
Pointers belong in a beginning programming course/self study. OO does not. It isn't that important. It's syntactic sugar and over involved. Until you understand the low level OO will just hide complexity you should understand first.
Besides look at all the C++ people who think the get pointers but don't do them right.
Re: (Score:1)
Re: (Score:2)
AP is about doing college level work before college, it is not mainstream high school curriculum. AP *should* be hard and it should be advanced and it should be college level. These are honors courses.
Re: (Score:2)
Despite AP CS being "college level work" it is interesting to note that it's not all that well respected by universities. Some universities like it, others treat it as an irrelevance. The kicker with CS at university is that it's the only major out there that does not require (or even recommend) that prospective students take AP CS or any other flavour of CS at high school. What they want is Calculus and Physics, not CS.
Re: (Score:2)
Only some high schools even offer AP classes. The good schools in good areas have them, but I never even heard of them until graduate school and only then because I was on a scholarship committee.
To be honest I don't think it helps the students out, especially for science and engineering where there is no need for extra credits. What happens is the student ends up skipping a class designed for incoming freshman and going to a class that assumes you've acclimated to college, which can be a real shock.
Re: (Score:2)
First, recall that the AP test is designed to be worth about 1 semester's worth of credit in a freshman intro course in . So AP CompSci should be thought of as that first intro to programming course. It isn't about deep concepts, it is about testing your understanding of the basics. Memory layout, pointers, memory management, etc, are not first semester intro course topics, and never were. AP CompSci is testing whether you should be forced to sit through intro to programming with people that have never
Mann Coulter (Score:2)
no mixing adam's apples & hymens?
That depends on what you think of "Mann" Coulter [wikia.com] or Rachel "Man"-dow.
But seriously, some women do have a prominent larynx [todayifoundout.com].
Actually not a bad plan (Score:4, Interesting)
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.
Re: (Score:3)
A course showing tech is useful (Score:1)
That's a very good example of why something like this can be done well and give people a richer understanding of computing, even if it's not that useful to most programmers.
When I did undergrad, the CS department was interested in getting more women in coding and found really two things: (1) if the intro course was taught by a woman, students were more likely to go into CS, and (2) women interested in taking CS courses were much more interested in taking them for utilitarian reasons, because those courses w
Re: (Score:2)
Why on earth would people interested in increasing women's participation in IT be against this? It's pretty much exactly what a lot of the introductory courses aimed at girls are.
If anything it's the people opposed to having more women in tech that bemoan the lack of hardcore technical knowledge being taught.
Mainstreams isn't a fucking verb (Score:1)
nt
Dropout rate in college CS1 is horrendous (Score:1)
I have looked at this alternate AP course, and my first reaction was somewhat negative. But the concentration on syntactic detail, etc. in the original put kids off. If they can be encouraged to carry on beyond this AP alternative and learn more in a CS1 college course, that should help the dropout rate there and eventually produce more graduates capable of doing real computer science.
Re: (Score:2)
... t the concentration on syntactic detail, etc. in the original put kids off.
A friend of mine teaches at the community college level. He regales us with stories about the total inability of students to assemble a coherent and grammatical sentence, let alone a thoughtful paragraph. Syntax isn't everything - one can certainly communicate with people whose native language has a different grammar and syntax than one's own - but it can be an important part of conveying meaning.
Ugh, first they ax the AB and now this? (Score:4, Insightful)
I see that they're hell-bent on watering down the computer science exams as much as possible. First they ax the AB exam [wikipedia.org] (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.
Not all languages are acceptable... (Score:3)
Re: (Score:2)
Repeating the same BASIC class for 8 years is really, really bad.
I never took classes in BASIC. I taught myself on a Commodore 64 for eight years before I got into college.
The 7 big ideas are great (but not the order) (Score:1)
I think the goals here are highly commendable, and keeping it programming language agnostic is pragmatic because whatever you learn today is going to be BASIC in a few years. While I concede the authors have a lot more experience at teaching than I do, I disagree with the ordering of the big ideas and suggest my own priority below.
Big Idea 3: Data and Information
What has turned me into a programmer is having to deal with data in my job. The MooCs on this tend to focus on languages like R and SQL to solve pr
One question... (Score:2)
Will the universities care if you've done AP CS (either one), or will they still continue to treat high school CS as being irrelevant and just keep on requiring Calculus and Physics?