java-oop-assignment
Completes Java OOP university assignments from PDF specifications with minimal implementation. Use when user provides a PDF assignment file or mentions completing a Java/FOP/OOP homework exercise. Focuses on writing the least code necessary to satisfy requirements.
When & Why to Use This Skill
This Claude skill is a specialized Java OOP assignment solver designed to transform PDF specifications into clean, minimal, and functional code. It streamlines the university homework process by extracting requirements from class diagrams, implementing core Object-Oriented Programming (OOP) principles, and ensuring compatibility with Gradle build systems while adhering to KISS and YAGNI philosophies.
Use Cases
- Automated Homework Completion: Quickly generate Java code from PDF assignment files, including class structures, interfaces, and method implementations based on specific academic requirements.
- Class Diagram Translation: Accurately interpret visual class diagrams and relationship arrows (extends/implements) from academic documents to create valid Java boilerplate and logic.
- Template Implementation: Automatically replace 'TODO' markers and 'crash()' placeholder calls in provided student codebases with functional logic that satisfies assignment criteria.
- Modern Java Refactoring: Enhance code quality and conciseness using modern Java idioms such as switch expressions, pattern matching, and records to meet high-standard implementation goals.
- Build & Verification Support: Assist in debugging Gradle build failures and verifying that the generated code output matches the examples provided in the assignment specification.
| name | java-oop-assignment |
|---|---|
| description | Completes Java OOP university assignments from PDF specifications with minimal implementation. Use when user provides a PDF assignment file or mentions completing a Java/FOP/OOP homework exercise. Focuses on writing the least code necessary to satisfy requirements. |
Java OOP Assignment Solver
Philosophy
KISS + YAGNI: Write the minimum code to pass. Less code = less to review = fewer bugs.
Workflow
Phase 1: Understand
- Read the PDF - Extract all requirements, class diagrams, method signatures
- Explore codebase - Find existing templates, enums, helper classes marked
@DoNotTouch - Identify tasks - List each numbered requirement (H6.1, H6.2, etc.)
Phase 2: Plan
Create a todo list with:
- Files to CREATE (interfaces, enums, classes)
- Files to MODIFY (implement methods, add
implements) - Implementation order (dependencies first)
Phase 3: Implement
For each task:
- Interfaces/Enums first - No dependencies
- Abstract classes - Base functionality
- Concrete classes - Extend/implement
- Modify existing - Add interface implementations, fill in
TODOmethods - Remove crash() calls - Replace
crash("H6.X")with actual implementation
Phase 4: Verify
- Build with Gradle:
./gradlew compileJava - Run main if playground exists:
./gradlew run - Check output matches PDF examples
Implementation Rules
Minimal Code
- No extra comments unless logic is unclear
- No extra validation unless specified
- No helper methods unless reused 3+ times
- Match exact signatures from PDF (visibility, types, names)
PDF Reading Tips
- Class diagrams: Solid arrow = extends, dashed arrow = implements
- "protected": Accessible to subclasses
- "private final": Immutable, set in constructor
- Mandatory requirements in boxes: Must follow exactly
Modern Java Idioms
Use the following for code conciseness, elegance and brevity.
- Switch expressions (
->) - returns value, no break needed, fewer lines - Pattern matching instanceof - cast + variable binding in one check
- var - type inference for locals, less redundancy
- Ternary operator - one-liner conditionals over if-else blocks
- Math.min/max - bounds checking without branching
- Records - immutable data classes in one line (if allowed)
- Text blocks (
""") - multi-line strings without concatenation
Gradle Notes
- If build fails with version error, try:
JAVA_HOME=/path/to/jdk21 ./gradlew build @StudentImplementationRequired("H6.X")marks methods to implement- Remove
crash("H6.X")calls when implementing
Checklist
- All
TODOcomments addressed - All
crash()calls removed - All interfaces/classes from diagram created
- Build succeeds
- Run output matches PDF examples (if playground provided)