Friday, February 9, 2018

Of programming projects, specifications grading, students dropping my course, and Charles Dickens



With apologies to Charles Dickens… It was the worst of days. It was the best of days.

Yinn Yang symbolMy day started by learning that a student had dropped my CS 120 course. Yes, I’m usually a bit saddened when this happens, but I understand there are lots of reasons students drop a course for which they’ve enrolled, and that most of those reasons have nothing or little to do with me. But this time it was different; the initial reason she gave to me for her dropping the course was how I was grading her work. I was particularly saddened and discouraged that I appeared to be the major reason for her dropping the course. Further, since there are few females who enroll in computer science courses, I really like to keep the few who do enroll. To think I might have chased one away was unacceptable to me.

I am utilizing specifications grading for the first time in our CS 120 course this semester. (Read my previous discussion of specifications grading in a different course.) This course serves as our first introduction to programming for our students. I am evaluating most assessable items in the course as complete/incomplete—either they fully met the detailed specifications I provided to the students, or they did not. I am evaluating the outside-of-class, work-by-yourself projects based on an A-F scale, where students must complete certain specifications to earn a given grade. The better the grade, the more items that have to be successfully completed. However, the highest incomplete specification determines your grade.

In the instance of this student, she completed nearly all specifications correctly, and would have received an A, except for two of the lower-level specifications which were required for a grade of C. As a result, I recorded a grade of D for her, as I described would happen in the project specifications document. The items she did not complete should have been relatively easy to complete; that’s why they were at the C grade level. She took exception to this, saying her program generated the correct answer, so therefore she deserved an A, and felt it was totally unfair to receive a D. Further, she stated that she was thinking about dropping the course. I do have some empathy for her stance; it does seem a bit unfair. On the other hand, had she paid a bit more attention to details, she could have easily earned an A. Further, I’ve provided for this sort of situation by providing every student four Oops Bits at the start of the semester. These Oops Bit can be used to resubmit a variety of assessable items which are not completed successfully on the first submission, or can be used to gain an extra day to complete an assignment.

In an attempt to try to help her understand my rationale for establishing the grading for the project in the way I did, I asked her to consider this analogy.

What if you were an excellent employee, and there were few people that could do your job better, but you had a hard time showing up to work on time, maybe even missing some days altogether. Most employers would not be willing to keep you as an employee—even though your work was excellent when you showed up—because they couldn’t depend on you showing up, a fundamental quality of a good employee. They would be more likely to retain the employee they could depend on, even if their work quality was a bit lower.

Up to this point, our conversation about her grade was all via e-mail. I encouraged her to meet with me in person to discuss the situation further, and she agreed. We met yesterday and had a relatively pleasant, healthy conversation for nearly an hour about specifications grading, and how I had structured the specifications for this particular project. One thing I asked her to do was to arrange the items in the project specifications into what she considered to be a better set of requirements for each grade. My intent in asking her to do so was twofold: I was truly curious how a student would arrange the list, and I wanted her to critically think about what qualities of the project justified an A versus a B, etc. She obliged and came up with the following list. The first two columns in this table indicate what is required for a given grade. All items below a particular grade are required as well. If any of the items marked as a grade of D are missing, a grade of F would be recorded. The first column is how I organized the list, and the second column is her ordering. (I’ve arranged the list based on my specifications for the project.)

My grade category
Student grade category
Assessable item description
A
A
Program accurately creates all 31 possible versions of the shifted alphabet
A
A
Program accurately lists all 31 possible translations, based on character shifts of 0 through 30 positions to the right
A
A
At the end of your reflection paper, tell me to what this encoded message translates.
B
B
Program lists all 31 possible translations, based on character shifts of 0 through 30 positions to the right (correct or not)
B
C
Program uses descriptive function and variable names
B
D
Program capitalizes the input parameter value
C
C
Program is formatted/indented similar to the text book authors’ examples
C
D
ALL files for the project are placed into a folder named project0. Compress this folder. Submit this compressed folder.
D
B
Reflection paper completed and submitted according to specifications provided in Canvas
D
C
Program will run in JES
D
C
Program uses the character set provided
D
D
Program will load in JES
C

Program accepts one input parameter

I’ve highlighted the items where there was a difference in our ordering. The items highlighted in yellow are one grade different, sometimes higher, and sometimes lower. The darker highlighting are items with a difference of two grades, again in both directions. I find it interesting that most of the ordering is relatively similar. I also find it interesting to see what this student valued compared to other items.

During our conversation, she shared some about other courses she is taking this semester, and how none of them are required for her major, including CS 120. She is transferring to another university next semester, and is simply taking core courses and electives which will transfer. By the end of our conversation, I felt I’d made some progress, and asked her to give the course three more weeks before making a decision about dropping the course. This would provide her more time to experience the course, and sit for the first exam. By then, she’d have a good idea how the course was going for her. As we parted ways, I believed I’d see her in class today. Unfortunately, she did not attend, and I received word after class that she had dropped. 

Initially, I was rather discouraged to have a student drop my course because of how I am conducting the course, and specifically because of how I am grading. Upon reflection, and remembering what she shared with me during our conversation yesterday, I have come to realize her reason for dropping the course was much more than how I graded her project, and perhaps that was not even the major reason. She was taking an eighteen-credit hour load, had multiple demanding courses which are requiring significant amounts of time, and the courses are not directly required for her major. Dropping CS 120 likely bought her a lot of time to devote to other courses, and is not likely to have a significant impact on her college career. I likely would have made the same decision myself.

So, by now, I’m feeling a bit better than I was earlier in the day.

And then the student for my 5:15 PM appointment arrived.

This student is one who had met with me a few days ago because he felt he was struggling to understand the course material. When I sense a student is capable, but maybe just needs a bit of a push and assurance that they are capable—a shot of self efficacy—I will offer to set up a standing appointment to meet at the same time every week when they can come in and ask what ever questions they might have. Students are always welcome to meet with me anytime our schedules permit, but for some students, having a pre-scheduled time seems to make a significant difference in their progress. He was one of those students, and was arriving for his first appointment.

I expected that he might have a question about one of the recent activities we’d worked on in class. This was not the case. Rather, he came very prepared with a mental list of items and concepts for which he had questions, or felt like he needed clarification. We very productively moved from one topic to another, and I could tell, based on the type of follow-up questions he was asking, that he was gaining a much better understanding of the material. We worked through course material for nearly an hour, that very quickly passed—at least for me. The more I worked with him, the more he impressed me with how truly committed he is to learn and understand the course material. He was a total joy to work with.

So, was it the worst of days? Or was it the best of days?

I’m going to go with the best.