Tri 2 Sprint 1 - CSA Reflection


Growth Journey: Then vs Now

Beginning of Year (Tri 1 Start)

Technical Skills:

  • Minimal JavaScript exposure
  • No Spring backend experience

Now (Tri 1 End)

Technical Skills:

  • Full-stack development (Spring + Flask backends, frontend integration)
  • Advanced OOP implementation
  • API integration (Gemini AI) in co-op with APIs
  • Database management
  • Complex Git workflows (branching, PR management)

Key Learning Milestones

Sprint 1: Tools & Setup

  • Configured VS Code for full-stack development (Spring and Flask)

Sprint 2: JavaScript/Python Fundamentals

  • Built interactive frontend components
  • Learned how to gamfiy boring lessons

Sprint 3: Profile & LinkedIn Quest

  • Made analytics page
  • Incorporated AI into page which helps users

Technical Accomplishments

1. Admin/Analytics Platform Development

Module 3 Frontend Page

Features Implemented:

  • Interactive dropdown table for question navigation
  • Dynamic data loading from backend
  • CSV download functionality for analytics export
  • Responsive design for multiple screen sizes

Technical Stack:

  • JavaScript
  • Fetch API for backend communication

Personality Type: Intrascoper - Independent feature development requiring self-directed problem-solving

IMAGE PLACEHOLDER 2: Module 3 interactive dropdown table interface

IMAGE PLACEHOLDER 3: CSV download functionality demonstration

Gemini AI Integration

Active Feedback System:

  • Real-time response analysis
  • Context-aware suggestions
  • Error detection and correction prompts

2 Gemini Guidebots:

  • Bot 1: Student question assistance
  • Bot 2: Homework help and concept clarification
  • Custom prompt engineering for educational context

Grading Backend Development:

  • Collaborated on Spring backend endpoints
  • Implemented question type detection (MCQ vs FRQ)
  • Created prompt templates for consistent grading
  • Built error handling for API failures

Technical Challenges Solved:

  • API rate limiting management
  • Response parsing and formatting
  • Integration with existing database schema
  • Concatenating prompts

Personality Type: Closer - Ensured features were complete and production-ready

IMAGE PLACEHOLDER 4: Gemini chatbot interface with sample conversation

IMAGE PLACEHOLDER 5: Grading backend flow diagram showing submission → AI → grade process


2. Brick Breaker Game Development

Powerup System (Advanced OOP)

Implementation:

  • Inheritance hierarchy for different powerup types
  • Encapsulation of powerup behaviors
  • Polymorphic collision detection

Code Structure:

Powerup (abstract base class)
├── SpeedBoost
├── ExtraLife
├── MultiBall
└── PaddleExtend

OOP Principles Applied:

  • Encapsulation: Private state management for each powerup
  • Inheritance: Base class defines common behavior
  • Polymorphism: Different powerups with unified interface

Bar System (Progress Tracking)

Features:

  • Real-time score updates
  • More Complex OOP Game
  • Gamify Lesson
  • Increased Difficulties

Personality Type: Intrascoper - Self-directed technical deep dive into game mechanics

IMAGE PLACEHOLDER 6: Brick Breaker game showing powerups active

IMAGE PLACEHOLDER 7: Bar system UI elements - score, lives, level indicators


3. Advanced OOP Lesson Creation

Content Developed:

  • 4 comprehensive lesson modules
  • Interactive code examples
  • Practice exercises with solutions

Topics Covered:

  • Abstract classes and interfaces
  • Design patterns (Factory, Observer)
  • Composition vs Inheritance
  • SOLID principles introduction

Personality Type: Planner - Structured content organization and curriculum alignment

Image

There is more but I didn’t want it to be unreadable.


4. Lesson Organization & Curriculum Management

Content Migration:

  • Consolidated Units 1-10 into streamlined Units 1-4
  • Aligned with AP CSA exam topics
  • Removed redundant material
  • Added missing concept coverage

