Work through the list without notes. If you cannot do a statement, follow its link, then come back. Guide = study guide; Practice = practice questions; see also the revision notes.
Understanding
- I can explain abstraction as reducing complexity by hiding detail that is irrelevant to the question. (Guide: “Abstraction: keep the main idea, hide the rest”; Practice Question 1)
- I can explain the difference between data abstraction and procedural abstraction and give an example of each. (Guide: both sections; Practice Questions 1 and 9)
- I can define an attribute and say it is declared in a class outside any method or constructor. (Guide: “Data abstraction and attributes”; Practice Question 2)
- I can say what an object’s state is. (Guide: “Data abstraction and attributes”)
Skills
- I can tell an instance variable from a class variable and predict output that depends on the difference. (Guide: Worked example 2; Practice Questions 3 and 6)
- I can use method decomposition to break a large behaviour into smaller methods. (Guide: “Procedural abstraction, decomposition and parameters”; Practice Question 8)
- I can replace duplicated code with one method that has parameters. (Guide: Worked example 2; Practice Question 8)
- I can design a class by listing its attributes and behaviours with types and signatures. (Guide: Worked example 1; Practice Question 7)
Reasoning
- I can explain why a method’s internals can change without telling its callers, and what must stay the same. (Guide: Worked example 2; Practice Questions 4 and 8)
- I can explain why parameters make a method reusable. (Guide: “Procedural abstraction, decomposition and parameters”; Practice Question 5)
- I can justify, in one sentence, why an attribute should be an instance variable or a class variable. (Practice Questions 6 and 7)
All ticked? Move on to the Topic 3.2 study guide, Impact of Program Design, or return to the course roadmap.