Clarity Over Convenience: Reflecting on AI’s Role in My ICS 314 Journey

08 Aug 2025

Reflecting on My Use of AI in ICS 314

I. Introduction

Artificial Intelligence (AI) has turned into a key tool in education, making available new ways to acquire, understand, and apply knowledge. Regarding software engineering, AI tools can allow students to learn faster through immediate feedback, code examples, debugging help, and greater understanding of complex concepts. Tools like ChatGPT, GitHub Copilot, and Google Bard are seamlessly integrated into modern work processes.

In ICS 314, though I was conscious of the increasing influence of AI in education and development, I made an intentional decision to limit my usage of it. The only significant way I applied AI was to support my learning of new concepts or tutorials, primarily by asking ChatGPT to expand on the instructions in the course video. I did not use AI for assignments, WODs, or the final project, because I consider that the struggle itself is crucial to developing a thorough understanding, and thus, I should do it on my own.


II. Personal Experience with AI

Below is a reflection on how (or why not) I used AI for various course components:

Experience WODs (e.g., E18)

I did not utilize AI for Speed WODs. These tasks are created under time limits and need interpretation at a higher level than AI could otherwise be utilized. I felt using AI would defeat the purpose of being under pressure and learning to find solutions on one’s own.

In-class Practice WODs

During these, I did not use AI tools. The purpose of practice WODs was to create new experiences for timed assessments, and I wanted to focus on repeated practice and review to gain fluency instead of external assistance.

In-class WODs

As before, I chose not to use AI. I wanted to assess my own development without any shortcuts, especially during live sessions whose main goal was self-reliance.

Essays

All my essays were written by me without the use of AI tools. I wanted to express my understanding and voice without handing over some parts of the thought process to AI.

Final Project

I didn’t use AI for coding, documentation, or debugging in the final project. It was necessary that I did learn with my teammates authentically and through the project, we shared our learning and work.

Learning a Concept / Tutorial

This is where AI was meaningfully used. For example, the technical manuals for the assignments I watched mintistruct metn of video transcripts directly in ChatGPT for the purpose of requesting alternative, improved explanations or clarifications.

Example prompt:

“Can you explain what this tutorial is doing when it says: ‘Define a Meteor publication and subscription for the TaskCollection’?”

In this situation, AI was crucial to me learning what these words actually meant and what went into the code, and it was my assistant when grasping the concept of functional programming, schema validation, and subscriptions in Meteor when the video alone did not suffice.

Generally, this application of AI got me better at reinforcing conceptual understanding, particularly during the times when I required a slower, more interactive explanation.

Answering a Question in Class or in Discord

I did not use AI. I preferred to think through the questions myself, or look at class resources and notes first.

Asking or Answering a Smart Question

I did not use AI in this context either. I felt it was necessary to develop my ability to ask quality questions on my own before I could rely on anyone else, and this, I realized, is a key component to learning.

Coding Example (e.g., using Underscore .pluck)

I didn’t ask AI for coding examples. I tried to rely on documentation, lectures, and examples provided in class.

Explaining Code

I did not use AI to explain code to others. In uncertain situations, asking my classmates or instructors was preferable rather than relying on what could be a simplified or inaccurate AI explanation.

Writing Code

I did not use AI to write code in ICS 314. I believe writing code by hand is essential to developing fluency, and I wanted to avoid becoming too dependent on generated solutions.

Documenting Code

No AI was used here. I wrote all my documentation manually based on my understanding of the code.

Quality Assurance (e.g., fixing ESLint errors or debugging)

I dealt with all the debugging and linting alone. The messages from ESLint and the tips from the instructor were enough.

Other Uses in ICS 314 Not Listed

None.


III. Impact on Learning and Understanding

AI was a very useful add-on for the course videos, and the lectures when its use was limited to only concept clarification. Even though I did not use it for assignment completion, AI increased my understanding of the tools and patterns we used in the course. For example, I could ask follow-up questions which the videos did not address and receive immediate responses. This made my learning more efficient and it helped me with my lack of understanding.

On the other hand, I guess that my ability to keep knowledge better and to be more adept at problem-solving are due to the fact that I did not employ AI in actual coding or in assignments. AI was a tutor, not a crutch.


IV. Practical Applications

Besides ICS 314, I have sporadically made use of AI in personal coding projects like writing utility scripts. I remember one time I had a recursive tree traversal walkthrough the logic with ChatGPT as I was building a file parser. Regardless of the above-mentioned use I tend to avoid implementing AI, even in side projects.

AI can solve real problems by doing tasks like building boiler, finding bugs, and writing documentation. But I think it should be an extra not a replacement for the proper software engineering skills.


V. Challenges and Opportunities

The primary challenge in ICS 314 in connection with the use of AI is avoiding over-reliance. The Google-Chat solution is quick, but asking if you are stuck can do harm if you do it too often. Yet, there is an opportunity: if your guidance is based on ethics and used properly, AI can be a powerful tool for acquiring understanding, exploring alternatives, and building self-confidence.

I think more structured guidance on how to use AI ethically and effectively in a course like ICS 314 could be a valuable addition.


VI. Comparative Analysis

Traditional learning methods (e.g., lectures, readings, coding practice) were needed for building a solid initial understanding and long-term retention. AI-enhanced learning, on the other hand, was useful for filling in the gaps and reinforcing what I have learned.

At the same time, AI is more practical than reading textbooks, faster than posting a question in Discord, but it can also be more susceptible to error or be generic. The best of both came when I used traditional teaching for the main learning and AI was a second explainers.


VII. Future Considerations

As we look ahead, I think AI will become even more integrated into software engineering education. For instance, tools like GitHub Copile or ChatGPT could be used to simulate pair programming, provide instant code reviews, or generate project scaffolding.

However, for this to be effective, the students will have to be trained in how to use AI responsibly—not as a shortcut but as a tool to help learning. Courses should include guidance on prompt writing, ethical boundaries, and verification of AI-generated content.


VIII. Conclusion

My experience with AI in ICS 314 was limited but it had a good impact. By opting to use AI as a learning adviser and not as a shortcut for task completion, I acquired a more profound understanding of software engineering concepts. AI was the means through which I managed to clarify complex subjects, but I was set on writing, debugging, and building projects alone.

On the other hand, I view AI as a great tool in the toolbox of developers—but just like every tool, it must be used wisely and purposefully. When done right, AI can add value to the software engineering learning process and not substitute it.