
// Should we all strive to achieve the best result using any means necessary?
Artificial Intelligence has been proclaimed to be the new revolutionary technology of the 21st century, and it is no surprise why. Instant, all-encompassing, and non-judgemental answers to any problem one could ask, software engineering related or not. Given that this technology is readily available to anyone with an internet connection, it is inevitable that this “magic answering machine” has become entrenched in Software Engineering circles such as ICS 314. As a current student of a public university, I too have been encouraged to utilize and employ AI in the form of ChatGPT in ICS 314 - Software Engineering I to complete tasks, assignments, and exams. Here, I will explore whether I chose to utilize AI in these aspects and the wider implications of AI usage in software engineering.
There are many facets of software engineering that can be complemented with AI. Here are some of those ways that I could have used AI in ICS 314, and whether I chose to or not.
I have used AI for this element. It was very successful in finding the right answers as I provided the AI with clear and comprehensive instructions. The main motivation for using AI here is the desire to find a way to complete the WOD in the best way possible. AI is known to provide high-quality answers (albeit with some guidance), so I was motivated to use AI for experience WODs in pursuit of the best output.
I have used AI for this element. Although there is less pressure to find the correct answers in practice WODs, it was still important to me that I found the right ways to do a task. AI helped me in this endeavor by providing a solid answer, which I used without having to look through documentation online and construct my own answer. Again, the desire for finding a correct, high-quality answer played a role in my williness to use AI in this aspect.
I have used AI for this element. The time pressure of completing an in-class WOD on time is a major motivation factor for using AI in this aspect. As WODs account for a major part of the overall grade of ICS 314, I did not pass up on this opportunity to produce the best possible answer and earn a desirable grade. Although AI outputs often needed revisions or tweaks to achieve a quality output, it was easy to execute given that I had the preliminary knowledge and intuition gained from experience with WODs and practice WODs.
I have never used AI for this element. There was no time pressure to finish essays in a short timeframe, so the only limiting factor for producing a quality essay was how much time I decided to put into this aspect. Throughout my entire academic career, I have prided myself on being able to communicate my thoughts and ideas clearly and effectively through both pencil and keyboard. As I always spend a substantial period of time constructing each of these essays, I have never thought of using AI, as then I would be revising someone else’s essay to submit rather than just communicating my own thoughts directly. I do not see myself using AI for writing tasks from now till the end of my career, as there is always time for me to communicate.
I have used AI for this element. As a student of UH Mānoa, it was unchallenging to create and plan for a project that applied to the wider UH community. I could apply my own experiences from daily university occurrences or past courses to construct and document my own final project. I used AI in constructing code for specific parts of the final project, as it served as a good starting point for further functionality additions. Since I am motivated to use every tool at my disposal to complete the project as competently as possible, I regularly use AI for this aspect.
I have never used AI for this element. Traditional methods of learning, such as reading documentation or watching screencasts, have always been more digestible to me, so I never had a reason to use AI in this aspect. Rather than spending time learning a concept through an intermediary, I decided to receive my information directly from the source material of various subjects and topics.
I have never used AI for this element. I believe that to answer a question asked by another student, one must be competent in that subject without having to consult other resources. Therefore, I will never use AI to answer someone else’s question or give someone else an answer that was AI-generated. All answers will therefore have come from my own analysis and reasoning. This way, I will be better equipped to handle follow-up questions or requests to expand on my reasoning.
I have never used AI for this element. Since I am competent at writing, I will never ask AI to write questions for me to ask. Regarding answering a question, my response above still applies to this aspect. All my answers to questions have been made from a point of comprehension of the topic at hand, and I will not give responses if I still have to ask for the same responses from AI. If I had to ask AI to answer a question, it would be more advantageous for the recipient to ask AI themselves, and remove the middleman.
I have never used AI for this element. I prefer to construct my own coding examples, as I can use traditional sources of learning, such as documentation, to reinforce my understanding of these subjects. Therefore, I did not need to use AI for an aspect of coding that I can perform very well myself.
I have used AI for this element. Most commonly, I will ask AI to explain the code that it has generated itself in order to get a better understanding of it. I will not ask AI to explain my own code, as I would not have written it had I not understood it. Therefore, this aspect is mainly an expansion of using AI for the purpose of WODs or projects, as it is extremely detrimental to one’s learning if they do not understand the material they submit.
I have used AI for this element. WODs and the final project are all places where I have asked AI to write code, as I want to see the answer it provides and compare it to see if it is beneficial to be used in my work. As a major aspect of ICS 314, AI helped produce quality code after a few revisions and enhancements.
I have never used AI for this element. Since I am competent at writing, I prefer to write my own documentation as I understand the code that I wrote the best. If I were to ask AI to document this code, I would need to revise the document to make it intelligible for me, which takes extra time compared to if I were to document my own code. This aspect of coding is also very enjoyable for me to complete, so I would not hand it off to AI only to revise it to the image that I want it in later.
I have used AI for this element. Most commonly, I will ask AI to conduct QA testing on its own code that it has generated itself to fix any problems that could arise. If I did not do this, I would be left with unusable and broken code, which is undesirable. I would also ask AI in the QA aspect to hear a second perspective on potential problems and issues that may arise in code.
I have not used AI for this element. All of the aspects listed above are potential points where I might have used AI, and are all-encompassing in terms of my involvement in ICS 314.
My professor in ICS 314 was a vocal advocate of using AI for any and all academic purposes, and I can also understand why they believed so. AI provides answers to questions in a well-explained, comprehensive, and quality manner so that the student does not have to face many of the hardships that come with asking questions to another human. Combined with the short timeframe required to receive answers, it is no wonder why I was compelled to use AI in order to enhance my learning experience. After using AI throughout the course of ICS 314, I can state that AI has improved my understanding of software engineering concepts greatly. Without having to worry about other aspects of asking a question, such as response time, comprehensibility, or rejection, AI has enhanced my learning process in many aspects of software engineering.
As AI develops to be more robust and competent at software engineering tasks, it will definitely see an increased use in places beyond the classroom. For instance, many techical courses in colleges around the world can have subject questions answered by AI. However, AI is currently not developed enough to consistently perform at a high level without help from human handlers who correct its mistakes and errors. AI’s current role can be described as a low-level teacher of basic, surface-level concepts, a job at which it excels at. As many of the tasks within ICS 314 require surface-level understandings, it is very easy to use AI to help me learn on many of these tasks. If AI were to be used at collaborative events or projects, individuals still must go though its work and ensure that the final output is of high quality.
The main limitation of AI is its accuracy. As this is still a tool in development, it can be expected that code generated by AI will have a few errors or may not fit the context of one’s other code. This can be solved by giving clearer instructions or elaborating on the specifics of the prompts. The thing is, AI is more helpful for those who already have an understanding of the topic because then they are able to easily correct the mistakes made by AI. For those who do not have an understanding of the subject, a more in-depth tutorial from either AI or more conventional sources is necessary before using AI to generate blocks of code or other technical answers. Students and instructors alike must understand the limitations of AI if they are to use it.
The difference between traditional teaching methods and AI-enhanced approaches in the context of software engineering education can be summed up as different distributions of effort. Traditional teaching methods take more effort and time to go through and understand, while using AI can give a student the answer in a substantially shorter period. In this case, aspects such as engagement, knowledge retention, and practical skill development will be decreased if relying on AI as compared to traditional teaching methods because there is less time and effort overall being spent on the subject at hand. A point can be made that a project made entirely from AI may very well be non-functional or will not be attractive, but any project with enough time and effort put into it will create a product that is both beautiful and practical.
AI must be carefully balanced when used in software engineering education. Although students will not be able to resist the temptation of using AI for most software engineering tasks, a point must be made to differentiate learning from using AI and getting answers from AI. AI can definitely be used as a learning tool, but it should not be used purely as an answering tool. Students must always remember that the quality of the output directly correlates to the time and energy spent on the assignment.
In conclusion, AI complements the abilities of students with a strong background in software engineering, but currently it is not the one solution to every single problem in the tech field. AI must be used as a supplement to traditional learning methods and not as a replacement, as the act of only obtaining answers from AI is not beneficial to the long-term skill development of any individual. As human society integrates with AI processes, we must not forget that the act of learning is one that we must undertake ourselves.
// In order to achieve the best results, we must not forget our own involvement in our academic journey.