Artificial Intelligence, or AI is a very powerful tool, that is only going to get more powerful as time goes on. AI can be used for many different things, whether it be explaining a concept, or summarizing multiple pieces of information. I have fooled around with ChatGPT before taking ICS 314. During ICS 314, I made use of ChatGPT and GitHub Co-Pilot.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18 For experience WODs, I felt it unnecessary to use AI. This is because screencasts were provided with the purpose of aiding us in the experiences. Working through the exercises a couple of times and watching the screencasts was helpful for me, and I am happy I chose to not use AI for experience WODs.
In-class Practice WODs For in-class Practice WODs, I would attempt them without using AI, and only use AI if I got stuck, or was close to not finishing in time. Using AI for these types of exercises hinders learning most of the time, as simply copying the problem and pasting the solution is not an effective way to understand or retain information.
In-class WODs My system was mostly the same for both practice and actual WODs, only using it if I was stuck or I was in danger of not finishing. WODs were worth a lot of points, which put more pressure on me to finishing and having a working solution rather than truly understanding the material. I know that I had to use ChatGPT for the one of the functional programming WODs, as the Underscore library does not seem intuitive to use.
Essays I rarely used AI for essays outside of checking for grammar or spelling errors. Using AI to generate an entire essay is a great way to sound like a robot and that you have no personality. Also, if you simply copy and paste what an AI generates for an essay prompt, without reading what it says, you deserve to fail for not checking what is generated, as it could be completely unrelated. You lose your voice when relying on AI to write for you. Being able to write and express your own ideas coherently without relying on AI is an important skill to have in my opinion.
Final project I have used AI for the final project in 314. I worked on both front-end and back-end parts of my group’s project, and ChatGPT was very useful in pointing out bugs or errors in my code. In addition, Co-Pilot was also useful when I was writing TestCafe tests, since it would fill in parts of tests that I needed, without much errors, if any. However, Co-Pilot, especially when working on front-end components in React, was not very helpful. I remember times where I was tempted to turn Co-Pilot off as it gave me suggestions that did not fit in to what I wanted or gave me suggestions that broke my pages.
Learning a concept / tutorial I prefer other avenues of learning before turning to AI. There are many other resources, being web tutorials, forums, documentation, and YouTube videos to obtain information from. I find that practice makes perfect, and that should be the priority when it comes to learning.
Answering a question in class or in Discord I did not use AI to answer a question in class or Discord.
Asking or answering a smart-question I did not use AI to ask or answer a smart-question. When I encountered issues, I would try to solve it on my own first, and most of the time, I was able to. If I was spending too much time on an issue, I would then turn to AI, and that usually solved the problem. Even when I had to ask a smart-question, AI did not help in fixing it because it dealt with how my libraries were installed on my unique machine, something AI knows nothing about.
Coding example e.g. “give an example of using Underscore .pluck” I have used AI to generate examples of code so I can better understand them. I know I have used AI to generate examples of using the .map function in Underscore, because I had trouble understanding what it did and how/when to use it.
Explaining code I have used AI to explain how underscore functions worked in the meteor-application-template-react template provided to us. This helped me understand how different functions worked, when displaying information from the back-end at the front-end.
Writing code I have used AI to write code, mainly utilizing ChatGPT and Co-Pilot, especially for the final project as I wrote before. However, I feel that AI is not as good when it comes to utilizing the React library to create components and pages. It is better at straight up writing JavaScript.
Documenting code I see no reason to use AI to document code. It is up to the one using AI with their code to understand what AI generates and be able to document it themselves.
Quality assurance In my opinion, AI is good at detecting bugs. There were multiple instances while working on the final project where I would write a line of code that looked perfectly fine, but then it broke my website. It did not help that there were no ESLint errors, but my code would not work. ChatGPT helped me find these errors and fix them quickly.
Other uses in ICS 314 not listed above I have not used AI for other purposes in ICS 314 besides the uses listed above.
Use of AI can be a double-edged sword. It can both help and hinder understanding. For me, I feel that my somewhat moderate use of AI has helped my learning rather than hinder it. AI gave me another avenue to obtaining information and break down new information into bite-sized pieces. Having AI explain concepts to me as well as being able to ask a professor for help was very beneficial for me.
AI has many practical applications outside of 314, but the some of the concepts discussed above can still apply. AI is good at summarizing information and breaking it down so that it is more understandable, which can be applied to just about any subject. AI can be used to write code/applications quickly, but it is up to the user to understand what it is writing. In addition, one important aspect that must also be considered is querying AI with proprietary code from a company. It may be a breach of privacy for users and/or the company because proprietary code that can contain sensitive information that is handed over to the AI application on a silver platter. AI has many practical applications, but one must be careful with how its used.
The main challenge with AI I encountered is using it when writing React components or pages. I found that AI was not very good in doing what I wanted it to do, and ended up breaking my pages more often than not. It was more useful to write things myself most of the time. AI, in its current form, is useful in explaining things, but should not be depended upon for assignments. I think that the way ICS 314 is run currently with its current integration of AI into the course is fine, and students should have the self-discipline to only use it when necessary.
While the use of AI has helped my learning, I still feel that use of AI is a double-edged sword, depending on how it is used. With traditional teaching methods, it is up to the student to practice and gain proficiency with the concepts being presented in class. With the AI-enhanced approach, some students may choose to use AI sparingly, while others may depend on it entirely. If one depends on it, they are actively hurting their learning, since they will have no foundation and no skill with concepts presented, solely relying on AI to do everything for them, which will get them nowhere in their career journey. AI should be used sparingly in these types of courses.
AI is here to stay, no doubt about that. However, in software engineering education, the use of AI may snowball into a dependency for some students, which must be looked out for. As AI gets better at writing and interpreting code, education must adapt along with it (although how it will adapt is something I have no idea of). Overall, use of AI should be somewhat limited, so students will get better with their fundamentals.
All in all, the use of AI in this ICS 314 course was very useful and helpful, even while using it in moderation. I think that being able to educate students on what somewhat moderate use of AI is, and what dependency on AI is will be important in the future so that universities do not graduate people with garbage fundamental skills. While AI is a great thing that is only going to get better, students should be aware of the hole they can dig themselves into if they engage with it a lot.