"Copyright (c)2003 by College Entrance Examination Board. All rights reserved. Used with permission. Available at apcentral.collegeboard.com"

Java AP/A Syllabus

School Profile
Horace Mann is an independent school located in the Bronx that serves the metropolitan New York area.  The school has approximately 600 students in the Upper School (grades 9-12).
Facilities
Horace Mann has three networked classrooms each containing twenty computers. Two classrooms have Apple I-Mac computers and one has Dell PC’s running Windows XP. Horace Mann also supports several wireless classrooms on both platforms that are used by the library, the Mathematics Department and the Computer Department. A large lab containing both Apple computers and Dell computers is available to all students grades 6-12 all day and one afternoon a week. Wireless connection to the network and the Internet is available in most of the buildings.

Programming and other Computer Science topics are briefly introduced to students in eighth and ninth grade. In the ninth grade and above students may elect to take a variety of courses including a web design sequence and a Computer Science sequence. The Computer Science sequence concludes with the AP AB curriculum. For a variety of scheduling and historic reasons, students do not take the AP A exam, but have covered most of the material on the A exam by the time they reach the AB course in their Junior or Senior year. Current enrollment in the elective courses leading up to the AB course is about 40. The AB course enrollment is typically 8-12 students.

Course Organization
Programming courses prior to the AP exam meet for 45 minutes 5 days out of a 10 day cycle.  The AP course meets for 45 minutes every day.  Class time in all Computer Science courses is divided between lecture and lab.
Assessment
Assessment is based on a variety of student projects. Each type of assessment is weighted. The evaluation weight is based primarily on the amount of class and homework time devoted to the assignment. Horace Mann uses an 11-point scale for grading. The scale is: A+, A, A-, B+, B, B-, C+, C, C-, D, F.

Lab Exercise (evaluation weight: 1)

A lab exercise is done in a single lab period or completed for homework by the next class meeting. Students may use notes and textbooks. The teacher may elect to give hints, but students should not receive help from other students. Lab exercises are graded on the 11 point scale.

Key Concept (evaluation weight: 2)

A key concept program is a programming assignment that focuses on a single new concept as well as previous material. This type of assignment will typically require four to five lab periods as well as some home programming time. Students may give each other help that is constructive in learning the emphasized  concept. Programs are evaluated on the 11-point scale.

Unit Program (evaluation weight: 3)

A unit program is a major programming assignment that combines a series of concepts into one challenging program. This lab assignment requires both out-of-school and in-school effort. Typically ten or more classes will be devoted to lab work. Students will get appropriate hints from their teacher during the course of this assignment. Students may also give each other help that is constructive in learning the emphasized material. These assignments will be evaluated from A+ to F, however, to maintain Computer Department tradition, to earn an A or A+ a program must either fulfill extra credit requirements as specified on the lab description or demonstrate additional creativity on the part of the student.

Tests and Lab Practicals (evaluation weight: 2)

Tests will help to prepare students for the AP exam by using multiple choice and free response questions. Tests will be given during the assigned testing weeks for Computer Science and will be announced in advance according to school policy. No help or hints will be given by the teacher after initial test-taking instructions.

A lab practical will involve a programming assignment on a key concept that must be completed during class. No help or hints will be given during the lab period.

 

Text and Compiler/Editor Information
  Text: Williams College textbook online preview version called, Java: An Eventful Approach.

Text resource web site: applecore.williams.cs.edu/~cs134/eof

Files: This text uses a library called objectdraw that may be downloaded from the text resource site.

Development Environments:

Ready To Program (www.holtsoftware.com) for the Windows platform

JJEdit (www.macmullin.com) for the Mac OS X platform

BlueJ (www.bluej.org) for both platforms.

Syllabus
 
Unit 1-Basics

Topics

Using the development environment, introduction to the objectdraw library, declaring variables, and Java class definitions.

