The Worksheet Generator

I’ve been obsessing about this for a while and then, in the recent past, I heard some motivational thing along the lines of “If you don’t start on that project you’re thinking about, it’ll never be more than a dream.” I immediately decided to start and give it a year or two and see if I couldn’t turn something out.

The Idea:

The idea is basically this: I’m an EFL teacher and I enjoy the conversations I have with my students. I enjoy the ‘authority’ my position gives, allowing me to ask all kinds of questions about their jobs and businesses that would probably seem too curious in another context. (Hey, I’m just giving them a chance to practice vocabulary.) Grammar doesn’t bother me, and I’m beginning to feel competent with the words that Germans get confused (The word for Fliessband is ‘conveyor belt,’ but when you’re talking about a factory, we say ‘assembly line.’ That kind of thing.)

What I don’t love is making up worksheets. And there’s an argument to be made for tailored worksheets. One is that students are more likely to make the worksheets if you put some effort into them, another is that you can tailor vocabulary and grammar to the group. Lastly, I think there’s a value in practicing grammar you’ve mastered until you reach the level of unconscious mastery. (Which I describe to students as the point when you forget why it’s right, but know it sounds better.)

One option is to get a workbook that goes with your textbook. But, that assumes that your students will need as much practice as average students, and none of mine are ‘average.’ Another option is to download — either free or for a fee — worksheets from the Internet. Maybe, if you’re working with a book, to get a companion workbook.

I’m looking to make a third option: software that will dynamically generate worksheets for basic grammar principles. As a programming project, it’s pretty interesting:

  • It challenges me to grow as a teacher, as intuitively knowing how words fit together is nothing compared to trying to code into Python how they should behave.
  • It’s my biggest programming challenge to date, with more moving parts than I’ve ever needed to keep sorted in my head. This is the project that’s generated the most prose as I try to keep clear what each part should do and how.
  • Unlike a lot of projects, this one does have the potential to be of use to more people than just to me. And that’s pretty cool.
  • This project will require me to dynamically generate PDFs, and, loving paper, that’s something I’ve wanted to learn to do.

It should have some advantages for teachers / students, as well:

  • Dynamic generation means that you can program it to include names from the group every so often. That’s always a hit, especially when it’s a wacky sentence.
  • It also means that you can program it to include words that have been recently learned and recently mastered in the group more often, to try and solidify them in the students’ vocabulary.
  • Ideally, I can have it say ‘you haven’t practiced this grammar in six weeks, can I tag an exercise on the end of this week’s worksheet?’
  • If the software manages the group’s vocabulary, it should also be able to go through a reading assignment and say “these words will likely be new to group members, would you like me to print up a little matching exercise or some definitions?”

So, you’re welcome to watch along as I try this thing out.