AI Takeover: How I Utilized AI in ICS 314

16 Dec 2024

Introduction

Ever since I began my journey as a Computer Science major at UH Manoa, I’ve been pushed to use Artificial Intelligence in my ICS assignments and projects. This came as a surprise to me, as all my other professors have stated that they don’t tolerate the use of AI in any circumstances. However, using AI as a tool helped me to gain perspectives on software engineering that I probably never would’ve experienced if I didn’t utilize ChatGPT and Claude. Whether it was getting AI to write code for me or to explain certain concepts, there was a variety of ways that it helped me throughout the course of ICS 314.

Personal Experience with AI

Experience WODs

In every aspect and Module of ICS 314, I used AI in various ways. Experience WODs were an exception though, as I tried to do them with as little help as possible since there was usually a video solution at the end. Since AI comes as a double edged sword, I didn’t want to rely on it for everything, and Experience WODs were a good opportunity for me to try things on my own. While doing Experience WODs, I tried to complete them independently before watching the videos, and would only utilize the videos or other learning material to complete them.

Practice and In-Class WODS

For In-class Practice WODs and In-Class WODs, I utilized them in the same way where I would try to do them by myself first, and then I would copy any instructions or parts I didn’t understand into ChatGPT. Since we were really short on time during In-Class WODs, I usually didn’t ask for an explanation and took what it gave me out of concern that I wouldn’t finish in time, but I tried to ask for reasoning and why ChatGPT gave me particular answers for Practice WODs. I would also usually ask ChatGPT to explain certain concepts that I knew were going to be on the WODs before class.

Essays

I also avoided using AI in my essays. Since essays are a personal reflection of my own understanding of certain topics, it felt unnecessary to use it as it probably wouldn’t give me any answers that were true to my own experience and thoughts.

Final Project

On the contrary, I used AI consistently throughout the course of my Final Project. There were a lot of things we wanted to do that we weren’t taught in class, so AI was really helpful in that sense. I would ask ChatGPT for suggestions on what pages we should include in our project in addition to the ones we already brainstormed. Sometimes when things weren’t working out as planned, I would ask for alternatives that may be simpler for us to implement. In general, a lot of the code we used in our project was made from AI, and we just added small tweaks to them. The whole process made me really understand the limitations and implications of using it too, because there would still be things we’d need to fix, and I would even ask Claude the same questions if ChatGPT didn’t work, and vice versa. After using AI for the majority of my project, I can say I definitely discovered how and what to ask to get the answer I want. Asking the same questions twice doesn’t always give you the same answer.

Learning a Concept/Tutorial

AI was extremely helpful in my understanding of learning concepts, and especially tutorials. Like I said before, I would ask questions about certain concepts that I knew we would be tested on during WODs. As for tutorials, I remember one particular situation where it led me through the process of downloading PGAdmin and using it. I was extremely frustrated because I couldn’t get it to work on my own. Without ChatGPT, I probably wouldn’t have gotten the outcome I wanted and would have struggled for many more hours.

Answering a Question In Class/Discord

Usually in the classes before WOD days, we would have mini lectures on certain topics. We were asked questions in class and discussed it amongst ourselves. I used ChatGPT a couple of times to ask the same questions to see a different perspective, but I think I preferred using Google as a basis for my answers rather than taking the answer from AI.

Asking or Answering a Smart Question

I didn’t use AI to ask any smart questions, and not really for answering either. The smart-questions Discord channel was more helpful in this aspect where I could see if anyone was having the same issues and usually there were a couple people already addressing the same issues.

Coding Examples

In my opinion, ChatGPT was the best for getting code examples. Even if I didn’t ask for one, it would sometimes give them in addition to answering the questions I had. It helped me view topics and issues in a more dimensional way, because instead of just looking to solve my one problem, it gave me cases of other situations I could use the concept in.

Explaining Code

When we were given solutions to practice WODs, I would plug them into ChatGPT to explain the code. I also asked for it to explain any code it gave me as well.

Writing Code

