Design For Tension

For our design for tension assignment we decide to focus on the controversial topic of engineering and science versus humanities. Specifically we settled on trying to push people towards the humanities, or at least realizing the importance of the humanities.


When considering how someone should interact with our chat bot we thought about how you could go about actually trying to persuade someone that the humanities are important. You would have an actual conversation with them, so instead of having a few canned response that you can respond with, we actually allow the user to type whatever they want as if they were actually chatting with a real person. While we wanted the user to be able to respond however they pleased we had to structure the conversation in a way we could actually make and a way that would allow us to get our message across. So with that in mind we came up with what we thought a good conversation flow would be.

Conversation Flow Chart

What we determined to make the most sense was to ask a combination of fairly specific questions and have the user rate how much they valued certain values on a scale from 1 to 10. This allowed us to limit the number of possible paths the conversation could take while still feeling relatively like an actual conversation. Many questions would have different responses depending on how the user answered, but would continue on the same path regardless of what the exact answer was. This allowed us to continue driving our point home while still seeming like the conversation was unique and not just canned responses. We also gave our chat bot a name, “Circe”, to make it feel a little more personal.


For the actual implementation of our chat bot we decided not to use any of the suggested tools as they seem like they would either be limiting or would have a large learning curve to be able to achieve what we wanted to achieve. Instead we built our own chat bot using a Flask web server with an HTML, CSS, and JavaScript front-end. This allowed us to create a fairly simple parsing and response matching algorithm which allowed for highly customized responses. By writing the code ourselves it allowed for us to create features such as our chat bot being able to tell the user about course available at their school.

Demo of our chat bot

User Testing

For the user testing portion of the project we gave each user a chance to interact and have a conversation with our chat bot and then asked them for their thought on the design of the bot, both visually and the overall experience. We had six users test our chat bot, and by far the biggest criticism of our bot was that some of the questions were a little too vague and they didn’t really know how to respond. Another comment was that the conversation ended too abruptly, they wanted a chance to ask more questions about the humanities and humanitarian values. We were able to take all of the feedback and implement solutions to address the shortcomings of our chat bot. Overall we received a very positive response from the users.

User Testing


The full project source code can be found here.