
AI in ICS 314: A Personal Reflection on Learning and Software Engineering
Artificial Intelligence (AI) has transformed the landscape of education, particularly in fields like Software Engineering where logic, automation, and iterative problem-solving are central. Tools like ChatGPT, GitHub Copilot, and Google Bard offer new pathways for students to understand complex concepts, write and debug code, and enhance productivity. In ICS 314, I leveraged AI tools—particularly ChatGPT and GitHub Copilot—to supplement my learning, solve coding challenges, and clarify concepts ranging from functional programming to web application development.
Experience WODs (e.g., E18):
For Experience WODs, I used AI only for debugging. After completing the code independently, I relied on AI to help identify and resolve errors. This support made it easier to iterate and refine my work without bypassing the learning process.
In-class Practice WODs:
I did not use AI during these sessions but turned to it afterward for debugging and reviewing concepts that I had difficulty with. This helped reinforce what I learned and filled in gaps in understanding.
In-class WODs:
AI was not used during the WODs themselves to preserve the integrity of the exercise. However, I did use it as a post-WOD tool to analyze mistakes and improve my grasp of the concepts.
Essays:
AI was used to generate and organize ideas but not to write content directly. It served as a tool for planning and improving the structure of my writing.
Final Project:
AI provided technical assistance during development, especially for debugging and clarifying documentation. This allowed me to progress through the project more efficiently while still maintaining full control over implementation.
Learning a concept/tutorial:
AI helped clarify confusing parts of tutorials and supported my independent learning when textbook or class material was insufficient.
Answering a question in class or Discord:
I used AI to verify my answers or understand other students’ questions better, allowing me to contribute more effectively to discussions.
Asking or answering a smart-question:
AI helped me develop a clearer understanding of the subject matter, enabling me to formulate better questions and responses in class.
Coding example:
I used AI as a reference tool to quickly check the syntax or behavior of specific functions. This improved my efficiency but did not replace hands-on practice.
Explaining code:
AI was useful for reviewing code I had written or encountered, helping me articulate the logic more clearly.
Writing code:
I used AI to support code writing only after attempting problems myself. It served as a reference or sanity check rather than a primary source.
Documenting code:
AI assisted in generating initial drafts of comments and documentation, which I edited and finalized based on the context.
Quality assurance:
AI was used to help identify bugs or linting issues after I had tried to resolve them manually. This made the debugging process quicker and more informative.
Other uses in ICS 314:
AI helped me better navigate complex documentation and reconcile conflicting advice from different sources, streamlining my learning experience.
AI tools significantly enhanced my learning in ICS 314. They offered clarification and feedback in a timely manner, which supported deeper understanding and problem-solving. Despite occasional inaccuracies or outdated information, AI contributed positively to skill development and knowledge retention.
Outside ICS 314, I used AI mainly for debugging purposes in my VIP project with UH Drone Technologies (UHDT). This included resolving software integration issues and debugging complex pipelines, which improved the overall quality and reliability of the project.
The main challenge was determining when to use AI without undermining my own learning. While it offered quick solutions, over-reliance could inhibit deeper understanding. Nevertheless, AI presents opportunities for further integration into learning platforms and development environments.
Traditional methods foster strong foundational knowledge, while AI enhances accessibility and speed. Together, they create a more comprehensive learning environment. AI cannot replace direct instruction and practice but serves as a valuable complement.
AI is likely to play an increasingly important role in software engineering education. Future advancements could include personalized learning systems, AI-assisted grading, and integrated mentorship tools. Emphasis should be placed on teaching students how to critically engage with AI-generated content.
AI enhanced my experience in ICS 314 by acting as a supplementary tool that supported, rather than replaced, my efforts. With careful use, it helped me stay productive and deepen my understanding. I recommend encouraging future students to engage with AI thoughtfully, ensuring it serves as an aid to learning and not a crutch.