When you have 24 labs to grade in just one class and you get a new lab each week, you look for ways to make grading easier. Add to that 24 sections of the same lab at one university with each professor grading them using their own judgement, you get unending student complaints about fairness. Either you sit for hours, punching in the student's values into your calculator to see if they are correct or you just glance at the numbers and say "it seems fine".

I decided that one part of grading the lab could be computer automated... the data and calculations section. The trouble is that none of the instructor available LMS (Learning Management Systems) options could handle this task. They are more suited to fixed answers. Lab calculations depend on the student's data. Also, none of the LMSs could do calculations that tracked significant figures (precision) and units.

This is where my PowerPoint/OfficeMix app comes in...

What it does

Chem Lab Grader allows the instructor to build a worksheet using data inputs, calculation inputs, and selectable answer inputs. The instructor defines how each calculation input finds the "correct" answer from the student's previous data & calculation inputs using a simple expression. The app will even track correct significant figures and units through each calculation.

The student can then fill out this blank worksheet with his/her own data and calculations. The app will compare the student's calculations to its own and deduct points based on the result. In addition to the raw answer, the app can deduct minor points for incorrect significant figures and units.

Ultimately, the student gets his data and calculations evaluated instantly and, upon the instructor's prerogative, get another attempt to correct their mistakes. The instructor gets an instantly graded lab that is graded consistently and fairly.

How I built it

This app requires the JavaScript API, labs.js, which ties into the Office Mix system. I used Typescript to write the code and WinJS to build the UI. I also used an MVVM pattern for Typescript developed by Davide Zordan called TypedMVVM link.

Challenges I ran into

The only examples of labs.js that exist use JavaScript, Knockout.js, and jQuery. When I decided to use Typescript and WinJS instead, I ran into quite a few problems debugging the interaction between labs.js and OfficeMix. My app seemed to work fine in a developer environment. However, when I tried to upload a sample to the OfficeMix website, the app refused to upload and yielded no useful error information. After working through many async/promise headaches, the logic finally worked.

Accomplishments that I'm proud of

I learned quite a bit of HTML and Typescript/JavaScript working on this project. I am much more familiar with C# and XAML (and even C++) than the web side. I am happy that the app looks as good as it does... (including the gold theme). I am just happy that the app finally works the way it should.

What I learned

HTML, JavaScript, WinJS, promises, CSS... even basic concepts such as abstract classes.

What's next for Chem Lab Grader

A feedback mechanism, a user settings save function, extra input types, an expanded version that works for Physics where they also track error in addition to values ( i.e. 20.0 cm ± 0.3 cm)

Built With

+ 7 more
Share this project: