Reflecion on the Use of AI in ICS 314

06 May 2025

Reflection on My Use of AI in ICS 314

I. Introduction

Artificial Intelligence (AI) has become a major part of education, especially in fields like software engineering. Whether it’s assisting with code, debugging, or even brainstorming, AI has been an ever-present tool during my time in ICS 314. The tools I used most frequently included ChatGPT and GitHub Copilot, with the occasional use of Grok. These tools offered quick feedback loops, example code, and helped clarify complex topics. In this essay, I’ll break down how I used (or didn’t use) AI across different parts of the course, what worked well, what didn’t, and how it impacted my learning.

II. Personal Experience with AI

1. Experience WODs

I didn’t use AI during Experience WODs since they were timed and individual. I felt that using ChatGPT would defeat the purpose of being prepared. That said, I used ChatGPT before the WOD to practice. For example, for the typescri[t WOD], I asked, “what is the syntax for a for loop?” It helped clarify the for loop and while loop, boosting my confidence.

2. In-class Practice WODs

For these, I sometimes used Copilot when I got stuck, especially with boilerplate code. It helped autocomplete code snippets, but sometimes it guessed incorrectly and slowed me down. It’s a double-edged sword — useful for syntax, but not for logic.

3. In-class WODs

For in class WODs, I used ChatGPT to patch up my syntax errors. That helped me get through the WODs faster. I’d ask things like, “What’s wrong with this React component?”. It was a lifesaver for syntax issues, but I made sure to understand the fixes it suggested.

4. Essays

I used ChatGPT for drafting outlines. For example, for the essay on agile methodologies, I asked, “Give me a basic outline for an essay on agile and its benefits.” The structure it provided helped me organize my ideas, but I made sure to write everything in my own voice.

5. Final Project

ChatGPT was a massive help here. When our team got stuck on Mongoose queries and routing, I asked things like: “How do I make this component connect to the database?” or “What is wrong with the following code?” These prompts saved hours. Copilot also helped speed up repeated tasks like form validation.

6. Learning a Concept / Tutorial

I regularly asked ChatGPT to explain concepts in simpler terms. For example, when learning about SQL datbases, I asked, “Explain SQL joins like I’m five.” It broke down complex topics into digestible pieces. I also used it to find tutorials, asking, “What’s a good tutorial for learning React hooks?” This helped me find resources that matched my learning style.

7. Answering a question in class or in Discord

I didn’t use AI for this, mostly because I didn’t want to spread incorrect or unverified info. If I didn’t know, I waited until I did.

8. Asking or answering a smart-question

I sometimes used ChatGPT to draft my smart questions. I’d ask, “How would you phrase a question about why my Mongo data isn’t displaying in React?” This helped me structure my questions better, and I felt I got better help from peers that way.

9. Coding example (e.g. “give an example of using Underscore .pluck”)

I asked ChatGPT directly: “Show me how to use underscore’s .pluck to extract a property from an array of objects.” It gave a perfect short snippet I could experiment with.

10. Explaining code

When reviewing code, I used ChatGPT to sanity check my understanding. For example: “Explain what this Meteor helper function is doing.” It helped confirm I was on the right track and catch edge cases I missed.

11. Writing code

Copilot was constantly suggesting snippets. For simpler components or validation, it saved time. But I found myself double-checking everything because sometimes it gave outdated or incompatible suggestions, especially with Meteor.

12. Documenting code

ChatGPT was helpful for generating docstrings. I’d copy-paste a function and prompt: “Write a JSDoc comment for this function.” It wasn’t always perfect, but it was a helpful first draft.

13. Quality assurance

I frequently used ChatGPT to debug ESLint errors. I’d paste the error and ask, “What’s wrong with this code and how do I fix it?” The responses were generally accurate and explained the underlying issue, not just a patch.

14. Other uses in ICS 314 not listed

I used ChatGPT to help me write test cases. I’d ask, “How do I write a test for this function?” It provided a good starting point, but I always made sure to adapt it to my specific use case.

III. Impact on Learning and Understanding

AI definitely accelerated my understanding of new tools and frameworks. It made learning more dynamic — if I didn’t get something from the lecture or docs, I could ask a different way. It also gave me a feeling of not being stuck, which encouraged me to experiment more. That said, I had to be careful to not rely on it too heavily — sometimes I misunderstood things because I skipped the documentation.

IV. Practical Applications

Outside ICS 314, I’ve used AI to debug microcontroller code for a side project and to help build a Next.js app. It’s especially useful for boilerplate code and solving syntax-related bugs. In robotics projects like Team RoSE, AI helped interpret obscure ROS errors faster than Stack Overflow.

V. Challenges and Opportunities

Sometimes AI gives ypu corrections, and you do every thing it says, but it still doesn’t work. This can be frustrating, especially when you’re not sure if the AI is right. I found that using AI for debugging was a bit hit-or-miss. It’s great for syntax errors, but not so much for logic errors. I think there’s a lot of potential for AI to help with more complex debugging in the future, but it’s not quite there yet.

VI. Comparative Analysis

Compared to traditional methods, AI tools make the learning process more interactive. It’s not about replacing the professor or readings, but having a 24/7 tutor. Traditional methods help with retention and depth, but AI boosts speed and confidence in the early stages. Both approaches are complementary.

VII. Future Considerations

I think AI will become more integrated into IDEs and educational platforms. It’ll help personalize learning, highlight mistakes faster, and even suggest better design patterns. The challenge will be making sure students still learn why things work, not just how to make them work.

VIII. Conclusion

AI tools like ChatGPT and Copilot played a meaningful role in my journey through ICS 314. They made it easier to learn, build, and debug — but they also required discipline to not become a crutch. When used responsibly, AI is an excellent support tool for any software engineering student. Going forward, I think integrating AI more formally into coursework could actually deepen learning and prepare us for how software is built in the real world.