I am reading this book published ten years ago and it says that chatbots can be very useful in helping students with course details and to break the ice. I am not familiar with chatbots, so I have started to build my own "personal assistant" using DialogFlow, but I would like to hear about strategies for using chatbots, particularly in CS education.

It seems best to make good use of the very things that exist and are upcoming in the field in order to teach it in a more engaging way. What has worked and not worked (since this old book was published)? Where can I find out more? Maybe one lesson could be to build a chatbot, as a demo or individual project.

  • 3
    $\begingroup$ Welcome to CSEducators. Could you edit your question to add a reference to the book? Also, building a chatbot and using a chatbot seem to be two quite different things. $\endgroup$
    – Buffy
    Jun 4, 2018 at 14:20
  • $\begingroup$ This strikes me as far too broad. There are too many questions there, and I'm not sure if the question is even about teaching CS any more than simply building a chatbot. Can you please edit to clarify? $\endgroup$
    – thesecretmaster
    Jun 4, 2018 at 21:12
  • $\begingroup$ CS is the study of computers (sort of), where as you are asking about using computers as a study aid. These are not the same think (Use of a computer in the classroom is not necessarily computer science, and computer science does not necessarily use computers). $\endgroup$ Jun 5, 2018 at 12:25

3 Answers 3


I'm using chatbots to discuss a variety of topics with 14 to 16-year-old high school students.

By "using" I mean that they are the subject of instruction, not a study aid / instrument for the students to use to get automated answers to frequent questions and things like that. So that's probably not what the book you mentioned talks about, but I'll go on anyway because your title asks the more open

How can chatbots be useful in CS education

Chatbots are a great topic in computer science education because

  • Everybody knows about them - teenagers know what chatting is and have first-hand experience of doing it, and most students have either encountered a chatbot already or they've heard about Siri and compatriots, which can be framed as chatbots for the purposes at hand.
  • There are chatbots who try to mimick humans, so you can use them to discuss the Turing Test with your students
  • Simple chat bots which simply look for some combination of words in the input phrase are easy to build using scripting languages such as Python, and therefore can be used to give the students a first feeling for what needs to be done in order for a computer to correctly identify the meaning of a sentence in a human language. This can easily be extended into a discussion about whether computers can "understand" us.
  • Coding simple chat bots is easy enough so that it can serve as a first small project for beginners learning to program
  • In my classroom experience, teenagers love spending some time writing simple chat bots and getting them to provide (often somewhat rude) answers to things their peers type in, so it's a fun topic, too.

I agree with Buffy that using chatbots as a study aid is much, much harder to get right, and I wouldn't try that unless the domain was very, very well specified.

  • $\begingroup$ Chat bots and chat systems make great projects to build up and on. The possibilities of working with both client-server and peer to peer communication either via web protocols (build a RESTful API and demo client) or socket communication, command line, GUI, or browser based interfaces, maybe some networking and sysadmin/database skills, etc. $\endgroup$
    – ivanivan
    Jun 17, 2018 at 19:33

There are a number of questions being asked here. Probably too many. As to the question about where you can learn more, there have been a hundred or so books published on chatbots in the past three years.

As to the question about whether it is worth having students build such a thing, the answer, of course, is yes. Students should build. It might be more than one lesson, however. They will learn from this as they should learn from building any new thing. If it excites them, all the better.

However, the leading question is about the advisability of using a chatbot as an educational tool. I'm going to give a lot of reasons why this is problematic, though none of them is probably definitive. I think a case could be made for the use provided that the thing can be built to answer all of the objections below.

The first issue to address is why do it. How would it be better than other available resources, such as wikipedia. While Wikipedia is not reliable on some topics (politics, celebrities,...) I've found it very useful in most technical subjects including math and CS. In fact, doing a bit of research on a question is much more valuable to a developing mind than just getting an answer.

The second, possibly more important question, is how reliable can you make it. Students need to get correct answers to their questions. A naively designed chatbot might be positively harmful if it gives poor advice. Even if it gives good advice, that advice might not be consistent with the course goals in which it is used. I think that it is an immense problem to test the reliability of any AI or AI-like program. I don't think that any AI can (or should) be used unless very significant resources are put in to validating it. That might not be possible at the scale of an individual course in CS, especially as such courses differ in time and by locale. Even the commercially available chatbots, backed by major corporations, sometimes give harmful advice.

The third concern I have is that, in fact, not all student questions should be answered. Or at least not answered immediately or completely. The purpose of education is not to get answers, but to encourage mental and personal growth. Sometimes an experienced teacher will send a questioning student back to the workstation to think more deeply about things before answering, knowing that the student can do it and will learn something in the attempt. More often than that, a good teacher will give a minimal answer - a hint - encouraging the student to fill out the explanation through some grunt work.

I think the last issue, above, is very serious. Education is a subtle business. It is the development, ideally, of a relationship between a student and an educator. That relationship needs to be nurtured and needs the knowledge of the student and her/his needs that only a supportive teacher can properly provide. Yes, I know that mass education today gives up some (even a lot) of that ideal, but until we can build R. Daneel Olivaw, we need to approach this with extreme caution. Note also that Socrates understood all of this about six thousand years ago and that the Socratic Method was developed partly in opposition to the idea of the Oracle at Delphi, which provided only answers.


Chatbots are generally used to answer simple questions and make people feel comfortable. The side effect of this is that people do not need to take time to answer simple questions. So, anything that could reasonably be in a document or database could be given by a chatbot as an answer to a question from a student, something like: "what is the percentage of the course grade of the next test?"

There is a slippery slope when it comes to inferences. A common one is the "this / next" problem. Did the question "next test" refer to the test being given today (which a human might call "this test" or the one next week? People trip over these all the time and it leads to a lot of missed freeway exits, among other things. Perhaps the chatbot would need to verify what was being asked, putting it ahead of the vast number of people who assume, or even just never think of alternate interpretations before answering.

If the chatbot could explain how to write a computer program, then I think that the simple answer is to stop teaching programming, as it would no longer be necessary. But I wonder what an AI would think is best for people? After it realized what the Zeroth Law of Humanity is (every man for himself) perhaps it would become better at everything than humans are, or maybe it would figure that what was best for humanity long-term is for it to self-destruct, to allow us to grow.

I guess we should build an AI and ask it what it would do. (Hypothetically, of course.)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.