Your browser version is outdated. We recommend that you update your browser to the latest version.

Building a Programming Team

This is a long and hard process.  Not for the faint hearted!  It takes years to build a team.

I’ve used the term “team” as opposed to club.  Depending on your school the two words can have very different connotations.  A team is a group of students who have the following in common:

  •     “audition” to get into the team
  •     practice regularly
  •     possess a willingness to further develop team skills
  •     develop and learn necessary skills for their “sport”
  •    compete in some way

Whereas a club is a group of students who share a common interest.

The advantage of calling it a team is that everyone involved will be focused on learning how to solve computer programming problems.  It also gives you, the teacher, the ability to be selective about team membership.


You have to do some prep work. You need to build a repository of computer problems.  You will also need to sort the problems in order of difficulty based on your students.

I suggest starting with math problems.  Organize them based on level with increasing difficulty so they are scaffolded.  Then move on to string problems.

The next thing you’ll have to do is investigate how different competitions work:

  •     can your team participate in local/regional competitions?
  •     are there any online competitions that meet your needs?
  •     is the competition individual or team based?
  •     if team based – how many students are on a team?
  •     what languages are supported?
  •     do students upload source files?
  •     is there a time limit?
  •     does the site have good feedback system if a solution gets a zero – especially if it’s an upload/format issue vs the wrong solution
  •     how often do competitions occur?

You know your students best but remember the team will need definitive and regular goals otherwise you run the risk of losing interest and everything falling apart.

A starting point

Start with your best students.  Invite them to join your team.  Find a common time and location to meet.

Work in pairs to begin with sharing 1 computer.  This will build student confidence and skills.  Many team competitions only allow 1 coding computer between 4 students (maximum).  This means that only 1 student can code at a time.  Division of labour within a team must be learned and practiced to avoid conflict.  Better to do that in school than when the points count!


At first you will need to keep all the team records:  attendance, team names & membership, emails, problems solved etc..  Eventually, your team can elect its own executive to run things.  This will take the pressure off you and develop their leadership skills.

Don’t forget!

Your team doesn’t have to just be programmers.  Think about your school’s best math students and even chess club members.  These students have valuable problem solving skills that would be an asset on your team.  You may even persuade some of them to enroll in your courses!


I’ve created a document that summarizes this process and more.  Check out:

Building a Programm Team ResourceBuilding a Programm Team Resource