Over on Facebook the semi-regular "is APCS-A going to Python" once again appeared. I'm not going to get into Python vs Java. Each language giveth and each language taketh away but it got me thinking about the history of language changes.
I titled this "Language choices for APCS" not APCS-A because back in the day it was just APCS. At some point that split with APCS-A being similar to what we have today and APCS-A being that plus a CS2 (data structures) class.
Yesterday was, I think the fourth, To Code and Beyond conference hosted by Diane Levitt at Cornell Technion. I might blog about a few of the talks but for today let's start with one.
In spite of my anti College Board bias, I really enjoyed Barbara Ericson's talk on APCS statistics. Barbara's been breaking down the APCS numbers for years - how many took the exam(s), how many passed them.
Just like last year, I'm taking in two classes worth of students in to my honors program. The challenge is that I can only teach two classes and I've got to figure out what to teach and then which students belong in which class.
It basically comes down to one of two courses, our CS0 (CSCI127) and our CS1 (CSCI135). CSCI127 is a first programming experience. The normal class is taught as a large lecture with small recitation/labs.
In what grade should students take APCS? This question comes up from time to time.
I've heard answers ranging from middle school through never. Infact, years ago, my chairman relayed a conversation he had with Marvin Minsky where he asked Minsky what the high schools should be teaching with respect to CS. The answer was "nothing." This was then amended to "teach them to type." Of course this was a long time ago but I believe the sentiment was that college was the right time and the high schools don't know what they're doing and will just screw up the kids.
I got an email from a friend the other day. Among other things, he mentioned that he would be teaching APCS-A for the first time this year. He's a little trepidatious. He knows his stuff but he hasn't really done much using Java.
I was going to respond in an email but thought I might share here instead.
TL;DR - for all you APCS teachers who are new or new to Java - learn your core CS, lean on your resources and support and it's OK to tell your kids "I don't know, I'll get back to you.
AP scores just came out. As usual, I see the posts and take part in conversations where teachers talk about their results. Some are happy about their results, some aren't, some don't really care.
I just want to make a plea to all AP teachers out there:
Don't let your value be dictated by the college board or any other exam.
I never really cared much about my students' actual AP scores.
Once again, it's time for Advent of Code - a series of small programming problems released once a day.
I wrote a bit about it last year and you can still find last years problems here.
It's only day three but so far, all of the problems look really nice for students in APCS-A or any similar intro course. I'm thinking of looking at a couple of the problems this week with my class at Hunter.
I like a fairly informal atmosphere in my classes. Students have to know that there’s a line between teacher and student but I also want them to feel like we’re all part of the Stuy CS family.
Whenever we start a new term, it takes a while to break down the walls. The students don’t know what to expect of me, can they trust me? Am I a bozo? Who knows.
In spite of the Java based annoyances I mentioned last time, I decided to go ahead and do Radix sort with my AP students. I usually don’t cover it in AP Computer Science, but I like getting the kids to think about using arrays as buckets as it’s a new way of thinking for them and it does give a non-trivial application that combines ararys and ArrayLists.
It’s a nice little algorithm.
Java’s never been my favorite language either for using or for teaching.
As a programmer, after starting with languages like Fortran and Pascal, I really cut my teeth with C. More recently, Python has been my go to language to get real work done.
From a teaching point of view most languages have good points and bad ones. When the AP class went from Pascal to C++ I lamented losing the simplicity and the low cost of entry.