When looking at a large set of data and realizing that the organization is not working, you want to look at how the information as a whole can be presented differently - not just swapping out a single control for another.
That's my short answer to your specific question. You do have a lot of checkboxes and they are confusing. Start by looking at a different way to present the information!
There are a few things I immediately notice when looking over this list.
- Extensibility. As you list grows, your users will have more and more trouble parsing which row of checkboxes goes with which activity. Also, what happens to your list if "Level 1" gets two workshops?
- External Memory. Your layout does not externalize memory. You user has to remember what an activity is, or any special notes you've previously mentioned. Also, when and where are the different workshops?
- Organization. It isn't clear how you are presenting the information. Are you emphasizing the activity, or the level it is at?
- Bland. A huge checkbox list is boring! Spice it up and make your users want to sign up!
Here is a notion of how you can address such things:
What does this do?
Categories: Break up your activities into higher level categories to help your users find what they are looking for.
Icons: Shazam! While they do help pull the eye to each different category they really just help to add some color and spice to an otherwise dull list.
Activity & Description: Each activity is named and space is available for a small description or other information. Don't force your users to remember something important about the activity. For example, is this a ladies only Tennis team?
Sign me up: You've hooked them, they're ready to sign up! List out each level and provide a checkbox to sign up for it. You can also point out when the activity is, so users don't have to wonder if their calendar will work out. Notice too that the above design allows you to easily add multiple "workshops" to any of the levels.
Focus on the activity: All the information on a single activity is contained in one area. The user's eye does not have to track far, nor does their mouse, and they will not accidentally click the checkbox in the activity above/below the one they wanted.
How can it improve?
With the caveat that many things could be improved on the above, here are some thoughts:
- Add a filter so people can easily find what they are looking for. A textfield where I can type in "robo" and list will dynamically filter (as I type) to filter down to show only the "Robotics" activity.
- Add a where to the activity. Again, don't make the user remember where things are! Maybe you have a Tennis activity in two different locations and the user really prefers one; similarly, maybe the user just can't make it to a certain location - don't make them sign up only to disappoint them later.
- Provide feedback links. How can users get in touch to learn more about certain activities? Each activity might have a different contact resource.
This takes up too much space!
It certainly does take up a lot more space then just a checkbox list. But is also provides a lot more information to the user then just a checkbox list. There are several ways you could help the user find activities towards the bottom of the list more quickly (the filter suggestion above is just one).