Pair/Trio Programming Overview

The provided activities evaluates students in a Computer Science Project-based learning course. It focuses on planning, code, debugging and reviews to create a holistic profile of each student’s computer science and software engineering skills. It is best to work on these in pairs.


🐍 Snake Game Debugging Session

Transform pair/trio programming from theory to practice with an interactive Snake Game debugging challenge. This hands-on activity walks through the entire collaboration workflow while fixing real code issues.


Problem - Debug Snake Game

Your team has inherited a Snake Game with multiple needs that prevent could improve gameplay. Your mission: work as a pair/trio to identify, document, and improve these issues using proper Agile methodologies.

xSnake Game Improvements:

  • Background and Color could be improved
  • Apple is white and could be red
  • Score could look better
  • Game speed could have more steps

Activation - Learn How to Play Snake

Try debugging, to see where code is that activates features


Demonstration - Workflow with Mermaid Diagram

Follow this debugging workflow as a team:

flowchart TD
    A[🎮 Play Snake Game] --> B{Bug Found?}
    B -->|Yes| C[📝 Create GitHub Issue]
    B -->|No| D[✅ Game Working]
    
    C --> E[🏷️ Add to Kanban Board]
    E --> F[🎯 Set Breakpoints]
    F --> G[👥 Live Share Debug Session]
    
    G --> H[🔍 Step Through Code]
    H --> I[🛠️ Implement Fix]
    I --> J[🧪 Pair Test Solution]
    
    J --> K{Fix Works?}
    K -->|Yes| L[📤 Commit & Push]
    K -->|No| H
    
    L --> M[📋 Update Burndown]
    M --> N[🔄 Code Review]
    N --> O[✅ Close Issue]
    
    style A fill:#2d4a3d,color:#ffffff
    style G fill:#1e3a5f,color:#ffffff
    style J fill:#1a3a4a,color:#ffffff
    style O fill:#2d4a3d,color:#ffffff

Application - Debugging Practice Session

Step 1: Create Issues for Each Bug Type

Use this template for GitHub Issues:

Issue Template:

**Bug Title**: [Specific issue, e.g., "Snake passes through walls"]

**Description**: 
- What should happen: [Expected behavior]
- What actually happens: [Current broken behavior]
- Steps to reproduce: [How to trigger the bug]

**Acceptance Criteria**:
- [ ] [Specific fix requirement]
- [ ] [Test case to verify fix]

**Debug Strategy**:
- [ ] Set breakpoint at [specific function]
- [ ] Check [specific variable/condition]
- [ ] Test edge case: [specific scenario]

Step 2: Burndown Planning

Create a burndown list for your debugging session:

Bug Priority Issue Estimated Time Assigned To Status
🔴 High CHange Apple 30 min Pair A To Do
🟡 Medium Background Modification 20 min Pair B To Do
🟢 Low Score display update 15 min Trio To Do

Step 3: Live Share Debugging Protocol

Driver/Navigator Rotation:

  1. Driver (5 min): Controls keyboard, sets breakpoints
  2. Navigator (5 min): Guides debugging strategy, reads code
  3. Observer (5 min): Documents findings, updates issues

Debugging Checklist:

  • Set breakpoint at change location
  • Step through code with step or continue
  • Check variable values at each step
  • Identify the area to change
  • Discuss fix with team before implementing
  • Test change immediately after implementation

Snake Game Debugging Evaluation Table

Track your team’s performance through the debugging session:

Skill Mastered (Y/N) Rank (1-4) Ratio Notes/Evidence
Planning        
GitHub Issues [ ] 0 0.0 Created clear bug reports with reproduction steps
Kanban Board [ ] 0 0.0 Moved issues through debugging workflow stages
Burndown Lists [ ] 0 0.0 Tracked time estimates vs actual debugging time
Code        
Live Share [ ] 0 0.0 Collaborated effectively during debugging sessions
Commits [ ] 0 0.0 Made focused commits for each bug fix
Branch Mgmt [ ] 0 0.0 Created feature branches for each bug fix
Forks/PRs [ ] 0 0.0 Submitted PRs with clear fix descriptions
Code Review        
Comments [ ] 0 0.0 Left helpful debugging notes in code
Pair Testing [ ] 0 0.0 Tested each fix thoroughly with teammate
Debugging [ ] 0 0.0 Used breakpoints and step-through effectively
Code Review [ ] 0 0.0 Reviewed teammate’s fixes before merging
Total 0 0 0.0  
Average   0.0 0.0  

Reflection Questions

After completing the Snake Game debugging session:

  1. Which debugging technique was most effective for your team?
  2. How did the driver/navigator rotation impact your problem-solving?
  3. What type of bug was hardest to identify and why?
  4. How did using breakpoints change your debugging approach?
  5. What would you do differently in your next debugging session?