After giving this some careful thought, I've realized it's pretty difficult to open the
quizzes to other
users. I will explain in detail below, so only read if you're interested, but if I find a
solution I will update this page...
Here's my process for giving the quizzes:
1. I send the students the link to the quiz when class starts (here's
an example)
2. they all are on monitors around the edge of the room so I can see what they are doing
(there
are color themes in CheckIt, but quizzes are automatically all the same color to make it
easier
to see everything is doing the same thing)
3. once it starts, I change the name of the quiz and redeploy to the server - that way, the
link
no longer works if they try to go back to it (if there are students absent, I won't release
until
everyone has taken it)
4. when they submit, the page will automatically close down
5. I have a teacher interface that allows me to grade the quizzes. I can see work they put in
the
work boxes for partial credit and I can include comments on why they may have lost points on
any
question
6. when the whole grading process is done, I just change the name back again and students can
go
back and see my feedback
Problems with teachers other than myself doing all this (or even just having students log in at
all):
1. the whole system only works for me or anyone in my school because it is partly dependent on
the domain name for the school - I'd have to change that
2. if many people are using the quizzes, then the links can end up being "out there" and
security
would disappear
3. to have your students log in at all (rather than just log in as guest), I have to edit a
JSON
file - I can do that for a small number of people but eventually it would become too much -
and
that has to be maintained as students add and drop (I have a teacher interface that one could
use
if students login - here's a look at it). But
also, there's a
very complex process to get GoogleSignIn to happen that has to be done by any teacher using
this
- it's many steps and not that easy to follow, but it's possible
4. if I have many teachers using this with student logins, all the data gets saved to AWS -
which
costs a tiny tiny amount for me for this amount of data, but could eventually become more
significant
When I retire, one of the things I want to do is solve all these problems, because I think the
pages are really good teaching tools and it took me years to build them up (you can click the ?
on any page to see what some of the features are, but I need to update that a bit more, too)
The last big hurdle is security - I've had a few brilliant kids find ways to hack in and find the
answers. I've added several levels of security since then, but they always find a way around
it. Ultimately, it's a lot of work at this point for them to get at the answers for a HW and
they couldn't get away with it during a quiz in class, though. The real problem is that the
answers are bundled with the page when the page is requested - it's encrypted and things are
obfuscated, but the answers are there in the browser.
I have thought through how I could hash the answers and then just hash the students answers
and
compare the two, but...
a. some questions have multiple possible versions of the answer
b. for many questions, the code takes my answer and the student answer and removes spaces and
makes lowercase and compares the two
c. some answers have multiple parts to answer and order doesn't matter, so my code works
through
all the permutations
These and other issues make the hashing solution not practical - also, one of the key ideas of
this is that students see the right answers when they are done - and you can't do that if only
the hash is available (oh, this is also a problem for logging in as Guest - I need to make
some
decisions about that - it currently doesn't allow you to Submit and then see the answers when
you
log in as guest - although students would know which ones they got right)
The other obvious solution is to save all the answers on the server side - this would mean
every
time a student tries an answer, there would be a request to AWS, meaning it would increase the
server requests probably a hundred-fold, but this is probably the best long-term solution.
To summarize: it's complicated! The best situation would be to have other teachers have their
students login so they can see the answers and the teacher can see the student work and even use
it as valid homework assignments and give and grade quizzes. I just think it's going to take at
least a year before I can get to that point, and even then, I'm not so sure I can make it all
happen