Jump to page content Jump to navigation

College Board

AP Central

AP Online Score Reporting
Be an AP Exam Reader
Siemens Awards for Advanced Placement
Click here to visit the SpringBoard Microsite
Print Page
Home > Java as a Pre-AP Strategy in Computer Science, Part VI

Java as a Pre-AP Strategy in Computer Science, Part VI

Quizzes
Short Code Assignments
Projects
Examinations


This is Part VI in a series of articles designed to take a computer science teacher in the Pre-AP years through the more difficult and confusing first components of teaching computer science in Java. In Part VI we discuss the evaluation of student assignments and projects.

The evaluation of student work is one of the more time-consuming and less rewarding parts of teaching for me. While I enjoy working with my students, guiding their efforts, I don't enjoy the more formal evaluation process known, albeit somewhat pejoratively, as "grading." Indeed, I'm inclined to launch off on a sort of heretical and ultimately dismissive essay on the subject.

However, the need for evaluation cannot be dismissed, either practically or even, truth be told, ideally. However, in a programming class, efforts can be made to make the evaluations focused, meaningful, and yet not overly laborious. My evaluations tend to fall into four distinct categories: multiple-choice quizzes, short code assignments, programming projects, and large-scale examinations. Let's have a look at each of these in turn.

Quizzes
The beauty of multiple-choice quizzes is that they are focused and easy to grade. However, the thoughtful production of the quiz can take quite a while. Avoid the temptation to provide one right answer and several junk answers. It's important to the evaluative strength of the quiz to provide attractive wrong answers, and even to my devious mind, this can be a challenge. Often, the "answers" are substantial segments of code rather than only one or a few statements.

Short Code Assignments
This category would include assignments that involve designing classes and perhaps implementing some specific methods within classes. In an effort to focus student attention on one or only a few specific programming tasks, I try to take a lesson from some of my English teacher colleagues. In their writing classes, assignments are classified to focus students on particular tasks: for example, a certain type of paper might only be scored for overall organization, with little attention being paid to spelling or grammar, while another paper may be evaluated primarily for sentence structure, grammar, and spelling with little attention to higher-order affairs.

In programming, a short code assignment might call for a demonstration of method overloading, class inheritance, or perhaps a display of simple recursion. It might be a demonstration of the proper use of certain loops or logical evaluations. In any case, the merits of good focus are in easy evaluation and quick feedback for the student aimed at specific aspects of programming. It's a win-win strategy.

Projects
Projects are very difficult to evaluate bit-by-bit on a 100-point scale. Even if it were desirable, one is apt to miss the forest for the trees by taking such an approach. I think a portfolio approach is easier and more useful to the student. As each project is begun, students keep a project journal in a loose-leaf binder. All papers relating to the project are kept there in chronological order, including hard copies of source code. As the project proceeds, I make written comments in the journals on a regular basis as I "work the room" during class. For larger classes, it might be better to take up the journals for comment writing. I try to make only two or three comments at each cycle. Again, I think that a clear focus is essential for beginning programmers.

Students know ahead of time that I will evaluate their projects in distinct areas -- typically design, general coding quality, and finally implementation "success." The weighting for these areas is usually something like 50 percent, 30 percent, and 20 percent, respectively. I place a high premium on thoughtful design and a lower emphasis on producing code that runs exactly to specs. Students can score a B on a project with good planning and generally strong coding skills even if a small logic error causes the program not to execute quite right. Project grades run from 1 to 5, roughly equivalent to the F, D, C, B, A scale.

Examinations
I give examinations that mirror the general multiple-choice plus free-response style of the AP Computer Science Exams. The multiple-choice section is generally a reworked collection from past quizzes, and the free-response section typically consists of short code assignments that build on similar class assignments during the quarter. By following this format, students simply extend their experience with normal term quizzes and short coding assignments. Nothing about the exams is very new, and so the process isn't too intimidating. Major exams are given about every three weeks, and they usually take two days (1.5 hours) to complete.

A student's quarter grade is generally calculated by taking 25 percent each from quizzes, short code assignments, projects, and major exams. In the latter part of the year when projects grow larger and begin to crowd out exams, I adjust the scheme to take into account the greater emphasis on project work.

For beginning teachers, I suggest that if you have to limit time on some aspect of the course, take it out of grading and not out of class preparation. Do more multiple-choice work, and let coding be guided more by in-class feedback and less by formal evaluation. If you do yourself in trying to grade too much work, and you are ill-prepared to teach class, you will be doing your students a disservice. In my experience students benefit more from a well-prepared teacher at their side than from a constant stream of (often hastily) graded work.


Please note: Some topics covered in this series of articles are not included in the defined curriculum. Refer to the current official AP CS Course Description for the topics that will be tested on the AP Exams.

James Aldridge, Ph.D., is a science and computer science teacher at Fort Worth Country Day School in Fort Worth, Texas. He has taught computer programming for 10 years and currently teaches AP Computer Science using Scheme, Java, and C++. James also teaches AP Chemistry and has special computer science interests in the area of real time data acquisition and control subsystem hardware and software design.






  ABOUT MY AP CENTRAL
    Course and Email Newsletter Preferences
  AP COURSES AND EXAMS
    Course Home Pages
    Course Descriptions
    The Course Audit
    Teachers' Resources
    Exam Calendar and Fees
    Exam Information
    FAQs
  PRE-AP
    SpringBoard® Pre-AP Program
    Workshops
    Teachers' Corner
  AP COMMUNITY
    About Electronic Discussion Groups
    Become an AP Exam Reader

Back to top