AQA Computer Science Theory (Symbol Puzzle Mock)
You're demonstrating an excellent grasp of OOP
principles and exception handling!
You correctly identified the 'if/else' logic for loading files vs default. However, to get full marks on part (a), you needed to identify that '8' is the grid size and 'int(8*8*0.6)' results in 38 symbols.
Perfect! You correctly identified reusability and encapsulation as key OOP advantages and explained them clearly.
You missed the regex syntax in Q4. In Regular Expressions, a dot . represents any character, whereas * means "zero or more of the previous character".
AddToNotAllowedSymbols for all 9 cells in that 3x3 window so the player can't put that same letter there again.
Very strong. You clearly understand how child classes gain parent attributes. One extra mark missed for the second advantage of inheritance (treated as a parent/polymorphism).
Great explanation of the try/except loop. For polymorphism (Q7b), remember to mention that while we group objects as a "Parent", the computer executes the code for the "Child" class specifically.
These were the tricky "Interface" questions. In AQA exams, "Encapsulation" doesn't just mean hiding data; it means the User sees a Grid (Interface) but the Code uses a 1D List (Implementation).
(8-2)*8 + 10-1 = 6*8 + 9 = 57. It returns the 57th element.
Trying "all combinations" is much heavier than O(n). It's O(n!) (Factorial), similar to the Traveling Salesman problem.
Great attempt at the pseudocode. You earned marks for the structure and returning 50/0. To get the final marks, be very specific about the grid limits (e.g., stopping the loop at GridSize - 3 so the 4x4 window doesn't fall off the edge).