Could there be a new test, call it AP something else?
At 04:12 AM 1/24/2010, kirby urner wrote:
Some of us have been hoping to interest local community colleges in serving as venues for these teacher training programs that in some cases equip math teachers already in the field with some of these new skills. The idea, as I've posted about already, was laid out during a workshop last summer: lets add a new high school course that satisfies a math requirement, isn't an elective.
As such, this course wouldn't be on the CS AP track. Trying to prepare students to pass some AP CS test would just take too much time away from the math we want to study.
Or could there be a new test, call it AP something else?
Several years ago, Maria (Litvin) asked a high-ranking College Board person whether AP Discrete Mathematics was a possibility. The answer was absolutely no. The main reason was that the College Board was looking for ways to reduce gender imbalance and minorities participation, and another math course wouldn't help. Hence AP Human Geography... When the College Board abruptly cancelled the AP CS AB exam, part of the rationale given, again, was that cancelling this exam wouldn't hurt the gender balance and minorities participation. What they meant was they could afford to cancel this small and unprofitable exam. (They also cancelled AP Italian -- no gender imbalance there). Interestingly, recently the College Board has established a commission to explore a new AP CS course. Its name, I hope tentative, is "AP Computer Science - Principles" -- see http://docs.google.com/present/view?id=dffps2vw_167hdvspwfc. Apparently, the current CS exam doesn't test any principles. What might this new exam be like? CS with no programming and no math? We'll see. My guess is, if it eventually comes about, it will be a no-specific-programming-language exam, which will simply replace the current AP CS exam in Java. I believe two AP CS exams will be untenable. Gary Litvin www.skylit.com
Litvin wrote:
What might this new exam be like? CS with no programming and no math? We'll see. My guess is, if it eventually comes about, it will be a no-specific-programming-language exam, which will simply replace the current AP CS exam in Java. I believe two AP CS exams will be untenable.
I can't imagine teaching or testing CS without an actual language. A much better alternative would be to have the same test in multiple languages (perhaps with a "handicap" factor for the students choosing Python, so they don't have an embarrassing advantage :>). If you find a problem that is not easily translated to another language, that is a clue that the problem is about cruft, not fundamentals. I would volunteer to do the Java to Python translations. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ *
Sounds good to me, David. Good luck putting it over. Maybe after we get 10 million hits on PyWhip? Andy On Mon, Jan 25, 2010 at 8:36 AM, David MacQuigg <macquigg@ece.arizona.edu>wrote:
Litvin wrote:
What might this new exam be like? CS with no programming and no math?
We'll see. My guess is, if it eventually comes about, it will be a no-specific-programming-language exam, which will simply replace the current AP CS exam in Java. I believe two AP CS exams will be untenable.
I can't imagine teaching or testing CS without an actual language. A much better alternative would be to have the same test in multiple languages (perhaps with a "handicap" factor for the students choosing Python, so they don't have an embarrassing advantage :>). If you find a problem that is not easily translated to another language, that is a clue that the problem is about cruft, not fundamentals. I would volunteer to do the Java to Python translations.
-- Dave
************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ *
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- Andrew N. Harrington Director of Academic Programs Computer Science Department Loyola University Chicago 512B Lewis Towers (office) Snail mail to Lewis Towers 416 820 North Michigan Avenue Chicago, Illinois 60611 http://www.cs.luc.edu/~anh Phone: 312-915-7982 Fax: 312-915-7998 gpd@cs.luc.edu for graduate administration upd@cs.luc.edu for undergrad administration aharrin@luc.edu as professor
At 09:36 AM 1/25/2010, David MacQuigg wrote:
I can't imagine teaching or testing CS without an actual language. A much better alternative would be to have the same test in multiple languages (perhaps with a "handicap" factor for the students choosing Python, so they don't have an embarrassing advantage :>).
Sure, for teaching you can use a particular language (or two). Testing is another matter. Currently AP free-response questions are not just "program this" or "program that" -- they are stated in a particular language, e.g., here is a class, implement this particular method. They also have a "case study," now in Java, and ask questions about it, e.g., to write a new method or to implement a new derived class. The questions never ask students to write a complete program. Then ETS brings together 80 or so teachers and college profs for a week each June to grade AP CS free-response questions. These readers would have to be polyglots. They use an elaborate rubric to grade a question, with partial credit given for every little bit remotely related to the right answer. Supporting multiple languages would cost the College Board and ETS a lot of money, and this is a relatively small exam (about 20,000 students). There are many programming competitions, of course, where they care only about the program's correct result, such as ACSL -- http://www.acsl.org/. That's where Python programmers have a great advantage. Unfortunately, few contestants use it now, because it is not widely taught in schools yet. Does a contest specifically for Python programmers exist? Is it feasible? Gary Litvin www.skylit.com
Gary, Interesting site, ACSL. Curious, there is no mention of specific languages or freedom of language the I find quickly on their site. The only hint is the list of languages given where solutions are given, Is that the actual list of restrictions? On Mon, Jan 25, 2010 at 9:22 AM, Litvin <litvin@skylit.com> wrote:
At 09:36 AM 1/25/2010, David MacQuigg wrote:
I can't imagine teaching or testing CS without an actual language. A much better alternative would be to have the same test in multiple languages (perhaps with a "handicap" factor for the students choosing Python, so they don't have an embarrassing advantage :>).
Sure, for teaching you can use a particular language (or two). Testing is another matter. Currently AP free-response questions are not just "program this" or "program that" -- they are stated in a particular language, e.g., here is a class, implement this particular method. They also have a "case study," now in Java, and ask questions about it, e.g., to write a new method or to implement a new derived class. The questions never ask students to write a complete program. Then ETS brings together 80 or so teachers and college profs for a week each June to grade AP CS free-response questions. These readers would have to be polyglots. They use an elaborate rubric to grade a question, with partial credit given for every little bit remotely related to the right answer. Supporting multiple languages would cost the College Board and ETS a lot of money, and this is a relatively small exam (about 20,000 students).
There are many programming competitions, of course, where they care only about the program's correct result, such as ACSL -- http://www.acsl.org/. That's where Python programmers have a great advantage. Unfortunately, few contestants use it now, because it is not widely taught in schools yet. Does a contest specifically for Python programmers exist? Is it feasible?
Gary Litvin www.skylit.com
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- Andrew N. Harrington Director of Academic Programs Computer Science Department Loyola University Chicago 512B Lewis Towers (office) Snail mail to Lewis Towers 416 820 North Michigan Avenue Chicago, Illinois 60611 http://www.cs.luc.edu/~anh Phone: 312-915-7982 Fax: 312-915-7998 gpd@cs.luc.edu for graduate administration upd@cs.luc.edu for undergrad administration aharrin@luc.edu as professor
Litvin wrote:
At 09:36 AM 1/25/2010, David MacQuigg wrote:
I can't imagine teaching or testing CS without an actual language. A much better alternative would be to have the same test in multiple languages (perhaps with a "handicap" factor for the students choosing Python, so they don't have an embarrassing advantage :>).
Sure, for teaching you can use a particular language (or two). Testing is another matter. Currently AP free-response questions are not just "program this" or "program that" -- they are stated in a particular language, e.g., here is a class, implement this particular method. They also have a "case study," now in Java, and ask questions about it, e.g., to write a new method or to implement a new derived class. The questions never ask students to write a complete program. Then ETS brings together 80 or so teachers and college profs for a week each June to grade AP CS free-response questions. These readers would have to be polyglots. They use an elaborate rubric to grade a question, with partial credit given for every little bit remotely related to the right answer. Supporting multiple languages would cost the College Board and ETS a lot of money, and this is a relatively small exam (about 20,000 students).
Is there anything in the current AP test that can't be translated to Python? I don't mean a word-for-word translation, but rather, re-state the same fundamental problem in Python. As for grading the free-response questions, if 20% of the tests are done in Python, surely ETS can hire 20% of the graders in that category. In fact, I think it would be *easier* to hire the Python graders, since a larger percentage of Python teachers will be "enthusiasts", not just doing it for the money. Nobody is expected to be a polyglot. In fact, I would require they state a preference to minimize the bias for or against any language. Each grader should grade tests only in his/her preferred language. Comparing the raw scores might lead to a real awakening. Bruce Eckel (Thinking in Java) says he is five times more productive in Python than in Java. I hesitate to use that number, because people will think I am crazy. I am comfortable saying a factor of two, however. -- Dave
At 11:39 AM 1/25/2010, David MacQuigg wrote:
Is there anything in the current AP test that can't be translated to Python?
Of course not. But 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. 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.
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.
Bruce Eckel (Thinking in Java) says he is five times more productive in Python than in Java. I hesitate to use that number, because people will think I am crazy. I am comfortable saying a factor of two, however.
Me too -- by a factor of two. At least. So what? First language discussions flare up regularly on the ap-compsci listserve. In this forum, Python would win, of course. :) I am all for Python, but I don't believe in the "objects first" approach. The College Board's CS Development Committee seems to be gradually moving away from heavy duty OOP back to algorithms. Gary Litvin www.skylit.com
On Mon, Jan 25, 2010 at 9:32 AM, Litvin <litvin@skylit.com> wrote:
Me too -- by a factor of two. At least. So what? First language discussions flare up regularly on the ap-compsci listserve. In this forum, Python would win, of course. :) I am all for Python, but I don't believe in the "objects first" approach. The College Board's CS Development Committee seems to be gradually moving away from heavy duty OOP back to algorithms.
Gary Litvin www.skylit.com
"Heavy duty OOP" sounds somewhat extraneous to Algebra 2, I agree. However, if you show the 2 + 2 is adding two objects (2 .__add__(2) the same thing), is that "objects first"? Teacher projecting:
dir (2) # saying: "2 has internals, is an object with methods"
So many gradations. Ideally, we start earlier with the computers and then have more than just the one high school math course in which to develop this thinking. MFTDA looks like a compressed version of what we could easily spread out across a wider time span. Could be a whole series, more like Saxon. Kirby
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
On Mon, Jan 25, 2010 at 11:50 PM, David MacQuigg <macquigg@ece.arizona.edu>wrote:
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?
The goal of the whole standardized testing movement is to compare people from different educational backgrounds on the basis of some universal standards. The way this fascinating and potentially creative problem is currently approached mathematically is to create not just universal STANDARDS for the content, but universal CONTENT. This makes it easy to show that the comparison formulas and norms work. For example, in this thread people said Python is two to five times more effective for them than Java. Well, the ancient test-norming math won't have any of that, and to the best of my knowledge, people have not done any concerted theoretical development in that area for the last fifty years at the very least. Why work on that complex task, when the same content for everybody can be mandated through test monopolies, trivializing the norming problem? Standardized tests as we know them aren't suited for any pluralism within one area, by their very design. Multisubculturalism has happened too recently to be taking seriously, I guess. At the other end of the spectrum, we have extremely open-ended interviews a-la, "Why are manholes round?" http://en.wikipedia.org/wiki/Manhole_cover#Circular_shape What we seem to want is something in-between. I hope my note shows some of the conceptual and administrative challenges involved in this, much-needed, change. Cheers, Maria Droujkova http://www.naturalmath.com Make math your own, to make your own math.
At 11:50 PM 1/25/2010, David MacQuigg wrote:
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?
Dave, The College Board is a huge bureaucracy and operates as such. I am not associated with them in any way but I do follow closely what they do in CS. My intention was not to defend their policies or procedures, but simply to state some facts of life. My wife (and co-author) is a College Board "consultant" for New England, which means she conducts workshops and summer institutes for teachers -- she's taught hundreds of teachers. She has been grading AP exams for 13 years, and was on the College Board's "ad hoc committee for teacher professional development in Java." The fact that such a committee was set up speaks for itself. High school CS teachers -- and I've met many of them, personally and via email -- are not professional programmers. They don't spend their days studying new languages or programming tools. Some have experience working in the industry; most have no CS degree and are self-trained. Many also teach math. Some take a week-long summer course and that's their whole preparation from scratch for teaching an AP CS class in September. It is not easy for an average teacher to quickly learn a new programming language or methodology. The following quote from today's ap-compsci listserv gives a little history: The first APCS exam was in 1984; Pascal was the language used. In 1999 the language was switched to C++; in 2004, the language was switched to Java. My impression is that AP doesn't contemplate language switches lightly; as you can see, Pascal was the language of use for fifteen years. The process to switch over from Pascal to C++ took a full five years, when you look at the development of the exam, instructional materials and training for teachers, case study, and so on. In one of those weird little quirks of history, Java blossomed onto the scene in the middle of that transition ... my sense from what I've heard is that APCS would've moved straight to Java if it could have, but the move to C++ was underway too far to attempt to redirect that change. Gratefully, the transition from C++ to Java wasn't nearly as difficult, with both languages being object-oriented and sharing common syntax. Jim Huggins, Kettering University, Flint MI Gary Litvin www.skylit.com
On Sun, Jan 24, 2010 at 6:40 PM, Litvin <litvin@skylit.com> wrote:
What might this new exam be like? CS with no programming and no math? We'll see. My guess is, if it eventually comes about, it will be a no-specific-programming-language exam, which will simply replace the current AP CS exam in Java. I believe two AP CS exams will be untenable.
Gary Litvin www.skylit.com
In the interim, I think we should use the breathing room. Here's an opportunity for a local community to synthesize a new mix, without getting into lockstep.
Innovation, not conformity, is what we're needing right now. Let's imagine a math class, one that satisfies a year requirement, that is not AP anything. Think of Trig or Statistics, or even Algebra 2. I like that MFTDA starts right off the bat with the traditional Algebra topic of functions as mappings, goes over the concepts of domain, range, co-domain, inverse function, many to one. Clearly this is mathematics. But then, because of our commitment to teaching "how things work", we don't stay in the clouds. We start answering the question "what's this good for?" right away. We talk about reverse lookup phone books, mapping human languages with Unicode, storing and retrieving data in tables (one-to-many, many-to-one, many-to-many). We make our topic real, concrete, applicable. We write little functions in Python, we talk about Python dictionaries as mappings. If only our everyday Algebra course were a lot more like this one... that's what we're after in many cases: a more fulfulling way to approach a lot of the same topics we already cover, but in ways that haven't been updated in decades. Kirby
participants (5)
-
Andrew Harrington
-
David MacQuigg
-
kirby urner
-
Litvin
-
Maria Droujkova