I did rely on ChatGPT to write code for me. To make it more challenging for myself, I asked it to make a simple outline for me instead of the full thing so I could try to incorporate my own learning.

Documenting Code

For documentation and commenting, I felt that this is something I should do on my own. Taking a look through my code and writing comments based on my own understanding would be more helpful to me, and it would also force me to actually read through my code instead of copying and pasting and never looking back.

Quality Assurance

I would often copy and paste whole pages of code into ChatGPT so it could give me any suggestions or find any errors. There would always be something I didn’t catch looking over my code, so AI was really helpful in this aspect. There would also always be many ESLint errors that I didn’t know how to fix, so I gave ChatGPT the error message and it could fix them for me sometimes, but it wouldn’t always give the right solution. I had to repeat the quesions multiple times or change my wording for it to understand my issue.

Other Uses

The uses listed above address the majority of the ways I used AI in ICS 314. Some additional ways I used it was in brainstorming a slogan for our final project, or using it to explain the errors we were getting in deployment.

Impact on Learning and Understanding

Like I said before, using AI is a double edged sword. While it did help me to complete assignments and projects quickly and with less effort on my part, I still need to keep up and work on my own skills. Relying on it too much will definitely affect my knowledge in the long run, and before I know it, I won’t be able to function without AI.

Since AI isn’t perfect by any means, I’m glad I could take this opportunity to find ways where I can work around its limitations. For all I know, using AI effectively could be a skill employers look for in the future, and using it in ICS 314 definitely strengthened my skills.

Practical Applications

Outside of ICS 314, I use AI to mostly brainstorm ideas for personal projects. It can turn a general idea into a plethora of new ones. This could apply to any real-world challenges, whether it be software engineering or something else. When I feel like I’m stuck at a dead end, AI can always open up a new path that I haven’t thought of yet. In the future, I see AI being implemented into our everyday lives to make certain tasks easier. Tools like Github Copilot and such already make coding a much easier task than it was a few years ago.

Challenges and Opportunities

For more advanced programs that run across multiple files, it’s definitely a lot harder to get the solution you want from AI. The more advanced instructions I gave, the more confused the AI got, and it would just end up barfing out random things that just made the program unnecessarily complicated. However, the code that AI can produce is still amazing and its capabilities are expanding day by day. I wouldn’t be surprised if there were classes that taught students how to utilize AI effectively and efficiently in the future.

Comparitive Analysis

In both a standard classroom and AI teaching, it all depends on what you make of it or the style of teaching. Traditional lecture styles are personally not effective for me, as I don’t retain that information because it’s not actively being applied. This could also apply to AI, where it gives me information on how to do things, but I’m not exactly implementing anything myself. On the contrary, more interactive classes that prioritize discussion and hands-on exercises are much more beneficial. I believe a combination of the two can be curated to make an even better learning experience.

Future Considerations

I think AI will only continue to grow and seep into most Software Engineering courses. Many people say that “AI is the future”, but we’re already making AI an essential part of the classroom in the present, and it will only progress from here.

It is a little concerning to see how much my classmates and I rely on AI, so I think it still is extremely important that we don’t get too ahead of ourselves and lean on AI to do all the work for us. I think it’s a great tool to enhance code we may have already created ourselves or as a tutor of sorts that guides us through concepts. Using it to create study guides, exercises, and lesson plans are just a few of the ways it can help us learn.

Conclusion

Overall, AI is a great tool and I’m grateful that I’m a student in this era where I can utilize AI for myself and experiment with it on my own. I don’t think students in the past had the opportunites we had to play with AI this freely. In ICS 314 especially, I found it to be essential to my learning in this class and don’t think I would’ve been nearly as successful in this class without it.

More than ever, I think my experience using it in this class taught me about the dangers of relying on AI not just in Sofrware Engineering, but in general. We should use it as a tool or an aid, rather than something that solves all of our problems. In order to continue to promote critical thinking and problem solving skills in Computer Science students, the ethical use of AI should definitely be taught along with how to utilize it effectively.