Hi Jennifer,

Otis makes very good general points about assessment in his last post.

I also have no expertise on running the Jmol checks on the server side.
However, your plan to make a second Ajax call to check the student solution
seems to deal with most of your concerns in that the correct answer is only
visible on the client side after the student has submitted an answer.  A
solution involving two Ajax calls, and using Jmol to do the SMILES
comparison, seems like a good option to my (inexperienced) eye.

Mike

Dr Mike Casey
School of Chemistry
UCD
Dublin
01 716 2420

On 20 July 2016 at 16:45, Otis Rothenberger <osrot...@icloud.com> wrote:

> Jennifer,
>
> Bob may be able to point your tech guys in the right direction for setting
> up the server side Java App.
>
> However: I ran the large lecture section non-major course at ISU for years
> - 700+ students per semester. In the early days of the Web, we ran on-line
> homework with answers on the client side. To “hide” these answers we used
> obfuscation.
>
> With modern HTML5/JavaScript, the following obfuscation procedure comes to
> mind:
>
> 1) Using AJAX, put the answers directly into JavaScript variables.
>
> OK, some students will understand the JavaScript console to peek at
> variables. So…
>
> 2) Use JavaScript replace to mess up these variable strings. Don’t use
> simple direct string replace. Mess up (and un-mess up)  the answer strings
> with the most unreadable regular expressions that you can contrive.
>
> It’s not fool-proof, but then neither is the server.
>
> Related Pedagogic Thoughts: When I used graded on-line homework, we did
> not have secure testing centers. Colleagues would ask me why I bothered
> doing this. The answer was simple...
>
> 1) The homework grade was weighted so that the best it could do was to
> boost a cumulative grade about half a letter grade.
>
> 2) The homework was designed to prepare students for specific exam
> question types and specific important course material. Students who took
> this seriously, did well in other components of the course. Student
> feedback reinforced that this was working.
>
> 3) I really did not care if some students cheated! If an F got boosted to
> a D or a D got boosted to a C, so be it. Serious students benefited from
> the homework system.
>
> 4) While my students were non-science majors, an OChem question comes to
> mind. Of what value is a C grade in OChem when applying to Med School or
> Grad School?
>
> I guess what I’m trying to say here is don’t let a subset of students who
> may cheat taint the whole system. Just design things so that cheating
> carries a built in penalty and thus becomes irrelevant.
>
> Otis
>
> --
> Otis Rothenberger
> o...@chemagic.org
> http://chemagic.org
>
> On Jul 20, 2016, at 8:39 AM, Jennifer L. Muzyka <
> jennifer.muz...@centre.edu> wrote:
>
> Thanks, Mike.  Your explanation finally helps me understand why Otis is so
> focused on having Jmol do the comparisons rather than going back to the
> database.  I didn’t get that until now.  The potential complication for me
> is that I’m hoping to eventually implement these questions in a graded
> homework system.  I realize that students are resourceful and having the
> SMILES in the page’s JavaScript would make it possible (not actually easy)
> for students to cheat.  So I’m reluctant to have the SMILES in the page.
> Is there a way to do the Jmol SMILES comparison on the server side?
> Jennifer
>
>
>
>
>
>
>
>
> On Jul 20, 2016, at 7:09 AM, Mike Casey <mike.ca...@ucd.ie> wrote:
>
> Hi Jennifer & Otis,
>
> I'm a relatively inexperienced programmer so please treat the following
> with caution.  However, FWIW, I use the approach that Otis is recommending
> (if I understand him correctly).  Users make selections, ajax is used once
> to retrieve all the data relevant to a problem of the appropriate type from
> a database (as a JSON object that is easy to work with in Javascript).  The
> structures drawn by the user in JSME are then checked by comparison of the
> user SMILES from JSME against the correct SMILES, retrieved from the
> database with the other problem data, using Jmol (which is in a hidden div
> on the page.  As Otis says, Jmol matches different SMILES strings from
> different sources as long as the structures are the same.  My site is not
> in the wild yet (it is a major upgrade of http://www.ucd.ie/chem/chemint/),
> but I would be happy to send the code to you if that would be helpful.
>
> Mike
>
>
> Dr Mike Casey
> School of Chemistry
> UCD
> Dublin
> 01 716 2420
>
> On 20 July 2016 at 01:58, Otis Rothenberger <osrot...@icloud.com> wrote:
>
>> Jennifer,
>>
>> The student SMILES and the answer SMILES need to be compared on the
>> client (browser) side via JavaScript. The student answer SMILES is already
>> on the client side. All we would need is the answer SMILES there also.
>>
>> Having said this, I know that Bob H once mentioned running the Java app
>> on the server to do server side tasks, but running the Java app on the
>> server is way beyond my programming skills.
>>
>> With the power of modern JavaScript and HTML5, I’m not sure I see why the
>> computer jocks are more comfortable with a second hit on the server. The
>> fact is that the server cannot do the SMILES comparison as elegantly as
>> Bob’s JSmol SMILES comparison, that is unless the Jmol Java App is run on
>> the server. With the client side JavaScript/HTML5 power, it seems to me
>> going back to the server is just going back to the server in order to go
>> back to the server!
>>
>> All of this, of course, is dependent on getting the answer SMILES into
>> the working webpage.
>>
>> Whichever route you go, that still leaves you with a database with some
>> SMILES issues. Here’s a suggestion: How soon is Bob B’s cheminformatics
>> course going into action again? Reconstructing your database entirely from
>> Resolver (maybe PubChem) by an automated process would be a great real
>> world project for one of the student teams. ( cc to Bob B)
>>
>> Otis
>>
>> --
>> Otis Rothenberger
>> o...@chemagic.org
>> http://chemagic.org
>>
>> On Jul 19, 2016, at 8:22 PM, Jennifer L. Muzyka <
>> jennifer.muz...@centre.edu> wrote:
>>
>> Otis,
>> What you are describing is essentially how I handle the code for the page
>> where students draw the product structure.  It's certainly doable for the
>> starting material structure as well.  I would just need to work out the
>> different query and JavaScript.  My computer science colleagues would
>> probably consider that the brute force method, unlike the more elegant Ajax
>> method that goes back and queries the database a second time.  Is there
>> some advantage to keeping all of the code within the page rather than going
>> back to the database?  Those use PHP and MySQL.
>> Jennifer
>>
>> Sent from my iPad
>>
>> On Jul 19, 2016, at 6:00 PM, Otis Rothenberger <osrot...@icloud.com>
>> wrote:
>>
>> Jennifer,
>>
>> On your page, students make several choices to set up a problem. It
>> appears that each choice does a GET and reloads the page from sever with
>> appropriate page modification. How hard would it be to return the correct
>> SMILES on each of these GETS?
>>
>> Otis
>>
>> --
>> Otis Rothenberger
>> o...@chemagic.org
>> http://chemagic.org
>>
>> On Jul 19, 2016, at 4:35 PM, Jennifer L. Muzyka <
>> jennifer.muz...@centre.edu> wrote:
>>
>> Otis,
>> Other information in the database includes:  CAS RN, InChI, InChiKey, and
>> ChemSpider ID.  I’m aware that the different sources for SMILES is a
>> potential issue, having already dealt with that.  I’m also aware that
>> compounds can have more than one CAS number and more than one ChemSpider ID
>> even though I learned that CAS numbers were unique back when I was in
>> college.  An unfortunate reality is that I don’t have all of the keys for
>> every compound.  Another potential problem with the database is that I
>> might not have removed all of the situations where a single compound
>> appeared more than once.  There are other things in the database (gifs,
>> pdbs, jcamp spectra) for some compounds.
>> Jennifer
>>
>>
>>
>>
>>
>> On Jul 19, 2016, at 4:22 PM, Otis Rothenberger <osrot...@icloud.com>
>> wrote:
>>
>> Jennifer,
>>
>> The default is that JSME keeps explicit hydrogens to carbon, and these
>> will show up in brackets. An option can be used to turn this off.
>>
>> It sounds like you have a mix of SMILES that may have been created by
>> options variations in the JSME implementations being used. That's a problem.
>>
>> One more question, and then I'll do some more thinking. What other items
>> or keys are in the database?
>>
>> Otis
>>
>> --
>> Otis Rothenberger
>> o...@chemagic.org
>> http://chemagic.org
>>
>> On Jul 19, 2016, at 4:01 PM, Jennifer L. Muzyka <
>> jennifer.muz...@centre.edu> wrote:
>>
>> Otis,
>> 1200 of the compounds have SMILES that agree with the JSME version.
>> Those were generated by a buddy of mine.  Then when I found some disagreed,
>> I went through them one by one to fix the ones that disagree.
>>
>> The next 3800 came from some other source than JSME when one of my
>> students imported the compounds into the database.  Most of those are not
>> involved in reactions so those compounds might not be relevant.  I
>> anticipate that I would change them one by one if needed so that they agree
>> with JSME.  None of those have SMILES that look like the stuff with
>> brackets and H’s that JSME produces.  They tend to use the slashes to
>> indicate double bond stereochemistry and @ to indicate chirality at
>> stereocenters.  (People who are more proficient programmers than I am could
>> probably complete the task more rapidly by automating it.)
>>
>> Now I’m adding new reactions to accompany the question type where
>> students draw the starting material rather than the product, I’m adding new
>> compounds one by one.  I’m getting the SMILES for each of those compounds
>> from the JSME database.
>> Jennifer
>>
>>
>>
>> On Jul 19, 2016, at 3:51 PM, Otis Rothenberger <osrot...@icloud.com>
>> wrote:
>>
>> Jennifer,
>>
>> On the student side, Jmol and JSME would be working together. This is no
>> big deal - very easy. The problem is server side.
>>
>> Let me think about this. Some important points: Do your existing database
>> SMILES have stereo chemistry - i.e. / \ and @ notation where appropriate?
>> Are they all JSME SMILES? Is there a possibility that the database creators
>> may have drawn explicit hydrogens on carbon in non-stereo contect?
>>
>> Otis
>>
>> --
>> Otis Rothenberger
>> o...@chemagic.org
>> http://chemagic.org
>>
>> On Jul 19, 2016, at 3:37 PM, Jennifer L. Muzyka <
>> jennifer.muz...@centre.edu> wrote:
>>
>> Otis,
>> The SMILES database has about 5000 compounds in it.  I’m  confused about
>> how JSmol works here.  Would there be a JSmol drawing interface rather than
>> JSME?  I guess I need to go read the Jmol documentation about how to get
>> the SMILES stuff working.  Is there some automated process to get the Jmol
>> versions of the SMILES to update the database?
>> Jennifer
>>
>>
>>
>>
>> On Jul 19, 2016, at 2:00 PM, Otis Rothenberger <osrot...@icloud.com>
>> wrote:
>>
>> Jennifer,
>>
>> For the most part,  there is no cross application canonical SMILES.
>> Daylight never released the technical details to their reduction to
>> canonical algorithm. Consequently, uniqueness exists only within a given
>> “copycat” application. I believe PubChem uses Open Eye SMILES. If you were
>> comparing Open Eye unique SMILES to Open Eye unique SMILE, you could do a
>> simple string comparison.
>>
>> JSME is top notch in my opinion. I would not use any other online drawing
>> software, but with JSME, you cannot have canonical (unique) SMILES AND
>> stereochemistry. If you want simple string comparison, both SMILES (sever
>> and student drawn) will have to be JSME without E/Z and stereo chemistry.
>> I’m almost certain that this has not changed since the "old doc" in the
>> previous email. I think this means that you are going to have to use these
>> explicit options in server and client JSME SMILE creation: noquery (this is
>> default), noautoez, canonize (this is default), nostereo. I’d list all
>> explicitly.
>>
>> This probably not what you actually want, and that’s the absolute beauty
>> of what Bob created in JSmol! With Bob’s approach, the cross application
>> unique SMILES barriers do not matter. Bob took the expression “unique
>> SMILES” and made it obsolete!
>>
>> To do this (include stereochemistry via Bob’s approach) you will also
>> have to make some options selections in JSME, but you will also be able to
>> use E/Z and stereochemistry.
>>
>> How large is your SMILES database?
>>
>> --
>> Otis Rothenberger
>> o...@chemagic.org
>> http://chemagic.org
>>
>> On Jul 19, 2016, at 1:23 PM, Jennifer L. Muzyka <
>> jennifer.muz...@centre.edu> wrote:
>>
>> Otis,
>> The SMILES goes back to the MySQL database for comparison rather than
>> just running JavaScript within the browser.  The stuff in the database was
>> all generated with JSME.  (So I’m confused about how adding Jmol to the mix
>> will help.)  The “canonical” SMILES generated by JSME sure doesn’t look
>> like the canonical SMILES provided in PubChem.  But maybe I’m actually
>> getting SMARTS?  I will go read the documentation you have pointed out.
>> Jennifer
>>
>>
>
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and
> traffic
> patterns at an interface-level. Reveals which users, apps, and protocols
> are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity
> planning
> reports.
> http://sdm.link/zohodev2dev_______________________________________________
> Jmol-users mailing list
> Jmol-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jmol-users
>
>
>
>
> ------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and
> traffic
> patterns at an interface-level. Reveals which users, apps, and protocols
> are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity
> planning
> reports.http://sdm.link/zohodev2dev
> _______________________________________________
> Jmol-users mailing list
> Jmol-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jmol-users
>
>
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to