AI: A Powerful yet Defective Tool

07 May 2024

I. Introduction

Artificial Intelligence, or better known as AI, has been playing quite a significant role in education, and especially within the software engineering industry. It has been slowly growing and becoming more prominent within both industries. It truly is a powerful tool and as such, it has become something that many fear will potentially take over certain aspects for the education and software engineering fields. It can accomplish easy and simple tasks in a matter of a mere seconds, however as the questions or requests become more complex and in-depth, then can we really see the cracks of this powerful tool. Yet, despite how deep our questions, or rather, our need for another perspective goes, we find a sense of reliability and oddly comfort with the usage of AI. We’ve started to become dependent on this tool and that seems concerning. Platforms like ChatGPt or Bing’s Copilot, they have only grown in popularity, thus causing and creating a sort of safety net for students and programmers alike to fall back into whenever they get stuck or when they want a low effort yet “quality” product. Regardless, I do not fail to recognize the potential and power AI holds, but only with great power, comes great resposibility.

II. Personal Experience with AI:

I have used AI in class this semester in the following areas:

  1. Experience WODs e.g. E18

For the experience WODs, I have rarely used AI in this area. The instructions and the screencasts provided for each WOD were clear and concise so the WODs themselvers were quite easy to follow and finish. I never found myself in a hole in which I needed ChatGPT or Copilot to throw down a rope.Instead, I have used AI as a way to clean up my code if it started to look messy. If there were certain ESLint errors that were not making sense to me, I would run the code back with AI to ensure all trivial errors that I couldn’t manage to find were found and fixed.

  1. In-class Practice WODs

As for the in-class practice WODs, I have used it as my rope whenever I find myself stuck in a hole. Whenever I get stuck on a certain part of a WOD, I would use ChatGPT to help explain the instructions in hopes to get a different perspective of the issue. With this new POV, I use it as a tool to help push the issue into a different light. Although, this did create a sort of dependecy on ChatGPT that would also influence many other aspect of my personal experience with AI.

  1. In-class WODs

For the actual in-class WODs, at the start of the first 4 WODs, I was extremely determined to remain abstinent with using ChatGPT or any other AI to help further my skills and knowledge as a programmer. This would actually turn sour for me as I would soon DNF or not properly code the WOD. As time was running out for these first 4 WODs, I quickly ran to ChatGPT, but because of the lack of properly using such a tool, that led to me DNF-ing those 4 WODs. Strangely enough, after those 4 WODs, I rarely used AI afterwords for the following WODs that came after. I somehow was able to comprehend the material and the instuctions, therefore succesfully completing the WODs. The WODs that came after, I only used AI to clean up the code and make it look organized, but outside of that, I never needed that rope.

  1. Essays

I fail to imagine actually using AI to write essays. To write an essay yourself is surely time-consuming, but it is a rather simple task of answering the prompts and organizing the answers to those promts and any thoughts that follow it. Sure, creating an eye-catching or at least informative title for the essays may require an AI’s assistance due to the lack of creativity or otherwise but, using AI to write the bulk of the paper is, for a lack of better words, downright lazy and completely cheap. It creates boring and repetitive essays that lack any resemblance of a human writer. Using it to better build a structure and organize the paper would be more beneficial.

  1. Final project

For the final project, I have used AI quite a bit because of certain parts of the project that I ran to that seemed beyond my understanding. Whenever an error occured, I would first troubleshoot my code and try to understand what went wrong. If I can not find or understand why it went wrong, I would ask my groupmates for assistance and most of the time, their outside help would really help. However, when even my group was stumped, I would run the code to ChatGPT and it would provide insight and possiblities of how it went wrong. For this aspect, using AI was extremely helpful and I am very glad it was a tool we can use.

  1. Learning a concept / tutorial

I rarely used AI for this aspect. If I wanted to learned a concept or get a tutorial, Google and YouTube are my best friends for that. They contain potentially the best ways to learn and understand a concept or tutorial through a video or through a website. There is also the readings and screencasts the ICS314 instructors provide that also makes super easy to follow and learn.

  1. Answering a question in class or in Discord

I have not once used AI to answer any question in class or in Discord.

  1. Asking or answering a smart-question

I have not once also used AI in this aspect as well. If there was a similar smart-question that was prompted that I was also encountering, I would try and solve it myself rather than falling to AI because how else will I understand my errors.

  1. Coding example e.g. “give an example of using Underscore .pluck”

I have never asked AI to provide a coding example. The examples that I ever needed for certain things such as the Underscore library or the Meteor UI, I would easily find them in their individual websites. StackOverflow is also a perfect forum to rely on instead of AI because of how often and possibly common the errors you run into when coding.

  1. Explaining code

