Inspiration

We were thinking about how we've had bad group experiences in the past given projects. Especially when the groups were randomly assigned to us by professors. And we wanted to make the process easier and more satisfying for students. Additionally, we read up a bit on analytics in education and came across this theory paper. link It talks about Teaching Analytics tools may be helpful to teachers to support their overall goals of helping students learn better. Therefore, in summary, we want to make a tool that creates optimal groups for students to succeed in the classroom which will provide feedback to teachers about how to better their course material.

What it does

First, students fill out a form to grade their skills at a rate of 1-5. Next, we export that out as a CSV and import it into our project through Python. Then, our project uses an unsupervised machine learning algorithm called k-means clustering to group the students together. Afterward, their groups are printed out.

For the second half of the project, the students will fill out another form rating aspects of the assignment that they liked. Then, we gather information from that data and plot them on charts that show these features:

  1. What skill pairs are causing students to succeed?
      a. What happens if we define success as a team getting 90% or higher on an assignment?
      b. What happens if we define success as a team having high overall happiness ratings?
      c. What happens if we define success as a team having high average time-consumption ratings?
 2. What skill pairs are causing students to struggle?
      a. Consider the same definitions of success as above.
3. What skill gaps are common amongst the student groups?
      a. What happens if we define a skill gap as a student having no members with one skill which would lead to success? 

How we built it

We used Google Sheets for the different forms as it was the fastest way to create the CSV. We decided to use Python to create the rest of the code.

We used Google Cloud Services to pull live data from Google Sheets.

First, we decide how many groups to make based on the group size that a teacher provides. Once we decide how many groups to make, we pick a random student to be the leader of a group. Then, we go through the other students and see how close they are to the leader in terms of responses. And finally, we create a group of the desired group size. For some skills, similar values will mean that students are closer to the leader. Then, we decide on the groups.

Challenges we ran into

Similarly, for the analytics one of the main issues we ran into is that we couldn't figure out what is a good axis to plot the clustered information on. We were color coding the points to show the blend of skills and set the x-axis as the success metrics. However, we could not figure out what to set as the y-axis for the same graph.

Accomplishments that we're proud of

We were able to create a full pipeline that will help educators better support their students, and we were able to solve a problem that nearly every single college student has experienced.

What we learned

We learned how to use Google Cloud Admin, and Python Analytics tools like Matlab, Pandas, and Seaborn.

What's next for GroupGroove - The perfect beat for your team's success

We are hoping to clean up our code and make the user interface more user-friendly.

Built With

Share this project:

Updates