Most sponsors find that there’s more moving pieces to running a computer science contest than they expected.
A little background here. The contests I’ve been involved with typically have between 75 and 125 teams. Most teams are 3 people, so that’s at least 200 or 300 students, occasionally pushing 500. If you’re putting together your first contest it may be quite a bit smaller than that. Some of the smaller ones in our area are closer to 30 teams.
I’m in Texas, so this is going to be specific to this area. Generally contests are structured to match how the UIL runs their computer science contests. Since invitational contests are practice for UIL contests, it makes sense that they’d use the same style.
The first part of a UIL style competition is a 45 minute, 40 question multiple choice exam. Competitors take this individually, and can place individually. Normally the 3 scores from each team member are also considered as part of the team competition.
I’ve had students write these tests in the past, but don’t any more. They just wind up being too tough of tests when they’re written by students. Students tend to struggle with writing a test that covers a range of abilities. They tend to write tests to their ability. And the students you have creating your test are typically going to be your higher performing students.
Students also don’t seem to enjoy writing the written test as much as writing the programming packet.
What I do now is buy a written test from A+ Computer Science. Their tests are written by computer science teachers – I’ve written for them in the past – and are usually well matched to the topic list and cover the range of difficulties.
You need a copy of the written test for every competitor, plus at least a few extra copies for the sponsors. Sponsors will also likely want to see a key.
You’re also going to need some type of programming packet.
We normally create a 12 question packet for 3 person teams to solve in 2 hours. It’s not expected that most teams solve all 12 problems though. You want a pretty good spread between the higher performing and rookie teams. At our last contest teams averaged about 5 problems solved. Only a couple of teams solved all 12. The other side though is you want at least a few problems that every team can solve. It’s demoralizing to spend 2 hours programming and not get anything right.
The way I do this is break the packet into pieces and assign it to several students. I want a total of 15 to 18 problems created. That way we can ditch a few problems to get down to 12. Some of the problems will be too similar. And some just won’t be that good. By creating extras there’s room to get rid of some and still have your packet.
You can also buy packets, but we don’t. Students have fun creating these.
You’ll need a packet for each team and several extras to hand out to sponsors. Make sure that you copy these single sided since many teams will break apart the packet so each member has their own set to work from.
You’re going to need students to help out at during the contest. These are the groups I break students into. Although there is overlap between the groups since not every group is active during the entire contest
You’ll need someone to watch competitors while they’re taking the written test.
We use classrooms and try to put 2 proctors with about 30 students in each room.
I’ve also seen schools that use an auditorium. That works pretty well and doesn’t take as many student proctors.
We put 2 or 3 students at a registration table to take care of signing in teams and having out team numbers and paperwork.
They’re also handling money, so make sure they’re students you trust.
Once the written test is done you’re going to need a group to grade them. They’ll also need to sort the results so you know who are the top individual performers and also sort the answer sheets grouped by school so you can get them back to their sponsors.
You need at least a few people in this group that are really organized because you’ll be dealing with a lot of paper.
We use the proctors as graders, so there’s not any extra people needed.
You’re going to need an emcee. Their job is to welcome everyone to the contest, make any announcements during the contest, and announce winners at the end.
This is usually a job that goes to a senior, and is something that they look forward to.
But, make sure it’s someone that can talk clearly.
This is a job that we usually share between a few people.
Some students will need to be in charge of grading the code submissions as they come in.
In the past we’ve used a program written by a former student to handle this, and it took one student. We used PC^2 this year instead since the students that wrote the past system have graduated. We used 4 graders for about 80 total teams.
That’s probably about the minimum I’d use. I would have preferred 6 to 8 graders, but we bumped up the group grading the written tests since we had almost 250 to grade. Turns out 4 was enough.
I like splitting this into students that have been competing for a while and students that are new, but will probably be around a while. The rookies grade the easier problems and the advanced kids grade the harder questions.
It’s also a good idea to have the people that wrote the packet be the ones grading. That way if questions come up during the contest they can answer them instead of having to guess.
Computer science students go through a lot of candy and caffeine during contests.
Again, this is a group you should trust because of the money. I pull money from the concession stand several times during the day, but at times there are upwards of 1,000 dollars in the money boxes.
While we’re talking about concessions, that takes some planning as well.
This is something that I start planning several weeks out. There’s paperwork to deal with. I’ve got to get a purchase order. Although this is pretty quick in my district, it’s something you need to plan ahead for.
After school a couple days before the contest I head to Sams Club with a shopping list and fill up the back of my car with Cokes and candy. We spent close to $500 this year on concessions, although we did make more than that back.
Hardest part for me is to figure out how much to buy. I always wind up with too much. Figure that’s better than running out. Plus, that leaves me with snacks for my club meetings for a few weeks after the contest.
Biggest tip here is to charge the same thing for everything. We charge $1 for everything. Makes it way easier for your workers to keep track of money and easier for me to count down the money at the end.
Also be sure to check with your finance people to check you’re doing everything right. Mishandling money is one of those things that can get teachers fired, and you don’t want to be that person.
And don’t forget about getting change for your concession stand. Seems like everybody pays with a $20. We go through about $150 in $1 bills.
At most contests around here teams can order pizza for lunch.
This is part of concessions, but we really don’t make any money from it because we also buy pizzas for the sponsors who don’t pay.
Check with your school. You might have a contract with a local pizza delivery company. We use Papa John’s and pay $8 per large pizza. Not great, but cheaper than their normal price.
If you’re expecting to order a lot of pizzas be sure you get with the company before the day of your contest to give them a heads up. The Papa John’s near us brings in people early the day of our contest because we normally order 125 to 150 pizzas. We call in our order an hour before they normally open. That wouldn’t happen if we didn’t call earlier in the week to let them know it’s coming.
The winners are going to want something. Generally we buy medals for the top 10 or so written test scores, a medal for each of the team members for the top 6 teams, and a trophy for the school of each of the top 6 team scores.
Where to find student workers
First group is your students. I expect that almost all of my computer science club members will be at our contest to help out.
You can also ask about other student organizations on your campus. Both our National Honor Society and Key Club give their members volunteer hours for working at our contests, so we’ve usually got plenty of help.
Most sponsors are usually more than willing to help out as well if you ask.
Here’s the schedule we used this year, and it’s pretty close to what other schools in this area use. You may have to play around a bit depending on how your contest is setup.
Friday before the contest
Everything gets setup the afternoon before the contest. Power cables are run and the wireless network is setup. More on both of those in a later post.
Be sure to test everything before you leave. Get as many devices connected to your network as you can and get students to submit problems to your system. If you’re going to have problems with your grading system, you want to find it now.
Day of Contest
- 6:45 – My students arrive to start setting up
- 7:30 – Registration opens. Teams start setting up their computers, connecting to our network, and making sure that they can submit the dry run problem to PC^2.
- 8:30 – 9:15 – Written test
- 10:00 – 12:00 – Programming contest. Pizzas are delivered sometime in this block.
- 12:00 – 12:30 – Appeals and scoring the programming contest.
- 12:30 – Awards
What about me?
My goal is to do as little as possible during a contest. If everything is setup well, I shouldn’t have much to do. Students should be doing most of the work.
Sure, there are usually some minor little fires to put out like test key issues or getting printed invoices for registration fees. But that’s all pretty minor.
This ended up being a much longer post than I was expecting.
We’re going to stop here and start talking about equipment and hardware in the next post.
In this series
Want to stay in touch and keep up to date with the latest posts @ CompSci.rocks?