Why AP CS:Principles is a good thing: Responding to Gas Station without Pumps
June 28, 2013 at 1:57 am 23 comments
Kevin Karplus recently wrote a post (on his highly-recommended Gas Station without Pumps blog) about why funding the new AP CS:Principles (AP CS:P) is such a bad idea, mentioning my positive comments on the news. I actually agree with many of the Gas Station points, but I have a more optimistic take on them.
CS:P was never meant to give credit towards a computing degree. The attestation effort showed that many schools do offer some kind of course like what’s in CS:P. It’s true at UCSC, too:
My own campus has several intro programming courses, some at the level of the AP CSP course. I suspect that our campus would offer credit in these low-level courses for the AP CSP exam. These lowest-level courses do not count towards any major, though—they provide elective credit for what should be high-school level courses. The intent (as is apparently the intent for AP CSP) is to provide an extremely low barrier to entry into the field.
That’s really the main point. We need more CS education in high schools. When there’s only 1 AP CS teacher for every 12 high schools, there is very little computer science education out there. AP courses is a big lever to get low barrier courses out there.
Gas Station then points out that courses like these may not actually have much of an impact downstream.
I don’t know how well the low barrier to entry works, though. I’ve not seen much evidence on our campus that the lowest level courses produce many students who continue to take higher level CS courses…We still have appallingly low numbers of women finishing in CS (and the new game-design major within CS is even more heavily male), so I can’t say that the lower-level intro courses have done much to address the gender imbalance.
That’s a fair point. We don’t know that it will work to get more students into computing. I just did a Blog@CACM post that suggests that the evidence we have is promising in terms of impact on careers, especially for under-represented minorities. You can’t really use a single campus to test the idea though. The game is at the level of thousands of high schools where there is no computer science at all.
I share the Gas Station concern over the professional development challenge.
The success of CSP also depends on thousands of high schools suddenly deciding to teach the course and getting training for their teachers to do this. I (along with many others) have grave doubts that the schools have the desire or the ability to do this. It is true that the CSP course should be a bit easier to train people for than the current AP CS A course (if only because Java syntax, the core of CS A, is so deadly dull).
The question that we need answered is: how important the “Advanced Placement” lever is? Is it so important (big payoff) that having a more accessible AP course in CS (thus, lower cost to adopt) changes the balance for schools? I just had an all-day meeting with folks from the Georgia Department of Education two weeks ago, and they are building AP CS:P into their curriculum plans because it’s now AP. That designator matters. Does it matter enough to draw more teachers into professional development, to get more schools to hire CS teachers? I’m optimistic, but I share the Gas Station concern.
We should also be clear that there really isn’t a single “CS:Principles” course yet. There have been several pilots, and some assessment questions tested, but there is no well-defined curriculum yet and no exemplar test. I have exactly the same question as Gas Station:
The new CSP exam is not supposed to be so language-dependent, which may allow for better pedagogy. Of course, I’m curious how the exam will be written to be language-independent, and whether it will be able to make any meaningful measurements of what the students have learned.
The plan is to use a portfolio approach, like what’s being used in art AP exams now. I really don’t know if it’ll work. I trust that the people working on it, but do see it as an unsolved problem.
I don’t share the Gas Station concern about “Gresham’s Law for pedagogy” (which I’d not heard of previously):
I suspect that the easier AP CSP will replace AP CS A at many high schools, and that CS A will disappear the way that CS AB did in May 2009 (Gresham’s Law for pedagogy: easier courses drive out harder ones). Whether this is a good or bad outcome depends on how good the AP CSP course turns out to be.
The fact that there already are CS:P-like courses on many campuses, co-existing with CS1’s (intro CS for majors) is evidence that easier courses don’t always drive out harder ones. On our campus, we offer three CS1’s. The MediaComp course would probably be easier for Engineering students than the challenging MATLAB-based on that they currently require, but the Engineering faculty have not been eager to swap it out. The existence of “Physics for Poets” and Calculus aimed at different kinds of students is more evidence that Gresham’s Law doesn’t always hold for classes.
There are lots of challenges to CS:P. AP CS Level A is doing better these days, and I’m glad for that. I want both to succeed. I want a lot of CS in lots high schools. Will the new AP CS:P lead to more CS majors and more people in computing careers? I don’t know — I think so, but I’m not really worried about it. I believe in “computing for everyone” and that lots of people (even non-IT professionals) need to know more about computer science, so having more access to computing education in more schools is a positive end-goal for me.
Entry filed under: Uncategorized. Tags: APCS, BPC, CS:Principles, jobs, NCWIT.
1.
Sidhee | June 28, 2013 at 2:15 am
Nice informative blog..
2.
alanone1 | June 28, 2013 at 2:25 am
As Bert Dreyfus once asked: “Can a monkey reach the moon by climbing up the branches of a tree?” He also was doing a dig at computing, especially AI, which liked to use trees to compute with, especially in games.
This quote seems apt here also, in that there is so much concern with increments to current structures that the forest may be lost to the “trees”, and computing may be lost to ancillary concerns, such as popularity, retention, existing programing languages, old ways of thinking about computing and programming, gender balance, and other worthy and semi-worthy causes, but which have little to do with the art (and some science) of computing as it needs to be learned in the 21st century.
The real question about how to get started in a serious discipline (let’s pretend that computing could possibly be one at some point) is not just what works for learners early on, but what can be found to work that actually does not have to be unlearned later on when the next levels of knowledge and skills are to be learned.
So e.g. putting frets on a violin is known to be a bad idea, even though it helps getting started.
What bothers me about most of the major attempts I’ve seen to “work with what is” is that there is very little in the notions and introductory material that resembles what really needs to be learned when “learning computing”.
Just to pick one topic that is underrepresented or absent, how about scaling in both hardware and software? How about kindred topics like systems design? 10 year olds in Etoys do more real parallel programming than most college students, let alone high school students!
These are “getting to the moon” topics, that are not touched in useful ways via “climbing trees” i.e. simple 50s approaches of simple algorithms with simple data structures that are the part and parcel of most introductory content.
These sentiments are not new and they are not original, but they are definitely a minority opinion I think.
Cheers,
Alan
3.
Garth | June 28, 2013 at 9:58 pm
We do not offer any AP CS courses for a couple of reasons. One big reason is I would be the teacher and my CS education is pretty abysmal. The second and very relevant reason is the AP label scares away a lot of the kids I want to teach CS to, the mainstream kids. The first reason can be fixed with time, the second not so much. AP classes have a bit of an elitist reputation, only top students need apply. In a small school this sort of kills student numbers and therefore kills the course. I do not like these reasons but they are both factors I have to take into account when considering what CS courses we are going to offer. Since I am the sole decision maker in my school as to what CS we offer I need to be careful about my personal bias towards AP CS. I have seen AP CS:A in action and I did not like the material or the approach. I have to get a better look at the AP CS:P curriculum. AP CS:A would never fit our numbers or my philosophy but AP CS:P is starting to look like something to consider. We offer AP Physics, AP English, AP Chemistry and an AP equivalent Calculus. I really would like to add an AP CS to that list if feasible. It is blogs like these, with pros and cons towards AP CS:P that keeps me thinking.
4.
Mark Guzdial | June 29, 2013 at 10:40 am
My hope is that the real benefit of AP CS:P is not at a school like yours, Garth. You’re already there. Your school has a CS teacher. I’m hoping that schools go through a thought process like this: “It would be nice to offer some CS, and an AP is a real attraction. AP CS Level A seems too hard. AP CS:P seems approachable. If we hire a teacher to teach AP CS:P, we can offer some other, more approachable CS classes too, like maybe this Exploring CS I’m hearing about.” Thus, AP CS:P is the carrot to get more schools to hire more CS teachers. Create more demand, and there’s more incentive for teachers to become CS teachers.
5.
Garth | June 29, 2013 at 9:57 pm
“If we hire a teacher to teach AP CS:P” I think is the big bump in the road. I have a feeling there is an extreme shortage of those.
6.
Mark Guzdial | June 30, 2013 at 10:35 am
There is a shortage of teachers, but not because of a lack of capacity. Most CS teacher professional development slots go empty. Kennesaw State University just shut down their CS Education certificate program due to lack of students. We have to create demand for teachers, in order to get more teachers.
7.
Liza Loop | June 30, 2013 at 2:14 pm
Wouldn’t this be a good place to use two important teaching innovations? 1) Online programming courses and 2) Teacher as “guide on the side” rather than “sage on the stage”. High schools that lack CS teachers at the moment could use an online course and a staff member who is also learning the material. Since a major feature of good programmers is that they remain good learners of new languages and that they collaborate with fellow practitioners, such a learning environment would promote these qualities with the “teacher” mentoring the process rather than being the source for the didactic material.
8.
Bri Morrison | June 29, 2013 at 10:17 am
In my experience, the AP lever is a very important one, especially for those “middle” students at a good high school. Being that college admissions look for students to take as rigorous a schedule as possible, and many of these middle performing students can’t take the AP math or science courses, they are left with English, Psych, and fine arts. APCSP can help to fill that void as well. If presented to high schools and students as an “introduction” to everyday computing (as opposed to an intro to a computing degree) it may draw a very different audience than the original APCSA. In addition, it could easily be taken earlier than the senior year of high school which is also an advantage.
9.
Liza Loop | June 29, 2013 at 5:57 pm
This is a repeat of the reply I put on Gas Stations without Pumps…
This is a valuable debate and one that has gone on for the past 30 or so years. Perhaps some clarification of terms would be helpful. First let’s differentiate between “computer science”, “use of computer applications” and “computer literacy” (I know, purists hate this term).
I think “Computer Science” should be reserved for those courses and activities that lead to a programming or systems analysis career. Today, computers are used in almost every profession so a basic understanding of many applications, including the construction of scripts or macros at the scratch level, should be part of every college-bound student’s education. This does not make such courses “computer science”. This is “applications” training. It should be as universal as reading, writing and arithmetic.
In addition to our jobs and careers, computers impact our lives through our social activities, recreation and civic engagement. We need to understand enough about computers, how they work and how they are programmed, to form rational opinions on matters of public policy. This is the domain of computer literacy, not computer science.
It is the lumping of these three curricula under a single heading that creates confusion about how rigorous the courses should be and who should have access.
I look forward to reading your reactions to this opinion.
Cheers,
Liza
10.
Mark Guzdial | June 30, 2013 at 10:39 am
I disagree, Liza. The data that we have on jobs suggests that the number of people who program but are not professional software developers greatly outnumbers the number of professional software developers. Computer science is now a foundational skill. In my research group, we have documented how inefficient professionals are when they’re teaching themselves to program when they discover that they need it — they don’t even know that that thing called “computer science” is useful to them! Rather, there may be a large cost to not teaching computer science in every high school.
11. Build it and they will come | Garth's CS Education Blog | June 29, 2013 at 8:07 pm
[…] comments on AP CS:Principles. I have to agree with everything he says. I also read with interest Mark Guzdial’s response. There is so much to think about when considering the pros and cons of AP CS, be it A or […]
12.
rebecca dovi | June 30, 2013 at 8:09 am
It is amazing to me the burden we put on hs cs classes. There is no expectation that AP Psychology leads to a kid majoring in a subject, it is enough that it rounds out a student’s hs experience with a rigorous course.
Having piloted the course for two years now I have learned a few things. My weaker kids did much better in the existing PACE for example.
But more to the point there is demand for it. My enrollment has jumped from 16 kids to 60. And yes, many if them will not major in cs, but whatever their chosen path they are better prepared for having studied cs. Computers are the tools we use to get work done …every student needs an opportunity to learn about it.
EVERY student, not just the lucky ones that go to a school like mine…one of the 10% ( if we estimate generously) that offer it at all, should have the choice to take the class.
13.
gasstationwithoutpumps | June 30, 2013 at 8:35 pm
Lisa Loop suggested online courses with teachers learning alongside their students “such a learning environment would promote these qualities with the “teacher” mentoring the process rather than being the source for the didactic material.”
Desperation may force some schools to try that, but I doubt that many high school teachers would sign up to teach something they had not yet learned themselves. Furthermore, a big chunk of the job of a programming teacher is teaching kids how to think about debugging. Simply modeling an example or two online is not very useful—the students can’t then generalize to finding their own, different bugs. If the teacher can’t debug either, the “guide on the side” is more like “the blind leading the blind”.
A teacher for a beginning programming course need not be an expert programmer, but they have to be good at helping students debug.
14.
Mark Guzdial | July 1, 2013 at 9:55 am
I agree. The evidence that we have on the impact of teachers on student learning suggests that teachers have to know the content that they’re teaching. I have written a piece for ACM’s Ubiquity magazine on how online courses are unlikely to help us to improve diversity in computer science.
The critical challenge is defining what content a teacher needs to know. A teacher will never be a professional software developer. The goal is to teach the fundamental concepts of computing, which doesn’t include make or Eclipse or anything distinguishes Python 3.0 from Python 2.7. It is not an objective for high school teachers or students to have the “features of good programmers.” They won’t be programmers — they’ll be students of computer science. Defining an appropriate fundamental CS vs professional CS will be key to defining a CS that can be learned by teachers and taught in schools.
15.
gasstationwithoutpumps | July 1, 2013 at 12:18 pm
I agree that figuring out what content an intro CS teacher needs to know is important, both in depth and in breadth. If we set the bar too high, there will be no CS teachers in public schools (essentially the current situation). If we set the bar too low, no CS will be taught and we’ll have to undo the damage once the students get to college.
CS as a field is still struggling with how to teach beginners (it is pretty clear that some students learn, but it is not clear to me how much this correlates with what teachers do—but that’s your area of expertise, not mine).
Defining the core competencies that a beginning instructor of beginning students needs seems to me quite difficult. I suppose it starts with deciding what the students need to learn, then figuring out what the teacher needs to be able to do to get them there. I further suppose that this is the intent of the CS Principles course—figuring out the minimal set of essential skills we want out of a first course.
16.
Garth | July 1, 2013 at 2:05 pm
I would really like to see some conversation addressing this issue. What should a CS teacher know? In most schools the CS teacher will also be teaching something else; Math, Science, Art or whatever so the requirements have to be realistic. I think CS Ed would almost have to be a minor, there are just not enough jobs out there yet for a teacher with only a CS Ed major.
17.
How can we get more programming taught in high schools? | Gas station without pumps | July 1, 2013 at 10:32 pm
[…] the comments on Mark Guzdial’s post Why AP CS:Principles is a good thing: Responding to Gas Station without Pumps (which is a response to my post Millions for a fairly useless new test), an interesting question […]
18.
Geeky Mom/Laura | July 2, 2013 at 1:12 pm
You know how they have executive MBA programs, where you attend on the weekends for maybe a year? Couldn’t we do that for CS? An executive programming course? And couldn’t we run a grant program to help teachers pay for such programs? Or maybe we could set up a mentoring program for CS teachers where they’re paired with a programmer or CS professor for a semester or a year. I haven’t really seen anything like that (TEALS comes close to the second option). I’ve seen a lot of one-off workshops in the summer–usually just a couple of hours but as much as a day or two. And I’ve seen tons of programs aimed at kids, but very little that helps teachers, financially and otherwise, get the skills they need.
19.
Mark Guzdial | July 2, 2013 at 1:43 pm
The NSF CS10K program has many of these programs running now, where teachers get paid to attend summer classroom sessions and participate in an on-line forum. There are two credential-granting programs here in Georgia. The problem is that teachers aren’t signing up for them. There used to be 3 in Georgia, and one shut down due to lack of interest. There are programs. We just don’t have enough interest from teachers.
20.
gasstationwithoutpumps | July 2, 2013 at 4:52 pm
I think that the incentives are not aligned properly. The workshops should be aimed at improving the teaching in their current field (math or physics), rather than preparing them for non-existent CS teaching positions.
21.
Garth | July 2, 2013 at 6:06 pm
There is just no incentive for a teacher to enter these programs. It does not really improve marketability yet, and the cost is usually out of the teacher’s own pocket. I would love to attend courses like this but if it requires time and money from my summer then it just is not going to happen. Even the programs that are paid for (not in my neck of the woods) end up costing in lodging and food if nothing else. Until there is a demand that really increases job opportunities CS Ed is going to be a no-go.
22.
Mark Guzdial | July 3, 2013 at 9:58 am
I am complete agreement that computing should really be taught within teachers’ disciplines, such as math or physics. Computing is a literacy. We write and do mathematics in science. We should also do computing in science.
Current constraints make that hard to get to.
It’s a big, complicated, and not always rational system.
23.
In defense of programming for physics and math teachers | Gas station without pumps | July 3, 2013 at 12:14 pm
[…] response to a comment I made on his blog, Mark Guzdial […]