Answers.Body: <p>I'm using chatbots to discuss a variety of topics with 14 to 16-year-old high school students.</p>
  
  <p>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</p>
  
  <blockquote>
    <p>How can chatbots be useful in CS education</p>
  </blockquote>
  
  <p>Chatbots are a great topic in computer science education because</p>
  
  <ul>
  <li>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.</li>
  <li>There are chatbots who try to mimick humans, so you can use them to discuss the Turing Test with your students</li>
  <li>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.</li>
  <li>Coding simple chat bots is easy enough so that it can serve as a first small project for beginners learning to program</li>
  <li>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. </li>
  </ul>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-17T19:33:30.467Z
Answers.Text: 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.
Answers.UserDisplayName: ivanivan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-11T21:27:11.053Z
Answers.LastActivityDate: 2018-06-12T07:15:25.160Z
Answers.LastEditDate: 2018-06-12T07:15:25.160Z
Answers.UserDisplayName: Pascal
Answers.Body: <p>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. </p>
  
  <p>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. </p>
  
  <p>However, the leading question is about the advisability of <strong>using</strong> 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. </p>
  
  <p>The first issue to address is <em>why do it</em>. 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. </p>
  
  <p>The second, possibly more important question, is <em>how reliable can you make it</em>. 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. </p>
  
  <p>The third concern I have is that, in fact, not all student questions <em>should</em> 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. </p>
  
  <p>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 <a href="https://en.wikipedia.org/wiki/R._Daneel_Olivaw" rel="nofollow noreferrer">R. Daneel Olivaw</a>, we need to approach this with extreme caution. Note also that <a href="https://en.wikipedia.org/wiki/Socratic_method" rel="nofollow noreferrer">Socrates</a> 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. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-04T17:41:32.577Z
Answers.LastActivityDate: 2018-06-04T18:02:18.793Z
Answers.LastEditDate: 2018-06-04T18:02:18.793Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>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?"</p>
  
  <p>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 <em>today</em> (which a human might call "<em>this</em> 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.</p>
  
  <p>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 (<em>every man for himself</em>) 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.</p>
  
  <p>I guess we should build an AI and ask it what it would do. (Hypothetically, of course.)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-06-04T18:48:37.553Z
Answers.LastActivityDate: 2018-06-04T18:48:37.553Z
Answers.UserDisplayName: user5343
Body: <p>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.</p>
  
  <p>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.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-04T14:20:15.153Z
Comments.Text: 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.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-04T21:12:20.507Z
Comments.Text: 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?
Comments.UserDisplayName: thesecretmaster
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-06-05T12:25:11.593Z
Comments.Text: 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).
Comments.UserDisplayName: ctrl-alt-delor
Tags: <student-motivation><resource-information>
Title: How can Chatbots be useful in CS education?
ThreadText: # How can Chatbots be useful in CS education?
  
  (Asked by: username_0 on 2018-06-04)
  
  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.
  
  **Tags:** student-motivation, resource-information
  
  > **Comments:**
  > **username_1**: 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.  
  > **username_2**: 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?  
  > **username_3**: 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).  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_4 on 2018-06-11. Score: 2
  
  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 username_1 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.
  
  > **Comments:**
  > **username_5**: 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.  
  
  ---
  
  ### Answer by username_1 on 2018-06-04. Score: 1
  
  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](https://en.wikipedia.org/wiki/R._Daneel_Olivaw), we need to approach this with extreme caution. Note also that [Socrates](https://en.wikipedia.org/wiki/Socratic_method) 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.
  
  
  ---
  
  ### Answer by username_6 on 2018-06-04. Score: 1
  
  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.)
  
  
  ---
  
  