Hacker News new | ask | show | jobs
by albertyw 4718 days ago
I wonder how long it'll take College Board to move to a more expressive language like Python or Ruby. The basicness of AP CS (learning loops, recursion, and simple OO) means students don't learn enough about programming for the benefits of Java to be apparent. I knew a lot of classmates who were put off of programming by APCS, not least because of the verbosity and density of Java.
3 comments

I'd see them moving to something like C# before Python or Ruby, or even perhaps back to C++. (I think the formerly used Pascal is safely dead as an option.) For an indication of what they are most likely to prefer, I'd say look at what the most popular first-language-taught to beginner CS students in college is. There's also a bit more to the basic AP CS (I'm still sad they killed the AB program, which is the one I took) like sorting algorithms and the difference between a static array and an ArrayList...

I think it's the responsibility of the professor and the district to offer a programming class separate from the APCS one, ideally in some other language(s) than Java, rather than trying to make the APCS class into a more "fun" class that's more about programming applications than about CS and understanding how programming actually works. An alternative course also makes for an interesting and knowledge-packed 9th- or 10th-grade computer course that can double as slight preparation for later; having passed Algebra 2 is typically required for APCS and hence most students won't even be allowed to take it until 11th or 12th. (My school had a C++ class, though when I was a senior and TAing I insisted on showing the students Python and PyGame near the end of the year. To my knowledge the professor has continued showing other languages/applications besides the one the class focuses on, once I even did a talk about Clojure to the AP kids while I was in the area visiting family.)

I think it's a shame they do java, but for a different reason. Too many kids are now coming up with little idea how the low level stuff works. How can you appreciate something like java and the problems it solves without experiencing what came before it? Moreover it's hard for me to think of anything that's been better for my career than the fact that I taught myself C as a teenager.
I had many friends curse programming forever. A lot of them went into the class with the dream of CS as a major and leaving and saying they'd never program again. It's a real shame.