Zac,

I do not teach AP CS or Python, but, as you know, my wife, Maria Litvin, does teach both, and we have co-authored popular AP CS textbooks and AP prep books since 1997. When AP CS switched from C++ to Java/OOP in 2004, it took the College Board over three years from the decision to switch to the implementation. They used the time to develop the exams and their case study and to train CS teachers. (Maria served on the College Board's Ad Hoc Committee for Professional Development in Java.) Switching the exam language is a huge deal for the AP CS Development Committee. I wouldn't expect any changes very soon.

At the moment, the College Board is exploring the possibility of a new CS exam, called Computer Science Principles -- http://csprinciples.org/. They have received an NSF grant to do that. It is unclear to me whether they are just spending NSF's $2m or are serious about developing a new exam. I think "CS principles" is a bit of a misnomer. The five college pilots for this course seem to offer little CS (and few "principles"). It is unofficially known as a "CS-0" course. The pilots teach Scratch and Alice; a couple teach a bit of Python. It seems likely that if this course materializes, it will be based on Python or at least Python will be one of the language options. But it seems to me unlikely that this course will soon replace the current CS course, because the current course is relatively successful -- 20,000 exams annually and accepted by many colleges for placement/credit. Will they switch the current exam from Java to Python? Theoretically this is possible, but not very soon. For this to happen, the majority of colleges must switch their intro CS curses to Python first. MIT did!

At the same time, many people seem to be finally getting tired of Java/OOP with its arcane terminology, pompous, pseudo-mathematical documentation, and obsessively/compulsively verbose code. I believe the switch to Java/OOP, more than anything else, has led to declining enrollments in AP CS and CS majors in colleges. So, who knows, maybe the Development Committee will manage to merge some ideas from AP CS Principles with the current syllabus and switch to Python sooner.

Would this be a good thing? I think so. An AP course sets a national standard, which is the least common denominator for students and teachers. Students who take a year-long CS course with a knowledgeable teacher should have little trouble getting a 5 on the AP exam. Teachers are free to teach what they want, as long as they cover the basics described in the AP syllabus. The AP case study (currently GridWorld) is a reasonable teaching tool. The College Board emphasizes that they test COMPUTER SCIENCE, not programming, and just use a language as a vehicle for testing the knowledge of fundamental concepts. Typically they restrict the language to a small subset (and will mercilessly truncate Python if it is adopted). In reality, quite a bit of the current exam is straight Java programming. More so since they dropped the AB-level course (data structures) in 2010. But the way the exams are structured and graded, a student does not have to produce a working program to get credit.

Producing "great Python programmers" is not the goal of AP CS (which doesn't mean "great programmers" can't get a 5 on an AP exam). I don't feel qualified to debate whether this is a worthwhile goal for K12. I personally prefer that K12 students acquired a good foundation, preferably starting, as early as possible, with discrete math, and learned a bit of programming, preferably in Python. :)

Gary Litvin
www.skylit.com

At 07:24 PM 11/6/2010, you wrote:
Today I attended a meeting of the Georgia chapter of the Computer Science Teachers Association. Most of the focus was on how to better teach the AP Computer Science exam and Java but I did learn a few things at the meeting. Are any of the K12 educators here that are using Python also teaching AP Computer Science?

>From speaking with the people at the meeting I got the idea that the AP Computer Science test would eventually transition to Python. Does anyone know more about this?

Also, from their descriptions of teaching the AP class it seemed like the is focus is mainly on preparing for the test...do you think that the AP course using Python would be a good thing or a bad thing for educators using Python? I think I prefer keeping my focus on producing great Python programmers instead of on an exam.

Interested in any opinions out there.

-Zac Miller
_______________________________________________

_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to