Giving Programming Lessons: What You Should Expect from the Students

I got to say that, being recently enrolled in this matter, I have encountered many surprises, both good and bad. I must clarify, though, that most of them have been very good experiences.

I’ve given short and intensive workshops before, but since they have all been two-day experiences with people that are already in a postgraduate level of education or already working as part of a determined company, it is not at all the same as working periodically, during sessions that have only a 50-minute extension, with undergraduate students.

After what I’ve been through up to now, I can give a few pointers on the subject that can define a common profile of the undergraduate Computer Science or Human Interaction student (or related majors that include programming classes)

Easy-to-handle attitudes

Students that have already chosen a major with the level of logical difficulty as Computer Science or Human Interaction do not commonly have bad learning attitudes. You almost never find students that are there because ‘they didn’t know what else to study’. Most of them come to class with a very good attitude, so calming them or getting their attention is not as difficult as it is sometimes with other majors.

High level of eagerness

Most of the students gathered for coding lessons are there because they have seen what coding can accomplished and want to accomplish just that. If you keep them eager with examples that keep them in awe, controlling a large group will be a lot simpler.

Likely to be frustrated

A downside here is the way beginner students that start having difficulties tend to be frustrated to the point where a simple mistake becomes invisible to them (well, I think we can all agree this happens even when we are experienced). Reassuring them and helping them through their difficulties is a very important part of managing the group.

Very visual and practical

If we keep coding lessons based only on theoretical material, students will fall asleep. The best combination are:

  • A very visual presentation (short term explanations, code fragments, brief-content slides)
  • A classroom with a computer for each student
  • A lot of previously prepared coding exercises

Keeping them in constant practice is a key aspect.

Motivation expectations

All of the above can be summarized in a simple concept: motivation. Students must be motivated, and being motivated also means keeping everything you teach them linked to the real world. Don’t just teach them how to do stuff, teach them what that stuff is for. Who knows? Maybe you help them define their job interests, or advanced studies interests. Or maybe they just find out coding isn’t the right thing to do with their lives. Either way you will be helping them out.

So what do you think? Are you up for giving Computer Science teaching a try?