Artificial Intelligence (AI) is playing an increasingly significant role in education, particularly in fields such as Software Engineering where problem-solving, debugging, and learning new technologies are constant demands. In ICS 314, AI tools became relevant not only as productivity aids but also as learning supports when used responsibly. Prior to this course, I had only casual experience using ChatGPT, primarily for general questions rather than structured academic work.
Throughout ICS 314, I made use of several AI tools including ChatGPT, OpenAI Codex, and GitHub Copilot. Overall, I found AI to be a very helpful learning aid, especially for debugging and understanding unfamiliar concepts. However, I also learned that AI can be harmful to learning if it is used only for copy-and-paste solutions rather than as a tool to support understanding. This reflection examines how I used AI across different course elements, its impact on my learning, and how AI-enhanced approaches compare to traditional methods.
Below, I reflect on each major course element and how AI factored into my learning and work.
For Experience WODs, I intentionally tried not to use AI at first. My goal was to determine whether I could complete the WOD using my own knowledge and preparation. When I became genuinely stuck or when time constraints from other classes applied, I used AI to help unblock myself. In those cases, I would ask questions such as:
“Explain why this JavaScript function is not behaving as expected.”
AI was useful as a last-resort support, but I found that relying on it too early reduced the challenge and learning value of the WOD.
I generally avoided AI during in-class practice WODs. When I prepared properly beforehand, AI was unnecessary. However, if I came in unprepared, I sometimes used AI to clarify syntax or concepts quickly. This reinforced the importance of preparation, as AI was most helpful when supplementing not replacing prior knowledge.
During graded, timed WODs, I sometimes used AI due to time pressure. However, I noticed that if I was unprepared, AI could actually slow me down, as interpreting and adapting responses took time. In these situations, AI was only beneficial when I already understood the topic at a high level.
I rarely used AI for essays, but when I did, it was primarily for brainstorming, outlining, editing, or rewriting. For example:
“Help me outline a reflection essay about effort estimation.”
AI helped organize ideas, but I ensured that all final writing reflected my own thoughts and experiences.
AI played a significant role in my final project. I used it extensively for:
Example prompts included:
“Why is this Prisma migration failing?”
“Fix the ESLint errors in this file.”
AI was extremely useful here, but most outputs required modification to fit the project’s specific structure.
AI acted as a tutor or mentor when learning new technologies such as Prisma, Next.js routing, Playwright, ESLint, React hooks, Underscore, and functional programming. For example:
“Explain how Prisma migrations and seeding work.”
This use of AI significantly improved my conceptual understanding.
AI was helpful when preparing answers to class or Discord questions, especially when I was unfamiliar with the topic. It helped me clarify my understanding before responding.
I did not meaningfully engage in asking or answering “smart questions” using AI during this course.
On rare occasions, I asked AI for example code to better understand a concept, such as functional programming patterns. These examples were used as references rather than final solutions.
I frequently asked AI to explain code written by myself or others, which helped me understand logic flows and identify mistakes.
I used AI to generate starter code, fix errors, and refactor existing code. Sometimes the generated code worked perfectly; other times it required significant modification. Understanding when and how to adjust AI output was an important skill I developed.
AI assisted with writing comments and documentation, helping improve clarity and consistency.
I relied heavily on AI for quality assurance tasks, especially for:
Prompts like:
“What’s wrong with this code?”
were particularly effective.
AI generally improved my understanding, particularly when I was already stuck and needed guidance. However, it could also reduce learning if used incorrectly, such as copying solutions without analysis. In some cases, AI responses were confusing or incorrect, requiring careful verification.
One clear benefit was learning about databases, including how to structure tables and how migrations and seeding work. AI explanations made these abstract concepts more accessible.
Outside of ICS 314, I have used AI in other courses such as physics and calculus to help understand difficult concepts. I also use AI for general problem-solving and clarification in everyday contexts, demonstrating its broader educational value.
The main challenges I encountered included:
These limitations highlight the need for critical thinking and verification when using AI.
Compared to traditional learning methods, AI significantly reduced frustration, as it eliminated hours spent searching for explanations. However, it sometimes reduced retention, since copying solutions can bypass deeper understanding. On the positive side, AI’s accessibility encouraged exploration of difficult topics that might otherwise feel overwhelming.
AI use in software engineering education should be encouraged, integrated into assignments, and treated like a debugger or reference tool. The ability to use AI effectively is likely to become a valuable skill that employers look for in the future.
Overall, AI played a meaningful role in my experience in ICS 314. When used responsibly, it enhanced learning, reduced frustration, and supported problem-solving. However, misuse can hinder understanding and retention. Moving forward, AI should be viewed as a powerful supplement to learning rather than a shortcut.
AI is best used as an extension of the mind, not as a replacement for thinking.
Disclaimer: AI was used to help me write this Reflection.