
The integration of artificial intelligence in education has brought in drastic changes to many, and particularly in the realm of software engineering. As this landscape of AI evolves, these AI technologies such as ChatGPT and OpenAI will continue to play a pivotal role in enhancing learning and providing students a great tool. In the context of software engineering, AI holds specific relevance in various aspects such as development, problem-solving, and quality assurance.
For the Experience WODs, AI tools such as ChatGPT were very helpful for me. Having a comprehensive understanding of all of the Underscore functions was difficult, and ChatGPT assisted me greatly in choosing which Underscore function to use in certain situations. For the In-Class Practice WODs, I actually preferred to not use any artificial intelligence models to help me. It was better for me to do the Practice WODs first without any assistance, so I could establish where I was at. In contrast, I often used ChatGPT for the In-Class WODs. My first priority was to save time during these WODs, so I would use ChatGPT to create the skeleton of the code, helping me choose the initial implementation. I found that for developing code, language models like GPT are extremely useful, even if it doesn’t fully implement the code. I didn’t use AI for my essays for this class that much. I feel that writing essays is simple enough to not use assistive technology. I have been using GPT for the Final Project. Since my job has been mainly to develop pages for the website, using GPT is very helpful with skipping the writing of repetitive code. Instead of typing out fake data or creating an entire table by hand, GPT does it for me. I have not used AI assistance to learn a topic or for a tutorial. I feel like the normal resources on the Internet are enough to explain the topics we have learned in this class. I don’t think any tutorial it generates would necessarily be any better than checking a website on the topic. For answering questions in class or Discord, I feel like there isn’t really much time to check the answers, since being asked a question in class is normally answered immediately. Discord questions are also asked in class, so there’s no point in trying to use AI for situations like these. As for answering a smart question, language models like GPT were an easy way to get a concisely written answer on specific topics and questions. Smart questions are usually not general questions that can be answered with a quick Internet search, so GPT was best for answering a smart question. Coding examples is something I often used this semester. It is very useful to be able to generate samples of code on any topic to quickly see an implementation of the problem that works. I often used this to show me different algorithms such as Bubble Sort. Problem solving is another aspect of coding that is quickly assisted by AI. To explain code, or understand why a portion of code isn’t working, AI can quickly identify what’s wrong and how to fix it. This can be accomplished for syntax errors without AI, but logical errors or incorrect implementations are harder, whereas GPT can solve any of these errors and explain how to fix them. Writing code, as I stated earlier, is especially useful, such as asking it to quickly implement a WOD. Since GPT is so good at problem solving, explaining code in an efficient and concise manner, it’s also very good at documenting code as well. Quality assurance wasn’t an aspect of software engineering that I found AI to be particularly useful for. Using ESLint was more than enough for me to be able to ensure the quality of my code and make sure it was upholding a certain standard. As for other uses not in ICS 314, I often used models like ChatGPT to explain to me implementations of algorithms and data structures to achieve a certain prompt. The most difficult part of writing code is first choosing an initial implementation, and to work out the beginning logic. ChatGPT can create this easily, saving time and energy.
I believe that using AI has greatly improved my learning experience in this class and beyond. It aids in aspects such as comprehension and problem solving skills, making both of these processes extremely simple. However, in terms of skill development, the use of AI might have impaired this a little, since it is easy to rely on AI instead of coding on your own.
There are many practical applications for AI outside of just ICS 314 however, and AI has a huge potential to improve many fields as well as the lives of people. For example, AI can assist doctors in diagnosing diseases, helping them give accurate and complete treatment. However, AI such as deep fakes can be used for more immoral reasons, so people need to be more careful with the regulation and development of AI.
As great as AI is, there were definitely limitations in what AI could do in the scope of this class. It often misconstrued my prompts, and sometimes its solutions wouldn’t be accurate or incorrect entirely. This is where human skill comes into play, to identify what’s incorrect and what information I could learn from AI.
Between traditional teaching methods and AI advanced ones, I think that AI has great potential to improve education in the field of software engineering. AI can provide more specific explanations more catered to the user compared to traditional teaching methods. If the teacher isn’t present, I would much rather use AI to explain concepts to me than read from a textbook.
For future considerations for AI in software engineering education, I think that cheating and plagiarism should be monitored more closely, which will get easier and easier as AI continues to evolve.
In conclusion, I believe that AI is a great tool for software engineering education and I believe it was extremely helpful in this ICS 314 class. AI tools such as ChatGPT, Bard, and Co-Pilot are sure to be essential in the future of software engineering, so it is best to teach students early on how to properly use them.