Reflecting on AI Use

09 May 2025
'Artificial Intelligence illustration

I. Introduction

You may consider Artificial Intelligence (AI) a product of Software Engineering. A causal relationship exists even where software engineers have developed AI. Except, now AI can also engineer solutions to common and complex software problems. In ICS 314, I made use of AI tools, specifically ChatGPT.

II. My Personal Experience with AI in ICS 314

Experience WODs: I used AI for the Experience WODs. For example, I used ChatGPT to help me debug my code for E18: Experience Functional Programming. However, for most of the Experience WODs later on, I felt it was important to work through a solution myself. I could always watch the demonstration after my first attempt and retry using a new, gained understanding.

In-class Practice WODs: I rarely use AI for the Practice WODs. I felt it was important for me to work through a solution myself. I intended to develop good coding habits that I could use in the in-class WODS.

In-class WODs: I ended up using AI for most of the in-class WODs. I could simply use my Practice WODs as reference if the assignment was similar; however, if it involved some new concept, for example, an animated “Book Now” button, I used AI to explain how to do this.

Essays: I used AI for a couple of essays to rephrase my sentences for more clarity and improve my grammar. It can be a useful tool for explaining concepts, especially ones that we do not have time to go over in class.

Final project: I used AI for debugging or providing reference code for my final project. We used Vercel to deploy our project, and with that, brought troubles of how to set up our local databases versus the Vercel database. I also checked the #smart-questions discord channel to see if anyone ran into a similar problem, and oftentimes, someone did, and a solution was found already.

Learning a concept/tutorial: I did not ask ChatGPT to teach me a concept or provide any tutorials, however, that is a good suggestion to consider for future learning.

Answering a question in class or in Discord: I did not answer questions in class or in Discord.

Asking or answering a smart question: I did not ask or answer questions in the #smart-questions channel.

Coding example: I used ChatGPT for coding examples. For example, “give me an example of using the TypeScript reduce() method to sum a specified element to access all objects inside an instance array.” I had trouble wrapping my head around TypeScript Array functional programming methods, so having AI give example code and output helped.

Explaining code: I used AI to explain code. For example, when we began utilizing classes for styling containers, buttons, etc., in our assignments, I asked ChatGPT to explain the different classes that could be used. This made styling easier when we developed our final project, since I had a better understanding of what classes to use for whatever layout I intended to design.

Writing code: I asked AI to write code. For in-class WODs, I asked ChatGPT to rewrite my code if I ran into an error I could not fix quickly or if I had trouble replicating the exact structure of the website we were tasked to recreate. I found that getting a good response from AI is not always guaranteed, however. AI can point you in the right direction or, well, backwards. You could spend so much time following various suggestions from ChatGPT that you fail to realize none of the changes you made are actually contributing to your original question. It is okay to admit you do not know the answer or are not confident in your answer. However, that might be hard when you’re supposed to be an all-knowing AI…

Documenting code: I did not ask AI to document my code. However, it did add comments anyway. Though, for most of the WODs, I added comments myself to remember concepts if the lines were not already readable.

Quality assurance: Most ESLint errors were easy to fix, so they did not require AI. Errors I came across in my final project often resulted from not having an up-to-date database, which was not difficult to fix. For other errors, I could find someone who solved a similar issue in the #smart-questions channel or online forums.

Other uses in ICS 314 not listed: I cannot recall any other uses I did not already cover.

III. Impact on Learning and Understanding

Incorporating AI into my learning experience has not deeply impacted my comprehension, skill development, and problem-solving skills. I make sure to ask ChatGPT about the example code it provides because, first of all, I want to understand the code, and second, sometimes AI provides multiple enhancements when you only asked for one. It is not a bad thing, but it is important to know how each line contributes to the output, so that if you want to recreate it or even explain it to another person later, you know how to.

As for problem-solving abilities and other skill development, I found that AI had some helpful suggestions when I first learned how to use Git commands. At work, I utilize the command line to update my branch using git stash and git pull, or publish my branch using git push. When I was first learning how to squash my commits, I watched a YouTube tutorial, however, I still found it slightly difficult to grasp so I would ask ChatGPT if I ran into errors like, why do all my commit messages show under one commit or how do I undo the commit so I can try again. Eventually, I became more confident in my use of the git commands with the support of ChatGPT. I can also stash my commits quickly and easily now, so I am happy about that too.

IV. Practical Applications

I participated in an AI Hackathon a month or so ago. It was pretty cool. There are so many uses for AI besides what we are made aware of in class. The AI Hackathon utilized the Google Cloud AI Services, which had many variations of AI to try. My team created a chatbot that fetched data from API endpoints and displayed it on a user-friendly interface. While AI brings opportunities for quicker, accurate development, I would say that as users, we need to know exactly how to prompt it to get the best results. Asking AI to design our site, while possible, is not something I would consider doing again.

I learned from our final project that building a website or service is a continuous process. You start with an exact idea, brainstorm what kinds of pages you could make, create pages that look nice but are not actually functional, then you make them function, then you spend the rest of your time perfecting those. What I gained from this opportunity is that AI is great, but it should not be blindly followed. Else, you will spend hours trying to fix what AI designed using AI because, well, you do not know how a system works if AI wrote all of it.

As much as I would like not to use AI, I admit I will still use it to understand new techniques and technologies. However, I will continue to only use it if I can absolutely not find an answer myself, and I will question the correctness and relatedness of the solutions it provides.

V. Challenges and Opportunities

As mentioned earlier, I encountered troubles using AI if I did not give it a detailed prompt, including both context and a specific question. Fair enough, I would say, I could ask AI to fix my code, and there could be multiple issues wrong with it. AI cannot read minds to detect what exact issue users are referring to, especially if users are not sure of it themselves.

VI. Comparative Analysis

I am an example appreciator. Traditional teaching methods, I would say, pose more questions and provide more examples. In comparison, AI-enhanced learning relies on the fact that you only need to provide one in-class example, simply to introduce a topic to your students, and then the student themself can search up its various applications later on, unintentionally, as they ask AI for a solution.

This may prevent students from developing practical skills, specifically the skill to come up with an answer themselves. It is similar to how children learn how to talk. They say one of their parents’ names, then slowly build up to a sentence after hearing multiple examples and trying out multiple word combinations as well. They do not immediately jump to saying, “Serve me breakfast, human.” They learn that through repeated tries.

VII. Future Considerations

AI plays an important role in Software Engineering education. An example is that we can go through different modules faster. We can start with HTML and CSS and, within a couple of months, be coding on a React project. Debugging may have hindered us before, but now, we can just ask AI if it knows why the code does not have the expected output.

VIII. Conclusion

To conclude, having one tool to answer all your questions, regardless of the subject, regardless of the coding issue, feels quite powerful. There is no longer a need to browse through online forums, blogs, or watch YouTube tutorials if AI can source a solution for you within seconds. But, this also brings the question of if we rely on AI too much, will we lose the understanding gained from troubleshooting an answer ourselves? I believe the struggle of making attempts toward that desired answer helps us remember the solution that much more. As such, it is my goal to use AI less because while it is helpful, I want to be helpful too.