Coding With a Second Brain: My Experience Using AI in ICS 314

12 May 2026

I. Introduction

GPT Buddy AI has become a normal part of education because it can act like a tutor that’s always available. In software engineering, this matters because students are often dealing with code that breaks in small, confusing ways. AI can help explain errors, it can also help turn a vague idea into a clear next step. In ICS 314, I used AI mostly as a guide when I was stuck or when I needed a clearer explanation. The main AI tool I used was ChatGPT. I used it for code help and essay drafts. I also used it to understand concepts when the course material felt too fast.

I did not treat AI as a replacement for doing the work. I treated it more like a second person to ask when I was confused. Sometimes it was useful right away. Other times it gave an answer that was too general or not close enough to the course instructions. That meant I still had to check the code and compare it with the assignment. Overall, AI made the course feel less overwhelming. It helped me to keep moving when I might have gotten stuck for a long time.

II. Personal Experience with AI

1. Experience WODs

For Experience WODs, I used AI when I needed help turning the instructions into steps. One example was the TypeScript WOD that involved the Baby Bieber lyrics functions. A prompt I used was: “Help me write TypeScript functions that count the word baby as a whole word using a regular expression.” Using AI was useful here because it made the smaller parts easier to understand. That let me focus more on tying the instructions and code together. The hard part was that the first answer was not always exactly what the WOD wanted. I still had to check the file names and the expected functions. AI helped most when I asked for a small part of the problem instead of the whole solution.

2. In-class Practice WODs

For in-class Practice WODs, I used AI as a way to prepare before the timed version. One example was the navbar practice where I was building pages with Bootstrap. A prompt I used was: “Show me a simple Bootstrap navbar that matches this layout and explain where the CSS should go.” This helped me understand the general structure. It was less useful when I needed to match the course example exactly. The benefit was that I could see a working pattern before trying it myself. The cost was that I had to be careful not to copy code that did not fit the assignment.

3. In-class WODs

For in-class WODs, AI use was encouraged, so I did not feel like I needed to avoid it. I used it for quick reminders when I forgot a command or a small syntax detail. I also used it as a last resort when I got stumped and could not see the next step. A prompt I used was: “I am stuck on this Next.js WOD error. Here is my code and the error message. What should I check first?” This was helpful because it gave me a place to look without doing the whole WOD for me. I still had to understand the answer and make the change myself. The biggest value was getting unstuck while still staying focused on the timed task.

4. Essays

For essays, I rarely used AI. But if I did it was usually because I had hit a writer’s block. In this case, I would use AI to make a rough draft for inspiration. A prompt I used was: “Write a short ICS 314 essay about coding standards in a simple and natural tone.” This was helpful because starting an essay is usually the hardest part. AI gave me a structure and helped me avoid staring at a blank page. After generating a starting point, I would take the parts I like and resonate with and build upon them. You really can’t just copy and paste an AI essay because AI has a tendency to sound too polished. For essays, AI was best as a starting point rather than a final answer.

5. Final Project

For the final project, I used AI to help with ideas and code problems in Student Event Hub. One example was when we worked on the like button feature. A prompt I used was: “I am adding a like button to my Next.js final project. Here is my component and Prisma schema. How should I connect the button to the database so clicking it updates whether an event is liked?” This helped me think about how the button should connect to the database. It also helped me separate what happens on the page from what needs to happen in the backend. I used AI when I needed help describing design patterns in the project. AI helped me explain the work more clearly. The cost was that I still had to make sure the information that I was recieving from AI matched what our team actually built.

6. Learning a Concept or Tutorial

I used AI a lot when I needed to learn a concept from a tutorial. One example was Prisma setup in a Next.js project. A prompt I used was: “Explain Prisma migrate and Prisma generate in simple terms.” This was useful because the tools felt hard to understand at first. AI helped me see the difference between changing the database and creating the client code. It was also helpful when I had errors with environment variables. The downside was that AI sometimes gave general advice that did not match the exact course template.

7. Answering a Question in Class or in Discord

I did not use AI much to answer questions in class or Discord. I felt like I should only answer if I actually understood the issue. When I did use AI, it was more for checking my understanding before saying anything. A prompt I used was: “Is this explanation of a Prisma error correct?” This helped me avoid giving someone a wrong answer. It also made me more confident when the issue was simple. I would not want to use AI to sound like I know something that I didn’t really understand.

8. Asking or Answering a Smart Question

For smart questions, AI helped me clean up what I wanted to ask. A prompt I used was: “Turn this debugging problem into a clear question with what I tried and also with the error I got.” This was useful because smart questions need details. They should not just say that something is broken. AI helped me include the command I ran and the error message I saw. It also helped me explain what I expected to happen. I still had to check that the question was honest and matched my real problem.

9. Coding Example

I used AI for small coding examples when I needed to understand a pattern before using it in my own code. One example was asking how to display a group of items in a React component. A prompt I used was: “Show me a simple React example that uses map to display a list of events as cards.” This was useful because I could see the basic idea without the full project getting in the way. It helped me understand how data turns into something shown on the page. After that, I still had to change the example so it matched my own files and components. AI was helpful for learning the pattern, but I still had to apply it myself.

10. Explaining Code

AI was useful when I wanted code explained in plain language. One example was the Bowfolios Lucky page WOD. A prompt I used was: “Explain what this Next.js page is doing and how it picks one random profile.” This helped me understand the flow of the page. It also made it easier to see why reusable components mattered. The explanation was useful because I could compare it to the actual file names in the repo. AI was not useful when it guessed about code it had not seen. I had to paste the exact code when I wanted a good answer.

11. Writing Code

