Automating Reports

One experiment I am doing this semester is having assignments that are due five days per week, even though we only we only have class on two days per week. Here is a quick summary for those who do not want to read the post:

  1. I am using MyOpenMath for the daily homework assignments. The main reason I am using it is that it is free, but I am also stealing problems from a publicly available library of problems.
  2. Students need to get 4 additional points per day. This is a very small assignment, particularly because I have it set up so that students can reattempt a problem as many times as they like with no penalty. My goal is practice, not perfection here.
  3. Students can do any problems that they want. So students can pick the easiest problems from each chapter at the beginning. This is aided by the fact that we just finished a whirlwind preview of the course yesterday—the students have already seen all of the course material. For the rest of the semester, we are going to go over the details.
  4. Students are grading on an all-or-nothing basis each day. If you have the correct number of points, you get full credit. Otherwise, you get no credit.
  5. This is key for me. We break our semesters up into quarters. At the end of each quarter students can spend a token if they are completely caught up, and they will get credit for all of the daily assignments they missed that quarter. I did not want students to be in too big of a hole at any point in the semester.

I like this plan so far, and most students are doing well with it. A handful of students (2–5 out of 27, typically) will fail to get credit on any given day, but these names rotate, so no student is missing every day.

On problem that came up early on: how do I let students know when they failed to get credit for a daily assignment? I wrote a Python script to email them, of course. I have a page in my grade spreadsheet where I enter a “1” if the student gets credit and a “0” otherwise. At the top of the column is the number of points that they are required to have for that day, and I have a row right above that where I have “TODAY” written in it. (I am typically proud of the “TODAY” hack to figure out which column should be read; I struggled for five minutes to figure out how to get Python to know which column to use. Then I figured out that I could simply put that information into the spreadsheet rather than code it up in Python, since I have to go into the spreadsheet daily anyway).

My script them scans the first row to see what column says “TODAY.” It then loops through the column and emails anyone who has a 0 for the day.

The only unfortunate thing is that I have to go into my spreadsheet every day to enter the scores. This doesn’t take long (I mainly copy-and-paste the column and swap some 0’s around), but it does take effort. I would love to figure out a way to get the information directly from MyOpenMath into my spreadsheet, but I don’t have those kinds of skills yet.

Tags: , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: