Innovative College-Level AP® Course Created to Increase Interest in Computing Degrees and Careers, Particularly Among Female and Minority Students

To help ensure that more high school students are prepared to pursue postsecondary education in computer science, the National Science Foundation (NSF) is making a four-year, $5.2 million grant to the College Board’s Advanced Placement Program® (AP®) to fund the creation of AP Computer Science Principles (AP CSP).

…

The college-level AP CSP course will be introduced into thousands of high schools nationwide in fall 2016, with the first AP CSP Exam set to be administered in May 2017. Unlike computer science courses that focus on programming, AP CSP has been designed to help students explore the creative aspects of computing while also providing a solid academic foundation for understanding the intellectual concepts and practical contributions of computing. AP CSP includes a curriculum framework designed to promote learning with understanding, a digital portfolio to promote student participation throughout the year, and a course and assessment that is independent of programming language.

…

Successful implementation of the AP CSP course will hinge on the ability to recruit and train qualified teachers with computer science backgrounds to teach the course. Through its CS 10K Project (10,000 computer science teachers in 10,000 high schools by 2016), NSF has been laying the foundation for an unprecedented, national effort to prepare educators to teach this new material using hands-on, inclusive curricula.

…

The college-level AP CSP course will be introduced into thousands of high schools nationwide in fall 2016, with the first AP CSP Exam set to be administered in May 2017. Unlike computer science courses that focus on programming, AP CSP has been designed to help students explore the creative aspects of computing while also providing a solid academic foundation for understanding the intellectual concepts and practical contributions of computing. AP CSP includes a curriculum framework designed to promote learning with understanding, a digital portfolio to promote student participation throughout the year, and a course and assessment that is independent of programming language.

I know that Mark Guzdial is fond of the Computer Science Principles (CSP) course that has been prototyped for a few years now at colleges, but I’m not convinced that it represents college-level course work (the supposed intent of AP courses and exams). I don’t know much more about the course than when I blogged about it in 2011, so my opinions in this article may reflect my own lack of knowledge about the course more than anything else.

I’m not saying that CSP is a bad course, or even that it is a bad introduction to computer science, but it seems to me to be at best high-school level. I know that many colleges disagree—the press release says

In a recent survey of 103 of the nation’s top colleges and universities, 87 percent confirmed that AP CSP requires the same content knowledge and skills as the related introductory college course, and 86 percent indicated a willingness to award college credit for qualifying scores on future AP CSP Exams.

There are also colleges that teach high school algebra and precalculus, but we don’t offer AP exams in them.

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.

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. Of course, I’ve not tried to get reports on that from the campus academic planning office, as I have enough to do without meddling in the affairs of other departments. 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.

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).

Even if, by some miracle, the NSF manages to train 10,000 teachers to program well enough to teach programming, the result is likely to be underwhelming. I suspect that many will leave teaching—many of the math teacher bloggers I’ve followed who learned to program have moved out of teaching into being full-time programmers. The result of the 10K project may not be a huge increase in high school CS teachers, but a loss of some of the better math teachers and the production of a core of under-trained programmers.

The justification for the new AP CSP course is that it will drive many more students in computing fields. The College Board continues to confuse correlation with causation:

Research shows that students who took college-level AP math or science exams during high school were more likely than non-AP students to earn degrees in physical science, engineering and life science disciplines — the fields leading to careers essential for the nation’s future prosperity.

Students wanting to do STEM fields in college often chose that path in high school, and took as many STEM courses as they could in order to get into good colleges. Quite likely, wanting to do STEM in college caused them to take AP exams, not the other way around.

I’m not defending the current AP CS exam—from what I’ve heard about the AP CS A course and exam, it is mainly about Java syntax. Personally, I think that Java is a poor pedagogical choice for a first programming language (I still favor the sequence Scratch, Python, C, Java), and using it as the language for the AP CS exam forces high schools into poor pedagogy. 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. I’ve never been convinced that exams do an adequate job of measuring programming skills, and I’m not sure what the new exam will measure since the new course is “unlike computer science courses that focus on programming”.

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.