I have used AI to help explain code. For example, if there is a function that has a logic that I can not seem to understand, or if there is a whole new type of material that I have not learned yet such as subscribing and publishing data collections in MongoDB. It is effective at explaining the code and I have learned from it. This helped further my knowledge and skills as a programmer.

  1. Writing code

When it comes to asking AI to write code for me, I rather not let it. I prefer writing the code myself and understanding the logic behind it first, then run to an AI if some part of the logic fails or a function fails to do what I programmed it to do. It’s a perfect tool for troubleshooting my own code and it will remain that way. To make an AI actually write code, you would not learn as a programmer and that in itself makes being an ICS major pointless.

  1. Documenting code

I have no shame to admit that I barely document my code as is. With that, I have not once ever used AI to document my code. I understand the importance of documentating code, but I just don’t. I will eventually pick up the habit of doing so. 👍

  1. Quality assurance

I often used AI for this aspect. AI is a perfect tool for providing organization to my code and it also ensures that there aren’t any bugs to the code. Especially if there may be a hidden bug or syntax error that I haven’t caught while running and troubleshooting code. It’s a good reason to rely on AI for this aspect as it help clean up and organize the code for a better final product.

  1. Other uses in ICS 314 not listed above

I have used it for learning CSS animations with SVG files. I wanted to create a simple loading screen for the final project and I have successfully learned how to do simple animations with SVG files thanks to AI.

III. Impact on Learning and Understanding:

The incorporation of AI in terms of learning has actually boosted and improved my skills as a programmer. It has aided me in my understanding of the materials within this semester as well. However with it, there were also cons to it. It has impacted my level of comprehension and skillset in a good way, however when it comes to problem solving, it may have been the opposite. As I have stated earlier in this essay, many students and programmers alike have used AI as a sort of safety net to fall back to and I have fallen into that category. I have used ChatGPT as a means of if I don’t get it or if I can’t solve it, then surely ChatGPT can. However, I have learned to slowly refrain from running to plan B as the semester progressed. Overall, the use of AI has only furthered my comprehension of software engineering concepts and has also boosted my skills.

IV. Practical Applications:

In terms of practical applications within my experience of using AI, I have barely used it. I was introducted to AI like ChatGPT or Copilot as of 2022 and only started using it as of the start of my freshman college year. It was only used for classes like ICS141 and ICS241 in terms of explaining certain concepts as well as aiding me in learning other languages such Java or C++. As for real-world projects or collaborative activities, I have not touched anything regarding AI. However, AI in general for practical applications can be used for so many things such as organizing structures for essays, creating video ideas, and so much more.

V. Challenges and Opportunities:

A prominent challenge AI is sort of known for is how it generates, writes, and modifies code. It documents the logic behind each step, however when it is put to actual use, it fails. I have not really ran into this challenge until the in-class WODs, but otherwise I have not found any other challenge upon incorporating AI for this course. A few opportunities AI can potentially offer for software engineering education is helping people understand the concepts in simpler terms, how to structure and organize code, advice on documenting code and how to make it a habit, etc. There are tons of opportunities AI can offer if used the right way.

VI. Comparative Analysis:

In terms of traditional teaching methods, AI-enhanced approaches seems lacking of engagement. AI-enhanced approaches may have knowledge retention, but it doesn’t really engage the learner in any way possible. Traditional teaching methods can engage the learner through lectures and face-to-face in person classes and it also helps familiarize themselves with the person teaching. It is hard to really familiarize yourself with a robot when it comes to learning a new material as you just want the knowledge. However, with a real teacher, you can learn more about them through their teachings and recieve any advice or tips they have regarding anything. From this, you can better develop your practical skills such as talking to someone whose authority is higher than yours, or engaging in an actual discussion.

VII. Future Considerations:

I believe AI will continue to play its huge role in software engineering education and I think it will only grow into a bigger role. It will present many already known or potential challenges such as ensuring that the code written isn’t AI generated, or way it is used in coding, etc. Although with it, also comes potential advancements such as possibly paving a neww path forward with the usage of both AI and human coders or creating an efficient and effecitve AI that can analyze AI-generated code. AI will only ever continue to grow and unless Ultron is somehow created, I doubt there will be a constraint on using AI.

VIII. Conclusion:

AI has been an unstoppable force in the education field and the software engineering field. It is a powerful tool to use, but it is controversial at best. Many view it as a cheapskate to coding and doing assignments, while others view it as a useful tool that can help bring an issue into a different perspective. It boils down to how the user uses it for their gain. Whether it is for an homework assignment for ICS, or for making a cheap budget list for groceries at Walmart.