NYU Biology - Teaching Grid web app

content strategy | web development

In 2020, The Department of Biology at NYU requested a streamlined web application to simplify the process of gathering course evaluation scores from faculty during their Promotion & Tenure request. Prior to this web app, the process for gathering scores was a manual process of opening up physical and digital PDF copies of course evaluations, calculating scores, taking at least a week to complete.

As an IT Support Specialist, I began a two-part process to create this web app. This was built on top of a process to automate course evaluations into PDF files from Qualtrics, built by a prior faculty member using R.

Part 1: Understanding R code, Promotion & Tenure and Inefficiencies

To give some backstory, Course evaluations were done through NYU's Qualtrics service, sending these internal surveys to up to 900 students at the end of every semester. Once these surveys were completed, Various Rmd and R files were run through an Rmd file to knit together PDFs of individual classrooms. This was done on RStudio and developed by the Director of Undergraduate Studies. These PDF files were then distributed to individual faculty members after the end of the semester.

Gathering inefficiencies: I sat down with the Department Administrator to discuss the current process of gathering course evaluation scores for faculty up for Promotion & Tenure. This process involved manually searching for all the times the faculty member taught all classes in the past 5 years, collecting Course Overall and Faculty Overall scores from each student respondent (e.g. How would you rate this course overall?, How would you rate this professor overall?), for each class finding the average of the score for each class, and compiling those scores. This process was prone to error and could take at least a week to complete.

Part 2: Creating a Semester Course Overall Summaries List

With this knowledge, I adapted the existing R source code to export a CSV file which calculates the average Course Overall and Instructor Overall for each instructor and course.

This course summary became important to share with the Department Chair and became a building block to the Teaching Grid web application.

Part 3: Creating the Web App

The web app was then created on Google Script using Javascript to simplify connecting Google Sheets and Google Docs. The web app works in the following way:

  1. It feeds data from a Google folder, Course Summaries, which contains the CSV files for each semester from Part 2.

  2. On the web app itself, users can choose from a dropdown list of faculty members, a start semester and year, and an end semester and year.

  3. Once the query is submitted, a preview of results is displayed. At the request of the Department Chair, I added an option to choose which score, Instructor or Course Overall, to choose for each course.

  4. Once scores are chosen, users can select "Export to Google Docs" to create a Google Doc of this preview in a separate folder.

Final view of web app before exporting to Google Docs, including the Score Selector and Export to Google Docs option.

Example of Teaching Grid Google Doc created. Users can make edits further to this document and export as needed.

Things to Consider

Though this proved successful with the Department Administrator and Chair, I thought of a few ideas to improve on this product:

  1. The number of Total Enrolled in the exported Google Doc must be manually inputted. Finding a way to read and automate this number into the web app could be useful.

  2. The Loading time for the results of any faculty varies by the number of classes an instructor taught. For faculty that taught more classes, the load time takes much longer (up to 10-15 seconds). Minimizing load time could have been done by incorporating hash tables and improving other search efficiencies in JavaScript.


Overall, this product was a huge success with the Department Chair and a big sigh of relief of the Department Administrator to simplify a previously arduos and long process.