Overall, I’m simply not convinced that the College Board needs federal funding of $5.2 million to develop a new exam. They are going to make enough money off the new exam that they should be able to fund it without subsidies.

Share:

Like this:

Related

I like your thoughts here. We do not offer AP CS because it does target kids considering a CS degree and does nothing to entice kids that just want to learn some programming. I am hoping AP CSP will offer broad enough options that non-CS kids would consider it as a viable elective. My feeling toward high school CS is I would like to teach a lot of kids a little as opposed to teaching a very few kids a lot. I believe one of the major issues with the shortage of CS degrees is so few HS kids are exposed to CS that they really have no idea what it is all about. Maybe AP CSP will broaden the interest. AP CSP still is not going to open CS to schools that do not have a present CS program. It is not going to offer the training a rookie teacher needs to become an effective CS teacher. The schools that adopt AP CSP probably are those schools that already offer AP CS. That is like preaching to the choir. Something is needed to entice those schools that offer no CS to get CS of some kind into their curriculum. That would perhaps be a better way to spend $5.2 million.

Interesting. Our local high school is adding an “Exploring Computer Science” class as introductory course to try to broaden the demographics of kids moving on the AP CS. Talking to the teacher previously, I know that he wanted to find a way to get low income and Hispanic kids into AP CS, so this is a course he designed and proposed. Looks like they will be using Scratch, Dreamweaver, and an Android app development tool.

Their course development costs are $1600, though that doesn’t include the teacher’s salary. (They have incoming funds for materials and software because the computer science club won a national hacking contest.) This will probably just move the existing AP CS teacher from being part time to closer to full-time.

I suppose they will feel pressured to modify this course to align with this new AP course in 2016, but I can’t really see this or anything similar being worth a weighted grade in the high school GPA, which AP courses are. In a public school, the weighted grade can be more of a motivation for a class than possible college credit.

Good point about the bonus grade on the GPA. In California, I believe that both “Honors” and “AP” courses get a one grade-point bonus. With grade inflation driving average GPAs up to 3.0 on a 4-point scale and UC Berkeley having an average entering GPA of 3.84, students need the bonus points to appear college-ready.

You write: “I don’t know much more about the course than when I blogged about it in 2011, so my opinions in this article may reflect my own lack of knowledge about the course more than anything else.”

Well yes, your opinions absolutely do reflect your lack of knowledge since much has changed since 2011. You could read the papers written about CS Principles, you could read the performance-based assessment tasks, you could read the learning objectives and the curriculum framework. All these are new since 2011, all accessible via csprinciples.org. New materials will be posted by August as well.

You then write, “Even if, by some miracle, the NSF manages to train 10,000 teachers to program well enough to teach programming, the result is likely to be underwhelming.”

The CS Principles course is not a programming course. It’s not designed to only teach kids to program, but to use programming as part of solving problems and exploring other areas of computing and how computer science is changing society, science, business, and more. In my view it’s likely to be more difficult getting teachers up-to-speed with getting kids to do research, to analyze data, and to be knowledgeable in areas of computer science other than programming than it will be to get up-to-speed on programming.

You later write, ‘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. I’ve never been convinced that exams do an adequate job of measuring programming skills, and I’m not sure what the new exam will measure since the new course is “unlike computer science courses that focus on programming.”‘

Please take a look at the performance-based tasks that are planned for AP CSP, they’re a very different way of assessing student work, more similar to a portfolio than to a 3-hour, high-stakes exam [the AP CSP will have multiple choice questions as well in the current plan]

As it develops, you also offer opinions about APCS A without actually looking at the course, e.g., you write “I’m not defending the current AP CS exam—from what I’ve heard about the AP CS A course and exam, it is mainly about Java syntax.” — I’d say that’s very far from the truth, the exam does use Java, but it’s absolutely not about Java syntax. If it was, students wouldn’t get credit for the course since college courses are not about Java syntax, they’re about solving problems via programming. Many colleges award credit for the AP course even if the first course taught uses another language — we do that at Duke and our first course uses Python. There’s lots to question about the APCS A course and exam, but it’s not a course on Java syntax.

