Litvin wrote:
AP is driven by colleges. The AP exam used to be in C++ until 2003. The current exam has heavy emphasis on OOP. It took a tremendous effort to retrain HS teachers from C++ to Java/OOP... If the college board decided that Python is used at most colleges in intro CS courses, they would eventually move.

Why does the AP test have to be offered in just one language? Why do we need to make a "tremendous effort" to move teachers from one language to another? Couldn't every school-district make it's own choice of language? Do colleges really expect specific training in a particular language? If a student has a thorough understanding of OOP in Python, then enrolls in a college that teaches in Java, we could have a one-credit, self-study course, with the final exam being the AP test in Java. Students could even take this transition course over the summer between high school and college. Goldwasser's text has an excellent transition to Java. I expect we will have a section of PyWhip for this purpose also.

I participated in a team-programming project in our junior-level class in OOP. The class was taught in Java, but the project was done in Python. The students participating in the project were wary at first, insisting that they be able to write in Java, and I agreed to do the translations to Python. I didn't have to do any translations at all. These Java students picked up on Python right away, and got a A on their project.

Moving the other direction - from Python to Java, might be more difficult (adding cruft instead of removing it), but certainly do-able for a student who really understands the fundamental concepts. Teaching these concepts using the best tools available should be our focus in high school. Learning the specifics of whatever language they need later should be "on the job" training. Whatever language we choose for teaching, we have to assume students will need something else after graduation. The cruft will change. Fundamentals stay the same.

This is very unlikely, though. College courses are getting more and more fragmented in terms of the languages used, so it might be easier for the college board to move to a language-less exam. The current exam is too Java specific.

Beyond college the world is even more fragmented. At Cadence, our main language was SKILL (a proprietary variant of LISP). I've now forgotten SKILL. Currently, I need to be familiar, but not proficient in Java and C. Soon I may have to learn Perl. Python will always be my core language, however. C also has some nice "down to the metal" fundamentals you don't get anywhere else.

I don't understand how you get into any depth in CS without a programming language in which to communicate the fundamental ideas. Do you have an example of a "language-less exam" that might sufficiently test a student's knowledge of CS?

Comparing the raw scores might lead to a real awakening.

Scores depend a lot on a particular teacher and textbook, not so much on the language. The remaining AP CS exam is not very demanding, anyway, in terms of writing code that works.

The comparison I would really love to see is an average of the Java scores vs an average of the Python scores. These would be averages over all teachers and all textbooks. Assuming the choice of problems is really our best consensus on what is important, this could be a good measure of which language is more "productive".

-- Dave

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

Reply via email to