APCS in SFUSD
Before I started teaching AP Computer Science, I wasn’t sure which public high schools in San Francisco offered the course. Now, as far as I know, there are three of us doing it: myself at Galileo, Art Simon at Lowell, and Michael Ferraro at Balboa. It’s great to have colleagues in this, and I’m hoping we can carve out some time to get together this year and compare notes.
In a strange coincidence, both Michael and I studied computer science at MIT, he graduating the year after me. He even uses LaTeX to format all his handouts and problem sets. I think this background causes us to bring a very specific perspective to computer science education, strongly influenced by the introductory course we took, Structure and Interpretation of Computer Programs. I can honestly say that one course built the entire conceptual structure upon which I have hung all my subsequent learning about computer science. It was extremely powerful, fast-paced, and deep. I struggle constantly with the tension between needing to teach specific syntax, techniques, and strategies for Java in the context of the AP curriculum, and my desire to teach not only programming but a true understanding of what it means to program and what the machine is really doing with the code we write.
It will be interesting to see over the next few years if we can build a pipeline from SFUSD into top-tier university computer science programs. We certainly have the quality in our student population to do this. I think the key will be reconciling the tension between teaching technique and teaching concepts. In true wizard form, we probably need to find a way to do both at the same time.