cs4all-logo

How Might I Manage Group CS Projects?

Computer science (CS) projects afford an ideal opportunity for collaboration. Whether or not your students are working on a computer, they are grappling with new skills and content and can better process and apply that new information by talking it over with someone. A CS class does not have to look like row upon row of silent students working on computers. A good CS classroom sounds like any good classroom—plenty of student conversation, collegial debate, exasperation at difficulty, and celebration of success.

We all know that planning for group projects is important, but the good news is that using computers can often help facilitate those projects running smoothly. Next, we provide you with best practices that work across all grades on the following topics:

  • Structuring groups for success
  • Tracking students’ progress
  • Encouraging meaningful collaboration


Structuring Groups for Success

  • Set up groups so that each group has 3–5 students.
    • Balance each group with students who work well independently and students who need extra support.
    • Ensure heterogeneity. Having students learn to help and support each other is valuable.
  • Create roles.
    • 3–5 students/group is ideal.
    • Assign four suggested roles:
      • Project Manager: In charge of daily progress, timekeeping, and feedback for the group, which the teacher can use for grading.
      • Coder: Writes functional code every day.
      • Debugger/Editor: Checks everyone’s work and comments.
      • Designer: Deals with sprites, backgrounds, and images.
    • Roles can be filled by multiple students. (For example, there can be two designers.)
    • Students can change roles from day to day, but every student must have a job every day. Part of the learning in the project is experiencing the diversity of roles one can fill with the concepts and practices of CS.

Tracking Students’ Progress

  • Create a tracker for student groups, and share it with students.
    • Have students keep track of their work every day. This responsibility provides a powerful way to build independence and mimics industry behavior.
    • We’ve used students’ ratings of each other as the basis of grades to great effect. It keeps everyone in the group engaged with the work and helps students honestly assess their own contributions.
  • Create a clear task sheet. (An example follows.)
    • What are the deliverables?
    • What should different groups’ members be working on at the same time?
    • What do students need you for? What can they (reasonably) do on their own?


Encouraging Meaningful Collaboration

Even when students are put into groups and given a way to monitor their own progress, meaningful collaboration is something we work on actively fostering during group projects.

Groups Sit Together

The computer offers novel ways to collaborate (for example, I’m writing this right now in an office in Manhattan, and you’re reading it...wherever you are), but the kind of collaboration we want for our students should be enhanced by a computer, not replaced by one. Just because students can use the computer to chat across the room doesn’t mean we shouldn’t encourage elbow partners and think-alouds.

Projects That Are Just Complex Enough

A challenge we’ve seen in CS classrooms across New York City is students not wanting to work together because they feel it slows down their progress. One straightforward way of solving this issue is by giving students projects that are just complex enough that collaboration is necessary. This could be achieved with the following:

  • Project rubrics that include criteria that map to all project roles—project manager, coder, debugger, designer—so that one student cannot do it all.
  • Complex project-driving questions that require students to research, discuss, and prioritize. For example, you may make the project-driving question “How might you create a drawing application?” more complex by adding a constraint: “How might you create a drawing application that can be used by the visually impaired?”

Collaboration as a Technical Concept

Collaborating on a programming project is technical. If students are working together or rotating to write code in one file, they need to structure their code so it is readable by others in their group. This includes things like naming variables and functions descriptively (‘variableName’ instead of ‘n’) and commenting their code.

Students can also work together by writing codes in different files. For example, if they are building an interactive website, one student could be writing the HTML document, another the CSS stylesheet, and another JavaScript to control interaction. In those cases, students need to bring their pieces together for testing and finalization into one project with the files referencing one another.

Key Takeaways

  • Everything you know about well-planned, intentional group work applies here, too.
  • Group projects are an opportunity for students to discover a talent adjacent to the normal roles they take in the classroom and assume roles of leadership, creativity, and design.
  • Giving students a way to track their progress is good for them and for you.
  • Meaningful collaboration doesn’t come naturally with group projects. Get students to sit together, give them complex problems that lead to authentic collaboration, and make sure they engage with the technical aspects of collaboration.
  • Use the next example as a template or a guide to help you plan a group project for your students.

