It’s that time of semester again - Final project time for my semester courses. Students are working on their big projects and running into difficulties. Projects are great learning experiences for students and making mistakes is part of that learning. This is the time when I think a real (in-person, face to face) teacher really becomes important.
While the struggle has some value (teaches grit perhaps?) there comes a time when a small hurdle puts a whole project into jeopardy that can be easily avoided with a few minutes of time with a teacher.
This week I have looked at all sorts of problems. Some are caused by simple mistakes. One of the risks of using a professional grade tool like Visual Studio is that students can easily do “something bad” without knowing what they are doing. Sometimes it is deleting something they shouldn’t because they don’t know what it is for. Or they add something they don’t understand but which has unintended consequences. Most of these I have seen before and can repair quickly while a student might not (before the project is due) figure out. Some take me a bit longer but at least I’ll know it for the next time. It seems like every semester at least one student finds a new creative way to destroy their project.
The most interesting problems are design issues though. Students with a limited “tool set” and limited experience find some interesting ways to solve problems. Often these are much more complicated than they need to me which causes its own set of problems. A few minutes from a teacher or other experienced person can save lots of time. Even more importantly new or different ways of looking at a problem can be shared. I think these design suggestions are very important.
Solving logic or design problems is a real highlight for me. Sometimes I think I’d rather debug code than write original projects from scratch. Having a lot of experience makes solving student errors fairly easy for me. At least most of the time.
Students are absolutely amazing at writing code that is hard to understand and debug. Helping them learn to write more understandable code is an important part of my job as a teacher. I wonder how teachers who are not that experienced do it though. I guess they learn a lot with their student which is not really a bad thing. It can be frustrating though.
Looking for help online, which can be great at times, can be frustrating though. There are a lot of really bad examples on the Internet. Online forums can be helpful but they can also be unfriendly places for beginners. No one likes it when students try to get others to do their whole projects for them and that happens all too often. Getting help with debugging online can also be very difficult. Often there are many lines of code to look though and having unclear code exacerbates the problem for someone who wants to help. Getting online help can also take a long time as conversations take place when people have time and on their own priorities.
It can work but after observing a lot of students look for help both online and with an in-person classroom teacher I think the teacher is the way to go.
BTW I seem to think up variations of this topic regularly. See also these older posts.