Reflecting on AI Use in ICS314

17 Dec 2024

Introduction

AI is quickly changing the face of education through personalized, interactive, and effective learning processes, and its impact can be particularly seen in the software engineering world. AI tools have become an essential part of the learning process by helping with tasks such as debugging, code optimization, and concept clarification. Throughout my ICS 314 experience, I was able to frequently use AI tools like ChatGPT for debugging code, explaining complex instructions, and refining written assignments. These tools have not only enhanced my understanding of programming concepts but also helped in optimizing my workflow. Ultimately, they have been an integral part of my journey through this course.

Experience WODs

When completing the Experience WODs at home, my main objective was to work through the WOD experience using the least amount of AI assistance as possible. The times that I did result in asking AI for help was most often when I needed assistance debugging my code. While I do possess the technical skills to debug my code on my own, I find it can be very frustrating and time consuming. Hence, I often result in asking AI to assist me in this area. The second most frequent task I would ask AI to complete for me was explaining instructions that I had trouble understanding. If I didn’t understand the wording, or what the goal of one of the instructions were, I would simply ask AI to explain what it meant, as well as what it was looking for. One instance that differed from these other common uses of AI took place as I was completing the E48C Experience WOD. At the time I was completing the experience, the instructions asked us to use Meteor. However, we received separate instructions from the instructors to use the Next.js template instead. Since, at the time, the instructions were written around using Meteor, it was a little challenging for me to figure out how to convert these instructions into ones related to Meteor, for example figuring out how to initialize the Postgres database. So, I turned to ChatGPT to figure out how to accomplish the same end goal the instructions called for, just using Next.js. This was a rare use of AI, but one that helped me out tremendously, ultimately saving me from needing to research how to do each step using Next.js.

In-Class Practice WODs

During the in-class practice WODs, I don’t recall using AI very frequently. This is primarily due to the fact that most of the practice WODs were group WODs, which meant that if one person in our group didn’t know how to do something, the other most likely did and would help them out. They also tended to be shorter in length, which meant that debugging was generally pretty easy and didn’t require any help from AI. As for the practice WODs that were solo, one time I remember using AI was for Murphy’s Bar and Grill React WOD. I remember struggling to get my header layout to look correct, and turning to ChatGPT to see if it would be able to suggest where to adjust my code. It turned out the way I had wanted, and I was pleased AI was able to help me when I had felt completely stuck.

In-Class WODs

When it came to the in-class WODs, this was where I used AI the most. I made a point, however, to never simply ask AI to complete the whole WOD for me. My most common use of AI was in debugging my code. Since the in-class WODs were done on a time crunch - it was vital that I saved as much time as possible so that I could dedicate my energy to figuring out the logic behind the code I needed to write. For example, in the Aloha Beer React WOD I was having trouble getting the whole page to fit the screen. For some reason no matter what I tried, I was unable to figure it out. So, I asked ChatGPT to see if it could figure out what was wrong with my code. Unfortunately, ChatGPT was unable to figure out the issue either. Ultimately, I’m happy I decided to use AI where and when I did because I feel it really helped me out with the in-class WODs.

Essays

When writing my essays for this course, the only time I asked AI for help was when I needed to rephrase my work to sound more professional and put-together. All ideas and explanations were my own, but some of my work did use AI to make it sound better. This was highly beneficial to me because I was able to write my essay and then use AI assistance to “polish it up”. I implemented this use of AI, for example, with my Reflect on Design Patterns Essay.

Final Project

For my final project, my partners and I used AI frequently when we got stuck debugging or figuring out a problem. For me, when I ran into a problem I was having a lot of difficulty solving, I would first ask ChatGPT to see if I could come up with a solution, and if I was unable to figure it out with the assistance of AI, I would ask my teammates for help. One particular instance where this was useful was when I ran into an issue with my database. I was unable to properly connect my database to my project, and even after asking AI for help I was still unable to solve the problem. This was a time when AI was not particularly useful and I did end up asking my teammates for help.

Learning a Concept/Tutorial