For writing code, I used AI carefully. A prompt I used was: “Write a simple Next.js page that uses ProfileCardHelper and does not duplicate the card JSX.” This helped me see the shape of the solution. It was especially useful when I knew what I wanted but did not know the best way to write it. I still had to test the result and fix small issues. Sometimes AI used a file path or import that did not match my project. For that reason, I used AI code as a draft and not as finished work.

12. Documenting Code

I used AI for documentation when I needed comments or clearer wording. A prompt I used was: “Write a short comment that explains this helper function without making it too formal.” This was useful because I sometimes know what code does but have trouble saying it simply. AI helped me make comments that were short and readable. I did not want comments that explain obvious code. I mainly used it for functions that connected to data or had a less obvious purpose. The benefit was clearer code for other people on the team.

13. Quality Assurance

For quality assurance, AI was one of the most useful tools. A prompt I used was: “What is wrong with this code and how do I fix the ESLint error?” This helped with small issues that were hard to spot. It was also useful for checking TypeScript errors. AI helped me understand why the error was happening instead of only giving a fix. The cost was that the answer sometimes changed more code than needed. I learned to ask for the smallest fix possible.

14. Other Uses in ICS 314

Another use of AI was helping me make my writing sound more like me. A prompt I used was: “Make this paragraph simpler and less formal without changing the meaning.” This helped for portfolio essays and reflection work. AI was also helpful for GitHub and deployment problems as it gave me a place to start when an error message looked confusing.

III. Impact on Learning and Understanding

AI changed how I learned in ICS 314 because it gave me quick feedback when I was stuck. Before using AI, I might spend a long time trying random fixes. With AI, I could ask why an error was happening and then try a more focused fix. This helped my understanding when the explanation was simple. It also helped me connect ideas like React components and data flow. In that way, AI improved my problem solving. It made the course feel more manageable, especially when some would assignments take way longer for me to complete than the suggested time.

At the same time, AI sometimes made learning harder if I used it too early. If I asked for the answer before thinking, I could get working code without really understanding it. That is not a good way to build skill. I learned that AI works better after I have tried something first. Then I can ask about the exact part that is confusing. This made AI more like a tutor to me instead of an easy way out. The best learning happened when I used AI to explain my own mistakes and then building off of that.

IV. Practical Applications

Outside ICS 314, AI has practical value for real software projects because it helps with planning and debugging. In team projects, it can help explain another person’s code. It can also help write a first version of documentation. For my final project work, this mattered because Student Event Hub had different parts that needed to connect. AI helped me think about how pages and database calls fit together. It also helped me explain my teammates’ code design choices in simpler way. This made it easier to talk about the project in a clear way.

AI is not a complete solution for real projects. It cannot fully understand the team’s goals unless the team gives it enough context. It also doesn’t know every rule from the course or every decision the team made without context for the code. This means that AI can be wrong in ways that sometimes make it look correct leading to confusing code down the road. In a real software engineering setting, AI is best for support work. It can help with drafts and small fixes. The final judgment still needs to come from the developer.

V. Challenges and Opportunities

The main challenge I had with AI was that it often gave answers that were too broad. Sometimes it explained the general idea but missed the exact course requirement. Other times it gave code that looked correct but used a different file structure. This was a problem in Next.js because small path differences can break the app. It was also a problem with Prisma because setup details matter. I had to learn how to give AI more context. I also had to learn how to check the answer before trusting it.

There are also good opportunities for using AI in software engineering education. Students should use AI to explain errors after they try to solve the problem first, like I did. AI could also help students write better questions. It could help students review code before submitting. The course could teach students how to ask better prompts and how to verify answers. That would make AI use more honest and more useful. It would also match how developers are likely to use AI outside of class.

VI. Comparative Analysis

Traditional teaching is useful because it gives structure and shared expectations. Lectures and tutorials explain the official way to do the work. WODs also build skill because they force students to practice under pressure. AI adds something different because it can respond to a specific problem right away. This makes it easier to get help when the issue is specific to your code. Traditional methods are better for learning the rules of the course. AI is better for getting unstuck during the messy part of coding.

AI made the course feel more interactive. My favorite way to use AI was to ask follow-up questions until the answer made sense which helped with retention. AI helped when it explained why a fix worked, it did not help as much when I only copied the answer. For practical skill, the best method was using both traditional course material and AI support. The course material gave the goal and AI helped me work through the problems that lead me to completing the goal.

VII. Future Considerations

I think AI will become a normal part of software engineering education. Students will probably keep using it because it is useful and easy to access. The question is not whether AI should exist in the course. The better question is how students should use it well. AI should support learning instead of replacing it. Students should still be expected to understand their code. They should also be able to explain what they changed and why.

In the future, courses could include more guidance about acceptable AI use. For example, students could be asked to include the prompt they used and what they changed afterward. This would make AI use more transparent and it would also show whether the student understood the answer. AI tools will likely get better at reading project context. Even then, students will still need to think critically. A better AI answer is not the same thing as real understanding.

VIII. Conclusion

My experience with AI in ICS 314 was mostly positive. It helped me understand errors and write better drafts. It also helped me learn concepts that felt confusing at first. The biggest benefit was that it kept me moving when I got stuck. The biggest danger was relying on it too much before thinking for myself. I learned that AI works best when I use it with a clear prompt and a real attempt already made. Used that way, it can support learning without replacing it.

My recommendation is that future courses should teach AI use directly instead of treating it as something separate. Students should learn how to ask clear prompts and they should also learn how to test and question the answers. AI should mostly be be used as a helper for debugging and explanation. It should not be used as a way to avoid learning the material by offloading the work. ICS 314 showed me that AI can be useful in software engineering. It also showed me that the student still has to do the thinking.