Practice B2 Programming 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.
Define what is meant by a "linked list" data structure.
Compare linked lists with arrays in terms of memory allocation and insertion/deletion operations.
Describe the components that would be required in each node of a simple linked list and explain how these components work together to form the list structure.
State what is meant by "abstract data types" (ADTs).
Explain the concept of encapsulation in relation to abstract data types and describe why it is beneficial.
List three operations that would typically be available for a Stack ADT and briefly describe what each operation does.
State what is meant by "file buffering" in computer systems.
Explain how file buffering improves performance and describe the trade-offs involved in different buffer sizes.
A data logging application writes sensor readings to a file every few seconds continuously for days. Analyse how buffering strategies would affect both performance and data integrity for this application.
Define what is meant by an "algorithm" in computer science.
Describe the five essential characteristics that define a well-formed algorithm.
A teacher wants to create an algorithm to calculate class averages. Explain why having a finite number of steps and producing a definite output are crucial characteristics for this algorithm.
State what is meant by "file compression" in data storage.
Distinguish between lossless and lossy compression techniques, providing examples of when each would be appropriate.
A medical imaging system stores thousands of X-ray images that must maintain perfect quality for diagnostic purposes but also needs to manage storage costs. Analyse which compression approach would be most suitable and justify your reasoning.
Define what is meant by "syntax" in programming.
Distinguish between syntax errors and logic errors, providing an example of each.
Define what is meant by "file synchronization" in distributed systems.
Explain the challenges involved in keeping files synchronized across multiple locations and describe potential solutions.
A collaborative document editing system allows multiple users to work on the same file simultaneously from different locations. Analyse the file synchronization challenges this creates and explain how conflicts might be resolved.
Define the term "identifier" in programming.
List four rules that typically apply when naming identifiers in most programming languages.
Evaluate the following identifier names and explain which ones are valid and which are invalid: student_name 2ndPlace final-grade MAX_VALUE
Define what is meant by "dynamic programming" in algorithm design.
Explain how dynamic programming differs from simple recursion and describe the key techniques used to improve efficiency.
The Fibonacci sequence (where each number is the sum of the two preceding ones) can be calculated using both simple recursion and dynamic programming. Compare the efficiency of these approaches for calculating the 40th Fibonacci number.
Define what is meant by "file formats" in data storage.
Compare structured file formats (like CSV) with unstructured file formats in terms of data organization and processing requirements.
A research team needs to share experimental data between different software applications and research institutions. Evaluate whether a structured or unstructured file format would be more appropriate, considering interoperability and data analysis requirements.