Not A Tool

12 May 2025

Introduction

Ever since the dawn of mankind, humans have been utilizing tools. Throughout the ages, tools have been used to serve humankind and better their lives. Recently, a new kind of tool was created, one that has seized the world practically overnight. For better or worse, the world will never be the same again. Since the public release of ChatGPT over a year ago, the use of AI has become commonplace in places such as schools and workplaces, and has found numerous applications in the lives of individuals. Now, AI allows those unfamiliar with coding to write their own programs and structure their own software applications. Such is as a tool should do, but there is more to the story.

Personal Experience with AI

I do not use AI if I can help it. As of far, I have not used ChatGPT or any other AI at all for coding, as I believe that (and have observed) their outputs to be unreliable. When ChatGPT first released, many jumped upon the AI train, and soon became utterly dependent on it. I noticed that their “work” and understanding of the topics consistently failed to meet expectations, and their response to most problems was simply to” ask Chat.” Therefore, I chose not to follow suite and use AI so that I could develop my own coding skills, and not fall into the same pitfalls my colleagues did.
1. Experience WODs e.g. E18: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.
2. In-class Practice WODs: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.
3. In-class WODs: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.
4. Esays: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.
5. Final Project: I am certain a teammate was relying on AI to do their portion of the project in their stead, and I found that their “work” negatively impacted the functionality of the project. Hence, I chose to not do the same.
6. Learning a concept/tutorial: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.
7. Answering a question in class or in Discord: I opted to use online articles instead of prompting AI to find these answers. I chose to do this since it would probably have taken less time than prompting.
8. Asking or answering a smart-question: I thought it was important for me to be able to answer the questions from my own understanding of the problem.
9. Coding example e.g. “give an example of using Underscore .pluck”: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.
10. Explaining Code: Documentation exists.
11. Writing Code: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code. Also, AI written code tends to be buggy/not interact well with the rest of a program when removed from vacuum.
12. Documenting Code: I can do that myself. AI understands my code less than I do, and will have produce less accurate/precise documentation.
13. Quality assurance e.g. “What’s wrong with this code…” or “Fix the ESLint errors in…”: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code. I also do not trust it to do so properly.
14. Other uses in ICS 314 not listed: I did not use AI because I wanted to develop my own skills instead of simply copying and pasting code.

Impact on Learning and Understanding

AI has encouraged me to rely upon myself by showing me, through the experiences of others, what would happen if I chose to rely on others instead of myself. In those I have worked with, in both WODS and the Final Project, AI appears to have discouraged students from learning. I believe that this happens since these students put little effort into their work, since AI does it for them, which causes them to put less time into learning how to accomplish the task on their own. I believe that if I used AI, the same would have happened to me.

Practical Analysis

AIs-‘s greatest ability is in outputting solutions, correct or not, quickly. It is best used to solve monotonous, yet simple tasks where the goal and method of achieving said goal are clear. Using AI to accomplish these tasks will save on a developer’s valuable time, allowing the developer to focus on more difficult, less AI-solvable tasks.

Challenges and Opportunities

AI often gives incorrect solutions to problems, which require developers to allocate time to fix these solutions. It is possible that it takes more time for the developer to fix the problem than it would take for them to solve it themselves. Additionally, thes style of the generated code may not match the rest of the codebase, which may cause debugging to be difficult. As such, I believe that the act of correcting AI use may be a good way to teach coding ettiquete/style to newer programmers.

Comparative Analysis

AI-enchanced software engineering education provides little benefit to the students, when compared to traditional teaching methods. AI provides unreliable answers to complicated, and sometimes even simple, problems, making its use dubious at best. Comparing that to consulting an instructor or reputable online sources, it would appear as though the use of AI, at least in its current state, is ill-reccomendable. When students are given the ability to utizlize AI in their assignments, many will naturally gravitate towards using it as a catch-all solution, which prevents them from working the problem out on their own, and hence denying them the opportunity to learn the content. Those who would use AI more responsibly, by using it to solve menial tasks, would likely see more benefit than harm in AI use, however.

Future Considerations

AI is constantly growing, and as LLMs improve and become better at synthesizing solutions, I can see their overall usefulness and attractiveness improve as well. That said, I do not believe that AI will grow to become generally helpful when integrated into software engineering education. The biggest problem LLMs face is not their accuracy, but their lack of creativity in problem-solving. Any contributions they might be able to make to education are likely to be contributions that any instructor can make, or that any student can suggest. As long as AI takes the form of LLMs, I do not think that their use cases and effectiveness will improve significantly.

Conclusion

As humans, we design tools to assist us and make life better and easier. So far, I have predominantly seen AI, which is meant to be a tool, do more harm than good in this Software Engineering course and in environments outside of it. Like a cheat-sheet for a test, AI encourages students to rely upon it for solutions (which might not be correct), taking away the opportunity for actual education in an educative course. Considering my experiences, my opinion regarding AI in this course is to either stop using it, or to completely reform the methods in which AI is used. The students must learn and practice Software Engineering to be proficient at it. Give them the opportunity to.