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