AI has been transforming education by providing tools and methods to enhance learning and streamline complex tasks. It plays a pivotal role by automating repetitive processes and overall improving productivity. In the context of software engineering and ICS 314, it is a great tool that I have used to aid me with coding, debugging, testing, etc. It has helped me accelerate the speed of development and also helped me learn various programming concepts and how to apply them effectively. I personally mainly use ChatGPT, but have heard good things about other AI tools such as Claude.
Experience WODs e.g. E18
In the experience WODs, ChatGPT has helped me a lot on understanding certain concepts that are not as familiar to me. In digits, I used AI to help break down the code so I could better understand how it is connected to the postgres database.
In-class Practice WODs
If my partner and I were both stuck on the same section of a practice WOD, we would often use AI to provide the code to use and help us better understan the concept.
In-class WODs
AI has saved me from getting a DNF on multiple WODs, especially some of the later, more complicated WODs. For example, even though I do not know a lot of the tools available in bootstrap, asking ChatGPT for things like “create a grid of images with text centered in each of them” has saved me from taking possibly several minutes looking through documentation.
Essays
I did not use AI for essays because I feel that it does not help very much when I’m writing about my personal experience. Though looking back, it definitely could have helped in structuring my essays better.
Final project
AI was a crucial role in the final project, as there were some concepts required for our website that were not covered in class. For example, I used AI to help me remove items from a user’s cart after chekcking out ther order, then having all the user’s past orders show up on their account page as well as have their checkout out order show up on the admin’s page.
Learning a concept / tutorial
AI is a big help when learning a new concept. Instead of scavenging through google and looking through documentation, AI can obtain all that information and provide it to me in a well organized explanation. I have used this technique many times when trying to learn the intricacies of React and Postgres.
Answering a question in class or in Discord
I chose not to use AI for answering questions during discussions and rather relied on my understanding of the concept. Though I did not use AI, I still got the benefits of classmates giving input provided by AI.
Asking or answering a smart-question
I did not partake in answering any smart questions in the class discord. Whenever I did have a question to ask I would look through the discord beforehand for anyone asking the same question, and there has always been someone with the same smart question followed by a well explained answer.
Coding example e.g. “give an example of using Underscore .pluck”
I have used AI to give me a coding example for multiple WODs. For example, I have asked ChatGPT to give me an example of using the .map function because I was having trouble understanding the syntax of the funciton.
Explaining code
Having AI explaining code is an excellent way of learning new coding concepts when I’m not really sure whats going on in the code. I have used AI to break down code in digits and explain to me how the database is connected.
Writing code
For writing code, I would often paste instructions into ChatGPT to obtain code, then go through it to better understand whats going on and also look for any mistakes the AI made. For example, “Create a function that filters an array of objects with the x attribute being above a certain number”.
Documenting code
I have never used AI to help document code because I haven’t had trouble doing so in the past. As long as I am able to understand the code, documenting it has not been much of an issue.
Quality assurance e.g. “What’s wrong with this code” or “Fix the ESLint errors in <>”
When fixing ESLint errors, I occasionally copy the error message and any relevant code to speed up the process, as there are often many ESLint errors that I want to get through as fast as possible.
Other uses in ICS 314 not listed
The above list has covered all my use of AI in this course. My main uses of AI in ICS 314 has been providing and explaining code for WODs and the final project.
The incorporation of AI into my learning experience has profoundly influenced the way I approach software engineering. AI being able to provide instand assistance to problems that would otherwise take me much more time has streamlined my comprehension of complicated concepts and enhanced my skill development. AI has accelerated my skills by making it easier to learn frameworks like React and Bootstrap by providing quick examples and explanations. It has also helped my with problem solving issues by providing multiple approaches, which I would then analyze each one and choose the most efficient solution.
AI has been a big help in some of my real-world projects. For example, I have recently built a medication tracker for the elderly using the Raspberry Pi Pico W microcontroller. I encountered many bugs and issues along the way, and when I couldn’t solve them by myself AI would provide a feasible solution to my issue. I had a problem in the project where the sensor would get false readings and I was able to solve it by connecting it to a low-pass filter, ensuring only frequencies under a certain threshold would be read. Without AI, it would have taken me much longer and given me much more of a headache solving the issue.
One challenge I faced when using AI was the accuracy of the generated responses. While AI tools are generally helpful, many times they will provide incorrect solutions. Because of this, it is important to always carefully read the solutions provided and look for any errors that may have been made. Occasionally, it would have been faster and more helpful to find solutions on my own through google or through official documentation rather than using AI. Further integration of AI in software engineering could incldue AI as a collaborative coding partner such as github copilot, where it would give real-time feedback to the code the user is writing.
While both traditional teaching and AI-enhanced approaches have their strengths, they differ in many aspects. Traditional teaching may be better for engagement because there is direct contact with an instructor and peers to create a supportive learning environment. There is also the possibility of group activities which may be more fun and engaging. However, AI tools can provide many different perspectives and approaches to complex challenges, and I find the instant support it gives to be immensely valuable. Keeping aspects of traditional teaching such as interaction between instructors and peers while utilizing the strengths of AI will likely create a very effective learning experience for students.
As AI becomes constantly more and more efficient, I believe it could greatly affect the future of software engineering education. As AI further evolves, it will be integrated deeper into teaching methodologies and learning environments. In the future, AI could possibly create fully personalized curriculums, adjusting to the individual’s learning styles and knowledge. Some challenges that may occur is the over-reliance of AI. This may cause students to neglect certain skills such as foundational problem solving
Overall, I believe AI is a great tool for learning when it comes to software engineering. While there are several issues that may be brought up such as over-reliance of AI and the potential inaccuracy of AI, tools like ChatGPT provide valuable support in understanding complicated programming concepts, debugging, greatly speeding up the development process, and more. In my experience, these positives have vastly outweighed the negatives as many of the negatives can be worked around, such as double checking any generated code carefully before implementing it. Currently, I like the integration of AI in ICS 314 as it is. The use of AI tools is encouraged, but it is encouraged to be used as a supplement for our knowledge. This allows students to gain the full benefits of AI without being overly reliant on it and using AI as a crutch for their abilities.