Now my concerns about the AP CS Principles are entirely different, as the assessments require group work: “You must work in a group of two on the collaborative part of this task.” So the new AP CS principles “exam” will be unavailable to anyone working alone, as many home schoolers must. Working together may be an appropriate pedagogical technique (though I have some doubts about how it is usually implemented in grade schools and high schools), but it is not an appropriate requirement for an AP exam.

My son was the only student in our county to take the AP Physics C E&M exam this year (and possibly the only one to take the Physics C Mechanics last year). Had there been a requirement for group work in physics (as the new CS Principles assessment requires), he would not have been able to take the exam. Lab work in physics has as much justification for group work as computer science does—indeed he and I did a lot of the physics labs together and worked on physics problems together whenever one of us got stuck or we came up with different answers. But he did the physics exam by himself, not being assisted or hurt by a partner of different ability.

While I previously saw the CS Principles course as a harmless course, not college level, but potentially useful for getting more kids started in CS, I now see the proposed assessment as being decidedly wrong-headed and impossible to administer fairly on a high-stakes exam.

As for AP CS A being a Java syntax course—that was a bit of hyperbole. There are other things taught in CS A, of course, but the complexity of Java syntax demands so much time that the course covers much less of the more fundamental programming topics than it could or should.

Past experience shows that students will be able to study computer science at SL successfully with no background in, or previous knowledge of, computer science. Their approach to study, characterized by specific IB learner profile attributes—inquirers, thinkers and communicators—will be significant here. Students who have undertaken the IB Middle Years Programme (MYP) or studied a similar course prior to commencing the IB Diploma Programme would also be well prepared.

The study of computer science at HL demands a higher level of problem-solving skills and the ability to understand and manipulate abstract concepts. Although no previous knowledge of computer science is required, some exposure to programming is desirable.

The objectives of the program sound more like the AP CS Principles course than like the AP CS A course. The IP CS SL assessment does include a group project as part of the internal assessment, but it is only 1/4 of the internal assessment, which is 30% of the total assessment, so 7.5% of the total assessment. The group project for the HL assessment is 1/4 of 20% of the assessment, or 5%. These seem to me reasonable levels of group assessment, particularly as they are restricted to the internal part of the assessment, not the exams and papers of the external assessment.

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 agree that there are several distinctions to be made, but I’m not sure that I agree with the exact boundaries you drew.

1) There is using computers (“computer literacy”). This generally has nothing to do with computer science and should not be taught by computer scientists. These are generally elementary school or high school subjects (like typing used to be). There are some specialized forms (like GIS) that are appropriate for college, but are still not computer science.

2) There is computer programming. This includes both low-level courses using scripting or Scratch and high-level courses like software engineering. These train students in fundamental skills both for jobs and for further work in computer science. They are appropriately taught by computer science faculty, but some of the lower-level courses can and should be taught in middle schools and high schools. I would argue that programming is a part of computer science, even beginning programming in languages like Scratch.

3) There is computer science, which requires programming as an essential skill, but includes a lot of theoretical and practical learning beyond programming (formal language theory, analysis of algorithms, machine learning, statistics for design of computational experiments, …).

4) There is “science and society” which talks about the impact of technology (including computers) on people. It is generally not best taught by computer scientists, and really has very little contact with computer science. Computer science students should learn some about the field, and should think of the predictable consequences of design choices they make, but it is not at the heart of the field.

5) There is computer engineering, which includes the practical parts of computer science and the practical parts of electrical engineering. This is a field dedicated to making digital systems that work. It requires most of the practical courses in CS but only a few of the theoretical ones (beginning intro to analysis of algorithms), and it requires most of the digital courses in EE, but only a few of the analog ones (just enough to understand high-speed digital design).