AP CSA 3.1 Exercise 2: Abstraction and Program Design Applied Practice

Unit 3: Class Creation · Lesson 3.1 · Exercise 2

Abstraction and Program Design: Applied Practice

Six scenarios on deciding what a class should hide and what it should expose.

How this one is different

There is no tricky syntax in this topic, which is why it gets skipped. The exam asks it as judgement about a specific design, so these six are all judgement.

Applied Practice

6 questions · scenario driven · every answer is recorded for your teacher

Question 1 of 6Evaluate
A BankAccount class exposes its balance field as public so other classes can adjust it directly.
What is the strongest objection?
Incorrect. Naming is not the issue here.
Incorrect. Visibility has no effect on memory use.
Correct. Correct. Encapsulation exists to keep the invariant enforceable in one place.
Incorrect. Access speed is unaffected by the modifier.
Question 2 of 6Analyze
A designer must decide whether a Student class should store a letter grade or compute it from stored scores on demand.
What is the main argument for computing it?
Incorrect. Reading a stored value is generally faster.
Correct. Correct. Deriving on demand removes an entire class of consistency bug.
Incorrect. Memory is a minor and situational consideration.
Incorrect. Both can be private.
Question 3 of 6Apply
A class has grown to handle student records, file input and report formatting.
What design principle does this violate?
Correct. Correct, and the "changes for different reasons" test is the useful form of it.
Incorrect. File handling in a class is perfectly legal.
Incorrect. A constructor exists to initialize, not to format output.
Incorrect. Size is a symptom, not the principle. Some single-responsibility classes are large.
Question 4 of 6Evaluate
A method signature is changed from taking three separate int parameters to taking one object.
What is gained?
Incorrect. Speed is unaffected or marginally worse.
Incorrect. The return type is independent of the parameters.
Incorrect. It removes a real class of caller error.
Correct. Correct. Three ints of the same type are exactly the case where argument order is easy to get wrong.
Question 5 of 6Apply
A programmer uses a class written by someone else, reading only its method signatures and documentation.
What does this illustrate?
Incorrect. File location is unrelated.
Incorrect. Needing to read the implementation to use a class is a sign the abstraction has failed.
Correct. Correct. This is the practical payoff of the whole topic.
Incorrect. Private fields are invisible precisely because they are private.
Question 6 of 6Analyze
A team must add a feature and can either modify an existing class or add a new one.
Which consideration should dominate?
Incorrect. Line count is a poor proxy for design quality.
Correct. Correct. Responsibility is the question; size follows from it.
Incorrect. Typing effort is not a design criterion.
Incorrect. Adding a class is often exactly the right move.

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]