Sample “Code for the Bronx” Project (6th Grade @ MS223)

Teacher NotesStudent Facing

Day 1: Intro

Student groups are arranged ahead of time.

For CS groups, “heterogeneity” is best achieved by balancing the number of independent workers in each group. Don’t put all your students who ask a million questions in the same group because students need to work independently.

Group Projects

Having students decide the problem they want to solve or explore is a powerful learning moment.

Real artists ship

In the next three weeks, you will…

  • Manage
  • Design
  • Code 
  • Debug

a program that addresses a real-world problem.

✍ Design sends a message

What is design?

Design (n) purposeful planning to achieve a goal.

Design is problem solving.

Design is Writing functional code

Design is Drawing a picture

Design is Arranging desks

Design is Cooking

Design is Choosing

Design is Understanding

What are problems in our community?

In pictures or words, describe five social issues that are of concern to you in your current day-to-day life.  

How do these issues lower the quality of your life?

(If you get stuck, think of Word Generation topics… )

How can design change anything?

Day 2: Roles

Having explicit roles is essential to the success of group projects.

You can vary the names.“Coder” could be the engineer, and you can have multiple students fulfill the same role, but the three essentials follow:

  1. Roles should be explicit.
  2. Each student has a job each day.
  3. All work must be documented in writing. (See project log below.)

✍ Roles

Project Manager: In charge of daily progress, timekeeping, and feedback

Coder: Writes functional code, every day.

Debugger/Editor: Checks everyone’s work and comments.

Designer: Uses sprites, backgrounds, and images.

You must log your role and what you did every day.

✍ Contract (10 min)

With your group, brainstorm a list of expectations and rules that all of you can agree to follow.

This will be the contract that your project manager will use.

Topics to cover: How do you manage conversation? How do you manage disagreement? What happens if someone isn’t working?

Code for the Bronx (CFTB)

In the next 3 weeks you will...

And ship a program that addresses a real-world problem.

Manage – building a project in a team

Design – your program so it meets community needs

Code – create a functioning program with code

Debug – use problem-solving skills to find and fix issues with your program


Day 3: The First Work Day

Clear time constraints are really important. Having a visible timer is quite effective.

Computer Work Time (25 minutes)

By the end of class:

  1. Choose a topic. (Use brainstorm document.)
  2. Think of ways to use Scratch to create a game or story about that topic.
  3. Begin planning sprites.
  4. Begin mock-ups in Scratch.

Project Managers:

It is your responsibility to make sure everyone knows what they should be doing.

Refer to your team’s contract to keep each other accountable.

Be sure that everyone logs work for the day.

Work Day

S.M.A.R.T. Goals

Specific: What is your goal in detail?

Measurable: How will you know when you finish?

Actionable: What actions will you take?

Realistic: Is it possible?

Timely: When will it be done?

Project Managers: With your group, set one S.M.A.R.T. goal for today.

Computer Work Time (25 minutes)

By the end of class:

  1. Create two functional mockups in Scratch.
  2. Create two finished sprites, ready to scan.
  3. Define a S.M.A.R.T. goal for next week.
  4. Begin mock-ups in Scratch.

Project Managers:

It is your responsibility to make sure everyone knows what they should be doing.

Refer to your team’s contract to keep each other accountable.

Be sure that everyone logs work for the day.

Reflection

In two paragraphs:

What have you learned about designing and building something with a group?

What have you learned about yourself by working with a group?

This will be used for our reflection at the end of the project.

Work Day

Computer Work Time (25 minutes)

By the end of class:

  1. Scan the designers’ sprites into Scratch.
  2. Add sprites to code.
  3. Run quality assurance tests on code.

Project Managers:

It is your responsibility to make sure everyone knows what they should be doing.

Refer to your team’s contract to keep each other accountable.

Be sure that everyone logs work for the day.

Computer Programming: Team Project Log

Team #

