[Edu-sig] AP Computer Science

Litvin litvin at skylit.com
Sun Nov 7 01:56:33 CET 2010


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
>_______________________________________________



More information about the Edu-sig mailing list