Archive for the ‘school’ Category

Electronic Test Taking

Monday, January 5th, 2009

I’m a fan of technology. I believe that most things can be made better via automation, virtualization and all the other *-tions that introduce technology into equation. In most cases, if something is preceded by “electronic” or “online” it means better. There are exceptions of course. One exception is called shitty implementation and unfortunately happens roughly 70% of the time. It happens to every one – that’s why we have websites like The Daily WTF.

Then there are things that should not be automated, mechanized or put online. One of these things is test taking. I dislike taking electronic tests, and as a rule I avoid giving them. I simply think they do not work as well as most people think they do. Sure, they are easy to administer, easy to grade, and easy to generate and randomize. You can build a database of questions, rate them by challenge level, and randomly generate unique tests of equal difficulty ad infinitum. But I believe they are not entirely fair to the students who take them.

For one, students are trained to take paper based tests. In most schools and universities, nearly all exams are administered using traditional methods such as blue books, or Scantron sheets or simple printouts that students fill out by hand and turn in. When you ask them to take an online test, you are working against years of conditioning and test taking habits. They are faced with unfamiliar format, unfamiliar input methods and a new interface. In fact a lot of test taking engines introduce distracting or stressful features that may negatively impact final scores.

For example, some electronic tests like to display the test score, or notify the taker whether they got the question right or wrong immediately after they have submitted the answer. I believe this is a mistake as it may easily create a negative feedback loop. A student who gets many questions in a row wrong, gets progressively more and more stressed. Each wrong answer adds to the pressure to the point of panic where most of the concentration is lost.

Displaying a ticking clock, elapsed time, or time left for the test may have similar effect. Students often start to do a lot of random guessing when they notice they are behind the clock. This goes double for engines which require that questions are answered within some specific time limit. Especially if test penalizes you for leaving blank answers.

These distractions and negative feedback loops do not exist in paper based tests. Students have unlimited amount of time to work on each question, and can keep track of the elapsed time at their own measure. They also do not know whether or not they got a given question right or wrong so they do not have to think about their score until after the test. Naturally, over time they could learn to ignore these types of distracting feedback. But this takes practice, and requires a uniform interface. But as I mentioned above, most students do not get to take online exams very often and thus lack the familiarity with the medium.

Electronic tests require a different test taking strategy. For example, one of the fundamental test taking tips is to skip difficult questions and then get back to them at the end. This prevents you from getting stuck on a difficult problem, and loosing too much time. Good test takers will tackle problems in an increasing order of difficulty to maximize the number of correct questions. Is this possible with electronic tests?

It really depends on implementation. Some test engines do not provide this functionality. Others do it by looping the questions around. When you deplete the list of questions, it starts showing you your skipped questions. Unfortunately most implementations do not allow for the level or prioritization allowed by a paper based test.

Electronic tests also do not allow you to back-track and “fix” the previously answered question. Test takers are often discouraged from doing this, implying that their first instinct is usually correct. Of course one has to remember most tests are flawed in such way that one question may give hints for solving a previous one. I will give you an example. Let’s say a test taker is asked for a definition of a buzzword, given 4 choices. He eliminates two of them right off the bat but not knowing the definition he makes a guess. Later on, the buzzword comes up again in one of the answers and through elimination the test taker is able to extrapolate that the have answered the previous question wrong.

Some people may say this is irrelevant, because the test taker did not know the answer to begin with. But the ability to connect the two questions, and correct the answer shows that the test taker is good at logically reasoning out hard problems based on given information. It may also indicate deeper understanding of the subject at hand. This is more valuable than mere ability to regurgitate memorized material and should be rewarded.

Electronic tests hardly ever allow you to change an answer that was already given. In fact, test engines that immediately indicate success or failure to answer a question make this type of reasoning impossible.

Not to mention that the test takers attention span may be different depending on the medium. It has been shown by countless studies that people tend to get bored and distracted with electronic, online and on-screen media much faster than with paper based media. That’s why most Youtube videos are short. That’s why blog posts tend to be short, and digestible in one sitting. So using medium that is commonly associated with fast paced, short attention span, burst communication to administer a long, drawn out test is not the best idea. Because of this attention span dissonance, a lot of electronic tests tend to seem more draining and exhausting than they should be.

These are the reasons why I dislike taking, and/or giving tests using electronic medium. I prefer good old scantron technology which combines a paper based test with a machine assisted grading. You just need to make sure you bring #2 pencils for everyone.

