Artificial Intelligence (AI) is transforming education and is being used in various ways, as both a way to teach and a way to learn. Especially in fields like Software Engineering, where coding and development are crucial, AI has begun to play a big role. In ICS 314, AI tools such as ChatGPT and GitHub Co-Pilot were essential to supporting not only my acutal coding but also other things like my understanding of development, debugging skills, and documenting software systems. My primary tool has been ChatGPT, which I’ve used throughout the semester to aid me in various instances. The integration of AI has had both very helpful effects and very cautionary effects on my learning journey, which I will talk about below.
1. Experience WODs
I’m fairly certain that I relied on ChatGPT for nearly every single Experience WOD throughout the course. In many cases, the instructions provided were somewhat ambiguous or difficult to interpret on their own, which made it challenging to proceed. To address this, I would copy and paste the instructions into ChatGPT in a structured manner:
Here is the overview of what we are doing:
(Insert WOD overview here)
I will now give you the given steps one by one and I want you to guide me through them.
ChatGPT would then respond by walking me through the steps clearly and logically, helping to clarify the purpose of each part. If reference images were available, I would include them to give Chat more context. The main benefit was how it made vague instructions more manageable, but the trade-off was that it sometimes led me to rely more on Chat than attempting to interpret unclear directions myself.
2. In-class Practice WODs
I used ChatGPT for every Practice WOD except the very first one. I wanted to challenge myself initially and complete it without external help, but after that, I realized that using AI significantly increased my efficiency. I followed a similar approach to the Experience WODs, giving ChatGPT the general goal first, and then feeding in each step one at a time. This helped not only with real-time progress but also allowed Chat to keep context in memory, which became especially helpful later when the actual WODs came up. The benefit was speed and clarity, but I may have missed some deeper conceptual understanding by not struggling through the problems without help.
3. In-class WODs
Similar to the Practice WODs, I used AI for every In-class WOD except the first. That initial WOD was straightforward enough that I completed it without any issues, but for all others, I relied on ChatGPT to provide step-by-step assistance. I would begin by summarizing the objective, then prompt Chat to help me with each part individually. This allowed me to complete the tasks more confidently and reduced the risk of getting stuck. However, the cost was that I may not have developed as much independent problem-solving ability under timed conditions, which could affect performance in interviews or real-world coding assessments.
4. Essays
For some of the essay assignments, I chose to write everything myself because I found it easier to express my own thoughts directly. That said, I often used ChatGPT afterward to help improve what I wrote. I would say:
Here are the instructions for an essay I have to write for my ICS 314 class:
(Insert essay instructions here)
And here is what I have written:
(Insert my written essay here)
Please make sure it follows the requirements and change any sentences you need in order to correct grammar and improve flow/professionalism.
This was very effective. Chat preserved my tone while improving clarity and grammar. In other cases, I had Chat write the initial draft for me, and I would carefully edit it to match my own voice and ideas. The benefit here was saving time and producing more polished work, but I had to be cautious to ensure the final product still reflected my own understanding and avoided academic integrity issues.
5. Final project</>
Without a doubt, I believe that ChatGPT played a major role in my success on the final project. I used it extensively, from naming our mockup to writing entire sections of code. For example, when brainstorming ideas for our app name, I prompted:
We were tasked with creating a webapp based on this link (insert link to StudyBuddy here) and have basically come up with a general idea to make something like Notion and StuddyBuddy combined. Can you give me ideas for names for this webapp?
ChatGPT generated several options and worked with me to refine them, which is how we eventually landed on “SyncdStudy.” The benefit was that it provided continuous support for both technical and creative tasks, but the cost was that I occasionally accepted suggestions without fully understanding the underlying logic, especially with longer files that Chat wrote quickly.
6. Learning a concept / tutorial
I rarely used AI to learn or understand abstract concepts from the course. I’ll admit that I focused more on how to get the code working than on the theoretical background. As a result, I didn’t prompt ChatGPT to explain tutorials or walkthroughs unless I encountered something that completely blocked me. The cost here is that I may have missed out on deeper conceptual learning that would help long-term, but the benefit was that I could complete practical tasks efficiently.
7. Answering a question in class or in Discord
I did not usually use AI for classroom or Discord discussions, with two exceptions: the debate and the Jeopardy game. During the Jeopardy activity, I would quickly type key phrases from the question into ChatGPT—for example:
in vs code F+ shift key
Then I’d use the first result it returned to answer as quickly as possible. This method earned me 9 points in the game. The benefit was speed and accuracy, but the downside was that it didn’t actually build my knowledge; it was more about winning the game.
8. Asking or answering a smart-question
I don’t recall using AI for asking or answering any smart-questions in Discord. I generally didn’t participate in that part of the course. If I had, I probably would have written the question myself without relying on AI. In my view, asking a smart, clear question is something I feel capable of doing without external help. So while AI might assist with wording, the cost in this case would be unnecessary overuse.
9. Coding example e.g. “give an example of using Underscore .pluck”
I never asked AI for coding examples. Instead of asking for an example that I would study and replicate, I usually asked ChatGPT to write the code for me directly. I found this more efficient. The benefit was that I could complete tasks faster, but I recognize that I may have missed out on figuring out examples on my own, which is important for deeper learning.
10. Explaining code</>
I often asked ChatGPT to explain lines of code, especially when the logic was getting complex or I had lost track of what a particular line did. I would usually say:
Can you explain what the following line you wrote does?
(Insert line of code)
Chat would then respond with a clear and usually accurate explanation. This helped me re-engage with my own project and understand what was going on. The main benefit was clarity and comprehension, while the cost was minor; sometimes the explanation was too simplified or didn’t match my exact context.
11. Writing code</>
This is one of the primary ways I used AI during the course. Whether it was for WODs, the final project, or other assignments, I used ChatGPT frequently to generate code. I often used this prompt format:
Here is the overview of what we are doing:
(Insert task overview here)
I will now give you the given steps one by one and I want you to guide me through them.
ChatGPT would then help me step-by-step, and I could provide feedback if something didn’t work as expected. The benefit was that it made the coding process much faster and allowed me to stay focused. The cost was that I sometimes didn’t think through the logic deeply myself, which could limit my ability to debug independently later on.
12. Documenting code
I didn’t personally write many comments in my code, but ChatGPT often included its own comments when generating code for me. These were actually helpful in understanding the purpose of each line. Since documenting our code was not required in the class, I didn’t prompt Chat specifically for that. The benefit was that documentation was generated automatically, but the cost is that I didn’t develop the habit of documenting code myself, which is a key skill in professional environments.
13. Quality assurance e.g. “What’s wrong with this code (code here)” or “Fix the ESLint errors in (code here)”
Absolutely, I used ChatGPT for this kind of troubleshooting many times. I often pasted code or copied error messages and asked Chat to help fix them. For instance, during the final project, I ran into a runtime error that I had Chat explain to me and fix:
When I sign in though, and go to calendar, I get this runtime error, please explain
Error: Rendered more hooks than during the previous render.
Source
src/app/(site)/calendar/page.tsx (67:56) @ CalendarPage
65 | }
66 |
> 67 | const [currentDate, setCurrentDate] = useState<Date>(new Date());
| ^
68 | const [currentView, setCurrentView] = useState<string>(Views.MONTH);
69 | const [events, setEvents] = useState<CustomEvent[]>([]);,
70 | const [showModal, setShowModal] = useState(false);
Call Stack
ChatGPT explained the meaning of the error and showed me how to fix it. The benefit was that it often resolved the issue much faster than manually debugging. However, the cost was that I sometimes fixed errors without fully understanding the root cause, which limited my growth in error handling.
14. Other uses in ICS 314 not listed
Looking back, I don’t think there were any other specific uses of AI in ICS 314 beyond what I’ve already described.
Overall, I would say that the incorporation of AI has influenced my learning experience in a mostly positive way. Having access to tools like ChatGPT made the class easier to manage and less stressful, especially during WODs and homework assignments. It felt like having a dependable backup whenever I needed help, which made the course more approachable and enjoyable. That said, when it comes to comprehension, using AI sometimes made it harder for me to fully understand the material. Since I knew I could rely on ChatGPT to generate solutions, I often didn’t feel the same motivation to dig into the details or make sure I understood every concept on my own. The same goes for skill development; because AI could quickly provide working code, I didn’t always take the time to build those skills myself through trial and error. In the end, AI technologies have both enhanced and challenged my understanding of software engineering. They made the learning process smoother, but also made it easier to skip over important learning opportunities if I wasn’t careful.
In collaborative settings, AI tools like GitHub Copilot and ChatGPT have proven to be very useful. For instance, during team-based projects, these tools have made code generation, debugging, and documentation, much more efficient. Their ability to provide instant suggestions and corrections has enhanced team productivity and reduced the time spent on routine coding tasks. Moreover, platforms like Replit have made use of AI assistants such as Ghostwriter, allowing developers to build applications using natural language prompts. This approach, which is usually called “vibe coding,” allows for fast prototyping and lowers the barrier to entry for people with limited coding experience.
Though I have not participated in any simulations or competitions, I have heard and read a bit about them. In educational simulations and competitions, AI has played a supportive role. During events like hackathons or coding challenges, AI tools have assisted participants in generating ideas, writing code snippets, and troubleshooting errors. This support has allowed participants to focus more on creative problem-solving and less on routine coding tasks, thus enhancing the overall learning experience.
AI applications have demonstrated real significant effectiveness in tackling common software engineering challenges. These tools make the code review process much quicker, reducing the time spent on manual reviews and lowering the incidence of bugs by over 50%. Also, AI has been utilized in large organizations to enhance productivity. For example, Goldman Sachs has given AI tools to thousands of employees, trying to streamline operations and improve efficiency. Their proprietary GS AI Platform includes tools like the GS AI Assistant and Banker Copilot, which help in drafting documents and analyzing data, leading to an increase in efficiency among software engineers.
While AI tools offer many benefits in terms of efficiency and support, they also present challenges. Over-reliance on AI can lead to a superficial understanding of underlying concepts, and AI-generated code may sometimes lack the optimization that experienced developers provide. Therefore, it’s very important to use AI as a complement to human expertise rather than a replacement. In conclusion, AI applications have significantly impacted real-world software engineering by improving efficiency, aiding in code generation and review, and supporting collaborative development. However, to maximize the benefits, it’s essential to balance AI assistance with a solid understanding of software engineering principles.
One of the main challenges I encountered when using AI in ICS 314 was the tendency to over-rely on it. Because tools like ChatGPT could produce working code quickly, I found myself using it as a shortcut rather than as a learning aid. This made it easy to skip over parts of the learning process, especially when I was under time pressure or unsure about how to approach a problem. In some cases, I implemented AI-generated code without fully understanding how it worked, which limited my ability to debug or modify it later on. Another limitation was that AI responses were not always accurate or aligned with course-specific expectations. For example, ChatGPT would occasionally use outdated syntax or libraries, or make assumptions that didn’t match the structure of our ICS 314 projects. This meant I had to verify and sometimes heavily edit its suggestions, which could be frustrating or time-consuming. Despite these challenges, there are significant opportunities for expanding the role of AI in software engineering education. One direction is incorporating AI literacy into the curriculum, teaching students not only how to code, but also how to interact effectively with AI tools. AI could also be more directly integrated into learning platforms. For example, using AI-driven code reviewers or automated feedback tools during WODs or project milestones could provide students with instant feedback. This would support learning while still encouraging active engagement with the code. Overall, the key to overcoming the limitations of AI in the classroom lies in thoughtful integration. When used with clear intent and proper boundaries, AI can significantly enhance how students learn, practice, and apply software engineering skills.
When comparing traditional teaching methods with AI-enhanced approaches in software engineering education, both offer advantages and limitations depending on the context and the student’s learning style. Traditional methods, such as lectures, textbooks, and hands-on labs, offer structure, depth, and direct interaction with instructors. These approaches promote long-term knowledge retention by encouraging students to engage deeply with concepts and develop problem-solving skills through active struggle. In particular, working through bugs without shortcuts often leads to stronger debugging skills and better understanding of system behavior. On the other hand, AI-enhanced learning introduces flexibility and immediate support. Tools like ChatGPT can provide real-time explanations, code examples, and troubleshooting assistance, helping students move past roadblocks quickly. This level of responsiveness can increase engagement, especially for students who may feel intimidated asking questions in class. AI also allows for personalized learning experiences; students can prompt specific questions and get tailored feedback. However, while AI tools can accelerate practical skill development in the short term, they may also lead to surface-level understanding if overused. Students might complete assignments successfully without fully grasping the concepts behind them. Traditional methods, though slower, tend to build stronger foundational knowledge over time. In summary, traditional and AI-driven methods each contribute unique strengths. The most effective learning approach is probably a blended one, using traditional instruction to build deep understanding and AI tools to enhance productivity.
Looking ahead, AI is set to play an even greater role in software engineering education. As tools like ChatGPT, GitHub Copilot, and AI-integrated IDEs continue to advance, students will gain access to increasingly powerful support systems. One major opportunity is the potential for AI to act as a 24/7 tutor, guiding students through assignments. This could help bridge gaps for students who struggle in traditional classroom settings or need additional reinforcement outside of scheduled instruction. However, there are challenges that must be addressed. Over-reliance on AI could lead to shallow learning if students begin to treat it as a replacement for critical thinking. There’s also the risk of academic dishonesty and reduced originality if students rely on AI to generate code or write assignments. Educators will need to improve assessment strategies to make sure that learning outcomes are still being met authentically. To improve the integration of AI in the classroom, it would be useful to introduce guidance on how to use AI tools effectively and ethically. Structured activities that blend AI-assisted problem-solving with manual debugging and code writing could help students develop both practical and conceptual skills. In short, AI has huge potential to enhance software engineering education, but it has to be implemented with care. When used intentionally, as an aid rather than a shortcut, it can help students learn more effectively while preparing them for real-world development environments.
Reflecting on my experience in ICS 314, AI, especially ChatGPT, played a major role in how I approached and completed the course. It helped reduce stress, improved my efficiency, and acted as a consistent support tool during coding tasks. However, it also introduced some challenges, particularly when it came to fully understanding course concepts or developing my own problem-solving skills. The biggest insight I’ve gained is that AI is incredibly powerful, but only when used intentionally. When I used it to clarify concepts or guide me through problems step-by-step, it enhanced my learning. When I used it as a shortcut, it limited my growth. For future courses, I would recommend incorporating AI education directly into the curriculum, teaching students how to use these tools ethically. Structured assignments that blend AI-assisted and independent work could also help ensure students build both technical skills and real understanding. Ultimately, AI should be treated as a learning partner, not a replacement for learning itself.
This essay was written with the help of AI.