The image above was generated using ChatGPT, given the prompt: “Generate an appropriate picture for a technical essay with the title: Software Development in the Age of AI: A Reflection from ICS 314”
Artificial Intelligence (AI) has gradually become embedded in the educational landscape, influencing how students access information, refine ideas, and solve complex problems. In software engineering courses, AI tools assist with tasks ranging from debugging and code generation to clarifying theoretical concepts. In ICS 314, my experience reflected this trend: I frequently turned to AI tools—primarily ChatGPT, and at times Microsoft Copilot through Bing—to enhance my learning. These tools served as dynamic assistants, reviewing my essays for grammar, guiding me through debugging challenges, and clarifying syntactical questions. Although both ChatGPT and Copilot had their merits, I ultimately preferred ChatGPT for its more straightforward and reliable responses.
Below, I detail my usage (or non-usage) of AI for various course elements, share some example prompts, and reflect on the outcomes.
Experience WODs
I found AI tools useful for Experience WODs, typically after making an initial attempt on my own. For example, I once asked ChatGPT:
“Give me the syntax of a functional for loop in TS. Be concise and answer with up to one paragraph.”
ChatGPT provided a clean, concise code snippet using forEach
that illustrated a functional approach. While I could have found this in the course readings or the official TypeScript documentation, having it immediately at hand saved time. Although relying on AI might reduce the incentive to memorize syntax, in this case, it felt like a worthwhile trade-off.
In-Class Group WODs
I approached in-class group WODs similarly. The stakes felt higher since there was no option to retry if time ran out. Nevertheless, AI assistance was equally helpful.
One negative experience occurred when I attempted to migrate some logic from a traditional for
loop to underscore functions. ChatGPT misunderstood my intent and offered irrelevant guidance. Recognizing this confusion, I terminated the chat and proceeded independently. This experience reminded me that while AI can be helpful, it’s essential to rely on my own judgment.
In-Class Individual WODs
For individual WODs, which were graded and thus more stressful, I found it helpful to review previous chat discussions from the practice WODs. After completing a practice WOD, I’d discuss my code with ChatGPT to solidify my understanding. When tackling the actual WOD, I often referenced these previous chats and asked follow-up questions to ensure I fully grasped the syntax and concepts.
Essays
After drafting some of the ICS 314 essays, I asked ChatGPT to:
“Check my essay for grammar and clarity. Suggest improvements without changing the core content.”
ChatGPT’s suggestions often improved the overall polish of my writing. Although relying on AI for proofreading could reduce the urgency to develop my own editing skills, I mitigated this risk by always producing the initial draft independently.
Final Project
Surprisingly, ChatGPT wasn’t very helpful during the final project. Perhaps I didn’t prompt it effectively for large-scale web application issues. Whenever I tried to use it, ChatGPT introduced new data types, which are redundant since they are generated by Prisma. I decided to follow the existing code style and official documentation instead.
Learning a Concept / Tutorial
ChatGPT excelled at breaking down complex topics into digestible parts. I used it to learn various aspects of the course, such as TypeScript tips, specific npm/npx commands, and the fundamentals of server-side rendering.
Answering a Question in Class or on Discord
I did not use ChatGPT to answer questions in class or on Discord. Most of the questions I received were asked during the final project period and were logistical in nature (due dates, missing links) and could be answered directly. Therefore, I did not see a need for AI in those situations.
Asking or Answering a “Smart Question”
I didn’t use ChatGPT for asking or answering “smart questions,” but I acknowledge that AI could be beneficial in formulating insightful, context-aware queries.
Coding Examples
For repetitive tasks, such as creating an HTML document to load a compiled JavaScript file, I asked ChatGPT for a template. For example:
“Give me an HTML document with an appropriate
h1
title that loads my script.”
Within seconds, I had a functional template. This was faster than storing and manually modifying my own templates.
Explaining Code
I often used AI to clarify coding concepts. For instance, asking:
“Explain the difference between an ID and a class in CSS.”
ChatGPT provided a clear explanation, including how IDs and classes are referenced differently (#
for IDs and .
for classes).
Writing Code
I tried not to rely on AI to write code from scratch. Instead, I presented my own code snippets and asked ChatGPT to explain errors or suggest improvements, reinforcing my own understanding and maintaining a sense of authorship.
Documenting Code
I primarily documented my code myself. On a few occasions, I asked ChatGPT to add documentation to a function so I could understand standard JS/TS documentation patterns.
Quality Assurance
For ESLint errors or other QA issues, I often turned to ChatGPT. If VS Code’s “Quick Fix” tool wasn’t helpful, I pasted the error into ChatGPT and asked how to fix it without altering the behavior of my code.
Other Uses in ICS 314
I occasionally asked ChatGPT to quiz me after completing certain readings. This interview-style approach helped me reinforce concepts and better prepare for both the course and future job interviews.
Integrating AI into my learning process provided a balanced mix of guidance and personal effort. On the one hand, I accessed tutorials and documentation more quickly, freeing time to engage with more substantial challenges. On the other hand, occasional inaccuracies—like ChatGPT’s confusion over underscore functions—reminded me to remain skeptical and critical. Overall, AI enriched my learning experience, reinforcing foundational knowledge and accelerating my understanding.
Outside of ICS 314, I used AI for tasks like preparing resumes and cover letters. For example, I might start by describing my skills and passions in natural language and then prompt AI to generate a resume tailored for a specific job.
The main challenge was ensuring accuracy. At times, AI misunderstood the context of my work. A future improvement might be to have a course-specific AI model, trained on ICS data and made available to students. Such a tailored model could offer more context-aware guidance.
Traditional software engineering education is often textbook-heavy and typically requires significant memorization, which can lead to a consistent but limited learning experience. In contrast, AI-enhanced approaches boost engagement and allow students to explore evolving technologies and tools in a more dynamic way. As a result, AI-assisted methods complement traditional teaching, ultimately creating a more efficient learning environment. I do not advocate discarding the traditional approach altogether or relying solely on AI without consulting documentation or structured textbooks. However, I strongly believe that embracing AI will enable us to progress more quickly and develop more innovative projects.
As AI continues to evolve, I anticipate tools like Copilot, ChatGPT, and Gemini will become more context-aware and seamlessly integrated into educational environments. A “course-aware” AI tutor could provide personalized feedback, help students identify misconceptions, and track their progress over time. However, it’s crucial that students maintain a healthy balance, using AI as a supportive tool rather than a crutch.
My experience with AI in ICS 314 reflects a forward-thinking educational approach. Rather than ignoring or marginalizing AI, the course encouraged thoughtful, critical engagement with these tools, mirroring the reality of modern software engineering. Moving forward, demonstrating effective use of AI tools like GitHub Copilot, ChatGPT, or Gemini in class could further enhance the learning experience. Ultimately, AI can serve as a powerful ally, helping students become more efficient and confident developers while still encouraging them to think independently and critically.