CS 228 meeting -*- Outline -*- * introduction to abstraction section (HR introduction) Q: what is abstraction? What is it good for? separation of what from how, contract, suppress details, allows improvements to implementation without retraining users --------------------------- ABSTRACTION The idea: user (client) === specification === implementation --------------------------- The specification is a contract. critical idea This is the theory, but in practice, some performance details are not very well hidden; it's a research issue... essential to abstraction is the ability to give something a name, to parameterize it, and to specify it's behavior --------------------------- KIND OF ABSTRACTION \ HIDES functional algorithm data rep + algorithms control flow details --------------------------- in general, separate behavior from implementation of it (separation of concerns, so don't keep everything in our heads)