The sudden expansion of the use of AI into education is something that I believe reflects the rapidly changing landscape of higher education and its relationship with technology. As a graduating senior, seeing this change happen in real time is jarring. When I entered university a little over four years ago, the use of AI in education was almost unheard of. Now suddenly, it has made its way into every major, every class, and every assignment. Now the use of AI in education has grown to the point where it is even addressed in syllabi at the beginning of each semester. Though it was almost non-existent before, AI now plays an immense role in a student’s educational journey throughout university.
AI is used in many ways in education. To some it acts as an assistant. It can aid a student by providing in depth definitions and examples of confusing concepts otherwise unexplained during fast-paced lectures. It can check and correct spelling or grammatical errors in writing. It can even offer a tired student support by helping them brainstorm ideas for projects, papers, and speeches. However, to others it can become a crutch that can destroy a meaningful education. Some students will have AI write their entire essays instead of just checking them or offering ideas about topics. Some will paste homework into an AI program and have the AI solve it for them without so much as glancing at one of the questions.
The use of AI in software engineering is a precarious balance between these two uses. Though AI can be more unreliable with things like writing, history, and even mathematical calculations, it is extremely useful in software engineering. It can write code with frightening accuracy and speed. This potential makes the overuse of AI in software engineering dangerously easy. I believe it is a programmer’s responsibility to use AI as an assistant and not as a crutch. In ICS314, we learned to do this through our WODs and other projects where we were allowed the use of AI. I often made use of ChatGPT to aid me by debugging code, defining functions, and generating detailed examples so I could learn more efficiently. The ICS314 students were allowed to explore the use of AI in a real working environment. I think it was extremely beneficial to the course that the professors decided to address AI and teach us how to properly use it rather than try to ban it.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18: I did not use AI during the homework experience WODs because I thought it was important to my learning experience to first try the WOD on my own. If I could not figure out the solution I would watch the video solution by the professor rather than AI as I thought it was much more reliable than AI. Also, because it was the professor’s solution I felt that watching their video would give me more insight into what the professors were looking for in coding practices for the course so their answer was more important to me than AI’s.
In-class Practice WODs: I did not personally use AI during in-class practice WODs but if a classmate in my group did I would often follow their solutions. I did not feel a need to use AI to solve the in-class WODs because they were not graded so there was no risk of me losing points/grades if I didn’t solve the problem correctly. Moreover, the TA or professor would go over the solution before class ended anyways and like I said above, I trust their solution more and I want to see how they expect us to solve the problem.
In-class WODs: I did use AI during the in-class WODs but much more during the beginning of the semester than during the end. During the first few WODs when we were still using JS Fiddle I used AI a lot more than when we were using IntelliJ. I think it was because of the different subject material. During the fiddle WODs I would use AI a lot for defining underscore functions quickly so I wouldn’t have to search for them and what I wanted them to do. For example, for the functional programming WODs I would often ask ChatGPT something like this: “Define an underscore function that will sort through a list of graduates and return only graduates whose ethnicity is Hawaiian” and I would paste the given database examples in as well. I would also use AI to debug or check my code when I couldn’t get it to have the right output and I ran out of ideas. However, during later WODs when we started getting into HTML, bootstrap, react, and meteor, I found AI much less useful so I mostly stopped using it during WODs. For example, ChatGPT cannot see the full scope of the files in the react template so I didn’t want to go through the hassle of pasting every file related to my problem into the chat. Moreover, I understood the UI design units much better than the functional programming units so I didn’t really feel the need to use AI anyways. It was actually very fun learning UI design and doing the WODs for them. In general I think my main motivation for using AI during the early WODs was not because I didn’t think I could do them without AI but more because I was afraid I wouldn’t finish them before the time limit without AI.
Essays: I did not use AI during the essays as I feel like AI takes away the writer’s tone from their writing. Especially with the demands for tone, personality, and creativity in the essays in this class, I think writing with the use of AI would actually be detrimental to my essays because they wouldn’t be able to reflect my personality as well.
Final project: I used AI during the development of our final project to help me fix issues I did not understand and to help me implement things I did not have experience with. For example, I was in charge of making the marketplace trading page for our card trading application. I wanted to make a system where a user could post their card publicly for trade on the marketplace and another user could then take that card if they wanted it. I did not know how to implement a trading system until I asked the professor. He proposed I create a system where when a user attempts to obtain a card from the marketplace, the ownership of the card switches from the poster to the obtainer. I asked ChatGPT how to create a function like. It gave me a good start but I did have to work at it for a bit myself before it was functional. Another part of the marketplace I used AI for was the switching table tabs. When the user has the “marketplace” tab active, they only see cards posted by other users with the “obtain card” links. When a user has the “my listed cards” tab active, they are able to see the cards they themselves have posted and are not able to press any “obtain card” link because they already own the card. I did not know how to make the tables’ active view different so I asked ChatGPT for this as well. Once again, however, it gave me a good starting framework but I spent a long time editing and changing it myself to work the way I wanted it to.
Learning a concept / tutorial: Sometimes I used AI for this when I didn’t fully understand a concept being spoken about in the screencasts or module readings. I would use AI to see a summarized definition of it and also code examples that ChatGPT can produce. Seeing code examples often really helped.
Answering a question in class or in Discord: I did not use AI to answer any questions. I only really answered questions if I was confident in my answer and if I had to use AI, then I was not confident enough to give someone else an answer.
Asking or answering a smart-question: I did not use AI to answer any questions because I feel like the student asking the question, especially if it was a “smart” question would have already taken that step. I would probably just end up repeating something they already tried which would be unproductive.
Coding example e.g. “give an example of using Underscore .pluck”: This is probably what I used AI the most for, especially in the functional programming units towards the beginning of the semester. Seeing examples like this is something that really helps me learn so I used AI a lot to show me actually code examples of the things we were learning.
Explaining code: I used AI to explain code I did not understand. For example, if I would copy and paste a code block into the chat and ask the AI why the output was how it was and how to change the output if I wanted. This helped me fix code that wasn’t working as expected and also helped me use and change example code in various situations as I needed.
Writing code: I used AI a lot to write code, especially if I did not know where to start for certain things. My AI use in my final project responsibilities is a good example of this. So is my use in WODs.
Documenting code: I did not use AI to document code. When it came to making user guides, developer guides, and other documentation I did it by hand because I thought it was important to be clear and understand the guides myself rather than just leaving it to an AI.
Quality assurance: I used AI for quality assurance purposes. For example, before I would submit some WODs I would run the code through ChatGPT first to make sure I wrote it in the simplest and most efficient way possible.
Other uses in ICS 314 not listed above: Other than the uses mentioned above, I cannot think of anything else I used AI for.
I genuinely think that being able to use AI freely during the course, even during the WODs was very helpful to my learning experience. I am and always have been a student that worries excessively about my grades, sometimes to the point where it actually gets in the way of my education instead of aiding it. Using AI during the WODs allowed me to focus less on the time limit and my grade and focus more on how well I understood the material I was being tested on as well as how I could apply it to situations outside of the test. Similarly with other applications such as in my final project, using AI helped me to establish a good start on projects that would have otherwise taken much more time and frustration to produce. With AI I was able to begin projects easier and then really focus on making them higher quality and interesting instead of worrying about finishing them for a deadline. I do not think it has impacted my comprehension or skill development, I think it has aided them for these reasons. I know that a common criticism of AI is that it negatively impacts our problem solving skills. However, I feel that I could have solved any of these problems by myself just over a longer period of time without AI. AI just took away the stress of having to solve these as quickly as possible under time constraints. I think that overall, AI has enhanced my understanding of software engineering and I would even say it has furthered my interest in it as well.
Outside of ICS314 and education in general, AI has many potential applications. Recently, the use of AI in game development has become a hot topic with varying cases of good and bad uses. While the use of AI often carries a negative connotation in creative fields such as game development, there have actually been many amazing developments in its use that can actually aid developers without taking away from the creative or human aspect of their work. For example, in the recent remastered release of the Final Fantasy games, AI played an important role in the reanimation of the game. Instead of having animators redo every animation for the game, the developers had AI take care of animating the mouth movements of the characters during dialogue scenes. They were able to train a program to follow the phonetic sounds of the dialogue and animate the character’s with the appropriate mouth positions. This greatly aided the animators by taking the burden of a large but menial and repetitive task off of their workload and allowed them to focus more on reanimating other more important aspects of the game such as facial expressions and textures. I believe this is an exemplary use of AI in a real-world project. It shows how we can use AI to assist us by taking care of smaller, less pressing tasks so humans can be freer to focus on more important things or things that require more detailed work. The same goes for its use in real-world software engineering. AI has unbounded potential in its application to real-world software engineering projects and can be used as an assistant to help software engineers continue to create increasingly complex programs.
AI is not infallible. It is riddled with problems that can make it dangerous to use if you do not check your work or if you overuse AI. For example, it often miscalculated simple mathematical equations and can even state completely unfactual things as true. Though these problems are rarer in its use in programming, there are still many limitations I encountered while attempting to use AI during this class. For example, one of the main limitations I experienced was its limited processing capability. When I am programming on a single file such as when I use HTML or when I am only working on single functions like during our early WODs, AI was extremely helpful. If I needed to, I could paste the entire file into ChatGPT and it would correct my code and even suggest improvements. However, when we began to move onto more complicated things like app development, it was harder for AI to consider that we were working with many different files on a single app. This prevents students from just pasting entire files into ChatGPT such as before and requires us to learn how to create a quality prompt to ask the AI a real question describing what our problem is and what we want as a result. I think this limitation is actually very valuable for the course, however, because it does force us to consider our problems and questions instead of just blindly copying and pasting into AI programs.
With the amount of material students are expected to learn nowadays, it only makes sense to me that learning tools must also excel. The things we learn in class today as undergraduates are things that were only developed or even discovered a few years ago. The amount of knowledge students need to know at younger ages gets larger and larger as time goes by. The things our parents learned in graduate programs are now being taught in high school level programming classes. I think the use of AI and evolving teaching methods is a necessity for education to continue developing at the rate it currently is to keep up with modern knowledge. AI is going to play a huge role in that. Without AI, managing the amount of educational material in university and even highschool will just become increasingly impossible for students. I think the stagnation of the development of educational methods while the volume of educational material rapidly increases will negatively impact engagement, retention, and skill development. AI is the push that the classroom needs to begin evolving again to keep up with modern demands.
I believe AI is going to push software engineering and computer science in general into an era of rapid development (even more so than now). I think AI was the breakthrough the field needed to begin expanding into areas we weren’t even able to consider before. This is because, as I have said, with AI available as an assistive technology that can take care of our smaller, busy tasks. Humans will be freer to focus on more important developments in the field. Now, an engineer doesn’t have to spend hours looking for a single error in their code when AI can tell them exactly where it is and how to fix it to get the desired output. They can instead use those hours to create something new. Personally, I hope that advancements in software engineering due to AI will aid in environmental efforts around the world. I work in a lab that focuses on insect and plant conservation in CTAHR at UH. I help with programming and machine learning to create functional machines that can help with conservation issues in Hawaii such as sensors that track invasive coqui frogs and bee hive populations. Using AI has expedited the process immensely, particularly in machine learning. We are able to create more machines at a faster rate and the help of AI has also allowed us the freedom to imagine new machines that we have never made before. I think that the investment in the use of AI and technology in general in conservation issues is sadly very low. However, this means that there are also many exciting new things to discover as their usage in the field grows.
In summary, I think that the use of AI in this course was very well done. It was the first course I have ever taken that explicitly allows the use of AI and even encourages students to learn how to use it properly and responsibly. I think ICS314 allowed me to learn how to use AI as an assistant and how to not rely on it too much which has helped me grow as a programmer. The inclusion of AI in education like this is going to be essential going forward as AI will become an integral and unavoidable part of computer science in particular. Like automation and machinery caused the industrial revolution, I believe AI is another development that will push humanity forward at an unprecedented rate. I think ICS314 made good use of AI and I do not have any significant suggestions to make about changing the course. If anything, I do think that this essay and reporting our use of AI is very important and I do think that should continue. Otherwise, I applaud the professors’ open-mindedness and trust in their students to allow us to use and learn new technologies rather than simply trying to ban what is unfamiliar.