georgia institute of technology ap cs exam overview barbara ericson [email protected] march 2005

28
Georgia Institute of Technology AP CS Exam Overview Barbara Ericson [email protected] March 2005

Upload: anastasia-price

Post on 28-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Georgia Institute of Technology

AP CS Exam Overview

Barbara Ericson

[email protected]

March 2005

Georgia Institute of Technology

Learning Goals

• Understand the AP CS Exam– What are the details of the exam?– How is the exam graded?– What is on the exam?– Tips for taking the exam– Resources to use in studying for the exam

Georgia Institute of Technology

Exam Details

• Two Sections (3 hour exam)– 40 Multiple choice questions (1 hour 15 min)

• 5 answers to each question (a – e)• Only one right answer• At least 5 questions on the case study• A Topics: oo, Java basics, cs terms, testing, design decisions• AB Topics: data structures, big-O, and more design

– Free-response questions (1 hour 45 min)• 4 questions (2-3 parts)• One question on the case study• A Topics: arrays, strings, classes, interfaces, sorting,

searching, Java library classes, design• AB Topics: 2-d arrays, data structures

Georgia Institute of Technology

How the Exam is Graded

• Total score is – score = multipleChoiceWeight * (# correctAnswers –

0.25 * #wrongAnswers) + freeResponseWeight * freeResponseScore

• Equal weight to multiple choice and free response sections• Each free response question is worth 9 points (partial credit

can be given)• Free response questions are graded according to a grading

standard (rubric) by high school and college teachers

Georgia Institute of Technology

Final Grade Calculation (1999)

A

Max score 80

(1.00 * MC + 1.1111 * FR)

AB

Max Score 100

(1.25 * MC + 1.3889 * FR)Composite

Score

AP Grade Composite

Score

AP Grade

60-80 5 70-100 5

45-59 4 60-69 4

33-44 3 41-59 3

25-32 2 31-40 2

0-24 1 0-30 1

Georgia Institute of Technology

Exam Hints• Read the question before reading the code• Do the easiest questions first• If you read the question and have ruled out a couple of

answers guess the answer• Don’t write tricky, non-standard code• If a question has parts answer the parts you can• Don’t cross out what you have if you don’t add anything

new• Write neatly and indent properly• Follow Java conventions for names and use good names• Don’t worry about imports or comments• Don’t forget the return statement • Check and follow the pre and post conditions

Georgia Institute of Technology

A and AB Topics

• See the Topic Outline– http://apcentral.collegeboard.com/members/article/

1,3046,151-165-0-18431,00.html

• Summary Table of Language Features– http://apcentral.collegeboard.com/members/article/

1,3046,151-165-0-18431,00.html

• A Quick Reference Guide– http://apcentral.collegeboard.com/members/article/

1,3046,151-165-0-21170,00.html

• AB Quick Reference Guide– http://apcentral.collegeboard.com/members/article/

1,3046,151-165-0-21169,00.html

Georgia Institute of Technology

Primitive Variables vs Object Variables

• Primitive variables are like sliders– Allocates space for the

variable value– The value can be between

a min and max based on the amount of space

• Object variables are like a ticket to an event– Help you find your seat

ref

Georgia Institute of Technology

Object Variables

• Remember that declaring an object variable declares a reference to an object of that type– It doesn’t create the object

• Example– String s; // declares a reference– s.length(); // throws a null pointer exception– s = “Hello”; // now it references a string

Georgia Institute of Technology

Inheritance versus Association• “is a” versus “has a”• Use inheritance when the child is really “a kind of” the

parent– A SlowFish “is a kind of” Fish– A Truck “is a kind of” Vehicle

• Don’t use inheritance when the child can’t be substituted for the parent– A Wall isn’t a kind of Fish– A Vehicle isn’t a kind of Person

• Use “has a” when one object has an object of another class associated with it– A Vehicle “has a” person associated with it (the owner)– A course session “has a” course associated with it

Georgia Institute of Technology

Inheritance Test

• Which is correct?– A high school is a kind of school?– An exam is a kind of question?– A marching band is a kind of school?– A dictionary is a kind of book?– A cat is a kind of animal?

• You must be able to substitute the child for the parent– If I need a book will a dictionary do?– If I need a school will a marching band do?

Georgia Institute of Technology

Inheritance

• You can call inherited public methods directly

• You can access inherited public fields directly

• You can access inherited private methods indirectly – Through public methods

• You can access inherited private fields indirectly– Through public accessors and modifiers

Georgia Institute of Technology

Inheritance Examplepublic class ContactInfo { private String name; private String phoneNumber; public ContactInfo(String theName, String thePhoneNumber) { this.name = theName; this.phoneNumber = thePhoneNumber; } public String getName() { return name; } public String getPhoneNumber() { return phoneNumber; }}

Georgia Institute of Technology

Inheritance Example - continuedpublic class ExtendedContactInfo extends ContactInfo{ private String nickname; public ExtendedContactInfo (String nickname, String name, String phoneNumber) { // missing code }}

Georgia Institute of Technology

Inheritance Example - continued

• What can go in place of // missing code?– super(theName,thePhoneNumber);

this.nickname = theNickname; – this.name = theName; this.phoneNumber =

thePhoneNumber; this.nickname = theNickname;

– this.nickname = theNickname; super(theName, thePhoneNumber);

– this.nickname = theNickname; this.name = theName; this.phoneNumber = thePhoneNumber;

Georgia Institute of Technology

Inheritance

• The child class extends the parent class– public class ChildClass extends ParentClass

• No extends means extends Object

• Objects of the child class inherit all the fields and methods of the parent class– But can’t directly access private fields or

methods• Use public accessors and modifiers

– Can invoke parent constructor to initialize • Use super(paramList) as first line in constructor• If none found, one will be provided (no-arg)

Georgia Institute of Technology

Interfaces• An interface is a way two classes can communicate

without worrying about what class each one is.– Just need to know the methods

• Let’s you plug in different classes– As long as they implement the interface

• Interfaces can only have abstract methods and constants in them

• Declare an interface with– public interface Name

• A class can implement more than one interface– public class Name extends Parent implements Interface1,

Interface2, …• One interface can inherit from another

– Actionable inherits from Drawable in the revised case study

Georgia Institute of Technology

Explaining Interfaces

• First point out what happens when you hardcode a class– Like in MBCS with Fish

• Then show how interfaces let you add new classes – Like Wall in the revised MBCS

Georgia Institute of Technology

Polymorphism

• Ability to call a method based on the type of the object the method

• In Java usually refers to inheritance-based– Method is based on parent class

• All objects have a reference to their class– All objects know what class they are

• All methods are invoked by checking with the class of the object first– No matter what it is declared as

Georgia Institute of Technology

Polymorphism Example

• See ShapePanel– A shape panel has a list of shapes– ShapeCanvas has a list of shapes– When we ask a shape to draw

• It first checks with it’s class to see if it has a draw method and if so will execute that

• So the correct shape is drawn– If Oval draw an oval– If Rectangle draw a rectangle

Georgia Institute of Technology

Polymorphism Questions

• Expect questions on what is the output when a method is called on a child object that is declared as a parent object– Remember that objects know what class they

are• And all methods are resolved starting with the

object’s class then going up the inheritance tree

Georgia Institute of Technology

Static

• Static really means exists on the object that defines the class– A class named Class

• Objects all have a reference to their class– getClass() will return it

• Static variables are shared by all objects of a class

• Static methods can be called using – ClassName.method()

• Static methods can’t access object fields– No access to a current object (no this)

Georgia Institute of Technology

Run Time Exceptions

• NullPointerException, indicating an attempt to reference an object using an object variable that is null– int[] gradeArray;– System.out.println(gradeArray[0]);

• ArrayIndexOutOfBoundsException, indicating an attempt to access an element that is not within an array’s range of indexes– gradeArray = new int[10];– System.out.println(gradeArray[10]);

Georgia Institute of Technology

Run Time Exceptions

• ArithmeticException, such as division by zero for integers– System.out.println(9/0);

• ClassCastException, which occurs when an attempt is made to cast a variable to a class that it does not match– List nameList = new ArrayList();– nameList.add(new Integer(5));– nameList.add(“Susan”);– String name = (String) nameList.get(0);

Georgia Institute of Technology

Throwing Exceptions - AB

• IllegalArgumentException, indicating an argument to a method that is not legal for that methodpublic void setUser(String user) {

if (user.trim().equals(""))

{ throw new

IllegalArgumentException("missing user name");

}

else { this.user = user; } }

Georgia Institute of Technology

Summary

• The A Exam covers – Basics: variables, loops, conditionals– Debugging: Runtime exceptions, types of

errors, techniques– OO concepts: classes, objects, encapsulation,

information hiding, interfaces, inheritance– CS concepts: sorting, searching, algorithms,

numbers in different bases, one-dimensional arrays, pre- and post- conditions, assertions

Georgia Institute of Technology

Summary

• The AB exam covers– Data Structures

• Two-dimensional arrays, linked lists, stacks, queues, trees, heaps, priority queues, sets, maps

– Algorithms• Big-Oh notation, worst-case and average-case

time and space analysis• Searching using hashing• Sorting using quicksort and heapsort.• Invariants