Arya — A conversational device to aid students during sign up

Shivangi Srivastava
Design with code
Published in
10 min readAug 19, 2018

Team: Shivangi Srivastava and Rujuta Sondur

Arya, deriving from Aryabhatta- a famous Indian mathematician and professor- is a conversational AI that acts as a mentor to students during their course signups. Arya uses data already stored in the college cloud and uses it to recommend courses to students during their signups. Arya also collects data through feedback forms at the end of every course which help faculty get a better understanding of how the students enjoyed the course and how to improve it.

The device works by using a conversation based AI similar to Alexa, Siri and Allo. A set of keywords trigger the next response by the device. The device uses data entered into the backend by drawing on existing data collected by the college in the form of feedback forms. It also taps into course abstracts and student information already stored in the college database by using unique student IDs to gain access to the data. The device also uses a screen to communicate and display responses to student queries to prevent the student from getting distracted or bored in case of long responses.

This device aims to take a physical signup and introduce a digital aspect to it. Due to limited number of faculty as well as their busy schedules, students often have to wait for a long time to speak with their faculty and understand their course options better. This device streamlines the process and saves the time of both faculty and students without completely eliminating the interaction between faculty and students. By doing so, we want to reduce the stress and confusion that surrounds signups, and instead make it an easy process for students. This will not only help them be better informed about their choices but will also lead to lesser course dropping and changing.

Problem Area:

The course signup can be a stressful time for students. Students have to pick the entire year’s courses in a matter of three to four days with over hundreds of course options available. Students also have to wait for a long time to get a chance to speak to a faculty to get their schedule reviewed before making any suggested changes. Often, faculty cannot explain abstracts to courses that they are not taking or are not familiar with. In this event, the student has to find the faculty taking the course to get a better understanding of the course. Students also have to keep track of their major, minor and elective credits as well as ensuring that their mandatory and pre requisite course requirements are fulfilled. The course abstracts can often be misleading, or can be interpreted in several ways which leaves the student confused. Arya aims to solve all these problems and more by acting as a mentor to the students.

How it works:

A student can log into the device using their student ID and password. This gives Arya access to their name, major, minors and courses taken. Based on the help that the student needs, Arya suggests courses to the student. Students can filter courses based on interests, major and minor courses and electives. If the student likes a course, they can bookmark it. Arya saves a course bookmark for every student and arranges it into a timetable for convenience. A major and minor credit tracker alerts the student if they are falling behind on their credits. Arya also informs the student of any mandatory courses they have not taken, along with any pre requisites required for a course they want to take.

Arya not only filters courses but also provides advice in case of confusion. A student can ask Arya for help in selecting a course, trying to fit all the courses they want into their timetable and advice on which course would suit them best based on their interests. Arya also offers solutions to taking courses as an elective in case the major or minor credits have been exceeded.

#filter based on typography
def filter2(): #filter options -> only yes responses for prototype
print(“These are the typography courses available\nLetterform Design\tVCSB\nExperimental Typography\tVCSB\nTypographic Form and Communication\tVCSB”)
print(“These are the courses available in even semester cycle 1\nInteraction Design\tHDC\tMT\tAM\nDigital Interfaces\tVCSB\tMTTHF\tFULL”)
abans = input(“Do you want to view their abstracts?”)
if abans == ‘yes’ or abans == ‘Yes’:
print(“Letterform Design: Engage with typography from both visual and verbal perspectives. Understand the fundamental technical terminology associated with this field.”)
print(“Comments:\nA great course for those who are interested in typography”)
print(“Experimental Typography: Develop an experimental approach to working with and using Type in relation to syntax and visual communication.”)
print(“Comments:\nGreat course to experiment with typefaces\nNot a very advanced level type course”)
print(“Do you want to bookmark any course?”)
check1 = input()
if check1 == ‘yes’ or check1 == ‘Yes’:
course = input(“Enter course name to bookmark”)
file = open(‘Bookmarks.txt’, ‘a+’)
file.write(‘\n’)
file.write(course)
else:
res = input(“Would you view bookmarks or reset?”)
if res == ‘View Bookmarks’:
view()
else:
exit()