The only time I used AI when learning a concept or tutorial for this class was when I was setting up my pgAdmin. A week after fully installing all the software on my computer, and getting it up and running, my computer screen cracked. It had to go to the shop for a few weeks so I had to reinstall pgAdmin on the computer I was borrowing. The issue with the computer I was borrowing was that I didn’t have admin privileges and was running into problems with installing pgAdmin on the computer. As a result, I relied on ChatGPT to help me find ways to install and use pgAdmin without needing to use any admin privileges. Using AI in this circumstance was incredibly helpful and saved me a lot of time because it walked me through alternative ways to use the program.

Answering a Question in Class or in Discord

I don’t recall ever using AI to answer a question in class, or on Discord. Any question I answered came from my own personal experience or knowledge.

Asking or Answering a Smart-Question

I also don’t recall ever using AI to ask or answer a smart-question. Similar to answering a question in class or on Discord, I did not use AI to ask or answer a smart-question because I instead was relying on what I did or did not know.

Coding Examples

I used AI for coding examples when I was unsure how a function may work. For example, when we learned the map function in the beginning of the class, I didn’t fully understand how it worked when I first learned it. Later after class, I used ChatGPT to explain it further and give me examples of it being used in practical settings so I could fully grasp the concept.

Explaining Code

I did not use AI for explaining any code because when writing code, I always made sure I knew how it worked. Hence, it was easier for me to just explain it then put it into an AI resource and risk it not explaining it the way I wanted.

Writing Code

I did not use AI to explicitly write code. Since I used AI to debug my code, at times ChatGPT would suggest adding certain lines to fix the bug, which I often followed. So, in that sense, I did use AI to write code.

Documenting Code

I did not use AI to document my code since I didn’t do much code documentation for this class.

Quality Assurance

As previously mentioned, I did use AI for quality assurance and debugging. I found this was particularly useful when I was in a time-crunch and needed to focus my energy on writing the code and figuring out its logic instead of things like debugging. For instance, during in-class WODs I often used ChatGPT to help me debug when I was cutting it close with time.

Other Uses Not Listed

I did not use AI in any way not previously mentioned.

Impact on Learning and Understanding

I think, overall, AI has aided my learning and understanding. Since I use it as a tool instead of a crutch, it has significantly helped me by taking care of small or time-consuming tasks. For example, by using AI to debug my code, a skill I already possess but one that requires a lot of time, I save a lot of time since I don’t have to do it myself. Ultimately, using AI has allowed me to focus on the concept I am learning instead of small time-consuming tasks like debugging. Furthermore, its ability to suggest better ways to complete a task has helped expand my knowledge of various topics and ultimately helped me to become a better programmer.

Practical Applications

In my free time, I am working on developing an app with one of my friends. In the process of building the app, I have found AI platforms to be incredibly helpful when I get stuck on a bug, or are unsure how to build a certain element of the app. I really appreciate its ability to provide me with specific answers to questions or problems in a way a regular search engine can not.

Challenges and Opportunities

One limitation I have found with AI is its ability to debug more complex problems within code. While it is able to solve almost any problem within a small, straightforward block of code, I have found it to not be the most reliable when trying to debug larger complex amounts of code. As for the future of software engineering education, I think it would be beneficial to encourage proper use of AI, as was done for this class. While most teachers discourage any use of AI, the professors for this course did a good job of encouraging us to use AI as a tool instead of a crutch, which I think was a very beneficial approach to using AI. I think this is a better approach then to simply ban using AI since it is a very real part of our world that can ultimately not be ignored.

Future Considerations

AI has the potential to transform software engineering education by making learning more interactive, personalized, and hands-on. It could create smarter tools to teach complex concepts, provide customized feedback, and adapt to different learning styles. But there are challenges, like avoiding over-reliance on AI. The future lies in finding the right balance—using AI to enhance teaching without losing the human connection.

Conclusion

AI has been an extremely valuable tool in enhancing my learning experience throughout this course, helping with debugging, clarifying instructions, and improving essay writing. By handling time-consuming tasks, AI allowed me to focus on understanding key concepts and problem-solving, especially during time-sensitive activities like in-class WODs. While its limitations became clear with more complex code debugging, AI’s ability to provide quick and specific assistance proved extremely beneficial. The course’s emphasis on using AI as a tool rather than a crutch encouraged responsible usage, balancing its strengths with traditional teaching methods such as collaboration and hands-on practice. In the future, AI has the potential to grow and continue helping with learning, as long as it is done so in a responsible manner.