Why do data structures like splay trees or dynamic arrays have good average-case guarantees? Explain the idea of amortized analysis in this context, and connect it to practical considerations such as memory hierarchy and cache-friendliness.
Explain the “lens laws” in functional programming, using examples in a language other than Haskell. Why are these laws important, and how do they help in reasoning about programs that manipulate data structures?
Matching problems such as bipartite matching or stable marriage are fundamental in algorithms. Explain how randomized approaches can improve the performance or robustness of matching algorithms. Why might randomisation help in avoiding worst-case behaviour, and what provable guarantees can still be made?
What is Fitts’ Law, and why is it relevant when designing pointing techniques in virtual reality? Compare how well Fitts’ Law predictions carry over from traditional GUIs to immersive environments, and what design challenges arise.
How might fine-grained automated turn-taking analysis be implemented using only audio signals? What features of speech (timing, intonation, pauses, overlaps) are most useful, and what are the limits of such approaches?
Machine learning–based authentication often relies on behavioural biometrics (e.g., keystroke dynamics, voice, gait). Analyse the technical challenges of deploying these systems for users with variable or impaired motor or speech patterns. What kinds of false positive/false negative errors arise, how could models be adapted (e.g., personalization, transfer learning, threshold tuning), and what are the risks if they are not?
Overfitting and regularisation are core issues in machine learning, but how do they appear in the context of diffusion models? Discuss why these models might overfit, what kinds of regularisation are possible, and how this differs from more traditional deep learning models.
Compare state-space models and transformer-based models (such as BERT) in the context of information retrieval tasks. How do they represent context and sequence information differently, and what does this mean for retrieval performance, efficiency, and scalability?
Database systems often go beyond plain B-Trees for indexing. Summarise several types of indices (e.g., hash indices, GiST, R-Trees, LSM Trees), explaining what workloads they are best suited for and what trade-offs they introduce.
Summarise the Raft consensus algorithm in distributed systems. Why is it generally seen as more understandable than Paxos, and yet why is it still so difficult to implement correctly in practice?
What are zero-knowledge proofs, and how can they be applied in practical systems? Give analysis of modern attacks on ZKP protocols.
Rust prevents data races at compile time through its ownership and borrowing rules. Explain how these rules apply in the case of concurrent programming with threads that share mutable state. Walk through an example where Rust forces the programmer to use synchronization primitives (e.g., Arc<Mutex>) and show how the type system ensures safety without runtime checks. Why is this approach both powerful and restrictive?
How can PivotTables in Excel (or similar tools) be effectively used to analyse student grade data? Give examples of insights they can reveal (e.g., distribution of marks, correlations with demographics, grade progression), and mention pitfalls to avoid.
Since 2020, what novel curriculum ideas have emerged in computer science education? Review key trends (e.g., integrating AI literacy, ethics-by-design, project-based learning at scale, hybrid/remote teaching practices) and discuss their promise and challenges.
What constitutes good practice in early intervention for student support in computer science education? Discuss how data (such as attendance, grades, or engagement metrics) can be used responsibly to identify at-risk students, and how interventions can balance effectiveness with respect for student autonomy and privacy.
You forgot a section :-)