
AI is everywhere now, especially when it comes to learning how to code. Throughout ICS 314, I found myself relying pretty heavily on Claude AI for most of my work. I also used GitHub Copilot, but mainly just for cleaning up ESLint errors since it was more efficient at fixing them all at once. Honestly, these tools completely changed the way I approach coding problems. Looking back, I can see how much AI shaped my learning this semester, for better or worse.
Experience WODs: I tried my best to not use AI as much for the Experience WODs. A lot of them didn’t seem impossible to do within the time frames, so I wanted to challenge myself. When I did use AI, it was mainly to double check things and also implement repeated code if necessary. I felt like these were good opportunities to actually learn without relying on AI too much.
In-class Practice WODs: For these WODs I definitely used AI, as I felt it was necessary within many of the time limits. Unlike the Experience WODs, the pressure of being in an in-class WOD was much faster than being at home doing the same thing. With that, I learned a lot about how AI learns and how to instruct it to do better with very loose WOD instructions. I would also always look at the answers for the code after it was posted to see how different my code was compared to the correct answer.
In-class WODs: Like previously stated, I definitely used AI for these WODs. However, even when I completed the WODs I would see exactly what I did and ask AI what was the process to getting there. This helped me understand not just the solution but also the reasoning behind it.
Essays: With essays there was no need for AI to do them as it was not necessary. Many of them were reflecting on certain ideas or experiences and my personal thoughts on them, so using AI would have defeated the purpose.
Final Project: Due to the scope of how large the assignment was and the many instructions, AI was a necessity. It coded a lot of it and was fast and more efficient within the time frames we needed. For RateMyTools especially, Claude helped me set up authentication, database connections, and all the backend logic.
Learning a Concept / Tutorial: AI was not needed as I wanted to personally learn and code it myself while also understanding the concepts. I felt like tutorials were something I should work through on my own to actually retain the information.
Answering a Question in Class or Discord: I didn’t really use AI, more so just googled the question. However I was encouraged to use AI when asked general questions within class, so sometimes I would use it for quick answers.
Asking or Answering a Smart-Question: Same answer as the previous question - I mainly just googled the question and it would usually be a specific question, so the answer would be right there as soon as I looked it up. AI wasn’t really necessary for this.
Coding Example: For coding examples I absolutely used AI, as I could ask it to demonstrate how something works, how do I learn it, and also when I should implement it within code in the future. Claude was especially good at giving clear examples with explanations.
Explaining Code: Same as the previous question - Claude AI for me specifically allowed me to understand code that I would never understand before much more easily than reading multiple articles or googling it. I’d paste in confusing code and ask “explain this line by line” and it made things so much clearer.
Writing Code: I would say I coded mainly with AI, and only maybe 20% of the time I used my own coding experience. Depending on the time limit and what type of assignment I was developing, Claude was always there to help generate code quickly.
Documenting Code: I would have AI document all my code, as across all the chats you ask it, it still has all the memory saved across them all from when you coded something. This made documentation way faster and more consistent.
Quality Assurance: For this, I would definitely use Claude AI as it was very easily configured so I could give it my code and ask it how to fix something. However, for ESLint errors specifically, I would always ask GitHub Copilot because it could fix them all at once. That was way more efficient than going through each error individually.
Other Uses in ICS 314: Outside of class, I of course use AI for helping me study, understand concepts from other STEM classes, and mainly for everything school related. It’s become a huge part of how I learn in general, not just for coding.
AI definitely sped up my learning, but I’m not sure it always deepened my understanding. Since I coded mainly with AI - probably around 80% of the time - I got things done way faster, but sometimes I felt like I was missing out on the struggle that actually teaches you things.
The problem with relying so heavily on Claude is that you can get code that works without really understanding how it works. I’d ask Claude to generate something, it would work, and I’d move on. That was efficient for getting projects done, but it meant I didn’t always build the problem-solving skills I probably should have.
But on the flip side, AI made me way more confident about trying new things. I wasn’t afraid to attempt features I’d never built before because I knew Claude could help me figure it out. That confidence led to building more ambitious projects than I probably would have otherwise. Plus, having AI remember all my previous code across conversations was super helpful for documentation and understanding what I built weeks ago.
Outside of class, I’ve started using AI for all my coding projects and even other STEM classes. Claude has become my go-to for understanding difficult concepts, whether it’s software engineering or other subjects. I also notice that job postings are starting to mention AI-assisted development as a skill, so learning to use AI in this class was actually preparing me for real jobs.
That said, AI can’t design systems or make architectural decisions. It’s good for “how do I implement this specific thing” but not for “what should I build and why.” Those bigger picture decisions still need human thinking.
My biggest struggle was becoming too dependent on AI. Since I was coding 80% of the time with Claude, I started to wonder if I was actually learning or just learning how to prompt AI effectively. I had to ask myself - am I becoming a better programmer or just a better AI user?
Another issue is that AI code isn’t always the best code. Sometimes Claude would give me solutions that worked but weren’t the most efficient. And with ESLint errors, while Copilot was super efficient at fixing them all at once, I wasn’t always learning why the errors happened in the first place.
I think there’s a real opportunity for the class to teach AI usage as an actual skill. Instead of it being this thing students do on the side, make it part of the curriculum. Teach us when to rely on AI, when to code ourselves, and how to verify what AI gives us.
Traditional teaching is all about building understanding from the ground up. AI flips that by giving you immediate answers to specific questions. Both approaches have their place.
What I noticed is that when I struggled through a problem without AI and finally figured it out, I remembered it way better. When AI just handed me the answer, I’d forget it by next week. But AI let me build way more complex projects because I could move faster. I think the ideal approach is using both, traditional learning for fundamentals and AI for when you’re applying those fundamentals to build actual projects.
AI is only going to get better and more integrated into how we code. But that creates problems for education, how do you test if a student actually knows something when AI can do most of the work?
I think the focus needs to shift to teaching people how to think about problems and evaluate solutions. Anyone can get AI to spit out code. The valuable skill is knowing if that code is good and how it fits into the bigger system. One thing that would really help is teaching us to be critical of AI instead of just accepting whatever it gives us.
Using AI in ICS 314 was honestly a mixed bag. It helped me build cooler projects faster and get unstuck when I was completely lost. But it also made it easy to avoid the deep learning that comes from struggling with a problem.
The biggest lesson for me is that AI is a tool, not a teacher. It’s great for getting past obstacles quickly, but if you use it too much, you never develop your own problem-solving skills. I had to learn to balance using AI to be productive with forcing myself to struggle through problems to actually learn.
Going forward, I think classes should teach AI usage directly instead of pretending students won’t use it. Show us the right way to use these tools, when to use them, and when to put them aside and figure things out ourselves.
Overall though, I’m glad I learned to code in an era where these tools exist. This is the reality of modern software development. The question isn’t whether to use it, but how to use it effectively while still developing real skills.