Game-Hack Integration:

  • Linked 8 games to corresponding unit hacks
  • Created documentation explaining connections
  • Added demo videos for each integration
  • Ensured accessibility from main CSA page

Personality Type: Scrummer - Collaboration focus, making resources useful for entire team

Image


Night at the Museum Experience

What We Demonstrated

Live Admin Dashboard:

  • Real-time analytics display
  • Interactive question table with filtering
  • CSV export demonstration
  • Student submission tracking

Gemini AI Guidebots:

  • Live Q&A with visitors asking questions
  • Showed autograding capabilities
  • Demonstrated feedback generation
  • Explained prompt engineering approach

We didn’t have any good pictures of our group. But we did get feedback:

Memorable Comments & Feedback

  • Somebody told us that ai integration was popular in bigger companies
  • the grading system was cool and that it could be incorporated into real classrooms

What Went Well

  • Live demo with no major bugs
  • Clear explanations for non-technical audience
  • Smooth team coordination
  • High visitor engagement with follow-up questions

Key Takeaway

When a teacher asked about actual classroom implementation - validation that we built something genuinely useful, not just a class project.


Analytics & Contribution Metrics

GitHub Activity

Overall GitHub Stats (Past Year):

  • Total Commits: 463
  • Total PRs: 21
  • Total Issues: 94
  • Repositories Contributed To: 10
  • Stars Earned: 5

This Sprint (Tri 2 Sprint 1):

  • Commits: 77
  • Pull Requests: 13 (merged)
  • Issues Created: 93
  • Peak Activity: October-November 2024
  • Average per Week: ~6-7 commits

Pull Requests:

  • This Sprint: 13 merged
  • Total (Past Year): 21

Issues:

  • This Sprint: 93 created, 67 closed
  • Total (Past Year): 94
  • Open: 26
  • Categories: Features (45), Documentation (28), Bugs (12), Maintenance (8)

Personality Types: Closer (consistent contributions) + Planner (systematic task tracking)

Image: fa4bca35-d225-4f45-bbb0-12a79429733a

Image: 2f6927c8-c49e-4634-88c8-2ce251cf5dc6

Branch Management

Active Branches (3):

  1. Spring Backend: Gemini grading API endpoints, database schema updates, authentication
  2. Flask Backend: Analytics data processing, CSV generation, question management routes
  3. Pages Frontend: Module 3 UI components, dashboard improvements, responsive design

Merge Strategy: Feature branches → Dev → Main
Code Review: Required for all merges

Time Investment - Curators

Estimated Hours: 45-50 hours total

Breakdown:

  • Coding: 60% (27-30 hrs)
  • Documentation: 20% (9-10 hrs)
  • Meetings/Planning: 10% (4-5 hrs)
  • Testing/Debugging: 10% (4-5 hrs)

MCQ Review & Corrections

Score Overview

Final Score: 22/42 (52.4%)

Corrections

