One down, one to go.
Honestly, I don’t know why I studied as much for AP Computer Science as I did, even though I didn’t take the class. Even though I don’t actively code in Java anymore, it was still my first programming language and I’ve written at least 20,000 lines of code in it (including boilerplate cruft and padding, so maybe only 10,000 of them are interesting lines, but still.) I actually counted all the Java code I still have with me (note to self:
find . -name '*.java' | xargs wc -l) — this includes the “old” Gridderface as well as a bunch of even older projects, stuff like a grid-game framework with Gomoku and Connect Four or a fancy cryptographic tool. I’m nowhere near a professional software developer, but an exam intended for people after just one year of exposure to coding cannot present a challenge.
The Java that’s on the exam is pretty stupid, anyway: apparently
char is too hard to be in the curriculum, so AP code constantly slices one-character-long substrings off strings, while I can’t remember having ever called
substring in those 20,000 lines. Also, GridWorld is asinine; all those interface methods returning
ArrayLists violate the simplest basics of encapsulation.
As a further illustration (this is not from the actual test, which we’re not supposed to discuss, but this method can certainly be applied to one from it): can
a != a ever evaluate to
Okay, this is a joke and there’s actually a far simpler definition to make the specific expression
a != a true. That would be #26 from Java Puzzlers, a wonderful book; determining the definition is left to the reader as an exercise. It doesn’t generalize easily, though. But the point is: I learned this stuff by myself outside of a high-school curriculum, setting my own pacing, writing and building whatever I wanted to, never considering that I’d need to be tested on it; and it worked for me.
These are not, by the way, my first AP tests — I took calculus and physics together with all three corresponding AP exams (Mechanics and E&M are separate tests) far too early. But I don’t remember much else about the process, and in any case I think these subjects are too far inside my comfort zone to compare with biology. Next Monday’s AP Biology is a lot harder. I have to admit, there’s a lot of memorization. And with all the Hardy-Weinberg and χ2 computations, it also seems to be the most computationally intensive test. I guess I should be studying.
The future: I ended up choosing AP Economics for junior year. There were so many applicants that they had to screen people, but the test was just a quick one about producing varying amounts of dumplings and taco salad, and I got in; no surprise there. Then there’s AP English Composition, of course. Also, everybody’s supposed to take introductory physics — I didn’t consciously realize that I had already taken that for too long, so I’m still not sure if I’ll try to opt out or something; my physics is very rusty, though. I opted not to take AP World History simply because I don’t think I’m interested enough in it to get enough out of it.
There was going to be some deep thoughts about academics in this post, but I decided to try to consolidate it into a bigger post draft. So I think I’ll just let this be a simple life update and stop here.