A feedback form is distributed to all students at the end of a course. The questions asked try to ensure an objective answer so that the answer will not be biased according to personal interests or faculty preferences. This data will be used in the next year in the form of comments for all available courses. The comments will not only provide a better idea of what was done in the course in the previous years, but also offers a clearer idea of what the course is about. Since course abstracts can often be misleading, comments give students more clarity.

print(“Let’s start with your mandatory courses. \nThese are your mandatory courses, Priya: \nForm Function \nPrint Processes\n You have completed all your other mandatory courses “)
ask2 = input(“Do you want to view more information about any of these courses?”)
if ask2 == ‘yes’ or ask2 == ‘Yes’:
print(“Enter the course name: “)
course1= input() #Form Function
if course1 == “Form Function”:
print(“Engage with the elements and principles involved in layout design. Arrange and organize text, images and visual elements to communicate a specific order and hierarchy.”)
print(“Comments: This is an excellent course for basics of visual communication\nThis course is a must take for all VC students\nTeaches you about layout, typefaces and basics of Indesign”)
print (“Would you like to bookmark this course?”)
bcheck = input()
if bcheck == ‘yes’ or bcheck == ‘Yes’:
course = “Form Function”
file = open(‘Bookmarks.txt’, ‘a+’)
file.write(‘\n’)
file.write(course)
print("Filtering courses is a great way to narrow down your options. Do you want to filter courses?")
checkans = input()
if checkans == 'yes' or checkans == 'Yes':
filterans()
if checkans == 'no':
print("I will reset to start again")
exit()

The above two are excerpts of the code from the first prototype. The problem with the first prototype was that it was still too functional, and not very conversational. We wanted Arya to mimic a faculty rather than seem like a machine.

To solve the problem of experimental conversation, we decided to ask students and faculty for feedback. We asked faculty common questions that are asked during signup, and noted their responses. We also talked to students to see how they would go about the process. We also realized that we had to design the prototype in a way that it could divert from one conversation and switch to a different topic.

Currently, students make decisions by reading the abstracts and getting opinions from their faculty and peers. If a student is interested in UX courses, their friend or faculty would not immediately sprout a list of courses on the topic. Instead, someone might recommend a good course they had taken up relating to the subject of UX.

Arya follows a similar conversational flow, replicating a conversation a student might have with a faculty or friend instead of a machine. Rather than giving direct answers in every scenario, Arya offers advice and suggestions the same way a human would. At the same time, there are some scenarios in which Arya would give a direct answer, such as when a student wants to filter courses according to their schedule. This is to save the student’s time and not drag out the process.

We mapped out three user cases to test in our prototype. The flowcharts not only helped us during coding, but also helped us understand the user-machine interaction better.

Case 1: Student’s major is Visual Communication
Case 2: Student’s major is Visual Communication.
Case 3: Student’s major is Visual Communication.

The code for a few of the user cases is show below:

#Question: Will I be missing out if I don’t take Interaction Design?
#Student has taken similar courses before
def Case1():
speak.Speak(“Each course has something valuable to offer. However, as you’ve already taken three Interaction design courses, do you want to take another one or explore something new?”)
answer = input() #What other options can I explore?
speak.Speak(“If you’re interested in Interaction Design, you might alse be interested in UX courses. How about exploring that more?”)
answer = input()
if answer in (‘Yes’, ‘Sure’, ‘yes’):
speak.Speak(“Here are the UX courses being offered this year:”)
print(“UX Developmental Practices”)
print(“UX 1”)
print(“Ux 2”)
speak.Speak(“Do you want to bookmark any course?”)
bookmarkcheck = input()
if bookmarkcheck in (‘Yes’, ‘yes’):
speak.Speak(“Enter course name to bookmark”)
course = input()
if answer2 in (‘No’, ‘no’):
speak.Speak(“You can try having another look at the course list, and see if any other course suits you. Hope this helps!”)
if answer in (‘No’, ‘no’):
print(“Maybe you can explore courses that are within your interests. Based on the courses you’ve taken, do you think you’d like to do something with web or app design?”)
answer2= input()
if answer2 in (‘Yes’, ‘Sure’, ‘yes’):
speak.Speak(“Digital Interfaces and Visual Design for Screens are two highly recommended courses for web design.”)
ans1 = input(“Do you want to view their abstracts?”)
if ans1 == ‘yes’ or ans == ‘Yes’:
print(“Digital Interfaces: Learn about the basics of web design. This course teaches a basic understanding of user interactions and the seven principles of web design.”)
print(“Comments:\nA great course for those who want to delve into web design.”)
print(“Visual Design for Screens: Learn protoyping, mockups and delve deeper wireframing for websites.”)
print(“Comments:\nNo comments available”)

