Artificial Intelligence in the Classroom and Our Next Generation of Students

21 Nov 2023

Source: https://prompthero.com/prompt/ff68c28dc24

Introduction

In recent years, AI has become an integral part of education. Whether intended or unintended, AI has entered classrooms as a way to help students learn and, in some cases, hinder learning as well. Specifically, LLMs (Large Language Models) have emerged as a way to work through problems and provide solutions. Depending on how the technology is used, it determines whether it is helping or hindering students’ education. In software development, it is being used to help students solve algorithm problems, write template code, and, for some students, cheat to find solutions to problems they don’t understand. Personally, I have used ChatGPT in my Software Engineering I class to help write template code, read and summarize errors, and better understand concepts.

Uses for AI in Software Engineering Class

  1. Experience WODs (e.g., E18): On WODs done at home, AI was useful for fully understanding problems. It was helpful to ask questions about problems not covered in the material provided by the instructor, such as “Why does Meteor use MongoDB over other databases?”

  2. In-class Practice WODs: Similar to experience WODs, the technology wasted time. However, without a hard time limit to practice, it could help save time comprehending big topics. It could be beneficial if I ask the prompt “Help me understand how Meteor subscriptions and publications work.”

  3. In-class WODs: On timed assignments, ChatGPT has proved to be a hindrance as it often takes time to get the answer you want from it. However, it was useful for quick syntax references and examples for implementing functions. Alone, it could not complete assignments, and on complex assignments, it wasted more time than it saved. It could help if I ask the prompt “Implement a JavaScript function that can count to 1000.”

  4. Essays: I have found that ChatGPT can offer a very good template and help formulate ideas. However, the end product it writes is not yours, and, as many have noted, the essays come off as soulless, without any writing style. It could help if I ask the prompt “Implement a JavaScript function that can count to 1000.”

  5. Final project: ChatGPT has been a big help with understanding stack trace errors and building template code to get started and take massive action in the early stages. It could help if I ask the prompt “Why am I getting this error «Code» «Error».”

  6. Learning a concept/tutorial: It can be useful to gather information; however, when it comes to challenging answers or reasoning with ChatGPT, its answers need to be taken with a grain of salt as it can provide misinformation and false answers. It could help if I ask the prompt “Help me understand how MongoDB works and the document object model.”

  7. Answering a question in class or in Discord: This is where ChatGPT is no help, as it has no context regarding how your class is operating or specifics that are unknown. It would usually not help when asking “Help me help a classmate with this «Question».”

  8. Asking or answering a smart question: ChatGPT can help formulate smart questions, and it can help answer questions. However, it cannot review multiple files for error tracing in my experience. It would usually not help when asking “Why am I getting this error, here is my code «file1» «file2» «file3».”

  9. Coding example (e.g., “give an example of using Underscore .pluck”): This is where I have found ChatGPT to shine. It can offer a quick example that can be changed without needing to read through documentation. However, errors can occur when ChatGPT references old packages or syntax, and a new one is being used for the project. It could help if I ask the prompt “Give me an example of how to use TestCafe.”

  10. Explaining code: Most of the time, ChatGPT can explain code; however, it cannot explain the reasoning behind why certain code was implemented the way it was, so it is limited in that sense. It would give mixed responses to prompts following this “Explain to me why my code is doing «x» and not «y» «Code».”

  11. Writing code: As stated before, simple template code is easy to generate with AI, such as a starter home page or an API endpoint. However, it cannot generate full projects or write code for complex solutions perfectly. It would give mixed responses to prompts following this “Write me a function that can take a user input and submit it to the database using Meteor and MongoDB.”

  12. Documenting code: Most of the time, ChatGPT can document code; however, it cannot speak to why you wrote something the way you did. It could help if I ask the prompt “Help me write comments for the following code… «function1» «function2».”

  13. Quality assurance (e.g., “What’s wrong with this code «code here»” or “Fix the ESLint errors in «code here»”): For quality assurance, I have found ChatGPT to shine. It can quickly point out syntax errors and provide a fix immediately. When using ChatGPT, this is what I use for a majority of the time. It almost always provides in-depth answers to the following prompts “Why am I getting this error «error» with this code «code».”

  14. Software configurations: When configuring IDEs such as IntelliJ, I have found ChatGPT to be no help. This is likely because the software and the menus constantly change. It would never help when asking questions such as “Help me change my IntelliJ window to be half on the right and half on the right.”

Personal Reflection

In the past year, ChatGPT has had a huge impact on my personal education and learning style. While also changing the dynamic for instructors and students. For me, it has helped me get answers to questions faster and more conveniently, reducing the stress and time it takes to do assignments and understand topics. However, I do think this is at the expense of problem-solving skills. Sometimes it is hard to resist the urge to get ChatGPT’s opinion and instead work through the problem. For many students and instructors, I think this will be an issue, as it will always be an easier option out of struggling to find solutions. However, it is the struggle that solidifies in-depth understanding of topics.

IV. Practical Real-World Software Problems

For practical real-world software problems, I have used ChatGPT to help me. For example, for an internship that was very Excel-heavy, I used it to help me understand functions and get Excel to do the things I wanted it to do faster. Surface-level problems like this, ChatGPT will help human productivity; however, it still has little to offer for solving big problems. Otherwise, big tech companies would be switching engineers for the software, which we have not seen yet. The value for AI currently is for fixing trivial problems in a fast fashion while humans still are doing the heavy lifting designing architecture, understanding problems, and implementing complex solutions.

V. Limitations in Input Organization

A big limitation I see specifically with chat-style LLM is the organization of the input given. When trying to get help on a coding error, I usually paste the error and the code side by side, and it is hard for a human to read it. I think it could be a big help if templates are implemented and correspond to the answer you are trying to get. For example, if you are trying to figure out why an error is showing, you could choose an option called “error finding,” and then two text boxes would show. One for the actual error and one for the code. This could be further developed for other problems and make it easier for humans to interact with on a more advanced level.

VI. AI Usage in the Classroom

When it comes to using AI or not in the classroom, I think the content that is being taught is important input to consider. For example, not allowing AI tools to be used for data structures and algorithms is a beneficial decision because it is a class that provides the fundamentals for software development, and students need to fully incorporate themselves into the problems and understand them. However, for Software Engineering I, it may be beneficial to allow ChatGPT because it can help with syntax errors and stack trace errors, which are not as fundamental to understanding how to develop software.

VII. Evolution of AI in Education

AI in education will evolve, and it will evolve fast, I believe. But at its current state, I think students need to be educated on how it works and how to use it. Otherwise, I believe students will start to fall behind and will suffer in the end. Instructors need to be aware of students taking advantage of the software and using it to cheat and avoid hard work. But as a whole, the technology will be beneficial to education and students.

VIII. Note on Other AI Technologies

Something to note is I have had little experience with AI software outside of ChatGPT. I believe the software is sufficient for my needs. However, other AI technology exists, such as GitHub Copilot and Stable Diffusion, which may change my perspective after I learn them. I would like to add that I am glad we had the opportunity to use the software in the class for software engineering freely. It is a policy that I have not experienced, and I believe it was beneficial to students who use the technology to help them better understand topics and save them time. We will look back in 5 to 10 years and see how the technology has evolved in the classroom. Maybe we won’t see human instructors anymore, maybe we won’t see any changes from now. Nevertheless, it will be interesting and important to follow as AI changes education.