
When you put third graders in front of a computer screen to solve a logic puzzle or build a digital game, the first thing they often do is grab the mouse and push everyone else away. It is an instinct to want total control over the keyboard and the outcome. However, in our third grade computer science curriculum, we want to move them away from this solo-pilot mentality and toward something that actually works in the real world. Collaborative work is not just about sharing the space; it is about delegating responsibilities so that a complex task becomes a shared success rather than a battle for the cursor.
This is where Working Together on Computer Projects comes in. It is a specific, practical lesson designed to introduce 3rd grade students to the idea that a software development team is a group of people with different skills who work together to create complex digital products. Teachers across California districts including San Diego Unified, Poway Unified, San Luis Coastal Unified, and Simi Valley Unified are using these same concepts to help students grasp the California-adopted standard CA.CS.3-5.AP.18.
What the standard demands in practice
The standard CA.CS.3-5.AP.18 asks students to perform different roles when collaborating with peers during the design, implementation, and review stages of program development. When you look at that closely, it is asking for three very different cognitive tasks. First, the design stage requires them to step away from the code and think about the logic. Second, the implementation stage requires them to translate that logic into a syntax that the computer actually understands. Third, the review stage requires them to step back and act as a critic, looking for flaws that might cause the game to freeze or fail. These are not small requests for an eight-year-old.

Most students find the design stage the hardest because they want to rush to the building. The lesson addresses this by teaching them the role of the Designer. This person uses paper to sketch the logic of the program before any code is written. This helps the team see the plan clearly before they start. When we force them to draw the maze path on paper first, we are forcing them to think before they act. The Coder role then picks up the plans and writes the computer instructions to turn a plan into a working program. Finally, the Tester plays or checks the program to find mistakes and make sure it works correctly. If you have a group of four, you might have two people working as Testers or splitting the design work, but the important thing is that nobody is sitting idle.
Designing, building, and reviewing as a team
The lesson uses the example of building a digital maze game to illustrate these roles. It is a great choice because mazes are intuitive, yet they break easily if your logic is flawed. The material introduces the concept of a loop, which is a set of instructions that repeats, and warns students that if the loop does not stop, the game will freeze. This provides a natural, high-stakes moment for the Tester to step in. If the Tester finds that the loop never ends, the Coder has to go back and fix the instructions.
This cycle of design, build, and test is how professional software companies operate. The lesson makes a point to tell students that in professional settings, these roles are essential for managing large-scale projects that one person could not complete alone. It is a simple truth, but it changes how they view their classmates. Instead of seeing a teammate as someone who gets in the way of their coding, they see them as someone who has a specialized job that is necessary for the project to be finished on time. I have found that when you assign these roles explicitly, the arguing over who gets to hold the mouse drops off significantly.
Helping students through the process
You can use this 3rd grade shared research writing lesson, or rather, computer science lesson, as a whole-class assignment or as a perfect intervention tool for a student who missed the week we focused on algorithm basics. It is also a solid option for a substitute day because the role-based structure provides a ready-made classroom management system. If the sub can define the roles for the students at the start of the period, the students will naturally monitor each other.

A limitation I have noticed is that students will occasionally try to rotate roles mid-stream, which can lead to confusion about who owns which piece of the project. I recommend keeping the roles static for the duration of one specific assignment. Let them be the Designer for one full maze iteration. Then, if you have another project, they can trade jobs. This way, they actually build competence in the specific tasks of that role rather than just playing musical chairs with the laptop. It is a small change that keeps the frustration down and the productivity up. They need the time to practice the thinking involved in sketching a layout or finding bugs in a sequence of code.
By the time they finish, they should understand that a computer program is not just lines of text, but a manifestation of planning and testing. When they get to the review stage, they are not just looking for bugs, they are looking for where their team’s plan diverged from the reality of the game code. That is high-level thinking for a third grader, and it is exactly what we want them to do.