Of course, if you ignore the attention span problem, it would be possible to design an electronic test that would aim to emulate paper based experience. Make it look like an actual test booklet with several questions per page. Each question would have an active area where the student would check or type in answers. The engine would allow the student to scroll up and down, and flip pages, answer questions in random order even read the whole test without answering any questions without penalty. It would also have to allow the student to go back and fix previous answers at any time. In fact, such an interface could be easily designed using the all-present Web 2.0 design style and philosophy. But I haven’t seen anything like that in use yet. Have you?

Besides, a multiple choice tests can be machine-graded whether they are administered online or not as long as you use Scantron or similar scannable test sheets. Essay questions on the other hand must be graded “by hand” regardless of the medium. Online versions remove the issues with deciphering illegible handwriting, but other than that offer the same grading experience. So why not give students the paper based tests they are used to. If for nothing else, just for the tactile experience.

Teaching LOGO to non-CS Students

Monday, December 8th, 2008

Back in April I mentioned teaching bits of LOGO to my Fluency in Technology class using the Tortue interpreter. I actually did not get to it last semester so this experiment had to wait. I finally managed to cover it in the last lab, and it turned out better than I expected. Strangely enough most of my students were more confused by Access than by LOGO. Some even seemed to enjoy it. I think I lost them when I attempted to show them how to calculate a factorial using a loop and a temporary variable. So note for the future: do not do that again. I’ll just keep it simple.

I do think that it was actually a useful exercise. Why? Because it allowed me to show students somewhat abstract concepts such as variables, loops and functions with working examples. When I was explaining these things in lecture using pseudo-code snippets from the book I saw a wall of blank stares. But LOGO makes these things astonishingly simple. For example, I show them how to draw a square:

FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100
LEFT 90
FORWARD 100

Then I point out how the two lines are repeated over and over again, and show them a shortcut:

REPEAT 4
    FORWARD 100
    LEFT 90
END REPEAT

They can try it themselves and easily see that it does indeed draw a square. I can put both these things on the screen and show them how the loop unrolls back to the sequential statements, and then show them any repetitive code can be rolled up into a short and succinct loop to save a lot of typing.

Same goes for functions/subroutines. It seemed fiendishly hard to convey this concept to my students in lecture. And yet, when I used Tortue to Explain it in the lab I saw people actually doing the “Oooh, I get it!” expression. I started my explanation with that loop to draw a square and asked them how would I draw another one or two on the canvas. There is the hard way (type in more loops) or the easy way – create a subroutine and then call it.

LOGO actually has an interesting syntax for it:

TO DRAWSQUARE
    REPEAT 4
        FORWARD 100
        LEFT 90
    END REPEAT
END TO

It almost suggests an approachable way to explain what you are doing here. You are telling LOGO “how to draw a square”. You are defining a new keyword, and below you explain what should this keyword do. You set aside some code, and give it an explicit name which you can use later to invoke it. I used all these explanations and they all seemed to somewhat resonate with different people.

When I was going over these concepts the second time around, while preparing them for the final exam, and I referred back to the LOGO lab, I saw people nodding with new found understanding. So I consider the LOGO experiment a success and will definitely do it again next semester. I just need to remind myself to keep it simple.

Also, it may be worth it to re-write some of the code snippets on my lecture slides to use something as simple as LOGO. Again, these students are not going to be programmers. If they wanted to be programmers they would not be in my class. They would be taking Intro to Java instead. So I’m not really concerned about teaching them practical stuff. I want them to know basic concepts and keep it short, sweet and simple. My goal would be to give students an impression that programming is actually not all that scary and mysterious as they might have thought.

Academic Advising Facepalm

Tuesday, November 4th, 2008

My lovely university never ceases to amaze me. Every semester without fail, they do something so monumentally stupid that I can’t help but go:

FACEPALM

This has been going on since my freshman year. So 4 years of college, 2.5 years of grad school, and it will now be close to 2 consecutive years of being an adjunct. And every semester they surprise me with a brand new level of organizational stupidity. It’s always a different branch, different school, or office that does this. But it’s always entertaining. This semester the WTF moment was delivered by the Office of Academic Advising. Before I show you their email, let me give you some background.

Academic Advising likes to track the progress of students on academic probation. In the past, half way through the semester they used to send all faculty little envelopes with paper forms to be filled out. You got a separate envelope for each course your were teaching, and inside you had a short questionnaire regarding the progress of the 2-3 students in that class who were on probation. Since I’m using a general requirement course that must be taken, I always had at least 3 of these forms to fill out for each class. They were really short, 1 page things that asked about student’s grades, whether or not they turn in their work on time, whether or not they attend the class regularly and etc… It usually took me few minutes to fill them out, put them in an inter-office envelope and drop them in the Computer Science Department’s outbox.

