Whether you are ready for chatbots or not, they have been the future we live in now. Chatbots are not robots, but they are supposed to mimic humans. They are a piece of software that you chat with to get things done or be entertained. You have probably used Apple’s Siri, Google Assistant or Microsoft’s Cortana. But chatbots are more than just the built-in personal assistants. They are everywhere now; from ordering pizza to checking flight status
I have run an experiment to use chatbots in higher education in order to drive student engagement beyond the classroom experience. In this post, I am going to share my experience in developing a chatbot teaching assistant, called Koko.
Class Setting
This semester (Fall’17), I’ve been teaching a junior-level class on Assembly Programming in Assiut University, Egypt. It is a 3-credit class. The total class enrollment is 156 students and my role has been to lead lab sessions (20-25 students each). The main language of instruction is Arabic, but the material itself is in English.
Chatbot: Idea to Impact
Idea
I just read a recent article about rubber duck debugging. It’s an illusion that programmers use to find errors in their code. I tried it, and voila! It works. Then, I thought it would be cool to let students know about this technique. When I illustrated the concept, one student joked: “only if ducks are able to talk to me!“. Then I thought – why not?! Let’s build a chatbot to teach them some assembly programming and give it a personality of a rubber duck.

Place rubber duck on desk and inform it you are just going to go over some code with it. Explain to the duck what your code is supposed to do, and then go into detail and explain your code line by line. At some point you will tell the duck what you are doing next and then realize that this is not in fact what you are actually doing. Error Resolved!
Planning
The difficult part now is to crystallize the idea and put it in a clear form. My goal of developing a rubber duck chatbot was not (and will never be) to replace direct in-class instructions with a conversational application. It was meant to:
- Add fun to the class. Students will remember this course with that chatbot.
- Increase student engagement.
Now, for the chatbot to be usable, I thought it shouldn’t be a standalone application, but resides inside one of the social media platforms. Since most students have Facebook accounts (Facebook is the most popular social media platform in Egypt), I decided to develop it on the Messenger platform
The next question was: what would this chatbot actually do? There are a number of options here. One might think to let it answer students’ questions. This would require integrating it to an NLP module, in addition to feeding it with a knowledge-base system. Unfortunately, I didn’t have the luxury of time to go in this path. I chose to develop that chatbot such that it illustrates important topics in Assembly programming in a conversational way. So, students would ask the bot to explain predefined topics and the bot starts a human-like conversation similar to lab sessions.
Another key process in planning for the chatbot was to actually write down complete scenarios for explaining the chosen topics in a conversation. Since having a conversation is already my personal style of teaching, I didn’t find much difficulty in writing down possible scenarios.
As an example, writing if-statements and loops in Assembly is tricky because the instruction set doesn’t provide keywords to implement them as other higher-level programming do. A template flowchart I use to design such conversations is shown below.

A flowchart of explaining topics to students through a chatbot conversation.
Implementation
By now, you might be wondering if it requires programming knowledge to develop such a bot. Fortunately, there are many available cloud-based systems that allows you to build Messenger chatbots without writing a single line of code (Yaaay!). I used Chatfuel because first it is free (yes, I don’t want to pay) and second it is super easy to use (I don’t want to read lengthy documentations).
I created a Facebook page for the bot and named it Koko. It’s an Arabic slang word used as a funny nickname for ducks. Below is the first screen that students see when they navigate to https://m.me/koko.assistant
When a student press “Get Started”, Koko starts to introduce itself by saying “Hi ! I’m Koko. I help Abdelrahman in explaining the subjects he teaches. Everyday, Abdelrahman teaches me something before he goes to bed. I try to understand it from him so that when you ask me, I can answer you“. Koko also shows a suggested reply that the student can accept to go through the rest of the conversation. An image of this stage is shown below.

A greeting message from the chatbot appears once the student hits “Get Started”.
Translation: in main text above.
Quick Reply Translation: “Hello Koko 👋🏼”
After the introduction, students are able to pick from a list of topics that Koko can illustrate in a conversation.

List of topics that students can choose to study with the chatbot
As an example of such conversation regarding the illustration of Procedures in Assembly is outlined below:
1.”… we defined the entry point of the program, and gave it the procedure name which was MainProc so that it knows where to start from ..”
2. “yes, I remembered”
3. “now, we can write more than one procedure in the same way. we can also make one procedure call other procedures in the program instead of calling it only as entry point”
4. “I see”

The middle of a conversation where Koko illustrates Procedures in Assembly.
Translation: in main text above
Perhaps you noticed in the above screenshots that the “typing..” indicators are shown at different time points. This is one beautiful feature of chatbots on Messenger. It allows you to make the bot look like a human is actually texting. It also has a quick access menu so that students can talk to it at any time.

Koko has a quick access menu for students to trigger at any time.
Translation:
First Option: “Let’s study”
Second Option: “Who are you?”
Third Option: “Create a bot on Chatfuel”; added by default on the free version of Chatfuel
To save space here, I’m not going to include full conversations, but you get the idea. If you are an Arabic speaker, you can try the chat bot at https://m.me/koko.assistant
Impact
Students have been so excited about the chatbot. At the beginning of each lab session, some of them share their experience talking to Koko. The feedback has proved that it is fun and so engaging. Over 300 students in school talked to the chatbot. Some became excited about the class although they are still freshmen or sophomores (not taking the class). The interactivity level has been very high and I could see improvement in class assignments delivered.
“You don’t have to illustrate this to us today, Abdelrahman. I already understood it from Koko yesterday” – one student said in class.
I also used the chatbot to send reminders about assignments, or reminders to study new material. They receive a push notification from Messenger when the reminder is sent. If there is one thing that this post can tell you, it is that the chatbot raised student engagement to a completely different level and it could be observed in their assignment performance.

The chatbot has a number of weekly active users exceeding the number of enrolled students in class.
This an experience that I would definitely consider implementing in future classes.
Before You Implement Your Chatbot ..
From this experiment, I think chatbots are going to be the future of student engagement out of class. Before you think about implementing one in your next class, here are a few tips that I learned from this experiment:
- Chatbots should be complementary to classic teaching methods. Don’t let students depend on them in the course.
- Write down the goal of this chatbot before starting to implement it. Have at least one complete conversation written down in the beginning.
- When writing down a conversation, don’t let the bot to text for more than five consecutive messages without receiving input (quick reply) from the user. Otherwise, the conversation is one way and not at all engaging.
- Personalize the chatbot in a way that makes it sounds funny and engaging. Use the pronoun “I” in the text to give the feeling to the other end that it is actually the chatbot talking to them, in person.
- Use the “typing…” indicator wisely to give the other side the feeling of a human-like conversation. Make this indicator stay for longer times when the next message is longer.
- Use images, GIFs and links to videos.
- Consider using the broadcast functionality on Chatfuel to send subscribers reminders and keep them engaged with the bot.
- You may also use it to send class announcements or links to extra material. Don’t use them as the official channel of communication though.
Do you think chatbots will be able to answer students questions about a specific course? Will they become a mainstream in student engagement? Share your thoughts in the comments 🙂