In recent years, Artificial Intelligence (AI) has become deeply integrated into our daily lives—whether it’s through tools like Google Search, personal assistants, or specialized applications like sports analytics. In the world of computer science and software engineering, AI tools like GitHub Copilot, Claude, and ChatGPT have significantly impacted how we learn, code, and collaborate.
In ICS 314, I’ve regularly used these AI tools to assist in understanding complex concepts, writing and debugging code, and improving my overall productivity. This essay reflects on my experience with AI throughout this course, with specific examples of how it influenced my learning, collaboration, and project work.
For most Experience WODs, I would watch the accompanying videos and attempt the assignments. When I ran into errors or confusion, I turned to Claude or GitHub Copilot to troubleshoot. These tools often helped me identify what went wrong and guided me toward the correct solution. For example, in later WODs that referenced outdated software or syntax, I used Claude to understand how to adapt the instructions to our current setup in VS Code.
For practice WODs, I occasionally used ChatGPT or Claude to complete the entire exercise, especially when pressed for time. However, I found that for React-related tasks, AI assistance was less helpful because the generated code often didn’t match exactly what I needed, leading to more time spent debugging. In one of the first practice WODs, my partner and I both used AI tools (I used ChatGPT while he used Claude) to solve the problem. We received similar answers from both tools, and the process was efficient—taking only about 4 minutes.
For the timed in-class WODs, I often prepared beforehand since the practice WODs were typically similar. The time pressure made concentration difficult, so I sometimes used AI to double-check my work or to write specific code segments to help me finish on time. As a slower typist, tools like Copilot and Claude significantly improved my efficiency. During one WOD that I took at a later date due to a personal conflict, I had prepared the code in advance, but one segment wasn’t working correctly. While I passed the WOD, the project wasn’t fully functional according to the instructions. In this case, even with AI assistance, I couldn’t achieve 100% functionality.
I’ve utilized AI for most of my essays in one way or another. For this reflection essay, as well as previous assignments, I’ve used tools like ChatGPT or Copilot to:
My typical prompt would be something like: “Help me create an outline for an essay about [topic]” or “Review this paragraph and check for grammar and clarity issues.”
My team used AI extensively during the final project. I used Copilot and Claude to adjust code for Playwright testing, debug UI issues, and refine design patterns. These tools helped us iterate quickly and implement features more efficiently.
Whenever I didn’t understand a lecture or discussion topic, I would ask AI tools like ChatGPT to explain the concepts in simpler terms. Our professor encouraged this method, allowing us to come back and discuss what we had learned through AI to reinforce our understanding.
I frequently used AI to double-check answers before sharing in class or on Discord. When other students asked questions, I sometimes tested out solutions with AI before replying to ensure the response was accurate and helpful.
When encountering specific technical challenges or when helping fellow students, I would use AI to formulate clear, detailed questions and answers. This approach helped both with understanding the problem more thoroughly and developing better communication skills for technical discussions. Sometimes when another student asked a question in Discord that several of us were struggling with, I would consult AI tools to develop a comprehensive answer. For instance, during assignment E61, many of us had trouble with rendering tables properly. After consulting Claude about the specific issue, I was able to identify the problem and share the solution with classmates, saving everyone time and frustration. When asking my own questions, I learned to be specific and provide context. Rather than asking vague questions like “Why isn’t this working?”, I would provide the error message, code snippet, and expected behavior. This not only got me better answers from AI but also taught me how to communicate more effectively about technical problems.
I rarely used AI for documentation since I already knew how to write documentation properly. However, tools like Copilot or Prettier would occasionally auto-generate comments or formatting, which I found convenient.
I regularly used AI for quality assurance, asking tools to review my code for errors or to help fix ESLint warnings. For example: “What’s wrong with this code and why am I getting this error? [code and error message]” or “Fix these ESLint errors in my React component: [code with ESLint errors]”
The ways I used AI have already covered most of the required sections. However, overall, AI was an essential part of my workflow across nearly every aspect of ICS 314.
AI tools have significantly enhanced my problem-solving abilities in software engineering. They’ve not only helped me identify and fix errors in my code but also guided me in developing a more methodical approach to problem-solving.
One of the most valuable skills I’ve developed is effective prompting. Through trial and error, I’ve learned that different AI tools have different strengths – sometimes Claude would give me overly complex solutions, while Copilot provided more streamlined code that better matched my needs. This experience has taught me to be more specific and clear in my communication, a skill that translates well to working with human teammates.
There’s an important balance to maintain when using AI for learning. I’ve found that I retain concepts better when I struggle through problems independently first, then use AI to verify my understanding or explore alternative approaches. The most effective learning happens when AI serves as a guide rather than a replacement for my own thinking process. When I use AI as a shortcut without engaging with the underlying concepts, I often find myself facing similar problems later without having built the necessary understanding.
In some ways, learning with AI reminds me of having a patient tutor available at all times. When I don’t understand something, I can ask for multiple explanations until one clicks, or request simpler examples that build up to the complex concept. This personalized approach has helped me grasp difficult software engineering concepts more quickly than I might have otherwise.
Beyond ICS 314, AI has numerous practical applications in software engineering and related fields. My particular interest in sports analytics has shown me how AI is transforming this field in ways that parallel software engineering practices.
In sports analytics, AI systems now analyze vast amounts of player tracking data to extract meaningful insights. For football, which I follow closely, machine learning algorithms process data from wearable sensors and game footage to identify patterns in player movement, predict injuries, and develop optimal game strategies. Teams like the Kansas City Chiefs and Baltimore Ravens have invested heavily in AI technology to gain competitive advantages. The NFL’s Next Gen Stats, powered by AI, tracks every player’s movement and generates metrics like completion probability and expected yards after catch. What fascinates me about this application is how similar the underlying technical challenges are to software engineering problems. Both require:
Working with AI in ICS 314 has given me a foundation in these skills that could transfer to sports analytics or any field where data-driven decision making is valuable. The experience of prompting AI effectively in our coursework is remarkably similar to the process of querying specialized analytics systems in professional settings.
In professional software development, tools like GitHub Copilot and other AI assistants are increasingly becoming standard in developers’ toolkits. These tools are particularly valuable for speeding up routine tasks like writing boilerplate code, allowing developers to focus on more creative aspects of software design. For hackathons like the Hawaii Annual Code Challenge (HACC), AI tools can significantly accelerate the development process, enabling teams to build more sophisticated prototypes within tight timeframes.
One major challenge I encountered with AI tools was that they sometimes gave overly complex or irrelevant answers, especially when prompts weren’t specific enough. Debugging AI-generated code could also be time-consuming. However, these challenges taught me how to ask better questions and analyze AI outputs critically. Going forward, I see great opportunities for integrating AI more formally into course instruction—perhaps by providing structured prompts, comparing AI-generated code with student-written code, or exploring how different tools approach the same problem.
Compared to traditional teaching methods, AI-enhanced approaches provided me with more hands-on, on-demand support. AI helped me stay engaged, especially when I felt stuck, and boosted my confidence by allowing me to experiment without fear of failure. Traditional methods are still essential for deep understanding and discussion, but AI complements these by offering real-time, interactive feedback. In terms of knowledge retention and practical skills, using AI gave me more opportunities to apply concepts immediately and see real-world implementations.
AI will play a major role in future software engineering education. As AI gets smarter and more accurate, it could:
That said, ethical use and dependency need to be addressed. Students should learn when to use AI and when to think critically on their own. AI should assist learning, not replace it.
AI has been a powerful companion in my journey through ICS 314. It helped me solve problems, write better code, and complete assignments more efficiently. While it isn’t perfect, its ability to enhance learning, speed up development, and improve collaboration is undeniable. My recommendation for future courses is to provide more guidance on how to use AI effectively—treating it not as a shortcut, but as a tool for deeper understanding and creativity in software engineering.
This essay was written with the help of AI tools like ChatGPT and Claude for brainstorming, grammar checking, and organizing thoughts.