Question Topic Your Answer Correct Answer Why You Were Wrong Key Concept What to Remember
Q4 Arithmetic Operations A (37) C (26) Forgot order of operations - multiplication happens before addition in first line, modulus happens before addition in second line Operator precedence: * and % before + first = 5 + 10 * 2 = 25 (not 30), then second = 25 + 25 % 2 = 26 (not 37)
Q7 String Methods - substring A B Didn’t correctly calculate substring indices substring(start, end) goes from index start to end-1 substring(4) = “HI” (index 4 to end), substring(0,2) = “DE” (index 0-1). Result: “HI” + “DE” = “HIDE”
Q8 Type Casting & Division B (0.0, 0.4) C (0.4, 0.0) Mixed up which operation casts first Casting happens BEFORE the operation when using (type) y = (int) w / x → casts w to 2, then divides: 2.0/5.0 = 0.4. z = (int)(w/x) → divides first (0.4), then casts to 0
Q10 Conditional Logic - if/else B A Incorrectly traced through nested if-else logic Else-if chain evaluation order Score 250: first if is false (250 ≤ 250), goes to else-if which is true (250 ≤ 500), assigns “Try again”
Q11 Dot Operator & Methods B A Confused method call syntax with object Dot operator calls instance methods on objects Correct: myPair.getX() - call method on object. Wrong: myPair.getX(x) or myPair.x
Q15 String Methods in Loops B A Didn’t trace loop correctly with substring operations substring(j) returns from index j to end, indexOf() finds first occurrence Loop prints each occurrence of “o” with following characters: “ookout okout out”
Q21 Nested For Loops C B Got inner loop bounds wrong Inner loop must iterate based on outer loop variable Need k = 0; k <= j; k++ so that iteration 0 prints 1 value, iteration 1 prints 2 values, etc.
Q24 ArrayList add/set Methods D B Confused add(index, value) with set(index, value) behavior add(index, value) inserts at index, set(index, value) replaces add(0, 300) inserts at beginning. set(2, 400) replaces index 2. Result: [300, 100, 400, 500]
Q26 While Loop Logic B A Didn’t correctly identify loop termination condition Loop continues while condition is TRUE Current code uses n > 0 but should use n / 10 > 0 to stop when leftmost digit is reached
Q30 Nested Conditionals A D Didn’t properly trace nested if-else with multiple conditions Use && for compound conditions, trace each branch carefully Need (a <= b && a <= c) to check if a is minimum, then nested check for b vs c
Q32 2D Array Traversal A B Got loop iteration direction backwards Traverse 2D arrays right-to-left, top-to-bottom for this pattern Outer loop: rows 0→1 (forward). Inner loop: columns from mat[0].length - 1 down to 0 (backward)
Q34 ArrayList vs Enhanced For Loop D B Used wrong method to build ArrayList from iteration Enhanced for-each loops can’t modify/build collections easily Need traditional for loop with index to add elements: for (String s : oldList) { newList.add(s); }
Q35 Array Sorting Logic C D Misread return value logic Method returns boolean based on sorted order check Returns true if sorted from greatest to least (each element ≤ previous), false otherwise
Q36 2D Array Traversal & Assignment D B Confused row/column traversal order Outer loop controls rows, inner loop controls columns Code traverses rows forward (r = 0→0), columns backward (c from length-1 down), checks diagonal
Q38 Scanner & ArrayList Building B C Didn’t use correct Scanner method to split strings split() is a String method, Scanner uses next() Use String temp = sc.next().split(",") to read and split each line, then add temp[0] to first list and temp[1] to second
Q41 Array Traversal & String Comparison C (4) D (5) Off-by-one error in loop logic Loop iterates through colors array comparing lengths The loop finds the first pair of adjacent strings with equal length. “black” and “yellow” both have length 6, at indices 3 and 4, so k=4 which is returned as result=5
Q42 While to For Loop Conversion A D Didn’t account for when loop variable is incremented While loop increments j twice per iteration; for loop only increments once in header While loop: j++ (in body) then sum += j, so adds 1,3,5. For loop equivalent: start at 1, increment by 2: for (int j = 1; j <= 6; j+=2) with just sum += j

Study Plan Moving Forward

Immediate Focus (Next 2 Weeks):

  1. Daily: 5 MCQ practice questions from weak units
  2. 3x/week: Code one problem from each weak area
  3. Weekly: Full practice exam under timed conditions
  4. Weekly: Review all mistakes with corrections

Resources:

  • CollegeBoard question bank
  • CodingBat practice problems
  • AP CSA review videos
  • Team study sessions (Fridays)

Reflection on Approach

What Worked:

  • Immediate corrections while material was fresh
  • Coding similar problems reinforced concepts
  • Pattern identification focused study on actual weaknesses

What Didn’t Work:

  • Rushing through exam without checking work
  • Skipping “easy” review led to careless errors
  • Not enough AP-specific practice questions

Adjusted Strategy:

  1. Time management: 2 minutes per question, flag uncertainties
  2. Double-check: Review flagged questions if time permits
  3. Read carefully: Many errors from misreading questions
  4. Eliminate answers: Use process of elimination systematically

Future Goals & Vision

