Programmy: AI-Powered Programming Practice

Inspiration

We were inspired by the challenges that CSCE 120 students face when learning programming concepts. Many students struggle to find enough practice problems that match their skill level and provide immediate feedback. We wanted to create a tool that would make learning programming more interactive, personalized, and engaging.

What it does

Programmy is an AI-powered programming practice platform that:

  • Generates custom practice problems based on weekly course content
  • Provides both Multiple Choice (MCQ) and Free Response (FRQ) formats
  • Offers instant feedback and explanations
  • Adapts difficulty levels to match student comfort
  • Features an AI assistant that helps explain concepts and debug code
  • Tracks progress across different topics and difficulty levels

How we built it

  • Frontend: Next.js with TypeScript for a responsive, modern interface
  • Authentication: Auth0 for secure user management
  • AI Integration: AWS Bedrock for problem generation and answer verification
  • Styling: Tailwind CSS for clean, consistent design
  • Knowledge Base: AWS Knowledge Base for storing course content and examples
  • API: RESTful endpoints for problem generation and verification

Challenges we ran into

  1. Ensuring AI-generated problems were relevant and accurate
  2. Implementing real-time code verification and feedback
  3. Managing state between different problem types and difficulty levels
  4. Optimizing API calls to prevent rate limiting
  5. Balancing between automated assistance and learning objectives

Accomplishments that we're proud of

  • Created a seamless user experience from login to problem completion
  • Implemented intelligent problem generation that maintains educational value
  • Built a responsive design that works across all devices
  • Developed a scalable architecture that can support multiple courses
  • Achieved fast response times for problem generation and verification

What we learned

  • Advanced Next.js patterns for server-side and client-side rendering
  • Best practices for integrating AI services in educational applications
  • Techniques for managing complex application state
  • Strategies for handling rate limiting and API optimization
  • Methods for ensuring consistent AI output quality

What's next for Programmy

  • Expand support for additional CSCE courses
  • Add collaborative features for group study
  • Implement progress tracking and analytics
  • Create a problem submission system for instructors
  • Develop more sophisticated problem generation algorithms
  • Add support for more programming languages and formats

Built With

Share this project:

Updates