Sunday, May 7, 2017

Final Post for CREU '16-'17 group

"How lucky I am to have something

that makes saying goodbye so hard."

It is with a great deal of bittersweet emotion that we say goodbye. Last Thursday, May 4, marked the last meeting of our research group. We discussed the work that still has to be completed, like analyzing the data from the user surveys. Over the course of the summer, Nico will analyze the data we collect and use that data to write another research paper.

This past academic year has challenged us in ways we never imagined and allowed us to grow as students, researchers, software developers, and collaborators. Overall, our group is very pleased with our accomplishments and we are extremely thankful for the opportunity to participate in this amazing program.

So long, and thanks for all the fish.

NMT CREU '16-'17 group

Friday, April 28, 2017

(4/28) A brief analysis of work completed

Over the course of the program, Hugo, Eugene and I have learned much more than I think any of us expected to about the research process, mobile development, databases, and creating a RESTful API server. This post will serve to summarize the work that we've done on the server, and where our research will go from here.

We have written 3845 lines of code for the server. About 92% of this code is Java, leaving about 8% of the code as HTML/CSS. We have made 201 commits to our master branch for the server, which represents about 1 commit per day. The graph of these commits shows a clear spike as we neared the start of the experiment, and another spike as we ran into bugs that prevented us from testing in early April. Despite these spikes, the graph also shows that we have been consistently working on the server since early October.

The CREU program ends on 5/5, which is the same day that Eugene and I will oversee the last session our app is used. Once the final session is complete, we will issue an exit survey, which asks students to rank the methods of authentication and asks questions about the usability of the application. After this, we will no longer have funding, but Dr. Zheng and I have arranged for me to take Directed Research course over the Summer to analyze the data we have collected from the experiment, write a second research paper, and to write any documentation necessary for a future CREU team to continue to use our application for their research. This CREU team could add notifications to our application to study the effect of personalized feedback on student attendance rates, or could move forward with authentication using facial recognition or location determination via Wi-Fi networks.

In all, I'm extremely grateful for the opportunity to have worked on this project. This is definitely the longest I have ever worked on a single software project, the largest codebase I have ever worked with, and the most demanding in terms of my time. I have learned much more than I thought I would, gotten a feel for the research process, and worked with some really amazing people.


(4/23) Another hiccup

This is the fifth in a series of backdated blog posts.

Our application now works with all methods, though we did suffer another setback last week. We host the server component of our application on a virtual machine managed by NMT's Computer Science department, which had its storage machines go down Monday of this week. Because of this, many machines' hard drives went into read-only mode, including the machine hosting our server. Even though our machine was restarted, our Tomcat instance was not, and so no students were able to sign in Monday. We compensated for the delay by holding two sessions, so this didn't affect our schedule.

Our application is also in the review process for the Apple App Store, which means that, proctoring the last few sessions and performing data analysis aside, we've basically reached the end of our project. I'll make a post next week detailing the work done on the server side, and our continuing research after the end of this year's CREU program.


(4/16) Preparing for the SRS

This is the fourth in a series of backdated blog posts.

Work on the server has largely been completed, so Eugene and I spent this week preparing our poster for the SRS using the LaTeX template that Hugo created for us. We've completed the test sessions for both PIN and Password, and will probably be conducting two more tests for PIN and Password to give Hugo time to resolve UI bugs caused by adding the QR method.

The SRS takes place on Thursday, April 20, and we will be presenting our poster to passers-by and judges. They will submit surveys indicating their understanding of our research and our clarity in presenting.


(4/9) Hiccups in the experiment

This is the third in a series of backdated blog entries.

As Eugene has mentioned already, the experiment schedule is being pushed back a week.

Before Monday, the intended first day of the experiment, Hugo, Eugene and I worked hard to finalize the application. We generated user accounts, finalized the communication protocol between the client and server, and simplified the instructor's web application. However, I had relied on behavior that was previously in our communication protocol to determine the course that the user was in, and because I tested the login and attendance submission process using a REST client, was unaware that the application was not sending the course number that the students were in. As such, on Monday, no students were able to log in. The fix was relatively simple-- we could just look up the student's course number in the database, as intended.

On Wednesday, we encountered another bug. The client expected that the position of a student's course in the list sent  would also be the course's ID number, but this was true only for accounts enrolled in our test session. This caused everything to look like it was working as we were testing our changes, but when students enrolled in the actual classes logged in, they could not submit attendance to the correct class because it was greyed out.

We fixed these issues before Friday and conducted a successful test in one class's lab session, which was a welcome relief.

We also enabled TLS for both the client and server before Wednesday, which was a difficult process for Hugo and I. The solution on my end was to stop attempting to enable TLS using Tomcat, which is needlessly complex, and to instead use an NGINX reverse-proxy.

In all, both setbacks were frustrating and time-consuming to resolve, but didn't affect our experiment too much.


(4/2) Beginning the experiment

This is the second in a series of backdated blog entries.

We began the experiment Monday, beginning with taking attendance traditionally. This is being done both to give students a point of reference for when we start to use our application, and to collect data on the time our application saves over traditional methods, if any.

Next week, Eugene and I will introduce the PIN and Password methods of authentication. The following week, we will introduce the QR and Pattern methods. The week following this, we will require participants to use PIN and Password unassisted, and the next week, require them to use QR and Pattern unassisted. The experiment is being structured this way so that we collect data from the unassisted sessions in order to eliminate the effect that unfamiliarity with the application may have on submitting attendance.


(3/26) Return from conference and Spring Break

I have some catching up to do-- this is the first in a series of backdated posts detailing what I've done in the month since we returned from our conference.

Eugene's conference debriefing post contains most of what we did during SITE 2017, but he did mention that we had to take some time the day of our presentation to work more on our application.

As we were preparing to present, we needed to conduct a final test of our application to confirm everything was working correctly. Unfortunately, we were suddenly unable to record our attendance in the session even though everything had worked perfectly just two days prior. It took about 30 minutes to discover that we had been using the phone's local time to determine whether a session was open, or whether students were on time, late or absent-- this meant that with the shift to Austin's time zone, no class sessions were seen as available! This also could have allowed students who were late or absent to manipulate their phone's clock to appear as if they were on time, so we were glad to discover this bug, even at such an inconvenient time.

Once again, we're very grateful to CREU for funding our travel and to Dr. Kuo for accompanying us to SITE 2017.