The machine’s answers are based on how a faculty might answer the same question.

#Question scenario: Revieweing timetable
def Case3():
speak.Speak(“I see you’ve taken a lot of two credit courses. Being in your third year, you might want to take up more four credit courses.\nThey allow you to learn more in depth.”)
speak.Speak(“However, two credit courses let you explore many different things, which is good for students interested in a broad variety of topics.\nWould you like to make any more changes to your timetable?”)
answer = input()
if answer in (‘Yes’, ‘Sure’, ‘yes’):
speak.Speak(“What changes would you like to make?”)
answer2= input() #Is there any four credit course in cycle 2 of even semester?
speak.Speak(“Here’s a list of four credit courses in Cycle 2 of even semester:”)
print(“Strategic Branding”)
print(“Semantics of Product Design”)
answer3= input() #Can you replace my even semester cycle 2 courses with Strategic Branding?
speak.Speak(“The course has been updated.”)
speak.Speak(“You have sixteen major credits and four minor credits. You need two more minor credits to satisfy your credit requirements.”)
speak.Speak(“Here are your available minor courses: \nRepeat to Fit\nMy favorite Designer\nUpcycling”)

The second prototype has an audio function, so that the machine can talk to the user. The device uses both a screen and a speaker. Courses and course information is generally displayed on the screen as speaking it out might bore the user or the user might miss out on/mishear something being said.

#text to speech
import win32com.client as wincl
speak = wincl.Dispatch(“SAPI.SpVoice”)
speak.GetVoices(“Name=Microsoft Zira”) #female voice

Information and Data:

All the information Arya uses is stored in the college cloud. This enables Arya to easily access any data about courses and student information. Thus the information Arya collects and the data that the college enters doesn’t have to be inputted in two separate locations.

Arya records the conversation it has with students and stores the information. The next time the same student uses Arya, Arya can pull information stored about that student to interact with them on a more personal level. By storing information about the student’s likes, dislikes and interests, Arya can recommend courses the student might enjoy and hence interacts with the student on a friend-like level. We also added an email function to mail the users’ their course timetable through Arya, so they do not have to go through the hassel of writing it down.

def sendmail(id): #sending email
user = “arya@gmail.com
password = “blackboard123”
to = id
subject = “Course Timetable”
file = open(‘Bookmarks.txt’, ‘r’) #course list saved in bookmarks
b1 = file.read()
body = b1.split(‘\n’)
content = “””\
From: %s
To: %s
Subject: %s
%s
“”” % (user, subject, body)
try:
server = smtplib.SMTP_SSL(‘smtp.gmail.com’, 465) #465 for ssl
server.ehlo()
server.login(user, password)
server.sendmail(user, to, content)
server.close()
speak.Speak(“Email sent!”)
except:
speak.Speak(“Oops! Something went wrong. Try again!”)

Faculty benefit:

Since Arya displays comments for courses publicly, faculty also have access to the comments section. This can help faculty improve their classes based on the feedback they receive. It can also help them write clearer abstracts and make changes to their courses if needed.

During course signup, faculty are often bombarded with questions by students. They also have to spend a lot of time with each student to help them figure out their schedules. This can be frustrating for both students and faculty, as it is a time consuming and tiring process. Through Arya, students no longer have to be dependent on faculty help. However, since faculty often have valuable insights and a lot of knowledge about what schedule might suit a student, we did not want to eliminate the faculty completely. Thus, after a student’s schedule is set through Arya, they can hand it over to the faculty for reviewing and make any changes accordingly. This saves the faculty’s time as they only have to review students’ schedules instead of helping create them, and also includes their feedback.

--

--