AI is an increasingly popular and powerful tool. It can be incredibly helpful in education and in software engineering, but it doesn’t come without risks. AI can be useful to a fault, preventing some students from retaining information long term or getting the problem-solving experience necessary to approach new projects unassisted.
This essay provides an overview of the key concepts and tools related to AI that I have used generally and in ICS 314. For this class, I have primarily used ChatGPT, and I have used GitHub Co-Pilot once or twice.
I have used AI in class this semester in the following areas:
<CodeSegmentHere>”<CodeSegmentHere>”<EssayTextHere>”<DefaultDataHere> <InsertDefaultDataFunctionHere>”<CodeSegmentHere>”<CodeSegmentHere>”<CodeSegmentHere>”<CodeSegmentHere>”It’s tempting to use AI as a crutch. It’s quick, it’s easy, and it’s (often) effective. My perspective is that if you use it as a tool it is helpful. If fully rely on it for whatever you are using it for with no understanding of the subject, you’re the tool. I try to stick to the former.
In this class, it has been helpful for my understanding of concepts and how to implement examples into my own projects. It has been extremely helpful for debugging and explaining documentation. You could argue that my understanding is worse off because these are crucial skills for every developer, but I would argue that I have already been practicing these skills before tools like ChatGPT even existed, and I continue to do so now. I do not use ChatGPT for everything under the sun, despite how accessible it may be.
Even when not using ChatGPT, I was still able to do what was asked for this class effectively. I did not use ChatGPT during WODs, and I finished all of them on time (often during RX time, but not always).
Overall, I do not think that my use of AI has challenged my understanding. With or without AI, understanding and mastery only come through practice.
I used AI for one personal project this semester. I wanted to use some tools from this class to make something for my girlfriend, but we were not far along enough in the schedule to know how to make a full-blown website yet, so I used ChatGPT to speed up the process due to the short timeframe.
I have since then learned all of the skills needed in much more depth, so I would not have needed to use AI for a project like that if I started working on one now. Other than that, I have not used AI for any “real-world” projects thus far, but may in the near future now that the summer break is coming up.
A challenge that I have seen is that it is too easy to become reliant on AI tools and completely miss the opportunity to learn all the concepts taught in this class. However, from my perspective, this comes down to the user, as mentioned in Section III.
I do not think that AI should be banned from the classroom though. I have seen one interesting idea implemented by UH’s own Professor (currently ICS Department Chair) Scott Roberston. In his ICS 111 (Intro to Computer Science) course, Professor Robertson allowed students to use AI if they properly documented and cited their usage of it. A similar approach is being used in this class currently. I am in support of these strategies.
AI is a tool that is used in industry, and students will likely use it regardless of whether professors like it or not. Therefore, I think the best approach is to teach students to use AI as a tool for learning rather than a replacement for it. Giving specific examples of how AI can be used to assist with issues without taking away from problem-solving and other important skills can be highly beneficial to students in the long run.
As an experiment, I asked ChatGPT to write this section. Here’s what it came up with:
Traditional teaching often relies on lectures and textbooks for engagement and knowledge retention, while practical skill development may be limited. In contrast, AI-enhanced approaches in software engineering education offer interactive simulations, personalized feedback, and adaptive learning platforms to enhance engagement and optimize knowledge retention. Additionally, AI can provide real-time feedback and virtual labs for hands-on practical skill development. Overall, AI-enhanced methods show greater potential for engagement, knowledge retention, and practical skill development compared to traditional teaching methods in software engineering education.
I think AI will continue to play a greater role in software engineering education. A challenge from an educator’s standpoint is that students will continue to get more reliant on it. Perhaps not across the board, but overall I think there will be an increase in the usage of AI among software engineering students.
Unfortunately, there is a significant overlap between what AI is capable of and what students are asked to do in their prerequisite classes. It is entirely possible to get through many coding assignments for lower division classes without writing a lick of original code. This can be dangerous, because students who rely on AI may not be able to perform on exams or in “real-world” situations.
I do not know what the solution to this is. However, I absolutely do not think the solution is to make classes 100% exam-based. I think the best that educators can hope to do is try to stay ahead of the curve and up to date with AI themselves, as well as educate students on the advantages of being self-sufficient and the pitfalls of being totally reliant on AI.
I used AI in many aspects of this course, and I know from talking to some of my peers and reading some of their essays that they did the same. As AI continues to grow in popularity and performance, I do not think it likely that it’ll go away, nor will it play a lesser role in education than it does today.
I do not think AI should be feared or looked down upon. In the same way that many problems could be solved with a quick Google search back then, the same can be done by typing the same question into ChatGPT now. Same stuff, different day. I won’t downplay the capabilities of ChatGPT, though. Google sure can’t generate an entire assignment for you (at least at the time of writing).
The best that students can do is understand the advantages and disadvantages of using AI, and the best that educators can do is to continue teaching important skills and to coach students on “proper” usage of AI.