AI Ain't All That

12 May 2025


I. Introduction

The use of artificial intelligence has become a norm among students in modern education, transforming how some students learn, engage with new concepts, and solve problems. In the context of software engineering, many AI tools offer immediate feedback in the code editor, quickly generate code examples to prompts, clarify complex concepts, and serve as 24/7 available tutors. In ICS 314, the integration of AI has provided both opportunities and challenges. During this semester course, I used the AI tools ChatGPT and GitHub Copilot the most. These tools played different roles in my software engineering journey, from writing code to debugging and documentation. I used ChatGPT for simplification of concepts that were difficult for me, code and idea generation, and troubleshooting. I used Github Copilot for code completion and suggestions.


II. Personal Experience with AI

1. Experience WODs

Example: For most of the React and Nextjs Experience WODs I would ask ChatGPT “What is x component doing in this code?”
Reflection: At the time, the nesting of elements was very confusing to me and it was hard for me to wrap my head around some of the concepts of these new objects and how it was translating to HTML. I still don’t think I have a great understanding of it, but can get by when reading and trying to understand what a piece of code is doing.

2. In-class Practice WODs

Example: For in-class Practice WODs my experience was similar to the above with the experience WODs.
Reflection: I hadn’t used AI for any assignments prior to Nextjs and React as the earlier assignments were easy enough for me to grasp, but after that point I may have relied too heavily on AI instead of putting in enough time to understand what was going on and improve on this weakness.

3. In-class WODs

Example: For in-class WODs I used AI to generate code for a typescript function in typescript WOD 3. I believe I copy and pasted the problem to ChatGPT and used the generated code. I tried to solve it myself, but there were a couple minutes left before time ran out, so I used it to get the answer.
Reflection: At the time I was scared of losing the points. AI was useful in getting the answer but I didn’t use it to learn how to do it as I still don’t know how to make that type of function and don’t believe I have used that type of function ever since that WOD.

4. Essays

Example: I haven’t used any AI for essay generation prior to its use in this essay. I used the prompt “create an essay based on this, leaving any areas where it asks for personal experiences/examples blank for me to fill out” and copy pasted the page.
Reflection: AI was useful in saving time having to format everything and getting a foundation for the introduction and later paragraphs. Of course I filled out my own experiences and revised the generated paragraphs to use my own voice.

5. Final Project

Example: ChatGPT was relied upon heavily during writing the playwright tests for the project and formatting of some elements such as the sidebar.
Reflection: For the playwright tests I used ChatGPT to troubleshoot all the errors I was getting as most tests were fine when I clicked through each test in debug mode, but running the tests at full speed would result in most tests failing as the sign in page would fail. I would ask ChatGPT what was wrong with the error codes attached and implement them in my code. The responses were useful half the time, but the other half of the responses did not work.

6. Learning a Concept / Tutorial

Example: I asked ChatGPT to explain styling and how Nextjs elements like Navbar translate to HTML.
Reflection: The response was initially helpful in understanding what was going on under the hood, but I have since forgotten how it works and don’t plan on relearning it again. One reason may be that I have a weak foundation in HTML and styling in the first place, so the new information went in one ear and out the other in some time.

7. Answering a Question in Class or on Discord

Example: I didn’t use any AI to answer a question in class or on Discord.
Reflection: I didn’t use AI because I would assume that they would have already used AI to answer their question, and if I used AI too to answer their question then the answers would be redundant.

8. Asking or Answering a Smart-Question

Example: I didn’t use any AI to answer a Smart-Question in class or on Discord.
Reflection: Same reasons as the above point.

9. Coding Example

Example: I prompted ChatGPT to “Give me an example of a sidebar using Nextjs and react.”
Reflection: I used it to see if it was able to create it for our site, but the code it gave was not working for me, so in the end I followed a HTML tutorial on YouTube and adjusted the code and style sheet to fit my needs.

10. Explaining Code

Example: I didn’t use any AI to explain full code, only lines of elements I was unfamiliar with, prompting ChatGPT with “what does *line* do?”. Reflection: Using AI to explain small code snippets was useful in figuring out what the full code was trying to do.

11. Writing Code

Example: I used ChatGPT and Github Copilot most prominently during the final project to write code for me as working with prisma schemas for the database was very confusing to me.
Reflection: The generated code was useful most of the time after I would look it over and ask it to revise parts I thought were wrong.

12. Documenting Code

Example: I didn’t use any AI to specifically document code as it would create comments automatically after asking it to generate code.
Reflection: The comments it did provide were useful in providing explanations for what was meant to happen and it also indicated places to change the code to fit my needs.

13. Quality Assurance

Example: I used Github Copilot to save time when fixing ESLint errors, most prominently indentation errors.
Reflection: Since ESLint provides the area where there is an error, most of the time it is an easy formatting issue to fix, but after deleting an element a whole code block would be off expected indentation, so Copilot was useful in indenting whole blocks instead of me having to indent each one by one.

14. Other Uses in ICS 314 Not Listed

Example: The only other use I used AI for in ICS 314 was to summarize the reading in the computing ethics module involving AI in the workplace with the prompt “summarize this article at the ste *link*”
Reflection: It was useful in saving time and getting the main ideas of the text. I was able to not have to read that long article in the short time we were given.


III. Impact on Learning and Understanding

AI tools have significantly affected the way I understand and apply software engineering concepts. They provided another layer of explanation that often helped me in my understanding. However, some uses such as generating full components of code did not aid me in learning. Heavy reliance on AI occasionally made me too dismissive of actually putting in the work to understand some material, and I had to remind myself to independently practice and struggle through code to fully absorb the learning.


IV. Practical Applications

Outside of ICS, Ai has been used to create things such as chatbots and used in research to analyze things like cancer. Some doctors are using AI to aid in detection of AI and predict the chances of development in a patient. Based on these it also aids in the creation of a treatment plan. In these real-world challenges, yes it can be useful, but I feel it is still required for some human verification at the end. AI should be used to save time to solve known problems, but new problems should still require human intervention.


V. Challenges and Opportunities

A recurring challenge with AI in ICS 314 was distinguishing between helpful guidance and misleading output. At times, AI would produce code that looked correct but didn’t work in the intended ways. Another challenge was the temptation to overuse AI and bypass the problem-solving process. That said, there are opportunities to formally integrate AI usage into the course, maybe through structured prompts or an AI literacy module at the beginning of the year to help students use these tools responsibly and effectively.


VI. Comparative Analysis

Compared to traditional teaching methods, AI-enhanced learning offers instant feedback, personalized instruction, and more autonomy in how I approach problems. While lectures and documentation are essential, AI can fill in the gaps, especially when instructors are unavailable. However, traditional methods often foster deeper learning through repetition, collaboration, and the hands-on experience essential when learning to code. AI tools complement but should not replace these foundations.


VII. Future Considerations

Looking ahead, AI is likely to play a growing role in software engineering education. As models become more context-aware and integrated into IDEs, they can assist not only with syntax but with debugging, refactoring, and design decisions. However, it’s crucial to teach students ethical and effective use of AI. Future courses might incorporate AI literacy, critical evaluation skills, and more emphasis on student-AI collaboration rather than dependency.


VIII. Conclusion

Reflecting on my experience in ICS 314, AI has been a valuable but double-edged tool. It enhanced my learning, clarified difficult concepts, and made coding more efficient. However, it also introduced challenges around over-reliance and accuracy. Thoughtful integration of AI into the curriculum paired with traditional teaching can provide a balanced educational experience. Going forward, I recommend clear guidelines, practice prompts, and collaborative case studies to make AI a responsible partner in software engineering education.