AI Study Buddy and Coding Tool

11 May 2026

Introduction:

One of the biggest things I learned during ICS 314 was how much AI has started becoming part of software engineering. Before this class, I mostly thought of AI as something people used to ask random questions or generate quick answers. During this course, especially while working on WODs and the final project, I started using AI more like a development tool. The main AI tools I used were ChatGPT and GitHub Copilot. Most of the time I used AI for debugging, explaining code, generating examples, or helping me understand concepts that I was struggling with.

AI Use in WODs:

For the Experience WODs, In class Practice WODs, and In class WODs, AI was very useful. Usually I would use it to help me get started when I did not fully understand the instructions or when I was unfamiliar with some part of the code. It was super useful in giving me the scaffolding for projects and helping me understand the structure of the code I needed to write. I also used it as a learning tool for concepts or parts of the code that I was not familiar with yet. A lot of the time I would ask it why something worked a certain way or why my code was breaking. It was also very useful for finding bugs in my code and solving errors that I could not figure out on my own. At the same time, I learned pretty quickly that AI generated code is not always correct. Sometimes it gave solutions that looked right but created even more problems later, so I still had to understand and debug the code myself.

Essays:

I did not really use AI for the essays in ICS 314 because most of the essays were based on my own thoughts and reflections. I thought it made more sense to write those myself since they were supposed to reflect my actual opinions and experiences.

Final Project:

For the final project, AI was extremely useful. The biggest example was when working with the map API and the recycling bin system. I had never implemented a map system like that before, so AI helped explain how Leaflet worked, how to create map pins, and how to connect everything to the database. It was also very useful for debugging Prisma errors, Next.js issues, merge conflicts, and authentication problems. A lot of the project involved many different systems working together at once, and AI made it much easier to troubleshoot problems quickly. Even then, most of the generated code still needed to be modified to fit the project structure and database schema correctly.

Learning Concepts and Tutorials:

When learning new concepts or tutorials, AI was helpful because I could ask follow up questions and get direct feedback immediately instead of searching through long documentation pages. Sometimes I would ask it to explain things multiple times in simpler ways until it finally made sense. There were definitely moments where I had to ask it to “explain it to me like I’m a 5 year old” because the first explanation was too technical or confusing.

Answering Questions and Smart Questions:

I did not really use AI for answering questions in class or in Discord because I usually was not the person responding to questions there. I also did not really ask “smart questions” during the semester in the way the assignment describes. Most of my AI usage was more focused on debugging, learning concepts, and implementing features.

Quality Assurance and Debugging:

One of the most useful areas for AI was quality assurance. I constantly used it for debugging code, fixing ESLint errors, and figuring out why something was not working. I would paste errors into ChatGPT and ask things like “What is wrong with this code?” or “Why is this Prisma relation failing?” This was probably one of the biggest time savers during the semester. AI was especially useful because it could usually identify mistakes much faster than I could by manually searching through every file. However, there were also times where the suggested fixes were wrong, outdated, or did not fully solve the issue, so I still had to test everything myself carefully.

Other Uses of AI in ICS 314:

Another use of AI that is not specifically listed was helping with Git and merge conflicts. During the final project, there were multiple times where branches conflicted or files were overwritten incorrectly. AI helped explain what the merge conflicts meant and suggested ways to fix them safely. I also used AI for deployment issues with Vercel and troubleshooting database migrations with Prisma.

Impact on Learning and Understanding:

AI definitely changed the way I learned software engineering during ICS 314. One of the biggest impacts was how quickly I could get feedback when I was confused about something. Instead of spending a long time searching documentation or waiting for office hours, I could ask direct questions and usually get an explanation immediately. I think this helped a lot with comprehension and problem solving because it allowed me to stay focused on the issue I was working on instead of getting completely stuck. At the same time, AI sometimes made things harder because it occasionally gave incorrect or outdated answers that looked correct at first. Because of that, I learned that understanding the code myself was still extremely important.

Practical Applications:

Outside of ICS 314, I can see AI becoming very useful in real world software engineering projects. During the Cycle5ense project, AI already felt integrated into the development process because it helped with frontend layouts, debugging, database setup, authentication systems, and deployment troubleshooting. I think tools like ChatGPT and GitHub Copilot are becoming similar to tools like Stack Overflow or Google searches, except more interactive. AI is especially useful for speeding up repetitive setup tasks and helping developers learn unfamiliar technologies faster.

Challenges and Opportunities:

One challenge with AI is that it can make people overconfident in solutions they do not fully understand. There were definitely times where AI generated code that seemed correct but later caused bugs or other issues. Another challenge is that AI often generates solutions that do not perfectly fit the project structure, meaning a lot of manual editing is still required. Even with those challenges, I think there are many opportunities for AI in software engineering education because students can receive much faster feedback and explanations while learning new concepts.

Comparative Analysis:

Compared to traditional teaching methods, AI enhanced learning feels much more interactive. Traditional teaching methods are still important because they force students to think through problems carefully and build deeper understanding over time. However, AI makes learning faster because students can ask questions immediately and receive direct feedback. I think the best approach is probably a combination of both. Traditional teaching builds stronger long term understanding, while AI helps speed up debugging, experimentation, and learning unfamiliar tools.

Future Considerations:

In the future, I think AI will become a normal part of software engineering education and professional development. AI tools will probably continue improving and becoming more integrated into IDEs and development environments. At the same time, one of the biggest challenges will be making sure students still understand the material instead of blindly copying generated solutions. I think future courses will need to focus more on reasoning, debugging, and understanding code instead of memorization.

Conclusion:

Overall, AI had a very large impact on my experience in ICS 314. It helped me learn faster, debug problems more efficiently, and complete larger software systems than I probably could have otherwise. At the same time, the course taught me that AI should be used as a tool to support learning, not replace it completely. The most effective use of AI came from combining AI assistance with my own understanding, testing, and problem solving.