DEV Community

thvardhan
thvardhan

Posted on

Project : Humanoid human interaction

During my graduation in 2020, I've built an AI with my friend that can take inputs from students and evaluate them based on Bloom's Taxonomy.
Bloom's taxonomy is a standard model used to evaluate the performance of students in academics on the basis of six categories. The six categories are as follows :

  • Create
  • Evaluate
  • Analyze
  • Apply
  • Understand
  • Remember

Knowing the exact scores in these categories, an instructor can quickly and efficiently help the student improve their understanding.

Bloom's taxonomy is a framework for categorizing educational goals, developed by a committee of educators chaired by Benjamin Bloom in 1956. It was first introduced in the publication Taxonomy of Educational Objectives: The Classification of Educational Goals. The taxonomy divides learning objectives into three broad domains: cognitive (knowledge-based), affective (emotion-based), and psychomotor (action-based), each with a hierarchy of skills and abilities. These domains are used by educators to structure curricula, assessments, and teaching methods to foster different types of learning.

The project was deployed directly on a humanoid robot. The robot in question is "NAO" which is developed by SoftBank robotics.

Prototype demo of the project


In the video, the NAO robot is not using google assistance or Alexa, we had built our own parser to properly incorporate the features we needed.

How we built it

The project was built using Python and Java.
We had also used Heroku cloud database to store information and host a frontend to quickly add/remove questions to the robot. Thanks to GitHub student pack, We had received credits from Heroku to afford the worker dyno.
JetBrains' IntelliJ IDEA and PyCharm has been a HUGE! help throughout the project.
SendGrid was used to email students their respective result cards.
We had also used IBM Watson's cloud and speech engines.

We've used several similarity and semantic indices to check for a question's exact meaning and evaluate it. example, if there is a question that states "What is Java?" and someone answers "Java is a programming language" or "Java is used to program cross-platform applications" then both of these will be evaluated as right and will be given grades. We are using a set of answers which are matched with the answer received from the student based on these indices. We are not doing a keyword match.

Additional Thoughts

At the start of this project we never thought we would be able to do it but thanks to all the support from GitHub student pack it was possible. we had faced multiple obstacles while building this project but solving each of it one by one was very satisfying. It was a very research-oriented project which I think would definitely help us automate exams completely. we had to collect responses from students all over the university so that we can find an optimal threshold for similarity to work, finding proper weights for the questions and points etc. I would say it was a very fun project.
Unfortunately, the code was stored in the university's local computer and it is closed due to the pandemic so we were not able to upload it on GitHub.

Finally, I would like to give a huge shoutout to everyone who had helped me during the project and special thanks to GitHub student pack for providing such amazing tools for free.

Top comments (0)