AI Use in ICS 314

16 Dec 2024

Introduction

With the release of AI tools like ChatGPT, Bard, and Co-Pilot, there has been a dramatic shift in how students approach their coursework in college. For me, I can’t imagine how I made it through my first few years of college without them. AI has become a valuable resource for students and professionals in software engineering for several reasons. It can speed up repetitive tasks, assist with debugging, and provide explanations for complex concepts.

In ICS 314, I used AI tools to my advantage, and my personal favorite use of AI was for handling tedious tasks and troubleshooting issues. It felt like having a better, more interactive version of Google. Instead of scouring pages of search results, I could ask a direct question and get an immediate, focused response. This saved me a lot of time and a lot of headaches. While I have heard that tools like Claude and Google’s Gemini are great for coding, I stuck with ChatGPT since it has always been reliable for me.


Personal Experience with AI

Experience WODs (e.g., E18)

For the Experience WODs, I tried to complete them on my own first. If I got stuck, I would follow along with the instructional video. However, sometimes the video would be outdated or unclear, so I would turn to AI for help. For example, I once asked ChatGPT, “What import statement am I missing from this file?” The response would promptly gave me the correct answer and AI was useful here because it offered an explanation, not just a solution.

In-class Practice WODs

I didn’t use AI much for in-class practice WODs. These were typically shorter and less stressful, so I tried to complete them on my own. If I ran into an issue, I would troubleshoot it myself. However, if something small like syntax was off, I would ask AI questions like, “What’s the correct syntax for a forEach loop in JavaScript?” AI was helpful for quick answers like this, but I didn’t rely on it heavily during practice WODs.

In-class WODs

At first, I didn’t use AI for in-class WODs because they were simpler. But as they became more complex, especially when multiple files like React, Next.js, and Bootstrap were involved, I started using AI to troubleshoot. I would ask things like, “How do I properly import a component in Next.js?”. AI was helpful for specific, targeted questions, but it became less useful as the WODs required integrating multiple files. The complexity of managing multiple technologies sometimes made AI responses less relevant.

Essays

For essays, I used AI as a grammar checker and as a way to refine my writing. After I did a “brain dump” of my thoughts, I would copy and paste it into ChatGPT and ask, “Can you improve the grammar and sentence flow of this paragraph?” This was incredibly helpful for making my writing more clear and professional. I found it saved me a lot of time since I didn’t have to review and edit every sentence manually.

Final Project

AI played a big role in my final project. Most of my usage was for troubleshooting. When I encountered an error, I would copy the error message into ChatGPT and ask, “What does this error mean and how do I fix it?” For example, when dealing with database connection errors, AI helped me understand that I had misconfigured my .env file. While AI was great at explaining errors, it wasn’t as effective at solving ESLint issues. I would ask, “Fix these ESLint errors,” and the problems would still persist.

Learning a Concept / Tutorial

If I didn’t understand a concept, I would ask ChatGPT to explain it with examples. For instance, I asked, “Can you explain how React is different from react bootstrap?” The response gave me an easy-to-understand explanation. I found this approach much faster than reading long tutorials online. I used this method frequently throughout the course.

Answering a Question in Class or on Discord

I never used AI to answer questions during class or on Discord. I felt that it was more important to hear the instructor’s or classmates’ explanations since they were more relevant to the course context.

Asking or Answering a Smart Question

While I never used AI to ask or answer smart questions in class, I did use it to help me draft better emails. For example, I would ask, “Can you help me write a professional email to my professor about missing class on Monday?” This made my emails sound more polished and professional.

Coding Example (e.g., using _.pluck)

I didn’t use AI much to generate code examples. I prefer to write my own code from scratch so I can fully understand it. However, if I needed clarification on a method or function, I would ask something like, “How does the _.pluck method in Underscore.js work?” and AI would provide clear examples.

Explaining Code

I used AI frequently to explain code. If I copied a block of code and asked, “Can you explain what this function does?” it would break it down line-by-line. This was extremely useful when I was trying to understand code from documentation or tutorials.

Writing Code

While I did use AI to help write small code snippets, I didn’t rely on it too much for larger pieces. Sometimes, I would ask AI to “Write a function that filters an array” but I would often modify the output. AI sometimes used advanced techniques or shortcuts I wasn’t familiar with, and I preferred to write code explicitly so I understood every line.

Documenting Code

AI was great for documenting code. I would ask it, “Write comments for this function,” and it would provide clear documentation. This saved me time and ensured I had proper comments.

Quality Assurance

I used AI to help me debug issues, especially during the final project. I would copy and paste my broken code and ask, “What’s wrong with this code?” The AI would point out syntax issues or logic errors, which was helpful. However, it failed to resolve ESLint errors, especially when I asked it to “Fix these ESLint errors for this file.” The suggestions didn’t always work, so I had to resolve them manually.

Other Uses in ICS 314

Other than the above, I mostly used AI for tedious, repetitive tasks and troubleshooting. It saved me from having to scroll through endless forum posts and documentation.


Impact on Learning and Understanding

AI enhanced my learning experience in ICS 314, but I made sure to use it in a responsible way. Instead of copying and pasting solutions, I tried to understand every answer I got. I know it’s easy to fall into the trap of letting AI do all the work, but I made it a goal to truly learn from it. AI helped me grasp concepts faster, especially when I struggled with React and Next.js. It also boosted my problem-solving skills since I could get instant feedback when I was stuck.


Practical Applications

Outside of ICS 314, I used AI for personal projects. For instance, I created an automated email system that sent birthday emails to friends and family. I used ChatGPT to help me write email templates and debug API requests to the email service. This was a real-world application where AI saved me hours of work.


Challenges and Opportunities

One major challenge with AI is that it’s not perfect. I have had struggles with certain areas like math, statistics, and fixing large ESLint errors. I also learned that it’s best to feed files into AI one at a time instead of all at once. On the flip side, AI presents major opportunities. It can be a personal tutor, debugger, and writing assistant all in one. I believe future classes should teach students how to use AI effectively.


Comparative Analysis

Traditional learning requires students to search through forums, read documentation, and attend lectures. AI-enhanced learning offers faster, more interactive explanations. While traditional methods are still important for deep understanding, AI provides immediate, targeted help. It makes practical skill development faster, though it’s important to avoid dependency.


Future Considerations

AI is only going to get better. Tools like Co-Pilot are already being used in the workplace, and I expect AI will play an even bigger role in software engineering education. In the future, I hope classes incorporate AI best practices, like how to prompt it effectively and recognize its limitations.


Conclusion

AI has been a game-changer for my learning in ICS 314. From debugging to concept explanations, it saved me time and reduced stress. While it’s not perfect, I believe AI should be seen as a tool to enhance education, not replace it. Going forward, I recommend that students focus on learning from AI, not just copying and pasting from it.