The official course description for AP Computer Science A, a high-school level course focusing on OOP using Java, details a 20-hour lab requirement. College Board provides three labs ready-made for teachers to use in class -- Magpie, Picture Lab, and Elevens -- but does not specify that these have to be used to satisfy the requirement. This page gives an overview of the labs along with student guides. Completing year one with these labs (and indeed AP CS A as a whole), I am reflecting on my experience with them, and I am now curious about what else is out there.

This review from one publisher raises some serious questions about the inclusion of the three exemplar labs. In particular, their conclusion states the following:

In our opinion, one or two activities from Magpie and Picture Lab might fit into a typical AP CS A syllabus. Elevens is best left for a team project after the exam (unless the Development Committee decides to make it a new case study). Implementing the labs in their entirety in an AP CS A course would wreak havoc in the syllabus and may derail the course.

Have you found these labs insufficient and/or overly time-consuming in line with this particular review? If so, how did you address this in order to meet the lab requirement?


2 Answers 2


I looked at them when they first came out and decided not to use them. Did go through and look at the topics and make sure that we're covering everything we need to in class. But between labs that I've written or purchased we've got a pretty good set of assignments that covered everything that the AP provided labs hit on.

The 3 AP labs also lean more towards projects instead of simple labs. I prefer to do a lot of small, single method labs. Especially early in the year. We do larger scale projects later, and they overlap a lot with what AP provides.

And not really part of your question, but I can't imagine only spending 20 hours on labs through the year. We probably hit that goal within the first month of the year.


Following up on a comment asking about lab sources...

The best labs are past AP exam FRQs. My goal every year is that by the AP exam we've done every past FRQ in class as a lab, quiz, or test. We start in September. Going back to 2004 there are 45 FRQs if you don't include the GridWorld ones. I generally assign them as in class assignments though since there are solutions posted everywhere online. If they're assigned to be worked on outside of class they'll be daily grades which have very little grading weight in our district.

Another good, and cheap, source are programming packets from old contests. UIL, the organization that runs academic and athletic contests in Texas, sells past tests on their website. You can buy a PDF with all the tests from a year for $4. There are 5 or 6 tests a year with 40 multiple choice questions and 12 programming problems in each test. Only downside is that they're not sorted, so you'll have to go back and figure out where they fit. And some are more data structures problems instead of AP-A. ACSL also sells past contests on their site.

And our district buys curriculum from A+ Computer Science. Best thing here is that it's a complete curriculum - labs, project, quizzes, tests, slides; everything. I use this mostly for the written tests because I hate writing multiple choice questions, but I also tweak some of the labs a little and use them.


Rather than attempt to judge the labs in question, I'll address how you can evaluate the needs of your students, and what labs they need to be given.

The labs from the College Board are, as you indicated, suggestions rather than requirements. The implication is that if those labs are completed successfully the students will be prepared for related questions on the College Board's exams. The design of those labs, presumably, address the minimum competencies a student needs to pass the College Board exams. They are most likely also designed around the typical student enrolled in an AP CS A course at the high-school level. All well and good for the instructor with a class filled with these mythological typical students.

Your students are not typical. They are not average, and they are not "in the norm." That's true for every instructor, so I'm not placing your class above, or below, typical; rather I'm saying that typical is a statistical contrivance, not reality. In the process of designing your course, including the labs to use, you get to take advantage of what you know about your student body that the College Board does not know. You know what their prior course work has been focused on. You know what other fields of study have been presented, and at what level, before they are enrolled in the AP CS A course in your school. Things like first exposure to Java vs. continuation of Java work, prior basic algebra vs. plane geometry and trig., other languages learned, prerequisite courses in your system for the AP CS A course, etc. You also know what you, your school, your school district, and your state education system expect to be presented, and what the stated "objectives" are for your class, and the program it is part of.

What the established objectives are for your course, no matter at what level they have been "established", determines what the course content is. The labs have to mesh well with the course as a whole if they are to have an effective impact on the students reaching the objectives. If your class is the third in a series of Java classes, a lab that explores looping structures will have very little value. Conversely, if it is their first exposure to Java, than a lab that implements a 3-dimensional graphics class will probably never be completed successfully.

Once you have settled how the labs will mesh with the course content, and what level of competency you can anticipate from your students, you can evaluate, or design, labs that further the objectives of your course. Obviously, since it is an AP CS A course, passing the College Board exam is included in the objectives. It can, however, be the final goal, or it can be the minimum requirement. If your objective is to prepare the students for advanced studies in CS you do not, and probably should not, limit your labs to mirror the minimum set by the sample labs. Instead you can build labs that allow the students to practice what they've been taught, even if it's beyond the College Board minimums, and expands their mental skills in a way the prepares them to learn new concepts after they've mastered what you offer.

It's a difference between "teaching the test" and "teaching the subject." An unfortunate trend has been growing where states, or the College Board, have established some set of "minimum passing" evaluations, or standardized tests for graduation. In order to assure that students get high marks on those tests, meaning better ranking for their school, and maybe better funding from the state, the instructors have started to teach what's on the test, and nothing more. That is a major disservice to the students, even if it does increase funding for the schools.

For evaluation of any lab assignment, College Board example, random Internet find, or custom built, there are three basic criteria to apply:

  1. Does it require the students to fully utilize, and demonstrate, what the course has covered thus far?
  2. Does it set the stage, and prepare the students for the the concepts presented in the next segment of the course?
  3. Does it encourage practices, and mental skills, that will be beneficial to the students in the future - either in other CS courses or in everyday life?

Of course, after evaluating one lab, you can always evaluate other labs, and rather than answering the questions above in a binary, yes/no, fashion, you can answer them on a scale of effectiveness in meeting those criteria. If the labs presented by the College Board meet the needs of_your_ students, and the objectives of your course, then they are a good choice, regardless of the reviews from publishers, who may have their own labs to sell, or even instructors in other schools, who may have other objectives, and surely have different student bodies to work with.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.