Skip to content
Computer Science · 11th Grade

Active learning ideas

Maintenance and Support

Active learning works well for maintenance and support because this topic requires students to engage with the messy, iterative reality of software rather than idealized development. Students need hands-on practice analyzing incomplete systems, making judgment calls with imperfect information, and experiencing the consequences of their decisions.

Common Core State StandardsCSTA: 3B-AP-22
25–40 minPairs → Whole Class4 activities

Activity 01

Role Play40 min · Small Groups

Role Play: Maintenance Triage

Groups receive a backlog of ten fictional bug reports and feature requests for a deployed app. Teams must categorize each item (corrective, adaptive, or perfective), assign a priority, and estimate relative effort. Groups then compare their triage decisions and defend their prioritization to the class.

Explain the different types of software maintenance (e.g., corrective, adaptive, perfective).

Facilitation TipDuring the Maintenance Triage role play, provide students with sticky notes in three colors to physically sort scenarios into corrective, adaptive, or perfective maintenance categories.

What to look forPresent students with three brief descriptions of software issues. Ask them to identify which type of maintenance (corrective, adaptive, or perfective) each scenario represents and briefly explain their reasoning.

ApplyAnalyzeEvaluateSocial AwarenessSelf-Awareness
Generate Complete Lesson

Activity 02

Think-Pair-Share25 min · Pairs

Think-Pair-Share: Legacy Code Analysis

Students individually read a short, unfamiliar code snippet and list everything they would need to understand before safely modifying it: dependencies, assumptions, side effects, and undocumented behavior. Partners compare lists and identify the most critical unknowns before sharing with the class.

Analyze the challenges of long-term software maintenance and support.

Facilitation TipFor Legacy Code Analysis, give students 10 minutes to silently annotate a provided code snippet with questions and concerns before discussing in pairs.

What to look forPose the question: 'Imagine your capstone project software is now five years old. What are three specific challenges you might face in keeping it running smoothly, and how would you address them?' Facilitate a class discussion on their responses.

UnderstandApplyAnalyzeSelf-AwarenessRelationship Skills
Generate Complete Lesson

Activity 03

Structured Academic Controversy: Patch vs. Rewrite

Present a scenario: a five-year-old system that works but is difficult to maintain. Pairs argue for incremental patching, then switch to argue for a full rewrite, before synthesizing a recommendation. Debrief focuses on what information would change the decision.

Design a basic support plan for a deployed software application.

Facilitation TipIn the Patch vs. Rewrite structured controversy, assign roles explicitly and require students to argue from the assigned perspective for two minutes before switching.

What to look forStudents draft a basic support plan for a simple application they developed. They then exchange plans with a partner and provide feedback using a checklist: Does the plan include contact information? Are issue severity levels defined? Is there a clear escalation path? Partners sign off on feedback provided.

AnalyzeEvaluateCreateSocial AwarenessRelationship Skills
Generate Complete Lesson

Activity 04

Gallery Walk30 min · Small Groups

Gallery Walk: Support Plan Designs

Groups draft a basic support plan for their capstone project covering bug reporting, update frequency, dependency monitoring, and end-of-life. Plans are posted and peers leave sticky notes identifying gaps or risks the team did not consider.

Explain the different types of software maintenance (e.g., corrective, adaptive, perfective).

Facilitation TipDuring the Support Plan Gallery Walk, post guiding questions on the walls and ask students to add sticky-note comments to each plan as they circulate.

What to look forPresent students with three brief descriptions of software issues. Ask them to identify which type of maintenance (corrective, adaptive, or perfective) each scenario represents and briefly explain their reasoning.

UnderstandApplyAnalyzeCreateRelationship SkillsSocial Awareness
Generate Complete Lesson

A few notes on teaching this unit

Teachers should treat maintenance as a mindset shift rather than a technical skill. Avoid presenting maintenance as a lesser form of development. Instead, emphasize the problem-solving nature of working with legacy systems and the importance of documentation as a communication tool. Research shows that students grasp maintenance concepts better when they experience the frustration of unclear code or broken dependencies firsthand.

Successful learning looks like students recognizing maintenance as an ongoing, skilled process rather than a one-time task, and confidently categorizing maintenance needs and proposing solutions. They should articulate why maintenance requires different skills than writing new code, and design basic support frameworks that address real-world constraints.


Watch Out for These Misconceptions

  • During Role Play: Maintenance Triage, watch for students defaulting to 'bug fixing' as the only maintenance type. Redirect them to consider how operating system updates or new user requests change software needs.

    After distributing scenarios, ask students to identify which maintenance type each represents before they begin role-playing, and require them to justify their choices using the scenario details.

  • During Think-Pair-Share: Legacy Code Analysis, watch for students assuming well-written code requires no maintenance. Redirect them to examine dependencies and environment changes.

    Provide student pairs with a legacy code snippet that includes hardcoded file paths or deprecated API calls, and ask them to identify what would break if the operating system or libraries were updated.

  • During Structured Academic Controversy: Patch vs. Rewrite, watch for students dismissing patching as inferior work. Redirect them to consider the risks and costs of each approach.

    Require students to calculate estimated hours for both patching and rewriting during their debate, using provided scenarios that include user base size and criticality of the feature.


Methods used in this brief