In the spirit of trying to be productive, here’s my $0.04 (I had to adjust for inflation). It may look a lot like what’s already been said:
The core of asking what level of involvement is acceptable for a mentor to have is inherently a question of what the students will get out of it. Naturally, this means that one extreme (throwing the kids off the deep end) is just unproductive, since floundering is usually neither educational nor inspiring. That being said, the opposite is almost worse - when mentors take over the code and the students have little say in it, the students still don’t learn much and it’s not satisfying for them, even if the code is “better” by some metric. My experience with the whole mentor-written/designed/built bonanza is that it can vary a lot for teams - Team 100 prides itself on being a very student-oriented team, but we’ve also run into hangups where students didn’t have the experience they needed and didn’t feel comfortable asking for help. In the past year or so, student and mentor leadership has been working toward a culture change where we can call on mentors for help.
However, I think the core of keeping the right balance is a question of ownership. When a student can look at some part of a robot or its code and say, “I did that,” they’re much more likely to have enjoyed their time on the team and have gained something from working on it. Ownership doesn’t necessarily mean it was done alone - it’s just as satisfying to do something entirely yourself as it is to have help, either through tools written by or with the direct assistance of a mentor. At the heart, a student-written set of code would likely have some of the following properties:
- Student understanding of most algorithms and architecture used
- Sense of student pride and ownership over most or all of the code
- Confidence from students in modifying or writing new code
- Student involvement in the writing, testing, and structure of code
This is naturally a non-comprehensive and incomplete list. Note that these features are incredibly vague. Meeting what’s in the bullet points doesn’t mean that mentors can’t be involved in the coding process - far from it. However, I think it means that all mentors should know when is a good time to “back off” and respect students’ experience and ownership of a project. It will likely vary from team to team, and most teams probably wouldn’t make all the things in this bullet list (I can say right now that Team 100 doesn’t). However, at the end of the day, the “right amount” of mentor involvement is what gets you closer to either meeting those bullet points, or to meeting whatever the goals of the team are.
