My students are wrapping up the year with final projects. For the most part these are great learning experiences. Sometimes though students get hung up on the wrong things. For example, students can spend a lot of time getting things to look just right when what they should be focusing on is coding functionality.
One of my students is working on a game using XNA that involves collisions and showing explosions. He’s not happy with how the explosion graphic looks. Now if this were a game that was going into production that would be a serious concern. But for a final project where the code is the thing how the images look should be a later concern. Getting that message though can be difficult though. Human nature makes us want that which is visible look its best.
This is a common problem with projects that involved a graphical user interface. In other projects during the year I sometimes get around this by providing the GUI and asking students just to write the code. If they want to make the GUI “pretty” later I will let them but they have to have the code first.
There are also times when the focus is on “the right thing” but gets too narrow. For example I had a student ask me if there was a way in code to ask if something was NOT GREATER THAN OR EQUAL TO. I suggested LESS THAN. He was so focused on looking at the problem one way that he missed what should have been obvious.
That is a common problem even for the most experienced software developer though. That is why pairs programming (which I tried some this year) is becoming more popular. Even explaining a problem to someone else often makes the solution appear.
I keep thinking of an old saying “Though shalt not perspire minor matters.” I’ve heard it “don’t sweat the small stuff” as well. Sometimes it is hard to remember what is the small stuff and what is the big stuff. My student with the image issue had it wrong though only for that project in that context.
But in programming sometimes the small stuff really matter. For example is “=” to comparison operator or is “==” the comparison operator? Different languages do it differently. A small character but a big deal if you get it wrong. Often times one can focus and focus on an if statement and totally miss the missing character. That is where a second set of eyes can help.
For beginners the problem of a sort of tunnel vision can be devastating as they focus on the wrong thing or so hard that they miss things by being too close. A teachers job is often to help them refocus a bit. That is just one reason I think we’ll always need teachers for most students.