As Artificial Intelligence (or AI for short) technology exploded in developement over the years, the wider world has had to grapple with the rapidly evolving capabilities of AI and the ensuing consequences arising from said capabilities. Colleges all across the U.S., for example, found a not-insignificant number of their students now submitting papers that would’ve taken hours of research and typing that are instead written up in mere seconds by an algorithm that was fed a set of instructions and given access to the internet. Gaming companies, such as Riot Games, have come under fire for using AI-generated pictures, whose image-generating algorithms were built off of thousands of artworks crafted by human hands. And AI has even started to creep into the world of software engineering, with coders now turning to AI-generators such as ChatGPT to turn out new programs wholesale with just a prompt and a few seconds to wait for the AI to do their magic. For myself personally, I have refrained from using AI for almost the entirety of the course, as while the ability to churn out several chunks of code or an entire book’s worth of essays was very appealing at first, I realized that growing to rely on such technology would ultimately stunt my growth as a Computer Science student and would not provide the necessary experience that I need for the rigors of practical coding. The extent by which I actually utilized AI technology in this course was limited to only ChatGPT 3.5.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18: I had never seen a use for using AI even for the homework-level WODs, as the homework WODs were not just simple enough to grapple with, but also reflective of my current level of understanding on the subjects presented in the Experience WODs. With the presence of videos also helping with any explanations, the use of AI would not have benefitted me in any way, shape, or form.
In-class Practice WODs: In-class Practice WODs are also in the same range when it comes to the question of whether to use AI as when I was doing the Experience WODs. The presence of teachers and LAs to help with any explanations or problems and the ability to collaborate with my fellow classmates had rendered the usefulness of AI as null for me. Therefore, the thought of using AI had never crossed my mind.
In-class WODs: I had only attempted to use AI once for one WOD and found the experience to be very trying. On that occasion, I had tasked ChatGPT with converting a website to utilize React, but found myself spending more time debugging said website rather than building it. To date, that remains my only experience with using AI in ICS 314.
Essays: Using AI feels wrong on a personal level for me. Essays are meant to allow us to express our thoughts and ideas, and having an algorithm generate an essay from practically thin air based off a prompt would detract greatly from that experience. Hence, I have resolved to never use AI for any essays that I write.
Final project: I have also refrained from using AI technology for my final project, as I have not felt the need nor want to utilize AI since the final project is meant to be the culmination of our learning and efforts in Software Engineering.
Learning a concept / tutorial: I have never thought of using AI for this purpose, but I still see no need to use AI as it would dilute the learning experience greatly for me.
Answering a question in class or in Discord: This was also something that I never thought of using AI for as well. All the same, I feel no need nor want to resort to AI for such purposes, both today and in the near-to-far future.
Asking or answering a smart-question: This was also something that I had not thought of using AI for and I doubt that I ever will, since formulating the questions myself will give me a better vision of what I want to ask or answer with.
Coding example e.g. “give an example of using Underscore .pluck”: I had contemplated using AI for this purpose as it would’ve given me ideas on how to utilize the various functions of a language, but given that their is a possibility of the AI giving a wrong example and the presence of online communities such as Stack Exchange, I decided not to.
Explaining code: If I could not explain my code in the first place, then my code is broken and unusuable, so no amount of AI usage would’ve helped at all with this.
Writing code: As I said in my Coding Example reasoning, AI can give faulty code that coudld take hours to debug and make useable, so I refrained from using AI for this.
Documenting code: This is similar to my Explaining Code section in that not having an understanding of my code would mean that using AI for this would not help at all.
Quality assurance: I had also contemplated using AI for this as well, but quality assurance should be able to be done manually in my eyes, so I saw no reason to do so, ultimately.
Other uses in ICS 314 not listed above: I had never found any instance outside of these where I deemed the use of AI to be helpful for said instance, so I refrained from using AI overall outside of the one in-class WOD.
Despite the class encouraging the use of AI and even showcasing AI such as Co-Pilot, I do not feel as if AI had impacted my overall learning experience. Using AI cheapens the experience and denies me the opportunity to really put my skills to the test as well as dilutes my learning and understanding of the concepts taught within this class. However, witnessing AI in action amongst some of my classmates did make me contemplate just how much it expedites the process of software engineering, though I still never felt the need to resort to AI.
AI has already seen usage outside of ICS 314 with the advent of AI-generated text and imaging, like the aforementioned Riot Games using AI for generating images for usage within their games. Software developers have also been utilizing AI in helping to review and debug code.
The biggest challenge in using AI for me was coming up with good enough prompts and also working up the motivation to use AI in the first place. If we want to encourage people to experiment with AI, a couple classes in experimenting with AI would help motivate people to try it out and perhaps implement them in developing code.
Compared to traditional methods, AI-enhanced approaches offer a way for people to experiment and develop partially functional code to toy around with and develop, as well as help with developing the skills to put AI to good use. However, AI also stifles learning good coding techniques and can cause a person to become lazy enough to always resort to AI for any projects or assignments.
I can see AI greatly helping people with expediting their work times and deliver products in a much timelier fashion than what is expected today. However, as AI usage goes up, the threat of complacency also goes up and developers may eventually lose their ability to code by hand and manually review their own code.
While AI has the potential to greatly enhance a software engineer’s ability to code and debug, it also has the potential to stifle those skillsets through disuse. This is not to say that AI is wholly bad, as I’ve seen amongst my classmates. If we want to continue integrating AI in future courses, dedicating more time to introducing AI to students and explore=ing its usage would help immensely.