✨ View the enhanced version on Vercel →
← Back to Essays

Reflecting on My Use of AI in ICS 314

By Nathan Vogel

December 20256 min read

Reflecting on My Use of AI in ICS 314

I. Introduction

Artificial intelligence has become an increasingly common tool in education, especially in technical fields such as software engineering. Many modern AI systems are capable of generating code, explaining complex concepts, and assisting with debugging, which makes them particularly relevant in a course like ICS 314. Throughout this course, AI served as a supplemental tool that helped clarify concepts, reduce friction when stuck, and support learning rather than replace it.

I primarily used AI in a targeted way, focusing on understanding concepts, debugging issues, and organizing ideas for writing. I intentionally avoided using AI in situations where independent problem-solving and speed were the primary learning objectives. The AI tools I used most often were ChatGPT and Claude.

AI tools used: ChatGPT, Claude
Usage pattern: Used selectively when stuck or clarifying concepts

II. Personal Experience with AI

The following sections describe how I used—or intentionally avoided using—AI across the major course elements in ICS 314, including the benefits and drawbacks of each.

1) Experience WODs (e.g., E18)

I occasionally used AI before starting experience WODs to better understand the concepts involved or to get a high-level sense of how to approach the problem. I avoided using AI during the timed portion because these WODs are meant to build speed and confidence.

The benefit was reduced confusion at the start, while the downside was that AI sometimes suggested solutions that were overly complex or ignored assignment constraints.

2) In-class Practice WODs

Practice WODs were a low-risk environment where I felt comfortable using AI. I used it mainly to interpret error messages or understand why a solution was not working.

AI explanations were helpful, but they still required verification through testing or documentation.

3) In-class WODs

I rarely used AI during in-class WODs due to time constraints. In many cases, relying on AI would have slowed me down rather than helped.

4) Essays

I used AI primarily to help with outlining and improving clarity in essays. AI was useful for organization and flow, but the personal reflection content still came from my own experience.

5) Final Project

For the final project, I used AI to help debug issues and break larger tasks into smaller steps. AI was most useful when I provided detailed context.

However, AI-generated code often required significant review to ensure it met project constraints and linting rules.

6) Learning a Concept / Tutorial

AI was especially helpful for learning new concepts when documentation felt dense. Simplified explanations helped me understand ideas more quickly.

7) Answering a Question in Class or Discord

I occasionally used AI to help phrase responses more clearly, but I avoided relying on it when I was unsure of the correctness of the answer.

8) Asking or Answering a Smart-Question

One of the most effective uses of AI was transforming vague confusion into well-structured, clear questions that were easier for others to answer.

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

I used AI to generate small, focused code examples to better understand specific functions or library methods.

10) Explaining Code

AI explanations were useful when revisiting code or reading unfamiliar code, though I still verified understanding by stepping through the logic myself.

11) Writing Code

AI-generated code was used mainly as a starting point. I treated it as a draft and made significant changes to match project requirements.

12) Documenting Code

AI helped speed up documentation by improving clarity and structure, but all documentation had to be verified for accuracy.

13) Quality Assurance (ESLint, debugging)

AI was useful for interpreting ESLint errors and suggesting potential fixes, though care was taken to avoid unintended behavior changes.

14) Other Uses in ICS 314 Not Listed

I also used AI for planning tasks and checking assignment requirements against rubrics to ensure completeness before submission.

III. Impact on Learning and Understanding

When used intentionally, AI improved my learning experience by reducing frustration and helping me move forward when stuck. At the same time, it required increased critical thinking to verify results and avoid shallow understanding.

IV. Practical Applications

AI has practical value beyond ICS 314, especially for documentation, debugging, and early-stage planning in real-world software engineering tasks.

V. Challenges and Opportunities

The main challenges were incorrect or overly confident responses and solutions that ignored constraints. There are opportunities to integrate AI more intentionally as a learning aid rather than a shortcut.

VI. Comparative Analysis

Traditional learning methods build strong foundations but can be slow, while AI-enhanced methods increase speed and accessibility. A balanced combination of both proved most effective.

VII. Future Considerations

AI will likely play an increasing role in software engineering education, shifting focus toward evaluation, verification, and reasoning skills.

VIII. Conclusion

Overall, AI was a helpful but imperfect tool in ICS 314. When used thoughtfully, it supported learning and productivity without replacing essential problem-solving skills.

AI Use Summary: YES
Tools: ChatGPT, Claude
Estimated time: ~20 minutes prompting, ~10 minutes generation, ~1–2 hours verification and edits

December 2025