Skip to content
Computer Science · 12th Grade

Active learning ideas

Agile Development and Version Control

Active learning works for Agile and version control because both concepts involve hands-on practice with real tools and team dynamics. Students must experience the tension of merging code conflicts or the pressure of a sprint deadline to truly grasp why these practices exist, making abstract workflows concrete and memorable.

Common Core State StandardsCSTA: 3B-AP-18CSTA: 3B-AP-20
25–90 minPairs → Whole Class4 activities

Activity 01

Simulation Game90 min · Small Groups

Simulation Game: One-Week Sprint Cycle

Divide students into teams of four with a predefined backlog of small coding tasks. Teams hold a sprint planning meeting to assign tasks, run daily 5-minute standups for three class periods, and close with a sprint review and retrospective. The retrospective uses the Start/Stop/Continue format to surface what the team would change in the next sprint.

How do iterative development cycles improve the quality of the final product?

Facilitation TipDuring the One-Week Sprint Cycle, set a visible timer for daily stand-ups to reinforce the time-boxed nature of Agile rituals.

What to look forPresent students with a scenario where two developers have made conflicting changes to the same file in Git. Ask them to identify the type of conflict and outline the first three steps they would take to resolve it.

ApplyAnalyzeEvaluateCreateSocial AwarenessDecision-Making
Generate Complete Lesson

Activity 02

Collaborative Problem-Solving: Git Branching and Merge Conflict Resolution

Pairs each clone a shared repository and independently make changes to the same file, then attempt to merge their branches. The resulting conflict is intentional , students must read the conflict markers, understand what each side changed, and resolve it manually before the merge can complete. Debrief covers strategies for minimizing future conflicts through communication and branch conventions.

What are the challenges of merging code from multiple developers simultaneously?

Facilitation TipFor Git Branching and Merge Conflict Resolution, provide a shared repository with intentionally conflicting changes so students confront real merge scenarios on day one.

What to look forFacilitate a class discussion using the prompt: 'Imagine your team just completed a sprint. What are the key questions you should ask during the sprint retrospective to ensure continuous improvement, and why are these questions important for team health?'

ApplyAnalyzeEvaluateCreateRelationship SkillsDecision-MakingSelf-Management
Generate Complete Lesson

Activity 03

Project-Based Learning60 min · Small Groups

Role Rotation: Scrum Team Roles

Over two class periods, each team member takes a different Scrum role: Product Owner (maintains and prioritizes the backlog), Scrum Master (facilitates standups and removes blockers), and Developer. After each rotation, students write a two-sentence reflection on how the role's perspective differs from the others, building empathy across team functions.

Explain how team roles can be assigned to maximize the strengths of each member in an agile environment.

Facilitation TipIn Role Rotation, assign students to Scrum roles in a sequence that builds on prior experience, such as starting with Scrum Master before moving to Product Owner.

What to look forAfter students have submitted their Git commits for a sprint task, have them review a classmate's commit history. Ask them to assess: Is the commit message clear and descriptive? Are there too many changes in one commit? Provide one specific suggestion for improvement.

ApplyAnalyzeEvaluateCreateSelf-ManagementRelationship SkillsDecision-Making
Generate Complete Lesson

Activity 04

Think-Pair-Share25 min · Pairs

Think-Pair-Share: Commit Message Analysis

Share a real open-source project's Git commit history (appropriately selected for content). Students individually identify three commits with poor messages and three with excellent ones, noting what information the good ones preserve. Pairs discuss what a commit message policy for their team should include, then share recommendations with the class.

How do iterative development cycles improve the quality of the final product?

Facilitation TipUse the Think-Pair-Share for Commit Message Analysis to model professional standards: share an ambiguous commit message first, then guide students to rewrite it together using the lab’s repository as a reference.

What to look forPresent students with a scenario where two developers have made conflicting changes to the same file in Git. Ask them to identify the type of conflict and outline the first three steps they would take to resolve it.

UnderstandApplyAnalyzeSelf-AwarenessRelationship Skills
Generate Complete Lesson

A few notes on teaching this unit

Teach Agile as a discipline of constraints, not chaos. Start with the Scrum Guide’s roles and events but anchor them in the sprint simulation so students feel the weight of missed deadlines or poor estimates. For Git, treat version control as a time machine: every commit is a save point, and conflicts are puzzles to solve, not errors to avoid. Research shows that students retain workflows better when they debug real conflicts rather than watch a demo, so build time for trial and error into every lab. Avoid lecturing about Agile values; instead, let the sprint reveal why transparency and adaptation matter when the team’s velocity stalls.

Students will demonstrate understanding by completing a full sprint cycle, resolving Git conflicts manually, rotating through Scrum roles with intentional contributions, and evaluating commit messages for clarity and team alignment. Evidence of learning includes a functional Git history, reflective retrospective notes, and a team-approved definition of done.


Watch Out for These Misconceptions

  • During the One-Week Sprint Cycle, watch for students who treat the sprint as an open-ended free-for-all without clear goals or time-boxed tasks.

    Use the sprint’s definition of done as a non-negotiable anchor. Before coding begins, require each team to write their sprint goal on the whiteboard and refer back to it daily. If students drift, pause the sprint and ask, 'Does this task serve the sprint goal? If not, it waits for the next sprint.'

  • During Git Branching and Merge Conflict Resolution, watch for students who assume Git will always auto-resolve conflicts without manual input.

    Seed the repository with a conflict—perhaps two developers editing the same function—and let students experience the red error message firsthand. Guide them to use git diff to see the divergence, then manually edit the conflict markers to resolve it. Emphasize that resolving conflicts is a core part of the workflow, not a rare edge case.

  • During Role Rotation, watch for students who dismiss version control as unnecessary for individual or small-team work.

    After teams rotate roles, have each student commit their changes with a clear message. Then, simulate a lost file by reverting to a previous commit. Ask students to recover their work using git log and git checkout. The time saved (or lost) will make the value of version control tangible.


Methods used in this brief