← Back to Home

Sprint Challenge

Setup Instructions

  1. Fork and clone the sprint challenge repository
  2. Complete the challenge requirements
  3. Submit your work through the Portal

Challenge Overview

This sprint challenge will test your understanding of the key concepts covered in this sprint, including:

The challenge will consist of coding tasks and theoretical questions that will assess your knowledge of these topics. Make sure to review all modules before beginning the challenge.

Challenge Topics in Detail

Stacks and Queues

You'll be expected to demonstrate understanding of:

  • Stack operations (push, pop) and their time complexity
  • Queue operations (add/offer, remove/poll) and their time complexity
  • LIFO vs FIFO behavior and appropriate use cases
  • Implementation using Java's collection classes
  • Solving problems that require stack or queue data structures
// Example challenge task:
// Implement a method that determines if a string of brackets is balanced
public boolean isBalanced(String brackets) {
    Stack<Character> stack = new Stack<>();
    // Your implementation here
}

Immutability and Final

You'll be expected to demonstrate understanding of:

  • The final keyword's effect on variables, methods, and classes
  • Creating immutable classes with proper defensive copying
  • Distinguishing between immutable references and immutable objects
  • Benefits of immutability in concurrent programming
// Example challenge task:
// Identify issues with this immutable class implementation
public final class Person {
    private final String name;
    private final List<String> addresses;
    
    // Constructor and methods
    // Your analysis here
}

In-Memory Caching

You'll be expected to demonstrate understanding of:

  • Cache hit, miss, and eviction scenarios
  • Implementing caching to improve performance
  • TTL and cache size considerations
  • Eviction policies and their appropriate use cases
// Example challenge task:
// Implement a method that enhances this function with caching
public DataObject fetchExpensiveData(String key) {
    // Expensive operation that could benefit from caching
    // Your implementation here
}

Computer Hardware and OS

You'll be expected to demonstrate understanding of:

  • Core hardware components and their interactions
  • How the operating system manages resources
  • Memory hierarchy and its impact on performance
  • Process and thread management

Preparation Tips

Resources

Challenge Repository

Access the sprint challenge repository to get started with your assessment.

Submission Guidelines

Important points to remember:

  • Complete all required tasks
  • Follow coding best practices
  • Include appropriate documentation
  • Submit before the deadline