This semester the Office of Academic Advising decided to modernize the process and have instructors fill out the forms online. That’s a good thing, right? Wrong. Please read the email they sent me:

Dear Colleague,

Each year, The Center for Academic Advising & Adult Learning administers the Student Academic Monitoring Program (STAMP). As part of the STAMP program, academically at-risk students are identified and faculty members are asked to assess the student’s performance in class. Comments submitted by faculty are then used by advisors to determine appropriate intervention strategies and support services for students. In an effort to increase the efficiency of the program, STAMP will be administered entirely online this semester. The list of students in your course(s) who are included in the Student Academic Monitoring Program this semester will be available on NetStorage, the University’s secure drive. To access your list, follow the instructions listed at the bottom of this email.

Once you’ve accessed the list, go to [URL redacted to prevent stupidity] and complete a form for each student on your list. Submission of the form by faculty will automatically generate an email to the student. This email will include ONLY the quantitative information supplied by the faculty (eg. number of absences, approximate grade in the course, assignments submitted on time, etc.). Qualitative information submitted in the Comments section will be viewed only by advisors.

Your honest evaluation of these students at mid-semester plays a key role in our efforts to assist them and to ensure their retention at the University. Please submit the online STAMP forms no later than Monday, November 3rd.

Thank you in advance for your cooperation.

Sincerely,

Center for Academic Advising & Adult Learning

Instructions:

1. Go to NetStorage
2. In the username box, enter your NetId (eg. smithj)
3. In the password box, enter your password
4. Click OK
5. Click on DriveF@GROUPS
6. Open the CAAAL folder
7. Open the STAMP folder
8. Open the FACULTY folderĀ 
9. Open the spreadsheet that corresponds to the first letter of your last name
10. Sort the spreadsheet by faculty_name (column A) to find your name. Your students will be listed in column C.

TLDR: we are lazy, and you should do all the work from now on.

So the office of Academic Advising dumped their list of students on probation into bunch of excel worksheets, then put those worksheets on a network share.

academic_advising.png

Our mission, should we choose to accept it is to weed through these spreadsheets, locate the students who attend out classes, then go and fill out a generic blank online form for each of them:

academic_advising1.png

Can you see the problems with this new scheme? Obviously it’s a pain in the ass to do. I’d much prefer to fill out my paper form and be done with it. But there are more jarring issues here.

For one, any faculty member, adjunct, graduate student teaching a class and God knows who else can go and download all these spreadsheet and get access to a list of students on academic probation and their student ID numbers. Upon merging and sorting all these files you can easily re-create class schedules for all these students. I don’t know about you but to me this is way to much personal information being accessible to way to many people. I’m pretty sure this is a privacy violation, and there is probably a rule against doing precisely this sort of thing somewhere on the books.

Second issue is that, as far as I can tell anyone can go and fill out that blank form. There doesn’t seem to be validation of any type so I could fill out forms for students that are not in my class. In fact, I could fill out this form for students who are not on probation, or who don’t even exist.

Not to mention the fact that different people will put different things into the free-form input boxes labeled “Course Name” and “Course Number”. Why? Well, let me give you an example. One of the courses I teach can be identified as follows:

  • CMPT 109-36: Fluency in Technology

There is also a “call number” associated with this course which is a unique numeric identifier students use when registering and then promptly forget. The question is, which part of the above is the course name and which one is the course number? Does the course number only CMPT 109 or do I need to specify the section number CMPT 109-36. Also how do I input this information into the box. I can think of several ways to do it:

  • CMPT109-36
  • CMPT 109-36
  • CMPT-109-36
  • CMPT-109 36
  • CMPT10936
  • CMPT 10936
  • CMPT 109 sec. 36

And etc.. I think you can see the pattern here. All of the above are somewhat valid annotations and I have seen people use most of these variations at different occasions. This effectively means that sorting and aggregating on the Course Number column in the database will not produce any useful results. The data that they will get in this form will be absolute shit, and will require to be tabulated by hand just like the paper forms were. All they really doing is eliminating the printing, mailing, hand sorting and scanning/data entry part of the process by offloading all the work onto the instructors. Not cool.

I’m being told that this new method is a slight improvement though. Apparently, in the past these spreadsheets used to be emailed from one department to another without any encryption. So at least this time around they have them locked behind some sort of user authentication screen and you must access them via SSL. :P