Slashdot Mirror


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)."

9 of 69 comments (clear)

  1. "A language of their choice" by tlambert · · Score: 2

    "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...

    1. Re:"A language of their choice" by wisnoskij · · Score: 2

      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 garbage collection and pointers. Having not had to worry about the practical side of programming for years at that point, it was gruelling. And I still do not get it, really.

      --
      Troll is not a replacement for I disagree.
    2. Re:"A language of their choice" by HornWumpus · · Score: 3, 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.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  2. NullNotLearningAboutPointersException by tepples · · Score: 2

    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".

    1. Re:NullNotLearningAboutPointersException by xxxJonBoyxxx · · Score: 2, Insightful

      >> Since when does learning about Java or the verifiably type-safe subset of C# mean not learning about pointers?

      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)

  3. Actually not a bad plan by ErichTheRed · · Score: 3, 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.

    1. Re:Actually not a bad plan by DigiShaman · · Score: 2

      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.

      They're called "business consultants" that just so happen to understand the whole technology stack enough to leverage the operation of an organization more efficiently, effectively, and thus more profitable.

      --
      Life is not for the lazy.
  4. Ugh, first they ax the AB and now this? by dlenmn · · Score: 3, 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 (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.

  5. Not all languages are acceptable... by __aaclcg7560 · · Score: 2

    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.