
Artificial intelligence has become a major part of education, especially in technical fields like Software Engineering. AI tools can help students learn concepts faster, debug code, understand documentation, and practice problem solving in a more interactive way. Instead of only relying on textbooks or online forums, students can now ask questions directly to AI systems and receive explanations, examples, and troubleshooting help almost instantly. In software engineering specifically, AI is becoming increasingly relevant because modern development often involves learning new frameworks, understanding large codebases, and solving configuration or deployment issues efficiently.
Throughout ICS 314, I used AI as both a learning and development tool. At the beginning of the semester I mostly used ChatGPT for explanations, coding examples, and debugging help. Later on, I started using the built in OpenAI Codex VS Code extension inside VS Code much more often because it integrated directly into my development environment and made it easier to work with my actual project files. These tools helped me understand unfamiliar code and generate starter code for assignments and the final project. AI was especially useful during the final project because of the large amount of debugging and integration work involved. At the same time, I tried not to rely on AI for everything. For essays, documenting code, and answering questions myself, I preferred to use my own understanding so I could make sure I fully understood the material instead of only depending on generated responses.
Experience WODs e.g. E18
I used AI a lot during the Experience WODs to help me understand assignment instructions and debug problems when I got stuck. Most of the time I would ask it to explain why something was not working or to show me examples of similar code patterns. I still had to piece everything together myself, especially because the WODs were timed and required understanding the workflow.
In-class Practice WODs
For the practice WODs, I mainly used AI as a learning tool before attempting the problems myself. I would ask questions about React, JavaScript methods, or configuration issues so I could better understand the concepts before trying the exercises. It helped speed up the learning process when I ran into smaller syntax or logic mistakes.
In-class WODs
During the actual in-class WODs I used AI less directly because of time pressure, but I still sometimes used it to quickly verify syntax or remind myself how certain functions worked. I tried not to rely on it too much during the graded exercises because I wanted to make sure I could complete the work independently.
Essays
I did not really use AI for essays besides maybe helping organize ideas occasionally. I preferred writing the essays myself because I wanted them to sound natural and reflect my own opinions and experiences in the class.
Final project
AI was heavily used during the final project. I used it for troubleshooting deployment issues, understanding frameworks, debugging React and database problems, and generating example code snippets. Since our project involved a lot of configuration and integration between tools, AI was useful for helping narrow down errors and explaining documentation faster than searching manually sometimes.
Learning a concept / tutorial
This was one of the biggest ways I used AI in the class. Instead of only reading documentation, I would ask AI to explain concepts in simpler terms or compare different approaches. This was especially helpful for things like React hooks, Meteor concepts, authentication, and deployment workflows.
Answering a question in class or in Discord
I generally did not use AI for answering questions in class or Discord because I wanted to make sure I fully understood the answer myself before explaining something to someone else. If I could not explain it on my own, I felt like I probably did not understand it well enough yet.
Asking or answering a smart-question
AI helped me figure out how to phrase technical questions more clearly. Sometimes I understood the problem but did not know the correct terminology, so AI helped me structure the question in a way that made it easier for classmates or instructors to answer.
Coding example e.g. “give an example of using Underscore .pluck”
I used AI often for coding examples. It was useful for quickly seeing the syntax of functions or getting small sample snippets that I could adapt into my own code. This saved a lot of time compared to searching through documentation for simple examples.
Explaining code
I used AI pretty often to explain code that I did not fully understand at first. This was especially helpful when working with frameworks or starter code where multiple files interacted together. Having the code broken down step by step made it easier to follow the logic.
Writing code
AI helped generate boilerplate code, starter functions, and examples throughout the semester. I usually modified the output heavily to fit the assignment requirements, but it was useful for speeding up repetitive tasks and helping me get unstuck when starting a feature.
Documenting code
I mostly avoided using AI for documenting code because I wanted the comments and explanations to reflect my own understanding. If I could not explain the code myself, I felt like I needed to spend more time learning it first instead of relying on AI to describe it.
Quality assurance e.g. “What’s wrong with this code ” or “Fix the ESLint errors in my project”.
I used AI a lot for debugging and quality assurance. It was especially useful for ESLint errors, React issues, database configuration problems, and deployment troubleshooting. Sometimes the suggestions were wrong, but it usually helped point me in the right direction faster.
Other uses in ICS 314 not listed
I also used AI to help understand terminal commands, deployment tools, Git workflows, and environment configuration. A lot of modern web development involves many moving parts, so having AI available as a quick troubleshooting and learning resource made development much more efficient.
AI definitely changed the way I learned throughout ICS 314. Instead of getting stuck for long periods of time on configuration or syntax problems, I could ask questions and get explanations quickly. This made it easier to focus on understanding the bigger software engineering concepts instead of spending hours searching through documentation. At the same time, I still had to understand the output myself because AI answers were not always correct.
I have also used AI outside of ICS 314 in personal and real world projects. A lot of my web server, deployment, Docker, and reverse proxy work was done with help from ChatGPT and later the VS Code Codex extension. AI was especially useful for troubleshooting Linux, nginx, databases, and containerization issues because those systems can have very specific errors that are hard to search manually. I think AI works best as a development assistant rather than a replacement for actual understanding.
One challenge with AI is that it can sometimes confidently give incorrect answers or outdated information. There were multiple times where AI suggested solutions that either did not work or caused different problems, especially with newer frameworks and deployment setups. Another limitation is that it can make it tempting to skip learning concepts deeply if someone relies on it too much. I think future software engineering classes will probably need to focus more on teaching students how to properly verify and evaluate AI generated output.
Traditional teaching methods are still important because they force students to build foundational understanding and problem solving skills. However, AI enhanced learning makes the process much more interactive and efficient, especially in programming classes where small mistakes can completely stop progress. I found that AI improved engagement because I could experiment more freely and ask follow up questions instantly. At the same time, lectures and documentation were still important because they provided the deeper context that AI responses sometimes lacked.
I think AI is going to become a standard tool in software engineering education and professional development. Future AI tools will probably become even more integrated directly into development environments and workflows, similar to how the VS Code Codex extension already works. One challenge will be making sure students still understand core concepts instead of only depending on generated solutions. I think classes should focus more on teaching students how to effectively use AI as a tool while still being able to independently debug, explain, and design systems.
Overall, AI had a very positive impact on my experience in ICS 314. It helped speed up learning, improve troubleshooting, and reduce time spent stuck on smaller technical issues. I think AI is most effective when used as a supplement to learning rather than a replacement for understanding. In future courses, I think instructors should continue allowing AI use while encouraging students to explain their reasoning and demonstrate understanding of the material themselves.