What was your job? (Project Manager, Designer, Coder, Debugger/Editor) What did you do today?

Date

###NAME###

###NAME###

###NAME###

###NAME###

Project Manager Rating (1–4)

9/8



Team Project Rubric

4

3

2

1

Project Log

UCSS.ELA-Design.W.4.2 “Most people make the mistake of thinking design is what it looks like. That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.” 
—Steve Jobs

Show me how you work.

Your project log is complete.

Your team log is actively referenced to inform day-to-day work.

You filled every role on your team at least once.

Your project log is complete.

Your team log is actively referenced to inform day-to-day work.

Your project log is missing one or two entries or is not completed on time.

Your team log is occasionally referenced to inform day-to-day work.

Your project log is not maintained or incomplete.

Your team log is not referenced in day-to-day work, or decisions are not made using evidence from the log.

Code Commits

  • CCSS.ELA-Literacy.W.6.6 Use technology, including the Internet, to produce and publish writing as well as to interact and collaborate with others; demonstrate sufficient command of keyboarding skills to type a minimum of three pages in a single sitting.

You contributed functional code to your project.

Your code is commented and explains why it shipped (or didn’t).

Your code shows evidence of iteration and reflection.

You contributed functional code to your project.

Your code is commented and explains why it shipped (or didn’t).

Your code shows evidence of iteration.

You contributed functional code to your project.

Your code is commented and explains why it shipped (or didn’t).

You contributed code to your project.

Code may or may not function correctly.

Design

  • CCSS.ELA-Literacy.W.6.2a Introduce a topic; organize ideas, concepts, and information, using strategies such as definition, classification, comparison/contrast, and cause/effect; include formatting (e.g., headings), graphics (e.g., charts, tables), and multimedia when useful to aiding comprehension.
  • CCSS.ELA-Literacy.RST.6-8.7 Integrate quantitative or technical information expressed in words in a text with a version of that information expressed visually (e.g., in a flowchart, diagram, model, graph, or table).

Text, images, and sounds are clearly designed to enhance understanding about the topic.

All images and materials are appropriate and relate directly to the topic.

Original artwork/graphics are included in the project.

Text, images, and sound are clearly designed to enhance understanding about the topic.

All images and material are appropriate and relate directly to the topic.

The project uses text, images, and sounds.

Some images may not be related to the topic.

Text, images, and sounds are not clearly related to the topic.

Some materials are not appropriate for the topic.

Debugging and Reflection

CCSS.ELA-Literacy.W.6.5 With some guidance and support from peers and adults, develop and strengthen writing as needed by planning, revising, editing, rewriting, or trying a new approach.

The project log indicates daily debugging.

Commented code indicates daily debugging.

The text has no grammar or spelling errors.

Written reflections clearly explain the team debugging process.

The project log indicates daily debugging.

Commented code indicates daily debugging.

All text is clear of grammar and spelling errors.

The project log indicates debugging.

Some code is commented.

The text has spelling and grammar errors.

Bugs are evident.

Code is not clearly commented.

The text has spelling and grammar errors.

Functionality

  • CCSS.ELA-Literacy.RST.6-8.3 Follow precisely a multistep procedure when carrying out experiments, taking measurements, or performing technical tasks.

Your project runs when an event is triggered.

Your code must run without explanation from the team.

Your project runs when an event is triggered.

Your code must run without explanation from the team.

Your project does not have a clear triggering event.

Your code does not function on the first attempt.

Your project does not have a clear triggering event.

Your code does not function.

Team Project Reflection

Please be sure to answer each question in complete paragraphs. At the end, assess yourself on the rubric.

Explain your work. What does your program do?

Describe (mention all parts clearly) what it was like going through the design cycle (writing, testing, debugging, iterating…)

What is one thing you discovered while working on the project?

How did you use what you discovered?

How did this discovery change your project?

If given more time, what would you do to improve your project AND why?

What did you learn about yourself while working on this project?

What have you learned about designing and building something with a group?

How will you use what you learned about yourself outside of technology class?

Related Units