280 likes | 539 Views
AP CS Exam Overview. Barbara Ericson ericson@cc.gatech.edu March 2005. 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. Exam Details.
E N D
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 = 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) 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 Example public 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 - continued public 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 method public void setUser(String user) { if (user.trim().equals("")) { throw new IllegalArgumentException("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 JavaMaria Litvin, Gary Litvin • On-line practice tests • http://eimacs.com/LM/LMPlain.asp?F=beprepared&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