Generative AI such as Chat-GPT or GitHub Copilot have appeared in a few recent years. Those AI tools have been changed the world dramatically. In this essay, we are going to discuss how to take advantage of those AI tools in the software engineering field with my personal experience in ICS 314 at University of Hawaii at Manoa, considering how those AI tools would help you to understand the concept, improve your learning materials as well as discovering the challenges and opportunities that I found in the class.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18 I have mainly used Chat-GPT to translate what the experience WODs instruction said. It was helpful to understand what the instruction really meant. As for some specific experience, I used it for E35 and E37, where we mainly handled web design or user interface parts. Since I have struggled with HTML and CSS format that I learned before these experience, it was difficult to catch up and understand how Bootstrap-5 works as a helpful framework. To understand how each function or class of Bootstrap-5 works, asking to Chat-GPT was a good way to understand the function.
In-class Practice WODs During the class exercises, I did not use Chat-GPT to write a code or just for translations. However, I had an interest how accurate answer Chat-GPT would give me. So, I asked some questions that I already knew the answer to as a comparison. But at most of the cases, Chat-GPT gave me a wrong answer or returned the answers that made me more confused. It could be because of subtle nuance difference when I asked a question.
In-class WODs In class WODs, I thought that I use an answer from Chat-GPT to finish it on time. However, since those class WODs are quite similar with the experience at the certain modules at that week. Meanwhile, Chat-GPT does not know the specific modules contents, so it rarely returned me a correct answer. Thus, I did not use Chat-GPT for in-class WODs. I would say the main reason is that I did not have enough time to ask a question and get an answer from Chat-GPT and lacking of accuracy.
Essays I often used Chat-GPT for essay. It was really helpful tool once it comes to writing an essay definitely. Even though the answers made by Chat-GPT has a kind of same patterns and words choice which makes essay boring and not human-like. I had known that fact, so I used Chat-GPT with my own rules. One of my rules was that I use it only for translations, never use to write a whole essay or look up information from uncertain websites because if I highly depend on Chat-GPT, the essay is not my words nor my own ideas anymore. By defining the rules, I believe that I fully took advantage of Chat-GPT for writing an essay.
Final project It is quite similar reason with why I did not use Chat-GPT during class WODs, but since the final project was composed of a tons of files in each team. That is why it was difficult for Chat-GPT to grasp the whole concept of project or large picture of how each function and page interact each other. Through this finding, I stopped using Chat-GPT for final project. Instead, I discussed the functions and pages with teammates to clarify their roles and how they interact each other.
Learning a concept / tutorial In terms of learning and understanding the concept, Chat-GPT was really useful tool because we had to cover a lot of new materials in each lecture, week and module. In spite of the amount of materials, the time was limited which made my life 100 times busier. What the most useful aspect of Chat-GPT for learning the new materials was that it could paraphrase the explanations of the concept more easy ways. Unfortunately, it was still difficult to visualize it for better understanding, but paraphrasing and summarizing the concept was really helpful to understand the concept for me.
Answering a question in class or in Discord I have never used Chat-GPT to answer a question in class or in Discord. The main reason is that I did not have enough time to ask a question and get an answer during class. Even when you are asking a question which was come up during the class, the professor keep going the lecture, as you take a time to ask a question to Chat-GPT, it would make you left behind the topic. So, asking TA or an instructor would work more efficiently than asking questions to Chat-GPT during a class. Also, I was not sure about the accuracy of the answer from Chat-GPT. So, I did not use Chat-GPT to answer a question in class or in Discord.
Asking or answering a smart-question I have used Chat-GPTto ask a smart-question in Discord. The main purpose of using it was to make my questions understandable and clear to others. Since I am not a native English speaker, sometimes it was difficult to make a question clear and understandable to others. So, I used Chat-GPT to make my question more clear and understandable.
Coding example e.g. “give an example of using Underscore .pluck” I would say I tried to use Chat-GPT to get an example of using functions such as “.pluck” or “.map” in JavaScript. When I went through the materials on underscore functions in classes, I felt it was difficult to catch what was actually going on by calling a function. To make it clear, and by asking Chat-GPT to show an example of its use, I could understand how a function works, what data type it takes as parameters and what/how it returns a result.
Explaining code I did not use Chat-GPT in sake of explaining code to me. Most of the functions used in experience and WODs had already been covered in previous lectures, and they were all clear in how to use them. Therefore, without needing to ask Chat-GPT questions on their uses or what a code represents for, I was able to review and revisit past materials to answer my own questions sufficiently.
Writing code Even before taking the class, I was familiar with ChatGPT and GitHub Copilot. I have known roughly their strengths and weaknesses in different fields. Because of this, I often found myself seeking advice from GitHub Copilot more than ChatGPT. However, I’ve encountered some instances where code written by GitHub Copilot still caused errors that required me to independently verify how the code generated by AI actually functions and whether it’s usable by line-by-line.
Documenting code I have never used Chat-GPT to document code. The main reason is that I have never used Chat-GPT to write a code by my self. If I heavily depend on the Chat-GPT to write a code, I would miss the opportunity to write a code, understand how a certain code works. So, I would not like to use Chat-GPT to document code.
Quality assurance I have used Chat-GPT for this purpose to make sure my code is grammatically correct, but I did not think it was helpful. That is mainly because Chat-GPT changes the opinions frequently, even though the code is correct.
Other uses in ICS 314 not listed above
As I mentioned above, I have used Chat-GPT for translation from English to Japanese. It was usually helpful for me to make sure what to do in a certain question or task.
In terms or learning, if you use Chat-GPT correctly unless you ask Chat-GPT for everything such as writing a code, answering a question, or looking up make it find an error, modify your code, it is a really excellent assistant for your programming experience. However, if you let Chat-GPT do those stuffs instead of you, and you just take your time for fun(watching anime, playing games, etc.), you could be pass the course and get a good grade, but you would get any technical knowledge, improvements of programming, nor understanding the concept at all. So, it is really important to define the rules when you use Chat-GPT or GitHub Copilot. By defining the rules, you can take advantage of Chat-GPT for your programming experience.
Through my experience that I tried using AI in my final project, I strongly felt that tasks involving large-scale operations or programs that run multiple files together should not be handled by AI. This is because, even though some of the errors I asked about were resolved temporary, leaving parts of the project to an AI that does not have a complete understanding of how the whole project look like often led to new errors. However, I think it is good to consider the code ideas proposed by AI only as a reference and not to apply them entirely. Additionally, even with code written by AI, I felt it is essential to check each line of the program to understand clearly how it operates. From this experience, I personally do not welcome using AI in such a large-scale project.
One of my challenges that I faced through this semester was that telling AI what you want to do in a part or in a big picture was kind of difficult. Even though you can explain that to human, it does not make any sense to AI. Moreover, your explanations could make sense for AI, but it understands what you told mistakenly or in a wrong direction. Those cases happened to me several times. Meanwhile, I believe that using AI in coding or these kinds of projects have a great opportunity such as AI helps you to write a code by showing what is going on in a program from the machine side. That would help you find errors or simply understand how the entire program works, or look like.
I felt that using AI in the software engineering field is a double-edged sword. On the one hand, AI can help you to understand the concept, improve your learning materials if you use correctly. On the other hand, by using AI tools, you can easily write a code without the actual understanding, that might allow students to get lazy because it is really easy to steal an idea from AI or Internet, even though writing a code is not hard problem. So it actually depends on who uses AI and how he/she takes advantages of AI.
In the future, the use of AI in software engineering fields get increased more and more. It is quite difficult to stop using those helpful(could be harmful at the same time) tools. Considering the development of technology in the previous decade, AI ia developed rapidly, making their accuracy higher and higher, I believe in the near future, people would stop writing codes, instead of humans, AI write a code for them and humans asks them what they want to make and how AI should improve a code.
Since we are living in the rapidly innovating world, the tools or products that used AI would be more common in the future. Those tools could be a cause of bad influence for humans in terms of learning and comprehension. However, it is quite difficult to prevent us from using AI in our tasks, and tell if they used it or not. Indeed, what we need is not a regulation to use AI, instead what we really need to consider is how we can live with AI without violating the meaning of learning, and developments of AI technologies.