Practice B4 Abstract data types (HL only) with authentic IB Computer Science (First Exam 2027) exam questions for both SL and HL students. This question bank mirrors Paper 1, 2, 3 structure, covering key topics like programming concepts, algorithms, and data structures. Get instant solutions, detailed explanations, and build exam confidence with questions in the style of IB examiners.
Case Study: A ride-sharing app develops a TripRequest ADT interface that includes operations like requestRide, cancelRide, and updateDestination. However, user feedback indicates the interface is confusing and leads to frequent booking errors.
State what is meant by "ADT interface design principles".
Explain the key principles that guide effective ADT interface design and describe how poor interface design affects software quality.
Using the ride-sharing case study, evaluate the current interface design and suggest improvements based on good design principles.
Case Study: A robotics control system uses a MotionControl ADT that operates at three levels: servo level (individual motor control), joint level (coordinated limb movement), and behavior level (complex actions like walking or grasping).
Define what is meant by "ADT abstraction levels".
Describe how different abstraction levels in ADTs help manage complexity and explain the relationship between abstraction and implementation efficiency.
Using the robotics case study, analyze how each abstraction level serves different user needs and discuss the trade-offs involved.
Case Study: A flight booking system uses a ReservationQueue ADT where passengers join a waiting list for overbooked flights. The system contract specifies that dequeue() operations should only occur when the queue is not empty, but a software bug occasionally violates this rule.
Define what is meant by "ADT contract" in software engineering.
Explain how ADT contracts contribute to software reliability and describe the responsibilities of both the ADT implementer and the client.
Using the flight booking case study, analyze what happens when the queue contract is violated and suggest ways to handle such violations.
Case Study: A video streaming service evaluates two ContentIndex ADT implementations: binary search trees for alphabetical browsing and hash tables for instant search. The choice affects millions of users' experience during peak viewing hours.
State what is meant by "ADT performance analysis".
Explain the factors that influence ADT performance and describe methods for analyzing and comparing different implementations.
Using the streaming service case study, analyze when each implementation would be preferred based on performance characteristics and user behavior.
Case Study: A music streaming service needs to manage playlists for millions of users. The development team is deciding between implementing playlist functionality using basic arrays or designing it as an Abstract Data Type.
Define what is meant by an "Abstract Data Type" (ADT).
Explain the difference between an ADT and a data structure, describing how they relate to each other.
Using the music streaming service case study, analyze why implementing playlists as ADTs would be beneficial and explain how this approach improves code maintainability.
Case Study: An e-commerce shopping cart system uses a ShoppingCart ADT. The system must ensure that the cart always contains valid items with positive quantities and that the total price calculation remains consistent.
State what is meant by "ADT invariants" in abstract data types.
Describe the role of invariants in maintaining ADT correctness and explain when they should be checked.
Using the e-commerce case study, identify appropriate invariants for the ShoppingCart ADT and explain how they ensure the system's integrity.
Case Study: The International Mapping Consortium wants to standardize a GeospatialData ADT interface for use across GPS navigation systems, satellite imagery platforms, and urban planning software to ensure interoperability between different mapping solutions.
State what is meant by "ADT standardization" in software engineering.
Explain the benefits and challenges of ADT standardization and describe how standards affect ADT adoption and interoperability.
Using the mapping consortium case study, evaluate the potential impact of GeospatialData standardization and discuss implementation considerations.
Case Study: A smart hospital system integrates multiple ADTs: Patient (demographics and vitals), Staff (schedules and credentials), Equipment (location and maintenance), and Room (availability and assignments). Each ADT must work independently while coordinating for hospital operations.
Define what is meant by "ADT modularity" in software architecture.
Describe how ADT modularity contributes to software maintainability and explain the relationship between modularity and system complexity.
Using the smart hospital case study, analyze how this modular design benefits the system and discuss potential integration challenges.
Case Study: A weather monitoring system uses a TemperatureLogger ADT that can be implemented using different storage methods: in-memory arrays for real-time systems, databases for long-term storage, or compressed files for archived data.
Define what is meant by "ADT implementation independence".
Explain how implementation independence benefits software development and describe the challenges it might create.
Using the weather monitoring case study, analyze how implementation independence allows switching between storage methods and what considerations are involved.
Case Study: A mobile messaging app's MessageHistory ADT was originally designed for text messages only. Now the app needs to support multimedia messages, voice notes, and file attachments while maintaining compatibility with existing chat features.
State what is meant by "ADT evolution" in software maintenance.
Describe the challenges involved in evolving ADTs and explain strategies for managing ADT changes over time.
Using the messaging app case study, analyze the evolution challenges and suggest an approach that minimizes disruption to existing code.