Collaboration and coding are two skills a successful programmer seamlessly merges together to design high quality programs. Programming requires teamwork. In fact, to build and deploy a program involves many people that have a diverse skill set.
Collaboration and Coding Prepares Students for the Workplace
To get student ready for STEM careers, teachers should include in their programming courses opportunities for students to work together. In general, collaboration can take many forms including share and play, game test, code swap, paired programming, and coding presentations. Select the option that suits your teaching situation and the programming task.
Share and Play
One method of collaboration and coding is share and play. Upon completion of a program, students partner with a peer. They run each other’s programs. Afterwards, they reflect on the experience to provide encouragement and advice.
Peer Review Guiding Questions
To make the most of the share and play learning experience, list questions that the peer reviewer should answer. These questions can guide the exchange of ideas. Peer feedback can be given orally or using a worksheet.
- What is one thing you like about the program?
- What is one thing you think the programmer could change to make it even better?
- How did the programmer make the game fun to play or easy to use?
- What age range would you recommend for this program? Why?
Comment Starters
In addition to providing guiding questions, it is advisable to demonstrate how to phrase comments appropriately. Comment starters are one way to promote constructive feedback. This will help peer reviewers not only point out the strengths of a program, but also areas for improvement.
- My favorite thing about the program was…
- I felt surprise when…
- The part of your game that was the most creative was…
- This program reminds me of…
- To make the instructions easier to understand…
- To appeal to a younger audience you could…
Peer Review in TechnoTurtle
Collaboration and coding is a great way to encourage team work and foster a learning community. TechnoTurtle has many activities that have students celebrate their accomplishments with peers.
Game Test
Another form of collaboration and coding is a game test. A game test has a research focus. Its intent is to gain information about the program while it is still in the design phase. In a game test, students work with a player to understand their experience.
The user experience, or UX for short, is an important part of game design. The UX includes how a player acts, feels, and thinks. When students conduct a game test they become researchers. By observing and interviewing players they identify what the user likes and dislikes. This collaboration helps to improve their programs.
Aside from collaboration skills, this task also develops communication skills in students. Throughout a game test, there is a strong emphasis on active listening, which is a valued skill in a programmer. After all, a person that understands the wants and needs of the end-user is going to be able to make a high quality program.
How to Conduct a Game Test During a Programming Unit
There are several steps to a game test. Have your students follow each one:
- Partway through making the program, stop the design process to test the game with real players. Please note, it does not need to be complete. Instead, it should have some of the components built and it can run without errors.
- Establish the research group. It can have one or more people. A tester might be a peer or person that is a similar age to the end-user, for example, a child from another class or an adult such as a teacher or parent.
- Observe the tester play the game. To get the best result do not disturb the participant in any way. This includes giving extra hints or instructions that are not part of the game.
- Record findings. Include information about when the player seemed frustrated, bored, confused, or happy.
- Ask the tester about their experience. Do not defend the game design. Instead, listen to the feedback. This step is often best completed using a list of prepared questions. Document the answers.
- Analyze the results of the game test. Outline the next steps to improve the design.
- Implement the steps to make the game even better.
Code Swap
An additional collaboration and coding activity is a code swap. A code swap is an exchange of code. Each student shares some or all of their program with another.
There are several options for a code swap. One is an enhancement of an existing program. In this scenario, each student runs each other’s program. They pick the part that they like. For example, it might a game in a text-based adventure, phrasing of an instruction, or formatting of a title. This snippet of code is copied from the source program and pasted into the student’s file. This form of collaboration is a quick way to improve the content and design of a program. At the same time, it highlights the benefits to teamwork, as each person gains from another team member’s efforts.
Another option for a code swap is to remix a source program to produce an original work. In this instance, a student finds a peer’s work that they like. They use the code as a jumping off point for creativity. By editing the content and adding some new features, they transform the code into their own unique program. Please note, if you are using Scratch to introduce coding, it has a remix feature that makes it easy to collaborate.
In both cases of a code swap, students should give credit to their peer. The act of publicly acknowledging a team member’s effort, is an important aspect of working collaboratively in the real world. This can be done using #comments to inform the teacher about the source of the original code. It can also be achieved by displaying text when the program runs. Students can output the contributor’s name and description of the contribution.
Code Swap with TechnoPython
Do you want to combine collaboration and coding? TechnoPython has an extension activity that is part of a text-based adventure game. Students swap code and edit the snippets to create a detour on the quest.
Paired Programming
Yet another way to combine collaboration and coding is paired programming. Paired programming is when two or more people work together on the same program. This can happen synchronously, with each person writing code in the same program at the same time. Alternatively, it can happen asynchronously, with each person writing code separately, and then merging the snippets together at a later time.
Paired programming is an excellent way to create an authentic learning experience. In the workplace, programmers work in teams. They divide a large coding project into sections, assigning each person their own task. Later, the code snippets are combined together to produce the final program.
Collaboration and Coding Tips in Paired Programming
When assigning a paired programming task it is essential that you guide students in the division of work. This will ensure success and create a positive team experience. Below are some tips:
- Create a Master File: Have each team create a file that is the final version of the program. Students can work together on the same file if they are using software that permits multiple users. If not, each team member can work on their own section, and then paste their code into the master file upon completion or for testing purposes.
- Use Comments to Organize the Master File: Create headings in the master file using #comments. Below each heading identify where a programmer should place their part of the code. For example #name put your code here.
- Use Comments to Identify the Contributor: Each team member should label their code using #comments. The first line should be their #name. The second line should be a description #what code does. This will help the teacher identify the contributions of each team member.
- Divide a Programming Task into Parts: The program that is being created should be complex enough to require multiple people to work together. For example, a text-based adventure game where a player chooses different directions to travel naturally lends itself to each team member working on a part of the quest. If the scope of the coding project is too narrow, it can make working together difficult as there is not enough meaningful work for each team member.
- Debug as a Group: Finding and fixing errors is often best done as a team. Members can work together to identify the problems and code solutions. Working collaboratively to debug a program is one of the many benefits to paired programming.
Remix with TechnoCode
If you are interested in paired programming, TechnoCode has a remix activity. Students pair up to create unique Scratch programs based upon the work of a peer.
Coding Presentation
A final activity that blends collaboration with programming is a coding presentation. A coding presentation is a demonstration of a program. Students take turns assuming the role of the presenter or audience member. The presenter’s role is to demonstrate the program and give an explanation about how it works. The audience’s role is to actively listen and ask questions.
During a coding presentation, each student describes the function of the program. They explain how to use it, features that make it unique, code snippets that control how it runs, and next steps for design or implementation. The student reflects on their learning and shares their insights with an audience.
When assigning this task the teacher should consider the size of the audience. It could be one person, a small group, or the entire class. If this is a new activity, you may wish to restrict the number of people in the audience. This can reduce stress on the presenter and can personalize discussions about the program.
There are many benefits to this form of collaboration. One is the direct connection to the workplace. Programmers often need to give coding presentations to showcase their work. This might be done to highlight abilities in a job interview, gain a potential client, raise investment funding, provide training to end-users, or report to a manager about project status. Learning experiences that prepare students for their careers are meaningful.
Yet another benefit to a coding presentation is the creation of a learning community. By watching program demonstrations, students gain knowledge and inspiration from one another’s work. Moreover, by celebrating each other’s accomplishments it creates a supportive environment.
Coding Presentation in TechnoTales
Students in Junior grades use Scratch Jr to code a digital story. When finished, they share their animated creation with friends and reflect on their learning experiences.