Skip to content

Latest commit

 

History

History
118 lines (90 loc) · 4.92 KB

File metadata and controls

118 lines (90 loc) · 4.92 KB

AI Usage Documentation

Overview

This project utilized Claude (Anthropic) as an AI coding assistant throughout development.

Tools Used

  • Primary Tool: Claude 3.5 Sonnet (via claude.ai)
  • Usage Period: February - March 2024
  • Extent: Extensive assistance across all phases

Tasks Where AI Was Used

Week 4-5: Core Development

  • JavaDoc Documentation: Claude helped generate comprehensive JavaDoc comments following SE-EDU standards
  • Code Refactoring: Assisted with OOP refactoring (A-MoreOOP) - extracting Ui, Storage, Parser, TaskList classes
  • Error Handling: Helped implement JarvisException and error handling patterns
  • Git Workflow: Guidance on branch creation, PR workflow, and merge conflict resolution

Week 6: Advanced Features

  • Assertions: Claude provided examples and best practices for using Java assertions (A-Assertions)
  • Streams API: Helped refactor findTasks() method to use Java 8 Streams (A-Streams)
  • GitHub Actions CI: Generated the complete gradle.yml workflow file (A-CI)
  • Testing: Created JUnit test templates and helped fix test location issues (A-UnitTesting)

Week 7: Polish and Enhancement

  • JavaFX GUI: Major assistance with Main.java and Launcher.java setup (Level-10)
  • GUI Styling: Claude provided CSS-style JavaFX styling for better UI (A-BetterGui)
  • Personality: Helped craft Jarvis personality with Iron Man AI assistant tone (A-Personality)
  • Error Handling: Enhanced validation and error messages with examples (A-MoreErrorHandling)
  • Additional Testing: Generated ParserTest.java and TodoTest.java (A-MoreTesting)
  • Documentation: Created comprehensive user guide in docs/README.md (A-UserGuide)

What Worked Well

Code Generation

  • Claude generated syntactically correct Java code that compiled on first try in most cases
  • JavaDoc comments were comprehensive and followed proper formatting

Problem Solving

  • Excellent at debugging compilation errors and identifying issues
  • Helped fix file location problems (tests in wrong directory)
  • Resolved Git workflow issues (commits on wrong branch, merge conflicts)

Best Practices

  • Enforced coding standards consistently (SE-EDU Java conventions)
  • Suggested proper error handling patterns
  • Provided guidance on Git commit message formats

What Didn't Work / Challenges

File Organization

  • Initially created test files in src/main/java instead of src/test/java multiple times
  • Required manual intervention to move files to correct locations

Build Configuration

  • Some trial and error with JavaFX setup in build.gradle
  • JAR file size issues required gradle configuration adjustments

Iteration Required

  • GUI styling took several iterations to get right
  • Some error handling edge cases needed refinement after testing

Time Saved

Estimated Time Savings

  • Without AI: ~40-50 hours estimated for complete iP
  • With AI: ~15-20 hours actual time spent
  • Time Saved: ~25-30 hours (60-65% reduction)

Breakdown

  • JavaDoc generation: ~5 hours saved (would have been tedious manual work)
  • JavaFX setup: ~8 hours saved (learning curve significantly reduced)
  • Testing: ~4 hours saved (test templates and patterns provided)
  • Debugging: ~6 hours saved (quick error identification and fixes)
  • Documentation: ~3 hours saved (user guide structure and content)

Observations

Productivity Increase

AI assistance allowed me to focus on understanding concepts rather than syntax details. I could iterate faster and try different approaches.

Learning Enhancement

Rather than replacing learning, Claude helped me learn better by:

  • Explaining why certain patterns are used
  • Showing best practices in context
  • Providing immediate feedback on approaches

Quality Improvement

Code quality was higher with AI assistance because:

  • Consistent adherence to coding standards
  • More comprehensive error handling
  • Better documentation throughout

Recommendations

For Future Use

  1. Always verify AI-generated code compiles before committing
  2. Test thoroughly - AI may not catch all edge cases
  3. Understand the code rather than blindly copying
  4. Use AI for learning, not just code generation

When AI is Most Helpful

  • Boilerplate code (getters, setters, constructors)
  • Documentation (JavaDoc, user guides)
  • Testing (generating test cases)
  • Configuration files (build.gradle, CI workflows)

When to Code Manually

  • Core business logic specific to your application
  • Algorithm design and optimization
  • Creative problem solving
  • Initial architecture decisions

Conclusion

Using Claude as an AI coding assistant significantly accelerated development while maintaining high code quality. The key was treating AI as a collaborative tool rather than a replacement for thinking. I learned more by being able to iterate quickly and ask "why" questions about the generated code.

Overall Assessment: Highly valuable tool that increased both productivity and learning outcomes.