
AI is becoming an increasingly important asset within not only the software industry, but in all aspects of life. AI is slowly starting to integrate with daily life, from simple tasks like looking something up on the internet, creating images, or even automating tasks. Within ICS 314, I have used Claude and ChatGPT to help me not only solve difficult issues, but also understand and learn difficult topics as well.
Within ICS 314, I have used AI for a variety of tasks. For experience WODS, I only used AI when I really had no idea how to go about the issue and was stuck from step 1. If I had some idea of what steps to take, I tried my best first, and if I was still stuck on an issue, I would then watch the solution video provided. If I found things in the solution video that I did not fully understand, I prompted ChatGPT to please explain how line 54 of this code worked. For in-class practice WODs and in-class regular WODs, I had the same mindset, however, I refrained from using AI for more in-class WODS as I wanted to try my best on my own. For example, when I was unfamiliar with functional programming in Typescript, I asked ChatGPT, “how would I sort this array using functional programming?” From there, if I didn’t understand a certain function or piece of code that was given to me, like regex for altering a string, I would prompt it again saying “please explain what regex is and what each of the symbols represents.”
For essays, I occasionally used AI to give me ideas for metaphors for the topic. Most of the time, I knew what I was going to write about for the essays, but I had a hard time “spicing up” the essay. From there, I had ChatGPT come up with a metaphor that was similar to the current situation I was writing about. For example, I would prompt, “please give me a metaphor that applies to design patterns.”
For AI use in the final project, I used it for a multitude of different things, like learning concepts, explaining code, writing code, and examples. When creating files for the API to grab data from the database, I had ChatGPT write me code, explain that code, then give me more examples of different applications of this concept in order to help solidify my knowledge. It was very useful in explaining, documenting, and in learning concepts, however when it came to writing code, oftentimes it wasn’t the best. I had to fix a lot of code that it gave me as either I didn’t provide enough information, and the code it gave me didn’t work within my environment, or some of the code didn’t work how I wanted it to. I occasionally had ChatGPT fix ESLint errors in code, and would paste in my code with a prompt saying “I am getting an ESLint error for the return type. How should I fix this?” I didn’t use AI for asking or answering smart questions, as I thought that these were things that could easily be done on my own.
AI has definitely impacted how not only I, but everyone around me learns. On the positive side, AI has allowed me to grasp hard to understand concepts very quickly, and has no problem giving more problems to aid in comprehension. On top of that, AI gives very easy access to information, and if it gives me an answer with an unfamiliar concept, I can easily ask it to explain that one as well. However, on the other hand, being able to get answers within seconds makes it so that you no longer have to use your brain as much to try and grasp a topic. In doing so, it makes this newly learned information easier to forget, and also discourages taking the time to truly grasp concepts since you can access them any time. AI has definitely aided in problem comprehension, but also simultaneously is degrading our critical thinking ability and problem solving skills as well.
AI has numerous applications outside of just software development. Even with just opening up ChatGPT, you are immediately greeted with different ways to use ChatGPT, from creating recipes, giving travel agendas, writing emails, or even image generation. Personally, I have used AI to give me ideas for research projects if I’m not sure what direction to go into, or even editing my emails to sound more professional and business-like. AI can easily be used outside of just prompting and directly talking with the user, and after hearing about the different HACC challenges and how each of them incorporate AI one way or another, the possibilities for AI seem to be endless. Things like using AI to find someone the best career path after being given a specific dream, or using it to automate tasks to become more efficient are just the tip of the iceberg when it comes to application of AI.
Some challenges I had with AI was that a lot of times, it didn’t understand the full scope or overall goal that I was trying to accomplish, and would give me solutions to my prompts that don’t necessarily fit within the application I’m trying to build. This is entirely my fault, as AI’s capabilities solely depend on the information you give it, and if I had used Copilot or some other AI tool that integrated with my environment, it probably would’ve given better results. In the future, AI might become a very useful tool for teaching software engineering. For example, during a lesson, AI could be listening to lectures and anytime a student has a question, it could simply prompt the AI and it would answer the question based on what was said during the lecture, or give supplemental information.
Provide a comparative analysis between traditional teaching methods and AI-enhanced approaches in the context of software engineering education. Consider aspects like engagement, knowledge retention, and practical skill development.
Traditional teaching methods, while slower, require a lot more critical thinking and independent problem solving skills than AI-enhanced approaches. With traditional teaching, it takes a lot of re-reading and thinking to fully understand difficult concepts. Because you are carefully reading documentation and other resources to fully grasp a topic, you are also constantly reviewing the information as well, and therefore builds knowledge retention. With AI learning, although you may be able to come to grasp a difficult concept quicker, you are then spending less time trying to understand it, and have an easier time forgetting it once learned. On top of that, with AI learning, it gives a sort of instant gratification when it comes to finding information, and can lead to less effort in the future spent trying to learn topics if it doesn’t come as easily.
AI has definitely brought great help in productivity when it comes to software engineering, but it also has made it harder to really display your own skills. I think when it comes to education, because AI will become so deeply integrated into software development, a unit should be dedicated to AI use and what it should be used on and what it shouldn’t be. I also think that there should be a lesson on what makes a good prompt and a bad one. Some challenges education wise would include ruining a students ability to think on their own, as AI enables students to get answers without putting in as much effort as they should.
Overall, AI is something that won’t go away, and will continue to be integrated within daily life in the future. Technology is advancing further and further with each day, and we have no choice but to adapt or fall behind, especially with the current state of how AI is being used in software development. Because AI will only be used more and more, for this specific course, I think it should be told which parts of assignments you should use for AI and which parts should be done on your own. Of course, there may be no real way to keep track of what students actually do, however telling students that a certain unit of the course is very important for building a strong software development foundation, and that you should try your best to fully understand this without the use of AI, could potentially help students build the skills necessary to succeed in the future. Students will only use AI more and more, and as AI gets better and better, it also means becoming a bigger crutch. I believe that AI is a very powerful tool that can positively impact a student’s education with the right usage, however, regulating that usage so that it aids in a students learning rather than harming it is something to further explore.