Unit 12 Study Guide

  • Define the term abstraction and explain why it is such a fundamental concept in computer science.
  • Explain the difference between process and data abstraction and give an example of each.
  • Explain the value of abstract data types and give examples of common ADTs.
  • Explain the concepts behind and benefits of information hiding, polymorphism, and encapsulation. Evaluate language support for these concepts in popular languages.
  • Define inheritance and explain the benefits and drawbacks of allowing multiple inheritance.
  • Compare and contrast static vs. dynamic dispatch, and explain the problem that dynamic dispatch solves.
  • Explain a class instance record and the kinds of data it describes.
  • Explain virtual method tables and discuss their benefits and implementation.