AP CS Exam Overview Barbara Ericson ericsoncc gatech
AP CS Exam Overview Barbara Ericson ericson@cc. gatech. edu 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, recursion Georgia Institute of Technology
How the Exam is Graded • Total score is – score = multiple. Choice. Weight * (# correct. Answers – 0. 25 * #wrong. Answers) + free. Response. Weight * free. Response. Score • 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) Composite Score AP Grade AB Max Score 100 (1. 25 * MC + 1. 3889 * FR) 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, 3 046, 151 -165 -0 -18431, 00. html • Summary Table of Language Features – http: //apcentral. collegeboard. com/members/article/1, 3 046, 151 -165 -0 -18431, 00. html • A Quick Reference Guide – http: //apcentral. collegeboard. com/members/article/1, 3 046, 151 -165 -0 -21170, 00. html • AB Quick Reference Guide – http: //apcentral. collegeboard. com/members/article/1, 3 046, 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 ref – Help you find your seat 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 Slow. Fish “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 Example public class Contact. Info { private String name; private String phone. Number; public Contact. Info(String the. Name, String the. Phone. Number) { this. name = the. Name; this. phone. Number = the. Phone. Number; } public String get. Name() { return name; } public String get. Phone. Number() { return phone. Number; } } Georgia Institute of Technology
Inheritance Example - continued public class Extended. Contact. Info extends Contact. Info { private String nickname; public Extended. Contact. Info (String nickname, String phone. Number) { // missing code } } Georgia Institute of Technology
Inheritance Example - continued • What can go in place of // missing code? – super(the. Name, the. Phone. Number); this. nickname = the. Nickname; – this. name = the. Name; this. phone. Number = the. Phone. Number; this. nickname = the. Nickname; – this. nickname = the. Nickname; super(the. Name, the. Phone. Number); – this. nickname = the. Nickname; this. name = the. Name; this. phone. Number = the. Phone. Number; Georgia Institute of Technology
Inheritance • The child class extends the parent class – public class Child. Class extends Parent. Class • 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(param. List) 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 Interface 1, Interface 2, … • 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 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 Shape. Panel – A shape panel has a list of shapes – Shape. Canvas 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 – get. Class() will return it • Static variables are shared by all objects of a class • Static methods can be called using – Class. Name. method() • Static methods can’t access object fields – No access to a current object (no this) Georgia Institute of Technology
Run Time Exceptions • Null. Pointer. Exception, indicating an attempt to reference an object using an object variable that is null – int[] grade. Array; – System. out. println(grade. Array[0]); • Array. Index. Out. Of. Bounds. Exception, indicating an attempt to access an element that is not within an array’s range of indexes – grade. Array = new int[10]; – System. out. println(grade. Array[10]); Georgia Institute of Technology
Run Time Exceptions • Arithmetic. Exception, such as division by zero for integers – System. out. println(9/0); • Class. Cast. Exception, which occurs when an attempt is made to cast a variable to a class that it does not match – List name. List = new Array. List(); – name. List. add(new Integer(5)); – name. List. add(“Susan”); – String name = (String) name. List. get(0); Georgia Institute of Technology
Throwing Exceptions - AB • Illegal. Argument. Exception, indicating an argument to a method that is not legal for that method public void set. User(String user) { if (user. trim(). equals("")) { throw new Illegal. Argument. Exception("missing user name"); } else { this. user = user; } } Georgia Institute of Technology
Resources • Books – Be Prepared for the AP Computer Science Exam in Java Maria Litvin – 125 Multiple-Choice Questions in Java Maria Litvin, Gary Litvin • On-line practice tests – http: //eimacs. com/LM/LMPlain. asp? F=beprep ared&S=5 • Free 30 day trial 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 Georgia Institute of Technology
- Slides: 28