Wednesday, July 04, 2007

CS180: Writing and grading labs

Part of my summer goals for CS180 include improving the way labs in CS180 are done. There seemed to be a lack of standard in handling labs over the semesters that I taught, which actually weren't a huge deal, but I think it's a problem worth addressing. Different TAs tended to write their lab specs in different formats, which could sometimes be confusing; some TAs also wrote labs that were hard to grade, which ended up being annoying for all of the TAs. Specifically, the goals I have are:

  • Write a spec writing guide (especially since I may be the only returning lab TA)
  • Write a lab spec template and source file template
  • Write a few labs based on the specs
  • Write a lab "best practices" guideline (slightly unrelated)

In addition, a change that will be made this semester is that the last few labs (or at least some labs) will be written from scratch. A complaint I heard was that CS240's labs were hard to deal with, since many of them were written from scratch. This is a silly problem, and students should be learning how to build a program from the ground up.

Grading is also a worthy problem to address; there is no standard for TAs to grade by, which leads to a natural unfairness in the lab grades. I think expecting the lab author to also create a grading rubric is reasonable, and should help TAs grade more fairly and more quickly. If labs are able to be script-graded, I would expect the TA to write a script for it as well.

Another aspect of grading comes in how the student sees how he or she did, and what went wrong. Traditionally, when us old people took it, TAs would print out labs and hand them back; I tried this last semester, and it was a bit cumbersome to manage all of the paper (and wasteful, in my opinion). CS158/9 had its TAs mail students back with comments, which I thought was a better idea, but the way they had us do it kind of sucked.

For the TAs, I think the improvements for a major part seem to boil down to scripting. I imagine Python scripts could be handy for writing grading scripts, among other things. For one, the best way to generate a uniform HTML page for the lab spec is probably to parse some markup that generates the HTML for you, rather than force everyone to hand-edit a bunch of HTML. Or maybe I'm just deluded. Python could probably make a lot of things easier, but more on that later. Hopefully.

Comments on any of the possible changes are quite welcome, as I'm kind of rambling.

5 comments:

Luke said...

Students should be learning how to implement APIs when they program. It's a fairly simple concept that you do from the start without realizing. If students are given an API to implement, the API could then be used for testing. Black box testing is not always the best way to do it because it can look over some cases. A mix of both black box and API testing would be optimal.

If the TA writes the lab with that test API in mind, it should make grading much easier and more accurate for the students. Emailing the students their scores along with the sources is definately the way to go... and it's much easier to script.

Unknown said...

I believe that you cannot e-mail a student a grade that they have received, so you may want to look into that before advising it.

Making a grading rubric should be required, it ensures a lot more fairness in the grading.

saiyr said...

Luke: Some of the labs I've written were basically API implementation. I would write a lab, scratch my head, and then take out everything but method headers. The projects also tend to be like this, and I think they get a better feel from implementing APIs in that manner (unless you're talking about something else; in that case, please clarify).

The more interesting concern to me is that while students can implement APIs, they're unable to design them. I'm hoping to give them a head start by doing some create-from-scratch labs, since CS240 dumps it on them without any real preparation.

Logan: If this is the case, then why do other classes do it? I know CS158 did when I taught it. Even if you can't mail them the grade, the important thing is that comments could be mailed to them, instead. Grades are posted on WebCT, so that's not a big problem.

Unknown said...

I just always hear a lot of my professors tell me they aren't allowed to e-mail grades, and I don't ask questions... maybe I should? <.< >.>

More on the API vs Scratch in the next thread...

Luke said...

@Logan: Yea my CS159, we emailed all the grades and comments. I think it may only be exams that can't be emailed. That's the only time I've heard of that (with Comer's class).