Learning with AI: How I Navigated ICS 314

11 May 2025

Introduction

AI, also known as Artificial Intelligence, provides students with access to instant support, personalized learning resources, and powerful tools to enhance both understanding and productivity. In education, AI empowers learners to approach complex topics more confidently and to work more efficiently. In the context of ICS 314, a course on software engineering, AI played a critical role in helping me debug code, set up databases, deploy websites, and clarify concepts that were difficult to understand from class materials alone.

Throughout this course, I frequently used ChatGPT, and occasionally GitHub Copilot, to assist me in solving problems, fixing bugs, and learning new concepts. ChatGPT was especially useful when I ran into errors I hadn’t encountered before, needed help deploying my project, or struggled with database setup using pgAdmin. GitHub Copilot, on the other hand, was helpful for writing short code snippets or completing functions in VS Code, though I relied on it less often.

Personal Experience with AI

1. Experience WODs For the Experience WODs, AI was especially helpful in explaining functional programming, which was a new concept for me. I often attempted problems on my own first and only turned to AI when I felt completely stuck. When using AI, I made it a point to understand the logic behind the solution rather than just copying code, so I could actually learn from it.

2. In-Class Practice WODs During in-class practice WODs, I mostly worked with classmates rather than using AI. We used our ICS course website and sometimes Stack Overflow to figure out problems. Our professor often shared the correct solution at the end, so I prioritized learning from class discussions and examples.

3. In-Class WODs When completing timed WODs in class, I relied on knowledge from prior practice. If I ran into errors, I used ChatGPT to quickly find bugs or figure out what was wrong. This saved time and helped me stay focused. That said, ChatGPT wasn’t always accurate with complex Next.js files, so I had to double-check its suggestions carefully.

4. Essays I used ChatGPT to rephrase sentences and correct grammar in my essays. I always wrote my first draft based on my own thoughts and ideas, and then used AI to polish it. While AI helped improve clarity, I noticed it sometimes made my writing sound robotic, so I plan to depend on it less and build more confidence in my own writing style.

5. Final Project For our final project, I used AI extensively—especially during the deployment phase, which was my responsibility. I had a lot of issues in the beginning, but AI helped troubleshoot the errors and speed up the process. We also used AI to debug our code, which made team development more efficient.

6. Learning New Concepts AI was incredibly useful when learning new concepts, especially when tutorials on the course website were hard to follow. ChatGPT did a great job breaking things down step by step, making difficult topics more understandable.

7. Answering Questions in Class or Discord I rarely used AI to answer questions in Discord. I only turned to Discord for help when AI couldn’t give me a clear solution. I also avoided using AI to answer other students’ questions unless I fully understood the answer myself.

8. Asking or Answering Smart Questions After writing the smart questions essay, I became more mindful of how I asked questions. I used ChatGPT to help reword or format my questions to sound more professional, especially before posting them publicly on Discord.

9. Coding Examples (e.g., .pluck from Underscore.js) When I didn’t understand a function like .pluck, AI provided examples and explanations that helped me grasp how and when to use it. These examples helped reinforce my learning and made functional programming easier to understand.

10. Explaining Code Some parts of Next.js were challenging for me—especially around client-side rendering and APIs. AI helped explain what different blocks of code did and why they were necessary, which helped bridge the gaps in my understanding.

11. Writing Code When writing code, I usually started with examples I’d seen before. If my code didn’t work, I turned to AI for help identifying the problem. This process helped me learn from my mistakes rather than just guessing solutions.

12. Documenting Code Sometimes when I asked ChatGPT for help, it included helpful code comments explaining why certain lines were used. However, I found AI-generated documentation a bit confusing at times, so I usually preferred writing my own documentation.

13. Quality Assurance (e.g., Fixing ESLint Errors) I often used ChatGPT when I couldn’t figure out ESLint errors. It helped me identify issues quickly and made the debugging process more efficient, especially when the error messages weren’t clear.

14. Other Uses One major way AI helped me outside of WODs was with setting up pgAdmin and connecting it to my project database. The documentation online was confusing, but AI explained each step clearly, and now I feel confident using pgAdmin like a pro.

Impact on Learning and Understanding:

AI has positively influenced my learning experience by helping me better understand software engineering concepts and solve problems more efficiently. Tools like ChatGPT made it easier to grasp difficult topics like functional programming and deployment, especially when tutorials were hard to follow. While AI improved my debugging and coding skills, I learned not to rely on it blindly. Instead, I use it as a guide to support my learning, making sure I understand the solutions it provides. Overall, AI has enhanced my comprehension and confidence in coding.

Practical Applications:

Outside of ICS 314, I used AI while working on a personal project to create a simple 2D game. ChatGPT helped me understand how to structure game logic, manage player controls, and implement collision detection—topics I was unfamiliar with. Whenever I got stuck or encountered bugs, AI provided quick explanations and examples that helped me move forward without losing momentum. This made the development process smoother and more enjoyable.

Challenges and Opportunities

One challenge I encountered when using AI in ICS 314 was during the final project, especially when implementing features we hadn’t covered in class. While ChatGPT offered helpful suggestions, there were times when I wasn’t sure if the solutions it gave were actually correct or aligned with best practices. This made it difficult to fully trust the code without doing extra research or testing. AI isn’t perfect—it can sometimes provide outdated or overly simplified answers, especially for frameworks like Next.js that involve many files and configurations. However, this also highlights an opportunity

Comparative Analysis

Traditional teaching methods provide structure and a strong foundation, but they can sometimes feel slow or hard to apply in real-world coding situations. AI tools like ChatGPT make learning more interactive by offering quick help, examples, and real-time feedback, which keeps things engaging and helps with practical skills. However, relying too much on AI can make it easy to skip truly understanding the “why” behind the code. The best learning happens when both are combined—using traditional methods for deeper understanding and AI for hands-on support when needed.

Future Considerations:

I think AI will play an even bigger role in the future of software engineering education. As tools like ChatGPT and Copilot become more advanced, they’ll be able to offer more accurate, personalized guidance and even simulate real-world coding environments for practice. However, one big challenge will be making sure students don’t become too dependent on AI and still learn how to think critically and solve problems on their own. There’s also room for improvement in how AI handles complex or project-specific questions—sometimes it still gives vague or outdated answers. Moving forward, integrating AI more thoughtfully into the classroom, alongside strong instruction, could help students build both confidence and competence in software development.

Conclusion:

Overall, using AI in the Software Engineering course has been a helpful and eye-opening experience. It supported me in debugging, understanding new concepts, and staying on track with projects, especially when things got challenging. While AI tools like ChatGPT were not always perfect, they often gave me a starting point or helped me think through problems more clearly. I’ve learned that AI works best when used as a learning companion—not as a replacement for understanding the material. For future courses, I recommend encouraging students to use AI critically, teaching them how to evaluate AI-generated code, and integrating guided activities that show how AI can complement traditional learning. This balance can help students build real skills while using modern tools responsibly.

ChatGPT was used to refine the grammar and the clarity of my writing, however, all ideas and contents are entirely my own.