Goals

  • Students are comfortable with the development environment.

  • Students are familiar with common syntax errors.

  • Students know the format of a Java program that extends WindowController

  • Students know how to do numerical calculations and use a variable to count.

  • Students are introduced to Java documentation and the terms actual and formal parameters.

  • Students know the primitive types: double, int, boolean.

  • Assessment Ideas

    Text

    Chapters 1 and 2, Java: An Eventful Approach

       
    Unit 2-Control Statements

    Topics

    If statements and boolean expressions

    Goals

    • Students know how to use simple and compound boolean expressions.

    • Students can read and evaluate a method containing a branching statement.

    • Students know how to compare two objects with .Equals.

    • Students know how to read Java documentation and call methods.

    • Students know the difference between actual and formal parameters.

    Assessment Ideas

    Text

    Chapter 3, Java: An Eventful Approach

       
    Unit 3-Classes

    Topics

    Implementing classes

    Goals

    • Students know static final variables

    • Students can add their own methods with appropriate parameter lists.

    • Students can use a boolean variable to determine the state of a program

    • Students know how to write a constructor and implement methods for a class

    • Students can distinguish between instance variables, local variables and formal parameters

    • Students can use state variables to implement mouse drag and drop.

    • Students can write programs composed of at least two classes.

    Assessment ideas

    Text

    Chapter 4, Java: An Eventful Approach

       
    Unit 4-Active Objects

    The following topic could be introduced later since this is not an exam topic. On the other hand, using threads provides a mechanism for writing programs that will interest students (in other words, cool computer games with moving objects)

    Topics

    While loops, writing classes that extend ActiveObject, continued practice implementing classes, an opportunity to work with a large multi-file program.

    Goals

    • Students firmly understand how to call methods.

    • Students can write their own methods.

    • Students use while loops when appropriate.

    • Students have have practice writing programs with multiple classes

    Assessment Ideas

    Unit Lab:  The game Frogger, specification and starter files available on the teacher resource website for the text.

    More ideas

    Text

    Chapter 5, Java: An Eventful Approach

       
    Unit 5-Marine Biology Simulation

    Topics

                    Studying and experimenting with a multi-file program

    Goals

                    Students are exposed early to the case study and are familiar with the problem.

                    Students learn to develop test cases to evaluate a program.

    Assessment Ideas

                    Lab exercises based on questions in the Marine Biology Simulation text.

                    More ideas

    Text

                    Chapter 1, Marine Biology Simulation

       
    Unit 6-Interfaces

    Topics

                    Interfaces

    Goals

    Understanding interfaces

    Assessment Ideas

                   

    Text

                    Chapter 6, Java: An Eventful Approach

       
    Unit 7-ArrayList

    Topics

                    Using a list class, linear search, selection sort, for loops

    Goals

                    Students know basic list operations: insert, delete, find.

                    Students know the quadratic sort, Selection Sort

    Assessment Ideas

                   

    Text

                    This chapter is not yet available in the downloadable version of the text.

       
    Unit 8-Marine Biology Simulation and 1D arrays

    Topics

                    Multi-file programs, black-boxed material, modifiable sections, 1D arrays

    Goals

                    Examining the code for a large multi-class project

                    Introduce 1D arrays and compare to ArrayList

                    Review interfaces, ArrayList, 1D arrays.

    Assessment Ideas

                    Exercises from the Marine Biology Simulation text

                    More ideas

    Text

                    Chapter 2, Marine Biology Simulation

       
    Unit 9 - Recursion

    Topics

                    Recursion, recursive binary Search and merge sort

    Goals

                    Students are familiar with simple recursive functions.

                    Students are familiar with necessary recursive sorting and searching algorithms.

    Assessment Ideas

                   

    Text

                    Chapter 8, Java: An Eventful Approach

       
    Unit 10 - Marine Biology Simulation

    Topics

                    Dynamic Population of fish

    Goals

                    Students are familiar with all of the Marine Biology classes.

                    Students can identify which class to modify and make significant changes to the Marine Biology program.

    Assessment Ideas

                     Exercises from the Marine Biology Simulation text

                     More ideas

    Text

                    Chapter 3, Marine Biology Simulation

       
    Unit 11 - Inheritance and the Marine Biology Simulation

    Topics

                    Inheritance

    Goals

                    Students can write a class that extends another class.

                    Students can use inheritance to modify the Marine Biology Simulation

    Assessment

                    Exercises from the Marine Biology Simulation text.

                    More ideas

    Text

                    Chapter 13, Java: An Eventful Approach

                    Chapter 4, Marine Biology Simulation

       
       
      Additional assessment ideas