Artificial Intelligence (AI) has become an increasingly visible part of education, especially in fields like Software Engineering, where problem solving, abstraction, and tooling are central skills. In software engineering courses, AI tools can act as tutors, code reviewers, documentation assistants, and brainstorming partners. In ICS 314, which emphasizes professional software engineering practices such as JavaScript programming, testing, UI frameworks, Agile development, and code quality, AI tools are particularly relevant because they overlap directly with real-world developer workflows. In my coursework, I have primarily used AI tools such as ChatGPT and, to a lesser extent, GitHub Copilot. I have experimented with these tools for understanding concepts, generating examples, debugging code, and improving documentation. This essay reflects on how AI influenced my learning experience in ICS 314, where it helped in some situations but was deliberately avoided in others to ensure deeper understanding.
With the WODs, I would not use AI for the first attempt, but for the second attempt, I would try to improve my time by using AI to address the issues I was stuck on before.
For the In-class practice WODs, I would try to attempt to do the WOD by itself and not ask AI for help, but when I reach a roadblock or just copy and paste a section of the WOD that I need help clarifying. For example, with one of the WODs, I asked ChatGPT, “To create test cases for this code that will work for this question and also check if the code is working.” The output of this tells me it worked with also provides me with test cases.
I would use AI like GitHub Copilot by just giving me the skeleton of the WOD we have to do, and continue to ask AI to walk me through this WOD. Like for GitHub Copilot, I asked, “Can you make a skeleton for this WOD”.
I used AI to generate the full essay, like for ChatGPT “Generate this essay “prompt” “ and it will give the answer.
For the final project, I would use AI like Github Copilot to help with planning and troubleshooting the stuff I need to do for my side of the work. For some prompts to the AI was like “I have an issue with connecting to the database in Neon, what parts am I missing?” and the AI will give me a good and descriptive way to fix this issue.
I never used AI for this element. Because I want to learn the topic that the tutorial teaches me, and I don’t want AI to do this for me since I am actually learning something.
I never used AI for this element. Because I don’t nomraly answer any questions in the Discord nor ask questions to the professor, so I think it is kinda useless for me to use AI in this sense.
I never used AI for this element. Because if I want to ask a smart question, I actually want to sound human and want to ask a acctual question rather than relying on AI to asnwer it. I would answer some samrt questions, mostly the ones I already know the answer to, so I don’t need to use AI.
I used AI for this with asking the prompt “give me a example of .pluck “ This was very useful for quick reference, similar to documentation.
I never used AI for this element. I don’t use AI in this because I can describe to my group member for the project what the code is trying to do or trying to accomplish rather than asking AI to.
I used AI to write some of the code that I make since before learning about HTML I would ask AI “Make me a HTML page that works.” Since I didnt know HTML at the time.
I never used AI for this element. If I want to document code, I have to understand what I am programming, so I need to actually understand the programming so I can document code correctly.
” or “Fix the ESLint errors in ”I used AI for some stuff like “Explain this Git merge conflict and suggest how to resolve it safely.” This made complex diffs easier to understand and reduced frustration.
I never used AI for this element. Because I only use AI for these types of things that are listed in these topics, and I didn’t find any use of it outside of these topics.
AI enhanced my learning by reducing time spent stuck on small issues and allowing me to focus on higher-level concepts. However, it also required discipline to avoid over-reliance. When used thoughtfully, AI improved my comprehension and confidence.
Outside ICS 314, I have seen AI used in everyday life by my roomates for there own homework. I also see adds online that is showing off there own product that was AI made with also seeing social media posts of AI videos that display false information.
One major challenge with AI is that it can prevent deep understanding if used incorrectly. For example, having AI write functional programming code can make it harder to fully grasp how the code works. To address this, I made it a habit to ask “Explain how this code works step by step and suggest a simpler alternative.” Another issue is accuracy—AI sometimes provides incomplete or incorrect answers, or solutions that are more complex than necessary. It can also rewrite working parts of code unexpectedly, which disrupts workflow. I learned to be more specific in my prompts, such as explicitly saying not to change unrelated code.
Compared to traditional methods, AI-enhanced learning is more interactive and immediate. Traditional approaches build discipline, while AI accelerates feedback. The best results come from combining both.
AI will likely become a standard tool in software engineering education. Future improvements should focus on transparency, ethics, and teaching students to critically evaluate AI outputs.
Overall, AI played a supportive but not dominant role in my experience with ICS 314. When used intentionally, it enhanced learning without replacing critical thinking. I recommend that future courses explicitly address best practices for AI use to maximize benefits while minimizing risks.