Next Sprint Project Goals

1. Time-Based Grading Implementation

Features:

  • Add deadline tracking with countdown timers
  • Late submission penalties
  • Timezone handling for accurate timestamps

Technical Approach:

  • Backend: Add timestamp fields to submission schema
  • Frontend: Display countdown timers on assignments
  • Logic: Calculate grade reduction based on lateness rules

2. Question Type Standardization

Goal: Uniform format for MCQ and FRQ questions to reduce multiple Gemini prompts

Technical Approach:

  • Design JSON schema for all question types
  • Create migration script for existing questions
  • Update frontend to handle unified format
  • Refactor Gemini prompts for consistency

Challenges:

  • Backward compatibility with existing questions
  • Maintaining flexibility for different question styles
  • Testing across all question variations

3. Enhanced Analytics Visualization

Features:

  • Line charts for grade trends over time
  • Bar charts for question difficulty analysis
  • Heatmaps for topic mastery
  • Exportable reports (PDF/CSV)

Libraries to Learn:

  • Chart.js or D3.js for visualizations
  • jsPDF for report generation

Learning Goals in Computer Science

School System Integration

Inspiration: Bathroom pass QR code system that scans Synergy to check students in/out

Vision: Extend autograding platform to interface with school infrastructure

Specific Ideas:

  • Synergy Integration: Pull student rosters automatically
  • Grade Export: Push grades to gradebook systems
  • SSO Authentication: Use school login credentials
  • API Development: Build endpoints for other tools to connect

Why This Excites Me:
Turning a class project into actual school infrastructure. Building something that could be used by thousands of students daily.

Learning Required:

  • OAuth 2.0 and SSO protocols
  • Enterprise API design patterns
  • Database scaling for large user bases
  • Security best practices for student data (FERPA compliance)

Physical Computing Integration

Inspiration: Bathroom pass hardware device with QR scanner

Vision: Create tangible objects that connect to digital systems

Project Ideas:

  • Smart Assignment Tracker: Physical device showing pending work
  • Grade Display Board: LED board updating with class statistics
  • Check-In System: RFID/QR scanner for attendance integrated with analytics
  • Progress Tokens: Physical badges earned through platform achievements

Hardware to Explore:

  • Raspberry Pi for main computing
  • Arduino for simple sensors/displays
  • RFID/NFC readers for student ID scanning
  • E-ink displays for battery efficiency
  • LED matrices for visual feedback

Why This Excites Me:
Bridging digital and physical worlds. Making abstract data (grades, progress) into something you can touch and see. Similar to bathroom pass concept but for educational tracking.

Advanced AI/ML Applications

Building on Gemini Experience:

What I Want to Learn:

  • Fine-tuning models: Train custom AI for educational context
  • Prompt engineering at scale: Optimize for consistency across thousands of grading operations
  • Bias detection: Ensure fair grading across demographics
  • Model evaluation: Quantify AI grading accuracy vs human graders

Potential Projects:

  • Custom model trained on AP CSA FRQs
  • Automated rubric generation from sample answers
  • Student writing style analysis for plagiarism detection
  • Personalized learning path recommendations based on performance

Why This Matters:
AI is revolutionizing education. Want to be building these tools, not just using them.


If We Had More Time This Sprint

Features I Wanted to Implement:

  1. Time-Based Grading - Deadline tracking with automatic late penalties
  2. Uniform Question Format - Standardize MCQ/FRQ to reduce Gemini prompt complexity
  3. Plagiarism Detection - Compare submissions against each other and online sources
  4. Collaborative Grading - Multiple graders with consensus-based final grades
  5. Student Analytics Dashboard - Personal progress tracking with study recommendations
  6. Mobile App - Native iOS/Android apps with push notifications
    • I also have a bit of experience with making mobile apps

Key Takeaways

What This Sprint Taught Me

Technical Growth:

  • full-stack development with AI integration

Collaboration:

  • admin/analytics required coordination
  • Code reviews improved quality

Next Sprint Goal

Time-based grading and standardized question formats.